© 50.ro Fa-ti cont!

S t r u c t u r i

r e p e t i t i v e

 

Dacă, intr-un algoritm, se repetă o secvenţă de operaţii, atunci se utilizează structuri repetitive cu număr cunoscut de paşi (cu contor) sau cu număr necunoscut de paşi (cu condiţie).

 

a)    Structuri repetitive cu contor

 

Structura repetitivă cu contor (cu număr cunoscut de paşi) este codificată prin instrucţiunea for.

 

Limbajul C/C++

 

for(e1;e2;e3) S;

unde e1,e2,e3 sunt expresii de forma:

e1initializare variabila contor

contor=valoare_initiala

e2 conditia de continuare

contor<=valoare_finala for crescator

contor>=valoare_finala for descrescator

e3 modificare contor

contor++ for crescator

contor -- for descrescator

 

Dacă secvenţa (S) conţine mai multe instrucţiuni,atunci acestea sunt cuprinse intre acolade{}.

 

Exemplu: Se afişează pe ecran primele n numere naturale astfel: pe prima linie, in ordine crescătoare, iar pe următoarea linie, in ordine descrescătoare. Numărul n se citeşte de la tastatura.

 

#include<iostream.h>

void main()

{ int i,n;

cout<< n=;cin>.n;

for(I=1;i<=n;i++) cout<<i<< . ;

cout<<endl;

for(i=n;i>=1;i--) cout<<i<< . ;

}

 

b) Structuri repetitive cu conditie

 

 

In cazul in care o secvenţă de operaţii se repetă cat timp/pana cand este indeplinită o condiţie, atunci se folosesc structuri repetitive, cu test iniţial sau cu test final.

* Structuri repetitive cu test iniţial

Structura repetitiva cu test iniţial este codificată prin instrucţiunea while.

Evaluarea condiţiei precede secvenţa de operaţii; secvenţa se repeta cat timp condiţia este indeplinită.

 

 

 

Sintaxa instrucţiunii repetitive cu test iniţial

 

Limbajul C/C++

 

while(cond_logică)

S;

 

Secvenţa (S) se executa numai in cazul in care condiţia logică este adevarată. (expresia generează o valoare nenulă).

Dacă secvenţa conţine mai multe instrucţiuni, atunci acestea sunt cuprinse intre acolade.

 

 

Exemplu: Se afişează, pe ecran, suma cifrelor unui număr natural nenul x.

Numărul x se citeşte de la tastatură.

 

Limbajul C/C++

 

#include<iostream.h>

void main()

{ unsigned int x,s=0;

cout<< x=;cin>>x;

while(x!=0)

{ s=s+x%10;x=x/10;

}

cout<< Suma cifrelor =<<s<<endl;

}

 

* Structuri repetitive cu test final

 

Structura repetitivă cu test final este codificată, in limbajul Pascal, prin instrucţiunea repeat_until, iar in limbajul C/C++, prin instrucţiunea do_while.

Evaluarea condiţiei se face după execuţia secvenţei de operaţii şi determină repetarea secvenţei sau ieşirea din structură.

 

 

Sintaxa instrucţiunii repetitive cu test final

 

Limbajul C/C++

 

Do

{ S;

} while(cond_logica);

 

Secvenţa (S) se execută cat timp condiţia logică este adevarată (expresia generează o valoare nenulă).

Secvenţa se execută cel puţin o dată, chiar dacă condiţia logică nu este indeplinită.

 

Exemplu: Se afişează, pe ecran, cifra minimă a unui număr natural nenul a.

Numărul a se citeşte de la tastatură.

 

Limbajul C/C++

 

#include<iostream.h>

void main()

{unsigned int a,min=9,c;

cout<< a=;cin>>a;

do

{c=a%10;

if(c<min) min=c;

a=a/10;

}while(a!=0);

cout<< Cifra minima=<<min<<endl;

}

 

[ACASA]