Sunteți pe pagina 1din 4

Algoritmi elementari

________________________________________________

Capitolul IV: ALGORITMI ELEMENTARI

TESTE

1. Fie următoarele linii în limbaj pseudocod:


1) n  [n / 10]
2) atunci nr2  nr2 + 1
3) scrie nr1, nr2
4) până când n = 0
5) dacă c % 2 = 0
6) nr2  0
7) altfel nr1  nr1 + 1
8) nr1  0
9) repetă
10) sfârşit dacă
11) citeşte n
12) c  n % 10
Alegeţi succesiunea de cifre specifice rezolvării corecte a problemei care tipăreşte numărul
de cifre pare şi numărul de cifre impare ale unui număr natural n.
a) 6, 8, 11, 9, 12, 5, 2, 7, 10, 1, 4, 3;
b) 11, 9, 8. 6, 12, 5, 2, 7, 10, 1, 4, 3;
c) 11, 8, 9, 12, 5, 2, 7, 1, 10, 4, 6, 3;
d) 11, 6, 9, 5, 2, 7, 8, 1, 10, 4, 12, 3.

2. Alegeţi varianta de răspuns corespunzătaore tipăririi tuturor numerelor formate dintr-o singură
cifră n, care ridicate la pătrat se termină în n:
a) pentru i  0, 9, 1 execută b) pentru i  0, 9, 1 execută
dacă n * n =n atunci scrie n dacă n * n - n =0 atunci scrie n
sfârşit pentru sfârşit pentru

c) pentru n  1, 9, 1 execută d) pentru i  1, 9, 1 execută


dacă n * (n – 1) % 10 = 0 atunci scrie n dacă [n * (n – 1) / 10] = 0 atunci scrie n
sfârşit pentru sfârşit pentru
_____________________________________________________
3. Alegeţi varianta de răspuns care rezolvă corect şi eficient tipărirea valorii maxime dintre două
numere a şi b citite de la tastatură:
a) dacă a > b atunci scrie a c) dacă a > b atunci scrie a
altfel scrie b altfel dacă a < b atunci scrie b
sfârşit dacă altfel scrie ‘a = b’
sfârşit dacă
sfârşit dacă
b) dacă a > b atunci scrie a d) dacă a > b atunci
sfârşit dacă dacă b > a atunci scrie b
dacă a < b atunci scrie b sfârşit dacă b
Algoritmi elementari
________________________________________________
sfârşit dacă altfel scrie a
sfârşit dacă
_____________________________________________________
4. Care dintre următoarele secvenţe program nu calculează corect cel mai mare divizor comun a
două numere naturale nenule m şi n ?

a) cât timp n <> 0 execută b) cât timp m <> n execută


rm%n dacă m > n atunci m  m - n
mn altfel n  n - m
nr sfârşit dacă
sfârşit cât timp sfârşit cât timp
scrie m scrie m
c) dacă n < m atunci d  n d) cât timp m <> 0 execută
altfel d  m rn%m
sfârşi dacă mn
cât timp (m % d <> 0) nr
sau (n % d <> 0) sfârşit cât timp
execută d  d – 1 scrie r
sfârşit cât timp
scrie d
_____________________________________________________
5. Dacă n este un număr natural (nenul), atunci următoarea secvenţă scrisă în limbaj pseudocod:

cât timp (n <> 0) execută


scrie (n % 10)
n  [n / 10]
sfârşit cât timp

a) afişează câtul împărţirii la 10 a numărului n;


b) afişează numărul n;
c) afişează răsturnatul numărului n (numărul obţinut prin citirea cifrelor de la dreapta la stânga);
d) afişează divizorii numărului n, din intervalul [1 .. n].
_____________________________________________________
6. Fie a un tablou cu n numere întregi. Alegeţi metoda de sortare utilizată pentru sortarea
crescătoare a elementele şirului a:

pentru i  1, n-1, 1 execută


min  a [i]
ki
pentru j  i+1, n, 1 execută
dacă a [j] < min atunci min  a [j]
kj
sfârşit dacă
sfârşit pentru
a [k]  a [i] {interschimbare}
sfârşit pentru
Algoritmi elementari
________________________________________________
a) numărare b) selecţie directă c) inserţie directă d) metoda bulelor
_____________________________________________________
7. Completaţi zonele …1 şi …2 astfel încât secvenţa următoare să rezolve problema căutării
secvenţiale a unei valori nr într-un şir de n numere:

gasit  …1
pentru i  1, n, 1 execută
dacă a [i] = nr atunci gasit  …2
sfârşit dacă
sfârşit pentru
dacă gasit atunci scrie ‘DA‘
altfel scrie ‘NU‘
sfârşit dacă

a) A; F; b) F; F; c) A; A; d) F; A.
_____________________________________________________
8. Completaţi zonele …1, …2, …3, …4 şi …5 astfel încât secvenţa următoare să rezolve problema
căutării binare a unei valori nr într-un şir (ordonat crescător) de n numere:
p1
un
cât timp …1 execută
este  …2
mij  [(p + u) / 2]
dacă a [mij] = nr atunci este  …3
pu+1
altfel dacă a [mij] > nr atunci …4
altfel …5
sfârşit dacă
sfârşit dacă
sfârşit cât timp
dacă este atunci scrie ‘DA‘
altfel scrie ‘NU‘
sfârşit dacă

a) p  u; F; A; u  mij – 1; p  mij + 1;
b) p  u; A; F; u  mij – 1; p  mij + 1;
c) u > p; F; A; p  mij; u  mij;
d) p > u; A; F; p  mij – 1; u  mij + 1;
_____________________________________________________
9. În urma execuţiei secvenţelor de program de mai jos, valoarea variabilei prim ar trebui să fie
TRUE, dacă numărul n este prim, respectiv FALSE în caz contrar. Presupunem variabila prim de tip
boolean, iar n un număr natural cunoscut, diferit de 0 şi 1.
Care dintre secvenţe funcţionează corect în sensul realizării efectului dorit ?

1) prim := false; 2) prim := true;


for i := 2 to n-1 do for i := 2 to n-1 do
if (n mod i = 0) then if (n mod i = 0) then
Algoritmi elementari
________________________________________________
prim := true; prim := false
write (prim); else
prim := true;
write (prim);

3) prim := true; 4) for i := 2 to n-1 do


for i := 2 to n-1 do if (n mod i = 0) then
if (n mod i = 0) then prim := true
prim := false; else
write (prim); prim := false;
write (prim);

a) 1), 2), 3) şi 4)
b) numai 1) şi 2)
c) numai 3)
d) numai 2) şi 4)
_____________________________________________________
10. Pentru sortarea unui vector v cu n elemente prin metoda bulelor, se vor face mai multe
parcurgeri. Parcurgerile vectorului se repetă până când la o parcurgere nu se mai pot face
interschimbări. Variabila nr numără la a câta parcurgere a vectorului suntem. De câte parcurgeri
avem nevoie pentru sortarea (ordonarea crescătoare) a vectorului v (1, -9, 0, -12, 0) ?

nr  0 { variabilă pentru numărarea parcurgerilor }


repetă b  FALSE
nr  nr + 1
pentru i  1, n - nr, 1 execută
dacă v [i] > v [i +1] atunci
v [i]  v [i + 1] {interschimbare}
b  TRUE
sfârşit dacă
sfârşit pentru
până când b = FALSE
scrie nr

a) cinci b) patru c) trei d) două

RĂSPUNSURI
1. a 6. b
2. c 7. d
3. c 8. a
4. d 9. c
5. c 10. b

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