Documente Academic
Documente Profesional
Documente Cultură
int main()
{ int n,s=0;
cout<<”n=”; cin>>n;
while (n) { s=s+ n % 10;
n=n/10;
}
cout<<”Suma cifrelor=” <<s;
return 0;
}
2. Do While (instrucțiunea repeat Pascal)
are forma:
do { instrucțiune; }
while (expresie boolean);
Exemplu: S=1+2+3+…+n;
#include<iostream>
using namespace std;
int main(){
int n,s=0,i=1;
cout<<”n=”; cin>>n;
do { s=s+i; i++; }
while(i<=n);
cout<<”suma=”<<s;
return 0; }
Metoda II #include<iostream>
using namespace std;
int main() {
int n,s=0,i=1;
cout<<”n=”; cin>>n;
do s+=i++;
while(i<=n);
cout<<”suma=”<<s;
return 0; }
3. Instructiunea FOR
for ( inițializare; expr bool/ logică; exp. de incrementare)
Exemplu: S=1+2+3+…+n;
#include<iostream>
using namespace std;
int main(){
int i,n, s=0;
cout<<”n=”; cin>>n;
for ( i=1; i<=n; i++) s+=i; // s=s+i; s=1+2+3+4+...+n
cout<<” suma=”<<s;
return 0;
}
Metoda II
Instructiunea while … do
Semantica unei notiuni ne arata ce contine ea si modul de executie
Sintaxa - ne arata multime tuturor regulilor de scriere corecta a aceste notiuni, sau instructiuni
Semantica se descrie cu ajutorul schemelor logice/ scheme- bloc.
Sintaxa se descrie cu ajutorul:
a) diagramelor de sintaxa
b) cu ajutorul formulelor BNF : ::= < > |- or []- optional {} poate sa se repete
<instr while do>::=while (<expresie bool>) <instruc>
Semantica instructiunii while… do
Instructiunea While mai intii evaluiaza o expresie de tip boolean, care are valoarea true sau false. Cat timp
expresia boolean este true se executa o instructiune, numita corpul ciclului si iar se evaluiaza expresia boolean.
Cand expresia boolean devine false, corpul ciclului nu se mai executa si se trece la urmatoarea instructiune:
Schema logica a instructiunii While:
Sinstaxa: ( ne arata cum se scrie aceasta instructiune intr-un limbaj de programare)
Aplicatii:
Instructiunea do … while
Deosebirile:
1. La while… do intii se evaluiaza expresia bool, apoi se executa instructiune, pe cand la do…while intii se
executa instructiunea, apoi se evaluiaza expresia bool
2. Daca la while … do expresia boolean este false de la bun inceput, atunci ciclul se intrerupe si corpul ciclului
nu se executa de loc, pe cand la instructiunea do … while corpul ciclului se executa cel putin o data.
Deaceea la instructiune do … while trebuie sa fim atenti la cazurile particulare
Ex. n!- ?
While …do do… while;
cin>>n; long long P=1; cin>>n; long long P=1; i=1;
int i=2; do { P*=i; i++; }
while (i<=n) { P*=i; i++;} while (i<=n);
cout<<”n!=”<<P<<endl; cout<<”n!=”<<P<<endl;
Instructiunea For
Instructiunea for in C se scrie in felul urmator:
for ( inițializare; expr logică de tip bool; exp. de incrementare) instructiune;
Se foloseste cand este o instructiune ciclica cu contor. Contorul este o variabila, careia la inceput ii
atribuim o valoare initiala, scriem expresia boolean pana cand se executa corpul ciclului si indicam
incrimentarea contorului
Problema 2
Se da variabila int n;
1. de citi n
2. de aflat divizorii numarului n, suma divizorilor , numarul divizorilor nr. n
3. de scris rezultatele
int n; cin>>n;
if (n==0) cout<<”0- are o infinitate de divizori”<<endl;
else { cout<<”divizorii lui n sunt:”<<endl;
int suma=0, k=0;
for (int i=1; i<=n; i++)
if (n%i ==0) {cout<<i<<” ”; suma+=I; k++ }
cout<<endl;
cout<<suma<<k<<endl;
Daca numarul n are 2 divizori el este prim, in caz contrar nu este prim
Problema 3
Fie ca se da variabilele int n, a;
1. de citit n
2. de citit cu ajutorul variabilei a, n-nr intregi
3. de aflat: - suma numerelor citite
- numarul maxim
- numarul minim
- cate numere prime am citit (daca sunt citite numere prime)
4. De scris rezultatele
Avem nevoie de variabilele: S, maxi, mini, k, i, j, nr