- instructiunea repetitiva cu test initial CAT TIMP (WHILE) (se foloseste cand numarul de repetitii este nedefinit)
- instructiunea repetitiva cu test final REPETA-PANA CAND/EXECUTA CAT TIMP (DO WHILE sau REPEAT) (se foloseste cand numarul de repetitii este nedefinit)
- instructiunea repetitiva cu un numar cunoscut de pasi PENTRU (FOR) (se foloseste cand numarul de repetitii este cunoscut - un numar fix de ori.)
Sintaxa: PENTRU contor<-exp_init,exp_fin EXECUTA instructiune
Efect: pentru fiecare valoare a contorului intre expresia initiala si expresia finala se executa instructiunea;
Exemplu: pentru i <- 1,10 executa scrie " Nu ma prinzi!";
- pentru fiecare valoarea a variabile i, de la 1 la 10, se afiseaza " Nu ma prinzi!"
- de 10 ori se afiseaza " Nu ma prinzi!"
- daca secventa ce trebuie repetata contine mai multe instructiuni, acestea se vor grupa cu acolade
Observatii:
- practic, pentru fiecare valoare a lui i, intai se testeaza daca nu s-a depasit valoarea finala 10 si apoi se executa instructiunea;
- algoritmic, propozitia de mai sus este :
- i<-1; cat timp (i<=10) {scrie " Nu ma prinzi!"; i<-i+1; };
- practic , secventa de mai sus me explica faptul ca instructiunea pentru este o clona a instructiunii cat timp.
- instructiunea este "ceruta" daca descrierea algorimului spune "de la valoarea X la valoarea Y", "pentru primele X valori", "de X ori", ...
Exemplul 1.
- Sa se afiseze numerele pare pana la o valaore N, naturala.
intreg n,i;
citeste n;
pentru i<- 0,n executa
daca (i%2==0) atunci scrie i.
Observatii:
- algoritmul ia fiecare valoare intre 0 si n si o testeaza daca este para (restul impartirii lui i la 2 sa fie nul : i%2==0)
- se efectueaza n pasi din care jumatate sunt gresiti; trebuie o varianta mai buna
Exemplul 2.
- Aceeasi problema dar incercam sa mergem din doi in doi
- intreg n,i; citeste n; pentru i<-0,n,2 executa scrie i.
- intreg n,i; citeste n; pentru i<-0,n/2 executa scrie i*2.
Observatie:
- in primul caz, 2-ul de dupa n (i<-0,n,2 ) stabileste cresterea lui i cu 2 si nu cu 1 asa cum este implicit
- in al doilea caz, ne folosim de faltul ca valorile cautate sunt pare, divizibile cu 2;
Exemplul 3
- Sa se calculeze suma primelor N numere naturale.
- evident, stim formula n*(n+1)/2 dar sa incercam un algoritm;
- va trebui sa adunam, la o suma , toate valoarile de la 1 la n
intreg n,i,suma;
citeste n;
suma<-0;
pentru i<- 0 ,n executa suma<- suma +i;
scrie suma.
Exemplul 3.
- Se citeste un sir de N valori intregi. Sa se determine cea mai mare valoare citita (valoarea maxima dintr-un sir).
intreg n,i,max,val;
citeste n;
citeste max;
pentru i<-2,n executa {citeste val; daca val>max atunci max<-val;};
scrie val.
De ce e la "Uncategorized" ?
RăspundețiȘtergereacolo la inceput nu cumva e i>-1?
RăspundețiȘtergereSintaxa instr. PENTRU fol notatia "<-"pentru atribuire. Liniuta face parte din semn, nu e minus. Oricum, am adaugat un spatiu, la sugestia ta. Multumesc!
RăspundețiȘtergereM-a derutat la maxim <-
RăspundețiȘtergereNu se poate folosi:
←
Este codul html pentru ←
Sau dati un copy&paste la simbol (←) si se poate folosi in articol.