Documente Academic
Documente Profesional
Documente Cultură
Să rezolvăm următoarea problemă: Se dau n numere întregi. Calculaţi cel mai mic dintre
cele n numere date.
inițializăm min cu prima dintre cele n valori; celelalalte n-1 valori se vor compara
cu min
inițializăm min cu o valoare foarte mare; fiecare dintre cele n valori citite se va
compara cu min. Alegerea valorii inițiale a lui min depinde de restricțiile
problemei; pentru problema #n_minim [100] poate fi 1.000.000.000.
În secvențele care urmează, n este numărul de valori citite, în x se găsesc n valori, iar
în min vom determina valoarea minimă:
cin >> x;
min = x;
for(i =2 ; i <= n ; i ++)
{
cin >> x;
if(x < min)
min = x;
}
min = 1000000000;
for(i =1 ; i <= n ; i ++)
{
cin >> x;
if(x < min)
min = x;
}
Determinarea maximului
Să rezolvăm următoarea problemă: Se citesc numere întregi până la apariția lui 0, care nu
se ia în considerare. Calculaţi maximul lor.
Și aici este semnificativă inițializarea variabilei max. Secvențele de mai jos surprind ambele
situații:
cin >> x;
max = x;
cin >> x;
while(x != 0)
{
if(x > max)
max = x;
cin >> x;
}
max = -1000000000;
cin >> x;
while(x != 0)
{
if(x > max)
max = x;
cin >> x;
}
Alte probleme
Minimul și numărul de apariții
Problemă: Se dau n numere întregi. Să se determine valoarea minimă și de câte ori apare
printre cele n numere.
Rezolvare:
fie min valoarea minimă și nr_min numărul de apariții ale valorii minime
citim n și primul dintre cele n numere, x
inițializăm min cu x și nr_min cu 1 – minimul a apăru o singură dată până acum
citim pe rând cele n-1 valori rămase în variabila x
o dacă x < min, actuatalizăm min cu x și nr_min cu 1
o dacă nu, verificăm dacă x == min. În caz afirmativ, îl incrementăm
pe nr_min.
Rezolvare:
fie min1 cel mai mic număr și min2 următorul cel mai mic număr
inițializăm min1 și min2 cu două valori mari, astfel: min1 = 1000000001, min2 =
1000000002
citim un număr x
cât timp x != 0
o prelucrăm pe x; se disting cazurile:
x < min1: se actualizează ambele minime,
astfel: min2 devine min1, iar min1 devine x
x >= min1, dar x < min2: se actualizează numai min2, min2 = x
o citim următoarea valoare pentru x