Meniu Referate
Romana
Romana1
Romana2
Istorie
Istorie1
Geografie
Geografie1
Diverse
Drept
Economie
Filozofie
Fizica
Informatica
Biologie
Chimie
Italiana
Spaniola
Germana
Franceza
Engleza
Marketing
Matematica
Medicina
Psihologie
Astronomie
Stiinte Politice
Proiecte

Algoritmi cu ramificatii si ciclici

...rent care dintre secventele A sau B a fost executata, se va continua cu propozitia urmatoare propozitiei DAC.O generalizare a structurii alternative realizata de propozitia DAC este structura selectiva SELECTEAZ i DINTRE v1 A1 v2 A2 . . . vn An SFSELECTEAZ structura echivalenta cu urmatorul text Pseudocod DAC iv1 ATUNCI A1 ALTFEL DAC iv2 ATUNCI A2 ALTFEL . . . DAC ivn ATUNCI An SFDAC ... SFDAC SFDACCu propozitiile prezentate pana aici putem deja descrie destui algoritmi. Acestia se numesc algoritmi cu ramificatii. Ca exemplu vom scrie un algoritm pentru rezolvarea ecuatiei de gradul al doilea. Am scris mai sus specificatia acestei probleme si am precizat semnificatia variabilelor respective. Pe langa aceste variabile, pentru rezolvarea problemei mai avem nevoie de doua variabile auxiliare delta pentru a retine discriminantul ecuatiei r pentru a retine valoarea radicalului folosit in exprimarea radacinilor. Ajungem usor la algoritmul dat in continuare. ALGORITMUL ECGRDOI ESTEI Algoritmul 2 Rezolvarea SI ecuatiei de gradul doi S CITETE a,b,cI a,b,c Coeficientii ecuatiei S FIE deltabb4ac DAC delta0 ATUNCI ind0I radacini complexe S rradical din delta x1baa x2raa ALTFEL ind1I radacini reale S rradical din delta x1braa x2braa SFDAC TIPRETE ind, x1,x2 SFALGORITM1.3.3 Algoritmi ciclici In rezolvarea multor probleme trebuie sa efectuam aceleasi calcule de mai multe ori, sau sa repetam calcule asemanatoare. De exemplu, pentru a calcula suma a doua matrice va trebui sa adunam un element al primei matrice cu elementul de pe aceeasi pozitie din a doua matrice, aceasta adunare repetanduse pentru fiecare pozitie. Alte calcule trebuiesc repetate in functie de satisfacerea unor conditii. In acest scop in limbajul Pseudocod exista trei propozitii standard CTTIMP, REPET si PENTRU. Propozitia CTTIMP are sintaxa CTTIMP cond EXECUT A SFCT i cere executia repetata a grupului de propozitii A, in functie de conditia cond. Mai exact, se evalueaza conditia cond daca aceasta este adevarata se executa grupul A si se revine la evaluarea conditiei. Daca ea este falsa executia propozitiei se termina si se continua cu propozitia care urmeaza dupa SFCT. Daca de prima data conditia este falsa grupul A nu se va executa niciodata, altfel se va repeta executia grupului de propozitii A pana cand conditia va deveni falsa. Din cauza ca inainte de executia grupului A are loc verificarea conditiei, aceasta structura se mai numeste structura repetitiva conditionata anterior. Ea reprezinta structura repetitiva prezentata in figura 1.3.1.c. Ca exemplu de algoritm in care se foloseste aceasta propozitie dam algoritmul lui Euclid pentru calculul celui mai mare divizor comun a doua numere. ALGORITMUL Euclid ESTEIA3 Cel mai mare divizor comunS CITETE n1,n2ICele doua numere a caror divizor se cereS FIE dn1 in2 CTTIMP i0 EXECUT rd modulo i di ir SFCT TIPRETE dI d cel mai mare divizor comun al S SFALGORITM I numerelor n1 si n2 SIn descrierea multor algoritmi se intalneste structura repetitiva conditionata posteriorREPET A PN CND cond SFREPstructura echivalenta cuCTTIMP notcond EXECUT A SFCTDeci ea cere executia neconditionata a lui A si apoi verificarea conditiei cond. Va avea loc repetarea executiei lui A pana cand conditia devine adevarata. Deoarece conditia se verifica dupa prima executie a grupului A aceasta structura este numita ...
Download