Sunteți pe pagina 1din 2

Lecia 4 Structura repetitiva while si algoritmi specifici

Clasa a V-a

Structura repetitiv cu numr necunoscut de pai. Instruciunea while

Atunci cnd anumite operaii trebuie repetate de un numr de ori necunoscut (de obicei de un numr mare
de ori, care nu permite scrierea repetat a operaiilor n algoritm), in pseudocod se utilizeaz structura
repetitiv ct timp.

Ct timp conditie executa


Instructiuni
Sfarsit ct timp

Instructiunea ct timp se executa astfel:


Etapa1. Se evalueaz condiia
Etapa 2.
Dac conditia este adevarata, se execut instruciuni, apoi revenim la Etapa 1
Dac conditia NU este adevarata, se oprete execuia structurii ct timp
n C++, pentru structura cat timp, se utilizeaza instructiunea while

while (conditie)
Instructiuni

Observatii:
1) dac la prima evaluare a condiiei aceasta este fals (conditie=0), instruciunile nu se execut deloc
2) dac sunt dou sau mai multe instruciuni care trebuie executate repetat n while, ele se vor include
ntre {}

Algoritmi elementari

1. Utilizarea cifrelor unui numar natural

int n,ucif;
while(n!=0)
{ ucif=n%10;// ucif=ultima cifra a numarului n
//prelucrarea cifrei ucif
n=n/10;
}

2. Descompunerea unui numar natural in factori primi

Pentru un numar natural n>1, sa se afiseze factorii primi si puterile factorilor primi ai lui n.

int n,d,p=0;
d=2;
while (n>1)
{
while(n%d==0){
p++;
n=n/d;
}
if (p!=0)
cout<<d<<^<<p<<endl;
d++; p=0;
}

1
Lecia 4 Structura repetitiva while si algoritmi specifici
Clasa a V-a

Citirea si prelucrarea pe rnd unui sir de numere naturale ce se incheie cu o valoare precizata (sir
ce se incheie cu numarul 0)
int x;
fin>>x;
while(x!=0){
//prelucrarea numarului x
fin>>x;
}

Structura repetitiva while -probleme propuse

1. Sa se afieze cifra maxima a unui numar natural nenul n. Ex.Pentru n=2875, cifra maxima este 8.

2. Sa se determine cel mai mare numr care se poate forma cu toate cifrele pe care le conine
numarul natural n (ex: pentru n = 25330717, se va obtine 77533210)

3. Se citeste un sir de numere naturale nenule , ultimul numar din sir fiind egal cu 0. Sa se afiseze cel
mai mic numar din sir (in afara de numarul 0 ce incheie sirul) si numarul sau de repetari in cadrul
sirului. Exemplu, pentru sirul de numere 10,25,170,7,10,56,7,45,7,0 se va afisa 7, 3 (numarul minim
este 7 si apare de 3 ori in sir).
4. Problema vistiernic (.campion/arhiva)
5. Problema fazanr (.campion/arhiva
6. Problema sumacifre (.campion/arhiva)
7. Problema sume4 (.campion/arhiva)

Tema
http://varena.ro problemele: kdiv, parola, ore
http://campion.edu.ro/arhiva problemele: codcorect,unupatru, triplu,case1

Trimitei soluiile pe adresa silvia.grecu1@gmail.com sub forma unei arhive denumit cu numele vostru.
Creai arhiva urmnd paii:
1. Creai un folder cu numelevostru_tema4
2. Copiati una cte una sursele main.cpp n acest folder i redenumii-le cu numele problemei
3. Arhivai acest folder pastrand numele arhivei identic cu al folderului
4. Ataai arhiva la email-ul pe care l trimitei la adresa silvia.grecu1@gmail.com

Termen: 12 decembrie 2015, ora 21


SUCCES!

S-ar putea să vă placă și