Documente Academic
Documente Profesional
Documente Cultură
Algoritmi
Domeniile SD si al algoritmilor (de manipulare a acestor structuri) se interconecteaz a. Aspecte de baz a legate de algoritmi - ecient a algoritmilor cantitatea de resurse utilizate timp spat iu m asurarea ecient ei: analiz a asimptotic a (complexitate timp si spat iu) analiza empiric a
Limbajul Pseudocod
Vom folosi dou a tipuri de propozit ii pseudocod: 1. propozit ii standard, ecare av and sintaxa si semantica sa; 2. propozit ii nestandard (texte care descriu p art i ale algoritmului nc a incomplet elaborate). Aceste propozit ii ncep ntotdeauna cu semnul @. Comentariile vor cuprinse ntre acolade. citirea datelor se face folosind propozit ia standard:
citeste lista
unde sect iunea altfel poate lipsi. Structura repetitiv a cu num ar cunoscut de pa si:
Pentru contor = li, lf, pas instructiuni SfPentru executa
unde contorul ia valori de la valoarea init ial a li, la valoarea nal a lf , la ecare pas ad aug andu-se valoarea pas. Pasul poate lipsi ind implicit egal cu 1. Structura repetitiv a cu num ar necunoscut de pa si condit ionat a anterior (test init ial):
CatTimp expresie logica executa instructiuni SfCatTimp
Pentru a specica rezultatul ntors de o funct ie vom folosi numele funct iei. Exemplu:
Functia minim(a, b) min a; Daca a < b atunci min b; SfDaca minim min; SfFunctia
apelul unei funct ii se face scriind ntr-o expresie numele funct iei urmat de lista parametrilor actuali (ex: m minim(2, 3)).
Extensii si convent ii
Dac a vrem s a declar am o variabil a i de tip Intreg , atunci vom folosi notat ia i : Intreg . In cazul n care dorim s a declar am un tablou unidimensional t cu elemente de tip TElement vom folosi notat ia t : T Element[]. Dac a se dore ste precizarea exact a a limitelor de variat ie a unui indice, vom folosi notat ia care se bazeaz a pe tipul subdomeniu: T Element[M IN ..M AX ] O nregistrare (un vector av nd lungimea n si elementele de tip TElement) o vom reprezenta sub forma Vector n:Intreg e:TE[] Accesul la elementele unei nregistr ari l vom face folosind caracterul . Dac a ne referim la o variabil a v de tip V ector, atunci prin: v.n - ne vom referi la num arul de elemente ale vectorului; v.e[i] - ne vom referi la al i-lea element din vector. Pentru a indica pointeri (adrese ale unor zone de memorie), vom folosi caracterul , cu alte cuvinte dac a vrem s a declar am un pointer p care refer a un num ar ntreg, acest lucru l vom scrie n urm atoarea manier a: p : Intreg Cont inutul locat iei referite de pointerul p l vom nota [p]. Pointerul nul (care nu refer a nimic) l vom nota prin NIL. Operat iile de alocare, respectiv dealocare a pointerilor le vom nota: aloca(p) dealoca(p)
Av and o variabil a i de tip T ip (i : T ip), notat ia i T ip (exemplu: i Intreg ), va folosit a pentru a evindent ia faptul c a valoarea variabilei apart ine domeniului de denit ie a tipului T ip (Intreg ). Datorit a faptului c a valorile variabilelor pot modicate n urma execut arii unei operat ii, este necesar a delimitarea dintre valoarea variabilei nainte de efectuarea operat iei si cea de dup a execut ia ei. Vom conveni s a folosim caracterul (apostrof) pentru a specica valoarea variabilei dup a aplicarea operat iei. De exemplu, av and o operat ie dec care decrementeaz a valoarea unei variabile x (x : Intreg ), atunci specicat ia operat iei va :
Pentru simplitate, vom folosi notat iile x=y n locul apelului funct iei egal(x,y) pentru a ilustra egalitatea a dou a elemente de tip TElement. x y n locul apelului ssubalgoritmului atribuie(x,y) pentru a ilustra operat ia de atribuire.
Dac a pe domeniul valorilor unui tip de date se poate deni o relat ie de ordine ( ), vom deni si tipul generic TComparabil, care deriv a din tipul TElement; pe l ang a interfat a acestuia, TComparabil admite si urm atoarea operat ii:
Pentru simplitate, vom folosi notat iile x<y, x y, x>y, x y pentru a ilustra relat iile corespunz atoare ntre elemente de tip TComparabil.