Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Algoritmi cu ramificatii
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

Foarte multi algoritmi executa anumite calcule in functie de satisfacerea unor conditii. Aceste calcule sunt redate de structura alternativa prezentata in figura 1.3.1.b, careia ii corespunde propozitia Pseudocod DACA cond ATUNCI A ALTFEL B SFDACA sau varianta redusa a ei, DACA cond ATUNCI A SFDACA folosita in cazul in care grupul de propozitii B este vid. o8q14qr
Aceste propozitii redau in Pseudocod structura alternativa de calcul. Ele cer mai intai verificarea conditiei scrise dupa cuvantul DACA. In caz ca aceasta conditie este adevarata se va executa grupul de propozitii A. In cazul in care aceasta conditie este falsa se va executa grupul de propozitii B, daca este prezenta ramura ALTFEL. Indiferent care dintre secventele A sau B a fost executata, se va continua cu propozitia urmatoare propozitiei DACA.
O generalizare a structurii alternative realizata de propozitia DACA este structura selectiva:
SELECTEAZA i DINTRE v1: A1; v2: A2;
. . . vn: An
SFSELECTEAZA structura echivalenta cu urmatorul text Pseudocod:
DACA i=v1 ATUNCI A1 ALTFEL
DACA i=v2 ATUNCI A2 ALTFEL
. . .
DACA i=vn ATUNCI An SFDACA
...
SFDACA
SFDACA
Cu 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 ESTE: A Algoritmul 2: Rezolvarea S
A ecuatiei de gradul doi S
CITESTE a,b,c; A a,b,c = Coeficientii ecuatiei S
FIE delta:=b*b?4*a*c;
DACA delta<0 ATUNCI ind:=0; A radacini complexe S r:=radical din (?delta); x1:=?b/(a+a); x2:=r/(a+a);
ALTFEL ind:=1; A radacini reale S r:=radical din delta; x1:=(?b?r)/(a+a); x2:=(?b+r)/(a+a);
SFDACA
TIPARESTE ind, x1,x2;
SFALGORITM




1.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 repetandu?se pentru fiecare pozitie. Alte calcule trebuiesc repetate in functie de satisfacerea unor conditii. In acest scop in limbajul Pseudocod exista trei propozitii standard: CATTIMP, REPETA si PENTRU.
Propozitia CATTIMP are sintaxa CATTIMP cond EXECUTA A SFCAT 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 SFCAT. 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 ESTE: AA3: Cel mai mare divizor comunS
CITESTE n1,n2; ACele doua numere a caror divizor se cereS
FIE d:=n1; i:=n2;
CATTIMP i¹0 EXECUTA r:=d modulo i; d:=i; i:=r
SFCAT
TIPARESTE d; A d= cel mai mare divizor comun al S
SFALGORITM A numerelor n1 si n2 S
In descrierea multor algoritmi se intalneste structura repetitiva conditionata posterior:
REPETA A PANA CAND cond SFREP structura echivalenta cu: CATTIMP not(cond) EXECUTA A SFCAT
Deci 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 structura repetitiva conditionata posterior, prima executie a blocului A fiind neconditionata.
O alta propozitie care cere executia repetata a unei secvente A este propozitia
PENTRU c:=li ;lf a;pi EXECUTA A SFPENTRU
Ea defineste structura repetitiva predefinita, cu un numar determinat de executii ale grupului de propozitii A si este echivalenta cu secventa c:=li ; final:=lf ;
REPETA
A c:=c+p
PANACAND (c>final si p>0) sau (c<final si p<0) SFREP

Se observa ca, in sintaxa propozitiei PENTRU, pasul p este inchis intre paranteze drepte. Prin aceasta indicam faptul ca el este optional, putand sa lipseasca. In cazul in care nu este prezent, valoarea lui implicita este 1.
Semnificatia propozitiei PENTRU este clara. Ea cere repetarea grupului de propozitii A pentru toate valorile contorului c cuprinse intre valorile expresiilor li si lf (calculate o singura data inainte de inceperea ciclului), cu pasul p. Se subintelege ca nu trebuie sa modificam valorile contorului in nici o propozitie din grupul A. De multe ori aceste expresii sunt variabile simple, iar unii programatori modifica in A valorile acestor variabile, incalcand semnificatia propozitiei PENTRU. Deci, nu recalcula limitele si nu modifica variabila de ciclare (contorul) in interiorul unei structuri repetitive PENTRU).
Sa observam, de asemenea, ca prima executie a grupului A este obligatorie, abia dupa modificarea contorului verificandu-se conditia de continuare a executiei lui A.
Ca exemplu, sa descriem un algoritm care gaseste minimul si maximul componentelor unui vector de numere reale. Vom nota prin X acest vector, deci
X = (x1, x2, ... , xn)
Specificatia problemei este urmatoarea:
DATE n,(xi ,i=1,n);
REZULTATE valmin,valmax; iar semnificatia acestor variabile se intelege din cele scrise mai sus. Pentru rezolvarea problemei vom examina pe rand cele n componente. Pentru a parcurge cele n componente avem nevoie de un contor care sa precizeze pozitia la care am ajuns. Fie i acest contor. Usor se ajunge la urmatorul algoritm:
ALGORITMUL MAXMIN ESTE: A Algoritmul 5: Calculul S
A valorii minime si maxime S
CITESTE n,(xi,i=1,n);
FIE valmin:=x1; valmax:=x1;
PENTRU i:=2,n EXECUTA
DACA xi<valmin ATUNCI valmin:=xi SFDACA
DACA xi>valmax ATUNCI valmax:=xi SFDACA
SFPENTRU
TIPARESTE valmin,valmax;
SFALGORITM
Un rol important in claritatea textului unui algoritm il au denumirile alese pentru variabile. Ele trebuie sa reflecte semnificatia variabilelor respective. Deci alege denumiri sugestive pentru variabile, care sa reflecte semnificatia lor.
In exemplul de mai sus denumirile valmin si valmax spun cititorului ce s-a notat prin aceste variabile.


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta