instructiunile ciclice

2
Instrucţiunile Ciclice Al treilea algoritm de bază este ciclatorul. În Pascal pentru realizarea ciclelor sînt prevăzute trei instrucţiuni : FOR…, WHILE şi REPEAT. Instrucţiunea ciclică FORrealizează ciclele cu parametru, adica ciclele în care numărul de repetări al ciclului sînt cunoscute din timp. Ea are formatul: FOR << p >> := << exp1 >> TO << exp2 >> DO << J >>; sau FOR << p >> := << exp1 >> DOWNTO << exp2 >> DO << J >>; p parametrul ciclului, care poate fi o variabilă de orice tip scalar în afară de tipul Real; exp1, exp2 valoarea iniţială şi finală a parametrului, care sînt expresii de acelaşi tip ca şi parametrul p; J instrucţiune, care determină corpul ciclului, adică este componenta ciclului executarea căreia se repetă. Ea poate fi orice instrucţiune inclusiv compusă sau chiar ciclică; FOR(de la), TO(pînă la) şi DO(execută) – cuvinte rezervate; DOWNTO ( în jos pînă la ) la fel este cuvînt rezervat. Faptul, că J poate fi şi o instrucţiune compusă, permite ca în corpul ciclului să fie incluse orice număr de instrucţiuni. Penzru aceasta e destul să le includem în parantezele instrucţionale Begin şi End. FOR p:=a+b TO d*12 DO Begin x:=x+3; z:=a4; write(x+z); End; Dacă în corpul ciclului intră o altă instrucţiune ciclică se spune, că avem instrucţiune ciclică multiplă. Lucrează FOR… în felul următor: - se calculează exp1 şi exp2; - corpul J se execută pentru fiecare valoare a lui p, începînd de la cea iniţială egală cu exp1 pînă la cea finală egală cu exp2; - de fiecare dată parametrul p se măreşte cu o unitate (p:=p+1) pentru FOR TO sau p:=p-1 pentru FOR DOWNTO. Mărimea pasului de mărire sau micşorare a parametrului întotdeauna este 1.

Upload: andrei-golovei

Post on 14-Dec-2015

368 views

Category:

Documents


1 download

DESCRIPTION

!

TRANSCRIPT

Page 1: Instructiunile Ciclice

Instrucţiunile Ciclice

Al treilea algoritm de bază este ciclatorul. În Pascal pentru realizarea ciclelor sînt prevăzute

trei instrucţiuni : FOR…, WHILE şi REPEAT.

Instrucţiunea ciclică FOR… realizează ciclele cu parametru, adica ciclele în care numărul de

repetări al ciclului sînt cunoscute din timp. Ea are formatul:

FOR << p >> := << exp1 >> TO << exp2 >> DO << J >>;

sau

FOR << p >> := << exp1 >> DOWNTO << exp2 >> DO << J >>;

p – parametrul ciclului, care poate fi o variabilă de orice tip scalar în afară de tipul Real;

exp1, exp2 – valoarea iniţială şi finală a parametrului, care sînt expresii de acelaşi tip ca şi

parametrul p;

J – instrucţiune, care determină corpul ciclului, adică este componenta ciclului executarea

căreia se repetă. Ea poate fi orice instrucţiune inclusiv compusă sau chiar ciclică;

FOR(de la), TO(pînă la) şi DO(execută) – cuvinte rezervate;

DOWNTO ( în jos pînă la ) la fel este cuvînt rezervat.

Faptul, că J poate fi şi o instrucţiune compusă, permite ca în corpul ciclului să fie incluse

orice număr de instrucţiuni. Penzru aceasta e destul să le includem în parantezele instrucţionale

Begin şi End.

FOR p:=a+b TO d*12 DO

Begin

x:=x+3;

z:=a–4;

write(x+z);

End;

Dacă în corpul ciclului intră o altă instrucţiune ciclică se spune, că avem instrucţiune

ciclică multiplă.

Lucrează FOR… în felul următor:

- se calculează exp1 şi exp2;

- corpul J se execută pentru fiecare valoare a lui p, începînd de la cea iniţială egală

cu exp1 pînă la cea finală egală cu exp2;

- de fiecare dată parametrul p se măreşte cu o unitate (p:=p+1) pentru FOR – TO sau

p:=p-1 pentru FOR – DOWNTO.

Mărimea pasului de mărire sau micşorare a parametrului întotdeauna este 1.

Page 2: Instructiunile Ciclice

Ciclul cu condiţie anterioară WHILE..DO. Instrucţiunea WHILE conţine o expresie logică

care fiind adevărată provoacă repetarea executării instrucţiunii date (corpul ciclului), ce poate fi

şi o instrucţiune compusă.

Sintaxa: WHILE expresie logică DO instrucţiune;

Instrucţiunea scrisă după “do” se execută repetat atît timp cît expresia logică este adevărată

(este TRUE). Expresia este evaluată înaintea executării cirpului ciclului. Astfel, dacă valoarea

expresiei este falsă (egală cu FALSE), corpul ciclului nu se va executa de loc.

De exemplu,

i:=1;n:=5;

while i<n do writeln(‘ciclu infinit’);

sau

i:=1;n:=4;

while i>n do

Writeln(‘corpul ciclului nu se va indeplini niciodata’);

Deaceea pentru a evita ciclele infinite este necesar ca corpul ciclului să conţină cel puţin o

instrucţiune care modifică valoarea parametrului dat. De exemplu, pentru exemplul anterior

putem evita ciclarea în felul următor:

i:=1;n:=5;

while i<n do

begin

writeln(‘iteratia ’,i);

inc(i);

end;

Ciclul cu condiţie posterioară REPEAT…UNTIL. Instrucţiunile cuprinse între Repeat şi

Until se vor executa succesiv şi repetat pînă cînd expresia logică va deveni adevărată.

Sintaxa: repeat

instrucţiune;

instrucţiune;

……

instrucţiune;

until expresie logică;

În cazul ciclului REPEAT…UNTIL corpul ciclului se execută cel puţin odată.

De exemplu,

i:=1;n:=5;

repeat

writeln(‘ciclu infinit’);

until i>n;

sau

i:=1;n:=4;

repeat

Writeln(‘corpul ciclului se va indeplini o data’);

Until i>n;