Instructiunea FOR
Dupa cum am vazut in cazul instructiunii while nu se cuneaste de la inceput numarul de iteratii (repetari). Exista insa o instructiune in C si C++ care repeta alte instructiuni sau blocuri de instructiuni, si al carei numar de iteratii este cunoscut. Aceasta este instructiunea FOR. Ea are sintaxa:
for(expresie_1;expresie_2;expresie_3)
instructiune;
expresie_1 este o atribuire prin care se da variabilei contor o valoare de start.
expresie_2 este o expresie logica ce da conditia de oprire a repetarii
expresie_3 este o expresie de incrementare a contorului ( variabilei care pastreaza numarul de iteratii).
Exemplu:
Realizati un program care sa afiseze pe ecran numerele de la 1 la 15.
#include<iostrem.h>
void main()
{ int i;
for(i=1;i<=15;i++)
cout<<i<<endl;
}
"endl" - obliga ca afisarea urmatoare sa se faca pe un rind nou si nu in continuare afisarii curente.
In general orice instructiune for poate fi inlocuita cu o instructiune while. Dar exista instructiuni while care nu pot fi inlocuite cu instructiuni for.
Programul urmator calculeaza suma primelor 10 numere naturale folosind instructiunea for:
#include<iostream.h>
void main()
{int i, s;
i=0; s=0;
for(i=1;i<=10;i++)
s=s+i;
cout<<"suma numerelor este "<<s;
}
Pot exista instructiuni if incluse in instructiuni for.
Exemplu:
Realizati un program care sa citeasca 10 numere intregi de la tastatura si sa adune toate numerele pare iar suma lor sa o afiseze pe ecran.
Pentru realizarea acestui program avem nevoie de un nou operator matematic si anume operatorul modulo. Acest operator calculeaza care este restul impartirii unui numar intreg la alt numar intreg fara a realiza insa impartirea. Deci numerele initiale ramin nemodificate. Simbolul pentru operatorul modulo este %.
7%3=1 restul impartirii lui 7 la 3 este 1
15%4=3 restul impartirii lui 15 la 4 este 3
8%2=0 restul impartirii lui 8 la 2 este 0
Folosind operatorul modulo programul se realizeaza in felul urmator:
#include<iostream.h>
void main()
{ int i,a,s ; // s este suma numerelor pare introduse
s=0;
for(i=1;i<=10;i++)
{ cin>>a;
if(a%2==0)
s=s+a;
}
cout<<" Suma numerelor pare introduse este "<<s;
}