Anda di halaman 1dari 27
1 Notiunea de algoritm Un algoritm este 0 succesiune bine precizatit de prelucriéri care aplicate asupra datelor de intrare ale unei probleme permit obfinerea én timp finit a solutiei acesteia. 2 Obiectul disciplinei Obiectul discipline’ de ” AlgoritmicX” il reprezinti studiul algoritmilor din perspectiva elaboririi si analizei lor. Elaborarea unui algoritm necesita: ‘© cunostinte specifice domeniului de unde provine problema de rezolvat; * telnici generale de rezolvare a problemelor; # intuitie si géndire algoritmick. 3 Proprietiti ale algoritmilor ‘Un algoritm trebuie si posede unmatoarele proprietaiti: Genoralitate. Un algoritm destinat rezolvirii unei probleme trebuie si permith obtinerea rezul- tatului pentru orice date de intrare si nu numai pentru date particulare de intrare. Finitudine, Un algoritm trebuie si admit o deseriere ‘init si flecare dintre prelucririle pe care le contine trebuie si poate fi executat& in timp finit. Prin intermediul algoritmilor au pot fi prelucrate structuri infinite. Rigurozitate. Prelueriiile algoritmmalui trebuie specificate riguros, fir’ ambiguititi. In orice etapi a executiei algoritmului trebuie si se stie exact care este urmétoarea etapa ce va fi executatd. Eficienti. Algoritmii pot fi efectiv utilizati doar dack folosese resurse de calculin volum aceeptabil. Prin resurse de caleul se intelege volumul de memorie gi timpul necesar pentru executie. 4 Date ‘* Simple: contin o singura valoare (poate fi un numr, o valoare de adeviir sau un caracter). © Structurate: sunt constituite din mai multe date simple intre care exist o relajie de structurk. Dack toate datele componente au aceeasi natur& atunci structura este omogend, altfel este 0 structurk heterogenit 5 Tipuri de prelucrari Asemenea datelor si prelueriiile pot fi clasificate in simple si strueturate, Prelucriirile simple sunt: * Atribuire. Permite afectarea unei valori unei variabile. Valoarea atribuit& poate fi rezultatul ‘evaluiii unei expresii. O expresie deserie un calcul efectuat asupra unor date si confine oper- ansii (specifick datele asupra eXrora se efectueazK ealeulele) gi operators (specifick prelucrivile ce se vor efectna). ‘© Transfer. Permit preluarea datelor de intrare ale problemei si furnizarea rezultatului. «# Control, in mod normal prelueriile din algorit se efectueaz in ordinea in care sunt spee= ificate. fn cazul in care se doreste modificarea ordinii naturale se transferi controlul executiei Jao anumit4 preluerare, Structurile de preluerare sunt: © Secventiali. Este 0 succesiune de prelucréri (simple sau structurate). Executia structurii secventiale consti in executia prelueririlor componente in ordinea in care sunt specificate. © De decizie (alternativd). Permite specificarea situatiilor in care in funetie de realizarea sau nerealizarea imei condifii se efectueazi o prelucrare san o alt prelucrare. Conditia este do rogulli o expresic a cirui rezultat esto o valoare logick (adevirat sau fals). O astfel de prelucrare apare de exemplu in evaluarea unei functii definite prin: -1 dactr <0 Sa)=4 0 dacke=0 1 dacke >0 © De ciclare (repetitivi). Permite modelarea sitnatiilor cind o prelucrare trebuie repetatt. Se caracterizeazX prin existenta unei prelueriri care se repet si a unei conditii de oprire (sau de continuare). In funetie de momentul in care este analizatA conditia exist, prelucrari repetitive conditionate anterior (conditis este analizatX inainte de a efectua prelucrares) gi prelucriiri conditionate posterior (conditia este analizat& dupa efectuarea prelucritii). O astfel de prelucrare apare de exemplu in caleului unei sume finite 7%, 1/i2. In acest caz prelucrarea, care se repeti este adunarca iar conditia de oprire 0 reprezinti faptul eX au fost adunati toti cei n termeni, Curs 2: Descrierea algpritmilor 1 Limbaj algoritmic Atribuire. Pentru atribuitea valorii obtinute prin evaluarea unei expresii variabilei cu mmele v se specifica: v &< expresie > Expresiile se utilizea, de regula, pentru a descrie calcule si sunt constituite din operanzi gi operatori. Operanzii pot fi variabile si valori constante. Operatorii utilizat) sunt © aritmetici: + (adunare), ~ (sctidere), ¢ (inmultire), / (impartjre),*(ridicare la patere), DIV (catul impartirii intregi}, MOD (restul impartirii intregi); © relationali: = (egal), sau <> (diferit), < (strict mai mic), < sam <= (mai mic sau egel), > (strict mai mare), > sau >= (mai mare sau egal); ® logici: OR (disjunctie), AND (conjunctie), NOT (negatie). 2 Specificarea datelor INTEGER a REAL b BOOLEAN © CHAR d 3 Exemple Struct ura secvensiali. Enuntul problemci, S& se calculeze aria wnui triuaghi canoscand Iungimile laturilor sale (a, b sic). Metata de resolvare. Se foloseste formula ini Heron: aria = Vplp—ap= Mpa) unde p este semiperimetrul. Descrierea algoritmului. BEAT a, yc,pvaria { sporiicaron vaniabilolor util READ a,b,c — {ci:irea datelor de intrare} p&(a+b+0/2 _ {calcularea semiperimetrului} aria — Vpip—a(p—O)(p—e) — {calcularea ariei} WRITE aria atului_} Structura de decizie. Bnuntul problemei. Sase calculeze ridacinile real valoari reale arbitrare. Metota de rezolvare, Se foloseste metoda de rezolvare a ecuatillor de gradul 2 folosind formulele pentru calcula! discriminaniului si pentru calculul radacinitor Deserierea algoritmutui. ale eetatie’ as? + br Cunde a, 6 si e sunt REAL a, 0, detarl,n2 { specificarea vaniablielor wilizare} READa,t,c — {cisirea datelor de intrare} delta —dac — {caleulul discriminantului} {Analiza semmulil discriminantulwi} IF delta <0 THEY WRITE” Eruatia nu are radacini reale” ELSE ||IF delta =0 THEN UL (let © = /(2a) || |. lWaETE"ReAdacina comands”, xb || ELSE I] |] jet & (-b + Vdelta) /( 20) IL |] je? & (-b - delta) /( 2a) Livre t22 Enuntul problemei. Se considera trei valori reale reinute in vatiabilde a, bic. [a) SA se determine cea mai micé dintre cele trei valoti. (b) Sa se afigeze cele trei valori in ordine eresedtoare, Descrierea algoritmilor. (a) O primé variant de rezolvare bazatd pe compararea valorilor dowd, cate dowd este: REAL a,b, c,min | specificarea variabilelor atilizate} READ a,b,c {citirea datelor de intrare} IF a < b THEN IF a <¢ THEN min —a ELSE min <¢ ELSE IF b <¢ THEN min