Sunteți pe pagina 1din 3

Structura repetitivă cu număr cunoscut de pași.

Instrucţiunea for

Sintaxa:

Pseudocod C++

┌pentru contor<-val_init,val_final,pas execută


for ( expresie-inţială; expresie-test; expresie-pas) {
│ instructiuni-ciclu
instrucţiuni-ciclu;
└█
}

Structura repetitivă cu număr cunoscut de pași are următorul efect:


1 se inițializează contorul cu valoarea inițială (expresie-test)
2 se verifică dacă contorul a depășit valoarea finală. Dacă a depășit, se continuă cu
execuția următoarei instrucțiuni ce urmează după structura repetitivă
3 se execută instructiunile-ciclu și se revine la pasul 2.

În general această structură este echivalentă cu:

Pseudocod C++

contor<-val_init
expresie-inţială;
┌cât-timp(contor nu depășește val_final) execută

│ instructiuni-ciclu
while ( expresie-test) {
│ pas
instrucţiuni-ciclu;
└█ expresie-pas;
}

De exemplu, afișarea numerelor de la 1 la 10 executată de secvenţa de instrucţiuni:

Pseudocod C++

i<-1

┌cât-timp(i<=10) execută
i=1;
│ score i,” “
while (i<=10){
│ i<-i+1

└█ cout<<i<<“ ”;
i++;
}

poate fi efectuată astfel:


Pseudocod C++

┌pentru i<-1,10,1 execută



│ scrie i,” ”
for ( i=1; i<=10; i++) {
└█
cout<<i<<“ ”;
}

Execuţia începe cu inițializarea contorului. Inițializarea este făcută o singură dată, imediat
înainte de intrarea în ciclarea propriu-zisă. După inițializare se verifică dacă contorul a depășit
valoarea finală. Dacă a depășit atunci execuţia structurii repetitive se încheie aici, iar controlul este
preluat de următoarea instrucţiune din codul sursă. Dacă nu a depășit atunci se continuă cu execuţia
instrucţiunii-ciclu. După finalizarea acţiunilor descrise de corpul ciclui (instrucţiuni-ciclu) şi imediat
înainte de reluarea testării este evaluată expresia-pas. Expresia-pas este utilizată pentru actualizarea
valorii variabilei contor. }

Exemple:

Exemplu 1. Suma numerelor de la 1 la n, cu n citit de la tastatură.

Pseudocod C++

citește n
#include<iostream>
s<-0
using namespace std;
┌pentru i<-1,n,1 execută

int main(){
│ s<-s+1

└█
int n, i, s;
scrie s cin>>n;
s=0;
for(i=1;i<=n;i++){
s=s+i;
}
cout<<s;
return 0;
}

Exemplul 2. Suma a n numere citite de la tastatură, unde n este citat de asemenea de la


tastatură.
Pseudocod C++

citește n
#include<iostream>
s<-0
using namespace std;
┌pentru i<-1,n,1 execută

int main(){
│. citește x

│ s<-s+x

└█
int n, i, s, x;
scrie s cin>>n;
s=0;
for(i=1;i<=n;i++){
cin>>x;
s=s+x;
}
cout<<s;
return 0;
}

Exemplul 3. Se citesc n numere de la tastatură. Să se afișze produsul celor impare.

Pseudocod C++

citește n
#include<iostream>
p<-1
using namespace std;
┌pentru i<-1,n,1 execută

int main(){
│. citește x

│ ┌dacă x%2!=0 atunci

│ │ p<-p*x
int n, i, p, x;
│ └█
cin>>n;
└█
p=1;
scrie s for(i=1;i<=n;i++){
cin>>x;
if(x%2!=0)
p=p*x;
}
cout<<p;
return 0;
}