You are on page 1of 6

Laborator 4 Algoritmi fundamentali 1

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


Instrucțiunea WHILE

Structura repetitivă cu număr necunoscut de pași este utilizată, atunci când, într-un
algoritm, anumite operații trebuie repetate de un număr necunoscut de ori.
Instrucțiunea while este o structura cu test inițial, adică, în cazul în care condiția
nu este îndeplinită, pachetul de instrucțiuni nu se execută niciodată.
Forma generală a structurii WHILE:
while conditie do
Instructiuni
end while.
Mecanismul de funcționare:
Pasul 1. Se evaluează condiția;
Pasul 2. Dacă condiția este adevărată se execută instrucțiunile apoi se revine la pasul 1;
Pasul 3. Dacă condiția este nu este adevărată se oprește execuția structurii while;
Obs. În bucla while este necesar să existe o instrucțiune care asigură terminarea iterațiilor
(repetițiilor).

Schema logică a instrucțiunii while (preluat din http://www.aut.upt.ro/)


Laborator 4 Algoritmi fundamentali 2

Aplicații de laborator
1. Se dă un număr natural n, format din cel mult 9 cifre. Să se scrie un algoritm care
calculează și returnează produsul cifrelor impare. Dacă numărul nu conține nicio cifră
impară, se va returna -1.
algoritm produs(n, p)
p=1; nrcifre = 0;
while(n!=0)
if((n%10)%2 == 1)
nrcifre = nrcifre + 1;
p=p*(n%10);
end if.
n=n/10;
end while.
if (nrcifre == 0)
return -1;
else
return p;
end alg.

2. Se dau două numere naturale: n - un număr natural de cel mult 9 cifre și c - o cifră. Să
se scrie un algoritm care determină și returnează de câte ori apare c în scrierea numărului
n.
Algoritm cifre(n, c, nr)
nrcifre=0;
if (n==0 and c==0)
nrcifre=1;
end if
while (n != 0)
if(n%10 == c)
nrcifre = nrcifre + 1;
end if.
n = n/10;
end while.
return nrcifre;
end alg.
Laborator 4 Algoritmi fundamentali 3

3. Se dă un număr natural n cu cel mult 9 cifre. Să se scrie un algoritm care returnează


cifra maximă și cifra minimă din numărul n.
algoritm maxmin (n, cmax, cmin)
cmax=0; cmin=9;
if (n = 0)
cmax=0; cmin=0;
end if.
while (n != 0)
if(n%10<cmin)
cmin=n%10;
if(n%10>cmax)
cmax=n%10;
n=n/10;
end while.
return cmax; return cmin
end alg.
4. Se dă un număr natural n cu cel mult 9 cifre. Să se scrie un algoritm care calculează și
returnează oglinditul (inversul) lui n.

Exemplu: pt n= 1234, algoritmul va returna ogl=4321

algoritm oglindit (n, ogl)

cn=n; ogl=0; //cn- este copia numarului n

while (cn != 0) and (cn % 10 !=0 )

ogl=ogl*10 + cn%10;

cn= cn/10;

end while.

return ogl;

end alg.
Laborator 4 Algoritmi fundamentali 4

5. Se dă un număr natural n cu cel mult 9 cifre. Să se scrie un algoritm care returnează


cea mai din dreapta cifră pară și cea mai din stânga cifră impară. Dacă n nu conține cifre
pare se va returna -1, iar dacă nu conține cifre impare se va returna -2.
Exemplu: Pentru n=1278 se va afișa: 8 1.
algoritm cifre(n, cimpara, cpara)
npare=0; nimpare=0;
if(n==0)
npare=1; cpara=0;
end if.
while(n != 0)
if(n%2==0 and npare==0)
cpara=n%10;
npare = npare +1;
end if.
if(n%2 == 1)
cimpara=n%10;
nimpare = nimpare + 1;
end if.
n=n/10;
end while.
if(npare==0)
return -1;
else
return cpara;
end if.
if (nimpare==0)
return -2;
else
return cimpara;
end if.; end alg.
Laborator 4 Algoritmi fundamentali 5

6. Se dă un număr natural n cu cel mult 9 cifre și două cifre c1 și c2 ( c2 este întotdeauna


o cifră nenulă). Să se scrie un algoritm care returnează un număr nr după înlocuirea
tuturor cifrelor c1 din numărul n, cu cifra c2.
Exemplu: N = 568983, c1= 8 , c2 = 1  nr = 561913
Algoritm numar( n, c1, c2, a )
nr = 0;
p = 1;
if ( n == 0 and c1 == 0)
return c2;
end if.
while(n!=0)
if(n%10==c1)
nr=nr + c2*p;
else
nr=nr + (n%10)*p;
end if.
p = p*10;
n=n/10;
end while.
return nr;
end alg.
Laborator 4 Algoritmi fundamentali 6

Tema de laborator.
1. Se dă un număr n. Să se scrie un algoritm care calculează și returnează suma
cifrelor pare și produsul cifrelor impare din număr.
2. Se dă un număr natural n. Se cere să se scrie un algoritm care returnează de câte
ori apare, în număr, ultima cifră a acestuia.
3. Se dă un număr strict pozitiv și o cifră. Să se scrie un algoritm care introduce cifra
respectivă între oricare două cifre ale numărului n.
Exemplu: pentru n= 123 si c=0, algoritmul returneaza 10203
4. Se dau n valori reale. Să se scrie un algoritm care returnează cât la sută dintre
valorile date sunt negative, rezultatul fiind dat în procente.
5. Se dă un număr întreg a. Să se scrie un algoritm care calculează suma cifrelor
numărului, dacă acesta este număr impar, în caz contrar produsul cifrelor.
6. Se dă un număr natural n. Să se scrie un algoritm care determină dacă numărul n
are cifrele ordonate crescător, returnând suma lor, în caz contrar să returneze 0.

You might also like