Sunteți pe pagina 1din 33

Instrucţiunea FOR

este instructiune repetitivă cu un numar cunoscut


de pasi PENTRU (FOR) (se foloseste cand
numarul de repetitii este cunoscut – un numar fix
de ori.)
Instrucţiunea FOR
Există două modalităţi de utilizare a instrucţiunii For:
1) FOR <c>:=<li> TO <lf> DO
[BEGIN]
<set de instrucţiuni>;
[END;]

•<c> este o variabilă de orice tip ordinal (de ex. integer, char,
boolean, dar nu poate fi real, double etc.) numită contor;
•<li> și <lf> reprezintă limita iniţială, respectiv limita finală a
contorului (trebuie să fie de acelaşi tip cu variabila contor);
• dacă setul de instrucţiuni conţine cel puţin două instrucţiuni, acesta
va fi scris între begin şi end.
Modul de funcţionare al
instrucţiunii:
Variabila contor <c> ia pe rând toate valorile cuprinse
între <li> şi <lf> în ordine crescătoare și pentru fiecare valoare a
lui <c> execută setul de instrucţiuni (corpul ciclului).
Obs.:
• dacă li=lf, atunci setul de instrucţiuni se execută o singură dată;
•dacă li>lf, atunci setul de instrucţiuni nu se mai execută.
Întrebare: Care este efectul următoarelor instrucţiuni:
1) For i:=1 to 10 do write(i,’ ’);
2) For i:=2 to 1 do write(i,’ ’);

3) For i:=10 to 10 do write(i,’ ’);


O altă variantă a instrucţiunii For:
2) FOR <c>:=<lf> DOWNTO <li> DO
[BEGIN]
<set de instrucţiuni>;
[END;]

Modul de funcţionare diferă față de varianta 1) prin


faptul că variabila <c> ia pe rând valorile de la <lf> la <li> în
ordine descrescătoare.

Întrebare: Care este efectul următoarelor instrucţiuni:


1) For i:=5 downto 1 do write(i,’ ’);
2) For i:=1 downto 4 do write(i,’ ’);
3) For i:=10 downto 10 do write(i,’ ’);
Exerciţii
1) Care este efectul următoarei secvenţe de instrucţiuni:
For i:=1 to 10 do
begin
write(i,’ ’);
i:=i+1;
end;
2) Ce valori vor fi afişate în urma execuţiei următoarei
secvenţe de instrucţiuni:
n:=10;
For i:=1 to n do
begin
write(i,’ ’);
n:=n-1;
end;
Write(n);
Observaţia 1
Este interzisă modificarea contorului în interiorul
ciclului For.
Este INCORECT să scriem:
For i:=1 to 10 do
begin
write(i,’ ’);
i:=i+1;
end;
CORECT:
For i:=1 to 10 do
begin
write(i,’ ’);
end;

Observaţia 2
Se evită modificarea limitelor în interiorul ciclului For, deoarece
pot să apară erori de programare.
Instrucțiunea For {calculul factorial}

Această prezentare este folosită pentru a demonstra


elevilor principiul de funcţionare a instrucţiunii FOR.
(Prezentarea funcţionează în regim Slide Show\Using
timings, if presents începând cu slide-ul 2.). În partea
dreaptă este prezentată schema logică a algoritmului.
Instrucţiunea în execuţie se colorează în roşu.
Alături, în stânga sus, sunt arătate variabilele, care
se modifică în dependenţă de instrucţiunea executată,
iar mai jos (fon negru) ecranul de executare, unde sunt
tipărite instrucţiunile Writeln.
Instrucțiunea For {calculul n factorial}
n!=1x2x3x4x……x n

Program P60;
var n, i, f : 0..MaxInt;
begin
writeln(‘n=‘); readln(n);
f:=1;
for i:=1 to n do
f:=f*i;
writeln(‘n!=‘,f);
readln;
end.
Instrucțiunea For (compilarea)

Program P60;
var n, i, f : 0..MaxInt;
begin
writeln(‘n=‘); readln(n);
f:=1;
for i:=1 to n do
f:=f*i;
writeln(‘n!=‘,f);
readln;
end.
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For
Instrucțiunea For

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