Documente Academic
Documente Profesional
Documente Cultură
Sintaxa :
Efect
1.
Se evalueaza expresia logica
2.
Daca valoarea expresiei logice este 1 (adevarata) se executa instructiunea si se revine la pasul 1
3.
daca valoarea expresiei logice este zero (falsa) se continua cu instructiunea de dupa punct-virgula
Observatii:
in esenta, cat timp valoarea expresiei logice este adevarata, se executa instructiunea
daca valoarea expresiei logice este falsa de la inceput atunci instructiunea nu se mai executa
daca WHILE trebuie sa repete mai mult de o instructiune, acestea se vor incadra intre acolade;
instructiunea WHILE se mai numeste repetitiva cu test initial sau conditionata anterior, pentru
ca intai verifica valoarea conditiei si apoi executa secventa ce trebuie repetata
Problema exemplu. Fie A si B doua valori naturale. Sa se simuleza impartirea cu rest a lui A la B (prin scaderi
repetate) si sa se determine catul si restul impartirii.
#include <iostream.h>
void main()
{//declararea
int A, B, C=0;
//citirea
cin>>A>>B;
//prelucrarea
while(A>=B) {A=A-B; C++;};
//Afisarea rezultatelor
cout<<"catul este :"<<C<<endl;
cout<<"restul este : "<<A;
}
Explicatii. Cand impartim pe A la B cautam de cate ori se cuprinde B in A, altfel spus cate scaderi ale lui B din
a se pot face.
Un tip e problema ce necesita folosirea instructiunii WHILE este prelucrarea unui sir de valori ce se incheie cu
zero.
Ideea : Se citeste fiecare valoare si daca este nenula se prelucreaza; Acest pas se repeta pana citim valoarea zero.
(Ex: 23, -4, 5, 12, 79, 0).
Codul corespunzator este:
cin>>x;
While (x!=0) { //prelucrez valoarea X citita;
..............................
//citesc urmatoarea valoare din sir
cin>>x;};
Probleme ce folosesc acest algoritm pot umari:
5.
Presupunand ca sirul reprezinta coeficientii uni polinom ( dati incepand cu gradul cel mai mic),
calculati valoarea polinomului intr-un punct Y
6.
Se citeste un numar n, iar apoi se citesc n numere. Sa se zica daca exista macar un numar care sa
aiba exact 3 cifre de 0
#include<iostream.h> #include<conio.h> exact3nenule(int numar){ int c_nenule=0; while(numar > 0){
if((numar % 10)>0)c_nenule = c_nenule + 1; numar = numar / 10; } return c_nenule;} main(){ int n, numar, i=1;
bool exista = false; cout<<"Introduceti numarul de valori pe care le veti introduce: ";cin>>n; while(i<=n){
cout<<"Introduceti un numar: ";cin>>numar; if(exact3nenule(numar)==3)exista = true; i=i+1; } if(exista ==
true)cout<<"Exista un numar cu exact 3 cifre nenule!"; else cout<<"Nu exista un numar cu exact 3 cifre
nenule!"; getch();}
Se citeste un numar. Sa se calculeze suma cifrelor acestuia pana cand ajunge o singura cifra.
#include<iostream.h> #include<conio.h> suma_cifre(long numar){ int suma=0; while(numar > 0){ suma = suma
+ numar % 10; numar = numar / 10;} return suma; } main(){ long numar; cout<<"Introduceti un numar natural:
";cin>>numar; while (numar > 9){ numar = suma_cifre(numar);} cout<<"Cifra de control este "<<numar;
87.Se citeste printrun program nr.de la tastatura pana la citirea valori 0.Se cere
calcularea si afisarea mediei aritmetice a patratelor nr. PoZitive citite. Algoritm:
START Citeste x P=0 S=0 Cat timp x>0 executa Daca x>0 atunci S=s+x*x
P=p+1 Sf.daca Sf.cat timp Tipareste media aritmetica este s/p STOP
Program: #include #include using namespace std; int x,s,p; int main(){ p=0;
s=0; cout<<"x=";cin>>x; while (x) {if(x>0) { s=s+x*x; p=p+1; }
cout<<"x=";cin>>x;} cout<<"media aritmetica este"<<(float)s/p;
26. Sa se scrie un algoritm care citeste un numar si numara cate cifre pare si cate
impare are numarul. Algoritm: Start Citeste n P=0 I=0 Cat timp n!=0 executa
Daca rest(n,2)=0 atunci P=P+1 Altfel I=I+1 Sfarsit daca n=cat(n,10) Sfarsit cat
timp Tipareste Numarul are ,P, cifre pare si ,I, cifre impare; Stop Program:
#include #include using namespace std; int n,P,I; int main (){ cout<>n; P=0;I=0;
While (n!=0) If (n%2==0) P+=1; else I+=1; cout<<<P<<<I<<cifre impare;
24.Se citeste un numar.Sa se determine suma cifrelor sale. Algoritm : Start
Citeste n S=0 Cat timp n #0 executa S=S+rest (n,10) n=cat(n,10) Sfarsit cat
timp Tipareste suma este S Stop Program: #include #include using
namespace std; int n,S; int main(){ cout<<"n=" ; cin>>n; S=0; while (n)
{S=S+n%10; n=n/10;} cout<< "Suma este"<< S ; getch (); return 0;}