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ă
2. Instrucţiunea repeat (structura de ciclare cu număr necunoscut de paşi cu test
final) are sintaxa:

REPEAT instructiuni UNTIL conditie;

Unde conditia este o expresie condiţională sau logică, deci rezultatul poate fi true
sau false; iar instrucţiunile pot fi orice instrucţiuni pascal.
Funcţionare:
Pas 1: se execută instrucţiunile;
Pas 2: se evaluează condiţia;
Pas 3: dacă rezultatul ei este false atunci se trece la pasul 1;
Pas 4: dacă rezultatul este true atunci execuţia instrucţiunii repeat 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 repeat va fi iniţializată;
b. în cadrul instrucţiunii de după REPEAT i se va modifica valoarea; dacă acest
lucru nu este îndeplinit atunci instrucţiunea repeat se poate executa la infinit.

Exemplu:
Să se scrie un program care face suma primelor n numere naturale:
S=1+2+3+……+n.
Program suma;
Var s,i,n:integer;
Begin
Write(‘n=’); readln(n);
i:=0;
s:=0;
repeat
s:=s+i;
i:=i+1;
until i>n;
Discuţii:

- de ce s-a iniţializat i cu 0 şi nu cu 1;
- condiţia;
- de ce s-a făcut incrementarea după calculul sumei;
- instrucţiunile se excută cel puţin o dată;
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