A
UBB · Informatică

UBB · Informatică

Practică

Exersează cu probleme din toată culegerea

65 Cap. 0 Raspunsuri multiple

Se consideră algoritmul Algo(a, n, m, k) care utilizează subalgoritmul Check(num). Care dintre următoarele afirmații sunt adevărate?

48 Cap. 0 Raspunsuri multiple

Se consideră algoritmii Contor(x, n) și Alg(numar), care verifică proprietăți ale subsecvențelor.

Algoritm 1

Algorithm Alg(numar)
  If numar < 2 then Return False EndIf
  For d ← 2, √numar execute
    If numar MOD d = 0 then Return False EndIf
  EndFor
  Return True
EndAlgorithm

Algoritm 2

Algorithm Contor(x, n)
  count ← 0
  For i ← 1, n - 1 execute
    For j ← i + 1 to n execute
      v ← x[i]; asc ← True; ok ← 1
      For k ← i, j - 1 execute
        If x[k] ≥ x[k + 1] then asc ← False; ok ← 0 EndIf
        If ok = 1 then v ← v + x[k + 1] EndIf
      EndFor
      If asc AND Alg(v) then count ← count + 1 EndIf
    EndFor
  EndFor
  Return count
EndAlgorithm

Care dintre următoarele afirmații sunt adevărate?

32 Cap. 0

Fie variabilele a = 12, b = 5, c = 3. Care este valoarea returnată de expresia următoare? (a DIV b>c) AND (b1<c)OR(aMOD(b1)=2)(a \ DIV \ b \gt c) \ AND \ (b - 1 \lt c) OR (a MOD (b - 1) = 2)

46 Cap. 0 Raspunsuri multiple

Se consideră algoritmul Verifica(n, a), unde n este un număr natural (1 ≤ n ≤ 10^3) și a este un vector cu n elemente numere întregi (a[1], a[2], ..., a[n]):

Algoritm 1

Algorithm Verifica(n, a)
  m ← n DIV 2
  For i ← 1, m execute
    If n MOD 2 = 0 then
      aux ← a[m + i]
      a[m + i] ← a[n − i + 1]
      a[n − i + 1] ← aux
    Else
      aux ← a[m + i + 1]
      a[m + i + 1] ← a[n − i + 1]
      a[n − i + 1] ← aux
    EndIf
  EndFor
  For i ← 1, m execute
    If a[i] ≠ a[n − i + 1] then
      Return False
    EndIf
  EndFor
  Return True
EndAlgorithm

Se cere să se determine pentru ce valori ale vectorului a, apelul Verifica(n, a) returnează True.

254 Cap. 0

Se consideră arborele binar de mai jos, împreună cu algoritmul alăturat acestuia. Rădăcina este a. Copiii lui a: b (stânga), c (dreapta). Copiii lui b: d (stânga), e (dreapta). Copilul drept al lui c este f. Copiii lui d: g (stânga), k (dreapta). Copilul drept al lui e este h. Copiii lui f: i (stânga), j (dreapta). Copilul drept al lui g este l. Copilul drept al lui k este m. Copilul drept al lui i este n. Copilul drept al lui n este o.

abdgklhmecfinjo

Algoritm 1

Algorithm algorithm(node)
  If node = null then
    Return 0
  EndIf
  count ← 0
  If (node.left ≠ null AND node.right = null) OR
     (node.left = null AND node.right ≠ null) then
    count ← count + 1
  EndIf
  Return count + algorithm(node.left) + algorithm(node.right)
EndAlgorithm

Care este valoarea returnată de algoritm, considerând că apelul acestuia a avut ca parametru rădăcina arborelui?