Sunteți pe pagina 1din 2

Structuri de control

Considerații teoretice

Clasificare:
 secvenţiale: atribuire, instrucţiunea compusă, apeluri de funcţii sau proceduri;
 alternative: if - then, if – then - else, şi case;
 repetitive: while, repeat, for.

2.Structura repetitivă

1. Instrucţiunea while (structura de ciclare cu număr necunoscut de paşi cu


test iniţial) are sintaxa:

WHILE conditie DO instructiune;

- unde conditie poate fi o expresie logică sau condiţională deci rezultatul ei poate fi
true sau false;
- instructiune poate fi orice instrucţiune Pascal;
- dacă se doreşte ca după DO să se execute mai multe instrucţiuni atunci acestea
se vor pune într-o instrucţiune compusă.

Funcţionare:
Pas 1: se evaluează condiţia;
Pas 2: dacă rezultatul ei este true atunci se execută instrucţiunea şi se trece la
pasul 1;
Pas 3: dacă rezultatul este false atunci execuţia instrucţiunii while se termină.
OBS: Condiţia va depinde de o variabilă care trebuie să îndeplinească următoarele
două cerinţe:
a. înainte de scrierea instrucţiunii, while va fi iniţializată;
b. în cadrul instrucţiunii de după DO i se va modifica valoarea; dacă acest lucru
nu este îndeplinit atunci instrucţiunea while se poate executa la infinit.

Exemplu:
Să se scrie un program care calculează si afișează suma primelor n numere
naturale: S=1+2+3+……+n.

Program suma;
Var s,i,n:integer;
Begin
Write(‘n=’); readln(n);
i:=1;
s:=0;
while i<=n do begin
s:=s+i;
i:=i+1;
end;
writeln(‘Suma este ‘,s);
end.
Discuţii:
- dacă nu se iniţializa s;
- daca nu se iniţializa i, sau dacă nu se incrementa;
- dacă nu se punea begin şi end
- alegerea condiţie;
- ce se întâmpla dacă scriam i := i+1 şi apoi s:=s+i ;
- ce se întâmpla dacă condiţia este falsă de la început;

Obs: Introduceti codul in FreePascal si rulati-l!

Probleme:
Să se cate un program pascal pentru evaluarea si afisarea valorilor
următoarelor expresii, în cazul în care n este citit de la tastatură:
a). S=1+3+5+…..+n;
b). S=2+4+6+..…+n;
c). P=1*2*3*…….*n;
d). P=1*3*5*.....…*n;
e). P=2*4*6*…….*n;
f). E=1/2+1/3+…..+1/n;
g). E=13+23+33+………+n3;
h). E=1/2+2/3+3/4+4/5+……..+(n-1)/n;
i). E=1*2+2*3+3*4+……+(n-1)*n;
j). E=1/4+4/13+……+k/(3*k+1);
k). E=-1+2-3+………+(-1)n*n;
l). E=1*2*3+2*3*4+……..;
m). E=1/(1*3)+1/(3*)+1/(5*7)+…..

S-ar putea să vă placă și