Despre acest subiect
primăvară · Concursul Mate-Info UBB
Sursa documentelor: FMI UBB – subiecte din anii precedenți. Pentru acest subiect nu este disponibil un barem public.
Se încarcă profesorii disponibili…
Se deschide documentul PDF… Deschide PDF
Acest subiect nu are un barem public asociat.
Facultatea de Matematică și Informatică · UBB
Înapoi la arhivăprimăvară · Concursul Mate-Info UBB
Sursa documentelor: FMI UBB – subiecte din anii precedenți. Pentru acest subiect nu este disponibil un barem public.
Text extras automat din documentul original. Pentru formule, tabele, imagini și așezarea răspunsurilor, verifică întotdeauna PDF-ul.
UNIVERSITATEA BABEŞ-BOLYAI FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs Mate-Info – martie 2021 Proba scrisă la Informatică NOTĂ IMPORTANTĂ: În lipsa altor precizări, presupuneți că toate operatiile aritmetice se efectuează pe tipuri de date nelimitate (nu există overflow / underflow). De asemenea, numerotarea indicilor tuturor șirurilor începe de la 1. 1. Se consideră expresia următoare, în care a este un număr natural. ((a < 4) SAU (a < 5)) ȘI (a > 2) Pentru ce valori ale lui a va avea expresia valoarea ADEVĂRAT? A. a = 3 B. a = 4 C. a = 2 D. Expresia nu va avea niciodată valoarea ADEVĂRAT 2. Subalgoritmul de mai jos are ca parametri de intrare un șir v cu n numere naturale nenule (v[1], v[2], …, v[n]) și numărul întreg n (1 ≤ n ≤ 10000). Subalgoritm f(v, n): x ← 0 Pentru i ← 1, n execută c ← v[i] Câttimp c MOD 3 = 0 execută x ← x + 1 c ← c DIV 3 SfCâttimp SfPentru returnează x SfSubalgoritm Precizați care dintre următoarele afirmații sunt adevărate: A. Subalgoritmul returnează numărul numerelor divizibile cu 3 din șirul v B. Subalgoritmul returnează cel mai mare număr k astfel încât v[1] * v[2] * … * v[n] este divizibil cu 3k C. Subalgoritmul returnează cel mai mare număr k astfel încât v[1] + v[2] + … + v[n] este divizibil cu 3k D. Subalgoritmul returnează suma numerelor divizibile cu 3 din șirul v
3. Se consideră expresia următoare, în care x este un număr natural pozitiv. (x MOD 2) + ((x + 1) MOD 2) Care din afirmațiile de mai jos sunt adevărate? A. Expresia are valoarea 1 pentru orice număr natural pozitiv x. B. Expresia are valoarea 1 dacă şi numai dacă x este un număr par. C. Expresia are valoarea 1 dacă şi numai dacă x este un număr impar. D. Există număr natural x pentru care expresia are o valoare strict mai mare decât 1. 4. Fie subalgoritmul prelucrare(x, n) definit mai jos, care primește ca și parametru un șir x cu n numere reale nenule (x[1], x[2], …, x[n]) și numărul întreg n (1 ≤ n ≤ 10000). Operatorul / reprezintă împărțirea reală (ex. 3/2=1,5). Subalgoritm prelucrare(x, n): p ← 1 Pentru k ← 1, n - 1 execută p ← p + 1 Pentru i ← 1, n - 1 execută Dacă x[i] > x[i + 1] atunci x[i] ← x[i] * x[i + 1] x[i + 1] ← x[i] / x[i + 1] x[i] ← x[i] / x[i + 1] SfDacă SfPentru SfPentru n ← p SfSubalgoritm Care dintre următoarele afirmații descriu modificarea aplicată șirului x în urma apelului subalgoritmului prelucrare(x, n)? A. Elementele șirului x vor rămâne nemodificate B. Elementele șirului x vor fi în ordine descrescătoare C. Elementele șirului x vor fi în ordine crescătoare D. Numărul n este decrementat cu o unitate 5. Se consideră subalgoritmul calcul(a, n), care primește ca parametru un șir a cu n numere naturale (a[1], a[2], …, a[n]) și numărul întreg n (1 ≤ n ≤ 10000). Subalgoritm calcul(a, n): Dacă n = 0 atunci returnează 0 altfel returnează a[n] * (a[n] MOD 2) + calcul(a, n - 1) SfDacă SfSubalgoritm Pentru ce valori a numărului n și a șirului a funcția calcul(a,n) va returna valoarea 10? A. n = 4, a = (2, 4, 7, 5) B. n = 6, a = (3, 1, 2, 5, 8, 1) C. n = 6, a = (2, 4, 5, 3, 8, 5) D. n = 7, a = (1, 1, 2, 1, 1, 1, 3)
6. Se consideră subalgoritmul calcul(v, n), care primește ca parametru un șir v cu n numere naturale (v[1], v[2], …, v[n]) și numărul întreg n (1 ≤ n ≤ 10000). Subalgoritm calcul(v, n): m ← 0 x ← 0 s ← 0 Pentru i ← 1, n execută s ← s + v[i] m ← m + (s MOD 2 + x) MOD 2 x ← s MOD 2 SfPentru returnează m SfSubalgoritm Precizați care dintre următoarele afirmații sunt adevărate: A. Subalgoritmul calculează și returnează suma numerelor impare din șirul v B. Subalgoritmul calculează și returnează suma numerelor pare din șirul v C. Subalgoritmul calculează și returnează numărul de numere impare din șirul v D. Subalgoritmul calculează și returnează numărul de numere pare din șirul v 7. Se consideră subalgoritmul magic(x), unde x este un număr natural (1 ≤ x ≤ 32000). Subalgoritm magic(x): st ← 1 dr ← x Câttimp st ≤ dr execută mj ← (st + dr) DIV 2 Dacă mj * mj = x atunci returnează adevărat SfDacă Dacă mj * mj < x atunci st ← mj + 1 altfel dr ← mj – 1 SfDacă SfCâttimp returnează fals SfSubalgoritm Precizați care dintre următoarele afirmații sunt adevărate: A. Subalgoritmul verifică dacă există un pătrat perfect mai mic decât x. B. Subalgoritmul numără divizorii primi ai numărului x. C. Subalgoritmul verifică dacă numărul x este prim. D. Subalgoritmul verifică dacă numărul x este pătrat perfect. 8. Se consideră subalgoritmul ceFace(n), unde n este un număr natural (1 ≤ n ≤ 10000). Subalgoritm ceFace(n): a ← n b ← 0 Câttimp a ≠ 0 execută b ← b * 10 + a MOD 10 a ← a DIV 10 SfCâttimp Dacă n = b atunci returnează adevărat altfel returnează fals SfDacă SfSubalgoritm
Precizați care dintre următoarele afirmații sunt adevărate: A. Subalgoritmul verifică dacă numărul n este prim. B. Subalgoritmul verifică dacă numărul n este palindrom. C. Subalgoritmul returnează întotdeauna adevărat. D. Subalgoritmul verifică dacă numărul n este divizibil cu 10. 9. Se consideră subalgoritmul calculeaza(a,b), unde a și b sunt numere naturale (1 ≤ a, b ≤ 10000). Subalgoritm calculeaza(a, b): x ← 1 Pentru i ← 1, b execută x ← (x MOD 10) * a SfPentru returnează x SfSubalgoritm Precizați care dintre următoarele afirmații sunt adevărate: A. Dacă a = 2021 și b = 2021, valoarea returnată de subalgoritm este 2021. B. Pentru toate apelurile subalgoritmului cu a = 2021 și 1 ≤ b ≤ 10000, valoarea returnată este 2021. C. Dacă a = 7777 și b = 2021, valoarea returnată este 7777. D. Pentru toate apelurile subalgoritmului cu 1 ≤ a ≤ 10000 și b = 2021, valoarea returnată este valoarea lui a. 10. Câte elemente se găsesc pe cele două diagonale ale unei matrice pătratice cu n linii și n coloane (10 ≤ n ≤ 1000)? Se numără elementele de pe poziții distincte. A. 2 * n B. n * n C. 2 * n - 1 D. 2 * n – (n MOD 2) 11. Care dintre expresiile logice următoare au valoarea ADEVĂRAT pentru a = 1 și b = 0? A. NU (((a > 0) ȘI (b < 1)) SAU (a > 1)) B. ((b > 0) ȘI (b < 1)) SAU ((a > 0) ȘI (a < 2)) C. (NU (a > b)) SAU (NU (b > 0)) D. (a > 0) SAU ((b > 0) ȘI (b < 0)) SAU (a < 1) 12. Subalgoritmii calculi(e, n), 1 ≤ i ≤ 4, primesc ca parametri o matrice e de n linii și n coloane (e[1][1], …, e[1][n], e[2][1], …, e[n][n]) și un număr natural n (1 ≤ n ≤ 1000). Alegeți variantele de răspuns care conțin definiția subalgoritmului calculi(e, n), care are rezultat diferit față de toate celelalte trei variante, adică calculi(e, n) ≠ calculj(e, n) ∀ e, n, j, 1 ≤ j ≤ 4, i ≠ j (e și n conform specificației anterioare).
A. Subalgoritm calcul1(e, n): s ← 0 Pentru i ← 1, n execută s ← s + e[i][i] SfPentru returnează s SfSubalgoritm B. Subalgoritm calcul2(e, n): s ← 0 Pentru i ← 1, n execută Pentru j ← 1, n, execută Dacă i = j atunci s ← s + e[i][j] SfDacă SfPentru SfPentru returnează s SfSubalgoritm C. Subalgoritm calcul3(e, n): s ← 0 i ← 1 Câttimp i ≤ n execută s ← s + e[i][i] i ← i + 1 SfCâttimp returnează s SfSubalgoritm D. Subalgoritm calcul4(e, n): s ← 0 Pentru i ← 1, n execută Pentru j ← i + 1, n, execută Dacă i = j atunci s ← s + e[i][j] SfDacă SfPentru SfPentru returnează s SfSubalgoritm 13. Se consideră subalgoritmul ceFace(a,b), unde a și b sunt numere naturale (1 ≤ a < b ≤ 10000). Subalgoritm ceFace(a, b): m ← a Câttimp b MOD m > 0 execută m ← m + 1 SfCâttimp returnează m SfSubalgoritm Ce va returna apelul ceFace(47, 100)? A. 48 B. 50 C. 3 D. 100
14. Se consideră subalgoritmul afis(n), unde n este un număr natural (0 ≤ n ≤ 10000). Subalgoritm afis(n): Scrie n Dacă n > 0 atunci afis (n - 1) Scrie n SfDacă SfSubalgoritm Ce se va afișa la apelul afis(4)? A. 432100123 B. 123401234 C. 1234004321 D. 432101234 15. Care dintre următoarele baze de numerație x satisfac condiția 232(x) ≤ 67(10)? A. x = 5 B. x = 3 C. x = 4 D. x = 6 16. Subalgoritmul mutaZero(a, n) primește ca și parametru un șir a de numere întregi, (a[1], a[2], …, a[n]) și numărul întreg n (1 ≤ n ≤ 10000). Subalgoritmul mută valorile de zero la finalul șirului, păstrând ordinea relativă a elementelor diferite de zero. De exemplu, dacă a este [4, 0, 2, 5, 1, 0, 7, 11, 0, 3], după apelarea subalgoritmului, elementele lui a sunt [4, 2, 5, 1, 7, 11, 3, 0, 0, 0]. Care din implementările următoare ale subalgoritmului mutaZero(a, n) sunt corecte? A. Subalgoritm mutaZero(a, n): s ← ADEVĂRAT Câttimp s = ADEVĂRAT execută s ← FALS Pentru i ← 1, n - 1 execută Dacă a[i] = 0 atunci tmp ← a[i] a[i] ← a[i + 1] a[i + 1] ← tmp s ← ADEVĂRAT SfDacă SfPentru SfCâttimp SfSubalgoritm B. Subalgoritm mutaZero(a, n): c ← 0 Pentru i ← 0, n execută Dacă a[i] = 0 atunci c ← c + 1 SfDacă SfPentru i ← n Câttimp c > 0 execută a[i] ← 0 i ← i - 1 c ← c - 1 SfCâttimp SfSubalgoritm
C. Subalgoritm mutaZero(a, n): d ← 0 i ← 1 Câttimp i + d ≤ n execută Câttimp (i + d ≤ n) ȘI (a[i + d] = 0) execută d ← d + 1 SfCâttimp Dacă i + d ≤ n atunci a[i] ← a[i + d] i ← i + 1 SfDacă SfCâttimp Câttimp i ≤ n execută a[i] ← 0 i ← i + 1 SfCâttimp SfSubalgoritm D. Subalgoritm mutaZero(a, n): i ← 1 f ← n Câttimp i < f execută Câttimp (i < f) ȘI (a[i] ≠ 0) execută i ← i + 1 SfCâttimp Câttimp (i < f) ȘI (a[f] = 0) execută f ← f - 1 SfCâttimp Dacă i < f atunci tmp ← a[i] a[i] ← a[f] a[f] ← tmp SfDacă SfCâttimp SfSubalgoritm 17. Fie șirul X=1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7…, în care fiecare număr n apare de n ori pe poziții consecutive. Considerând că primul element din șir este pe poziția 1, pe ce poziții din șir apare valoarea 21? A. Pe pozițiile din intervalul [210,230] B. Pe pozițiile din intervalul [211,231] C. Pe pozițiile din intervalul [212,232] D. Pe pozițiile din intervalul [209,229] 18. Se consideră subalgoritmul f(a, b), unde a si b sunt numere întregi (-10000 ≤ a, b ≤ 10000). Subalgoritm f(a, b): Scrie “FMI” Dacă (a = 0) SAU (b = 0) atunci returnează 1 SfDacă Dacă a > b atunci returnează f(a - b * b, a * (a - b) - b * (a - b)) SfDacă Dacă a ≤ b atunci returnează f(b - a * a, a * (a - b) - b * (a - b)) SfDacă SfSubalgoritm Precizați de câte ori se scrie textul FMI la executarea secvenței de cod: f(f(3, 2), f(2, 3))
A. De 8 ori B. De 6 ori C. De 3 ori D. De o infinitate de ori 19. Se consideră subalgoritmul recursiv ceFace(n, i), unde n este un număr natural (2 ≤ n ≤ 1000). Subalgoritm ceFace(n, i): Dacă i * i > n atunci returnează 0 SfDacă Dacă i * i = n atunci returnează i SfDacă Dacă n MOD i = 0 atunci returnează i + n DIV i + ceFace(n, i + 1) altfel returnează ceFace(n, i + 1) SfDacă SfSubalgoritm Precizați care dintre următoarele afirmații sunt adevărate pentru apelul ceFace(n, 2): A. Subalgoritmul calculează și returnează dublul sumei tuturor divizorilor proprii ai numărului n. B. Subalgoritmul calculează și returnează suma divizorilor proprii ai numărului n. C. Subalgoritmul calculează și returnează suma divizorilor proprii și improprii ai numărului n. D. Subalgoritmul verifică dacă n este pătrat perfect. În caz afirmativ, returnează rădăcina lui pătrată. Altfel, returnează 0. 20. Se consideră subalgoritmul ceFace(T, n, e), care primește ca și parametru un șir T cu n numere naturale ordonate crescător (T[1], T[2], …, T[n]) și numerele naturale n și e (1 ≤ n, e ≤ 10000). Subalgoritm ceFace(T, n, e): Dacă e MOD 2 = 0 atunci a ← 1 b ← n Câttimp a ≤ b execută m ← (a + b) DIV 2 Dacă e < T[m] atunci b ← m - 1 altfel Dacă e > T[m] atunci a ← m + 1 altfel returnează adevărat SfDacă SfDacă SfCâttimp returnează fals altfel c ← 1 Câttimp c ≤ n execută Dacă e = T[c] atunci returnează adevărat SfDacă c ← c + 1 SfCâttimp returnează fals SfDacă SfSubalgoritm Precizați care dintre următoarele afirmații sunt adevărate:
A. Subalgoritmul nu verifică dacă numărul e se află pe o poziție pară în șirul T. B. Subalgoritmul verifică dacă numărul e se află în șirul T, iar dacă numărul e este impar, algoritmul de căutare folosit este căutarea binară. C. Subalgoritmul verifică dacă numărul e se află în șirul T, iar dacă numărul e este par, algoritmul de căutare folosit este căutarea binară. D. Subalgoritmul verifică dacă numărul e se află în șirul T doar dacă numărul e este impar. 21. Se dorește afișarea triunghiurilor echilaterale folosind doar caracterele * (asterisc) și . (punct). Exemplul de mai jos ilustrează un triunghi având latura de n=5 asteriscuri. Pentru acesta a fost necesară utilizarea a 12 asteriscuri și 23 de puncte. ....* ...*.* ..*...* .*.....* *.*.*.*.* Care din afirmațiile de mai jos sunt adevărate? A. Pentru n=2, este nevoie de exact 3 asteriscuri și 4 puncte. B. Pentru n=7, este nevoie de exact 18 asteriscuri și 52 puncte. C. Pentru n=7, este nevoie de exact 18 asteriscuri și 48 puncte. D. Pentru n=15, este nevoie de exact 42 asteriscuri și 288 puncte. 22. Spunem că un șir având n caractere este antipalindrom dacă toate perechile de caractere egal depărtate de extremități sunt distincte două câte două (cu excepția celui din mijloc dacă n este impar). De exemplu, asdfg și xlxe sunt antipalindroame, dar asdsg nu este. Fie subalgoritmul antipalindrom(s, stânga, dreapta) care primește ca și parametru un șir s cu n (1 ≤ n ≤ 10000) caractere (s[1], s[2], …, s[n]), și numerele naturale stânga și dreapta. Care din următoarele implementări vor returna adevărat pentru apelul antipalindrom(s, 1, n) dacă și numai dacă șirul s este antipalindrom? A. Subalgoritm antipalindrom(s, stânga, dreapta): Dacă stânga = dreapta atunci returnează adevărat altfel prim ← s[stânga] ultim ← s[dreapta] Dacă prim = ultim atunci returnează fals altfel returnează antipalindrom(s, stânga + 1, dreapta - 1) SfDacă SfDacă SfSubalgoritm
B. Subalgoritm antipalindrom(s, stânga, dreapta): Dacă stânga ≥ dreapta atunci returnează adevărat SfDacă prim ← s[stânga] ultim ← s[dreapta] Dacă prim = ultim atunci returnează fals altfel returnează antipalindrom(s, stânga + 1, dreapta - 1) SfDacă SfSubalgoritm C. Subalgoritm antipalindrom(s, stânga, dreapta): Dacă stânga > dreapta atunci returnează adevărat altfel prim ← s[stânga] ultim ← s[dreapta] Dacă prim ≠ ultim atunci returnează fals altfel returnează antipalindrom(s, stânga + 1, dreapta - 1) SfDacă SfDacă SfSubalgoritm D. Subalgoritm antipalindrom(s, stânga, dreapta): Dacă stânga > dreapta atunci returnează adevărat SfDacă prim ← s[stânga] ultim ← s[dreapta] Dacă prim ≠ ultim atunci returnează adevărat SfDacă returnează antipalindrom(s, stânga + 1, dreapta - 1) SfSubalgoritm 23. Fie subalgoritmul ordo(n, a) care primește ca și parametru un număr natural n (1 ≤ n ≤ 10000) și un șir a având 2n elemente numere naturale (a[1], a[2], …, a[2n]). Considerând că numărul de elemente pare ale șirului a este egal cu numărul de elemente impare, care din următorii subalgoritmi rearanjează elementele șirului a astfel încât elementele impare să aibă indici impari, iar elementele pare să aibă indici pari? A. Subalgoritm ordo(n, a): Pentru i ← 1, 2 * n - 1 execută Dacă a[i] MOD 2 ≠ i MOD 2 atunci Pentru j ← i + 1, 2 * n execută Dacă a[j] MOD 2 ≠ j MOD 2 atunci a[i] ← a[i] + a[j] a[j] ← a[i] - a[j] a[i] ← a[i] - a[j] SfDacă SfPentru SfDacă SfPentru SfSubalgoritm
B. Subalgoritm ordo(n, a): Pentru i ← 1, 2 * n - 1 execută Dacă a[i] MOD 2 ≠ i MOD 2 atunci Pentru j ← i + 1, 2 * n execută Dacă (a[i] MOD 2 ≠ i MOD 2) ȘI (a[j] MOD 2 ≠ j MOD 2) atunci a[i] ← a[i] + a[j] a[j] ← a[i] - a[j] a[i] ← a[j] - a[i] SfDacă SfPentru SfDacă SfPentru SfSubalgoritm C. Subalgoritm ordo(n, a): Pentru i ← 1, 2 * n - 1 execută Dacă a[i] MOD 2 ≠ i MOD 2 atunci Pentru j ← i + 1, 2 * n execută Dacă (a[i] MOD 2 ≠ i MOD 2) ȘI (a[j] MOD 2 ≠ j MOD 2) ȘI (a[i] MOD 2 ≠ a[j] MOD 2) atunci a[i] ← a[i] + a[j] a[j] ← a[i] - a[j] a[i] ← a[i] - a[j] SfDacă SfPentru SfDacă SfPentru SfSubalgoritm D. Subalgoritm ordo(n, a): Pentru i ← 1, 2 * n - 1 execută Pentru j ← i + 1, 2 * n execută Dacă (a[j] MOD 2 = 0) ȘI ((a[j] MOD 2 ≠ 0) SAU (a[j] MOD 2 ≠ 0)) ȘI (a[j] MOD 2 = 0) atunci a[i] ← a[i] + a[j] a[j] ← a[i] - a[j] a[i] ← a[i] - a[j] SfDacă SfPentru SfPentru SfSubalgoritm 24. Dorim să partiționăm un șir de n (1 ≤ n ≤ 1000) valori în k (1 ≤ k ≤ n) subsecvențe adiacente de lungimi egale (fiecare element al șirului aparține exact unei subsecvențe). Dacă n nu este divizibil cu k, acceptăm ca diferența de lungime între oricare două subsecvențe să fie cel mult 1. Se dau mai jos patru variante de a genera indicii primelor elemente ale tuturor subsecvențelor j (1 ≤ j ≤ k). Numerotând elementele șirului de la 1, care dintre aceste variante satisfac cerința de mai sus? A. ((j * n - 1) DIV k) - 1 B. ((j - 1) * n ) DIV k + 1 C. (j - 1) * (n DIV k) D. ((j - 1) * n + k) DIV k 25. Fie bnbn-1...b0 reprezentarea binară a numărului natural B, 2021 ≤ B ≤ 20212021. Care dintre următoarele afirmații sunt adevărate?
A. Dacă valoarea expresiei b0-b1+b2-b3+.....+(-1)n *bn este zero, atunci B este divizibil cu 3 B. Dacă valoarea expresiei b0-b1+b2-b3+....+(-1)n *bn este divizibilă cu 3, atunci B este divizibil cu 3 C. B este divizibil cu 3 dacă suma cifrelor binare este divizibilă cu 3, dar nu cu 9 D. Dacă B este divizibil cu 3, atunci valoarea expresiei b0-b1+b2-b3+....+(-1)n *bn. este divizibilă cu 3 26. Considerăm subalgoritmul prefix(n), care dat fiind numărul natural n (9 < n < 1020-1), caută cel mai lung prefix al său care se regăsește și în interiorul numărului (exceptând prima și ultima cifră a sa). Subalgoritmul returnează lungimea acestui prefix. Exemplu: pentru n = 12133121, prefixul este 12 și are lungimea 2. pentru n = 34534536, prefixul este 3453 și are lungimea 4. pentru n = 1223, un astfel de prefix nu există (considerăm că are lungime 0). Știind că indexarea șirurilor începe de la 1, care din următoarele variante reprezintă implementări corecte ale subalgoritmului prefix(n)? A. Subalgoritm prefix(n): nr ← n c ← 0 p ← 1 CâtTimp nr > 0 execută c ← c + 1 nr ← nr DIV 10 p ← p * 10 SfCâtTimp f1 ← 100 f2 ← p DIV 100 k ← 1 ok ← 0 CâtTimp ok = 0 execută n1 ← n DIV f1 f3 ← 10 Pentru i ← 1 ,k execută n2 ← (n DIV f3) MOD f2 Dacă n1 = n2 atunci ok ← 1 returnează c - k - 1 SfDacă f3 ← f3 * 10 SfPentru f1 ← f1 * 10 f2 ← f2 DIV 10 k ← k + 1 SfCâtTimp returnează -1 SfSubalgoritm
B. Subalgoritm prefix(n): c ← [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] nr ← n p ← 0 CâtTimp nr > 0 execută c[p + 1] ← nr MOD 10 nr ← nr DIV 10 p ← p + 1 SfCâtTimp Pentru i ← 1, p - 2 execută Pentru j ← p – 1, i + 1, -1 execută ok ← 1 Pentru k ← 0, i - 1 execută Dacă c[p - 1 - k] ≠ c[j - k] atunci ok ← 0 SfDacă SfPentru Dacă ok = 1 atunci returnează i SfDacă SfPentru SfPentru returnează -1 SfSubalgoritm C. Subalgoritm prefix(n): c ← [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] nr ← n p ← 0 CâtTimp nr > 0 execută c[p + 1] ← nr MOD 10 nr ← nr DIV 10 p ← p + 1 SfCâtTimp Pentru i ← p - 2, 1, -1 execută Pentru j ← p – 1, i + 1, -1 execută ok ← 1 Pentru k ← 0, i - 1 execută Dacă c[p - k] ≠ c[j - k] atunci ok ← 0 SfDacă SfPentru Dacă ok = 1 atunci returnează j SfDacă SfPentru SfPentru returnează 0 SfSubalgoritm
D. Subalgoritm prefix(n): nr ← n c ← 0 p ← 1 CâtTimp nr > 0 execută c ← c + 1 nr ← nr DIV 10 p ← p * 10 SfCâtTimp f1 ← p DIV 10 f2 ← 10 k ← c - 2 ok ← -1 Pentru t ← 1, c - 2 execută n1 ← n DIV f1 f3 ← 10 Pentru i ← 1, k execută n2 ← (n DIV f3) MOD f2 Dacă n1 = n2 atunci Dacă ok < c - k - 1 atunci ok ← c - k - 1 SfDacă SfDacă f3 ← f3 * 10 SfPentru f1 ← f1 DIV 10 f2 ← f2 * 10 k ← k - 1 SfPentru Dacă ok < 0 atunci: returnează 0 SfDacă returnează ok SfSubalgoritm 27. Se consideră tabelul de mai jos, având 16 celule (4 linii notate cu 1, 2, 3, 4, și 4 coloane notate cu A, B, C, D). Unele celule conțin valori constante (de ex. celula B3), altele, care încep cu “=” conțin rezultatul unei expresii aritmetice cu 2 termeni. Fiecare termen este fie o valoare constantă, fie, dacă termenul începe cu simbolul $, o referință către valoarea dintr-o altă celulă. De exemplu, în celula A4 avem rezultatul operației aritmetice de scădere din valoarea constantă 5 a valorii din celula A2. Pentru o anumită celulă i, notăm cu X(i) numărul minim de celule (inclusiv cele care conțin valori constante) ale căror valori trebuie cunoscute înainte de a calcula valoarea din celula i. Similar, notăm cu Y(i) numărul maxim de celule (inclusiv cele care conțin valori constante, dar excluzând celula i) ale căror valori pot fi calculate fără a cunoaște valoarea din celula i. Care dintre următoarele afirmații sunt adevărate despre valorile lui X(A2) și Y(A2)? A B C D 1 = $B4 – $C1 =$B3 + $D3 3 = $A4 * $C3 2 = $B1 + $B2 = $D3 + 11 = $D3 + $D2 2 3 = $B1 – $D3 11 = $D4 * $D4 = $D2 + 2 4 = 5 - $A2 = $C1 * $C1 = $A3 / 2 =15 / 3 A. X(A2) = 2 și Y(A2) = 1 B. X(A2) = 5 și Y(A2) = 13 C. X(A2) = 6 și Y(A2) = 4 D. X(A2) = X(C4) și Y(A2) = Y(B2) + 1
28. Subalgoritmul simplifică(nr, num) obține fracția ireductibilă aux1 / aux2 cu proprietatea că aux1 / aux2 = nr / num (aux1, aux2, nr, num numere naturale, num, aux2 ≠ 0). Subalgoritm simplifică(nr, num): d ← funcție(nr, num) aux1 ← nr DIV d aux2 ← num DIV d SfSubalgoritm Care dintre variantele următoare ale subalgoritmului funcție(a, b) sunt corecte? A. Subalgoritm funcție(a, b): d ← 1 Câttimp adevărat execută Dacă (a MOD d = 0) ȘI (b MOD d = 0) atunci returnează d SfDacă d ← d + 1 SfCâttimp SfSubalgoritm B. Subalgoritm funcție(a, b): Câttimp b ≠ 0 execută c ← a MOD b a ← b b ← c SfCâttimp returnează a SfSubalgoritm C. Subalgoritm funcție(a, b): Câttimp a ≠ b execută Dacă a > b atunci a ← a - b altfel b ← b - a SfDacă SfCâttimp returnează a SfSubalgoritm D. Subalgoritm funcție(a, b): d ← a Câttimp ((a MOD d ≠ 0) SAU (b MOD d ≠ 0)) execută d ← d - 1 SfCâttimp returnează d SfSubalgoritm 29. Se consideră următorul subalgoritm recursiv fibonacci(n), unde n este un număr natural (1 ≤ n ≤ 100). Să se determine de câte ori se afișează mesajul “Aici” în cazul unui apel fibonacci(n) (considerând împreună apelul inițial și toate apelurile recursive generate).
Subalgoritm fibonacci(n): Dacă n ≤ 1 atunci returnează 1 altfel Scrie “Aici” returnează fibonacci(n - 1) + fibonacci(n - 2) SfDacă SfSubalgoritm A. De fibonacci(n) ori. B. De fibonacci(n-1) ori. C. De fibonacci(n)-1 ori. D. De fibonacci(n) - fibonacci(n-1) ori. 30. Se considera expresia: E(x) = a0 + a1*x + a2*x2 +a3*x3 + a5*x5, unde a0, a1, a2, a3, a5 și x sunt numere reale nenule. Numărul minim de înmulțiri necesare pentru a calcula valoarea expresiei E(x) este: A. 4 B. 5 C. 7 D. 11
Răspunsuri directe
Pagina prezintă concurs de pregătire din 2021 pentru Informatică, la Facultatea de Matematică și Informatică. Documentul este etichetat după instituție, facultate, program și tipul probei folosind inventarul public verificat. Consultă metodologia actuală a instituției pentru condițiile examenului viitor.
Nu există un barem public asociat în inventarul verificat pentru acest document. ProfesorBun nu generează și nu inventează răspunsuri oficiale. Poți folosi subiectul pentru antrenament, dar corectarea trebuie făcută cu metodologia instituției, cu materiale oficiale suplimentare sau împreună cu un profesor.
Rezolvă documentul fără ajutor și respectă timpul prevăzut de metodologia examenului. Corectează cu baremul disponibil, marchează capitolele unde ai pierdut puncte și repetă exerciții similare. Compară apoi cu alte probe din aceeași facultate și confirmă programa curentă pe site-ul oficial al instituției.
Glisează pentru a vedea profesorii
Sunt profesor de Informatica-Matematica si Trainer IT, cu experienta de lucru cu elevi/studenti de aproximativ 15 ani. Am absolvit Facultatea de Cibernetica din cadrul Academiei de Studii Economice, olimpica la Informatica, ofer meditatii orice nivel, pentru C/C++, Adobe Illustrator, Python, PHP, SQL, lucrul in diferite medii (ex. APEX etc) cat si pregatire pentru ECDL. Sedintele de meditatii le tin in format online (prin intermediul unor metode usor de inteles, care simuleaza sedinta de meditatii clasica). Pot oferi ajutor si pentru pregatire de examene nationale, Bacalaureat, admiteri, corectari teme. O ședință poate fi de o oră, o oră și 30 de minute sau 2 ore. Ofer meditații individuale sau în grupe de câte 2-5 elevi.
Sunt profesor de Informatica-Matematica si Trainer IT, cu experienta de lucru cu elevi/studenti de aproximativ 15 ani. Am absolvit Facultatea de Cibernetica din cadrul Academiei de Studii Economice, olimpica la Informatica, ofer meditatii orice nivel, pentru C/C++, Adobe Illustrator, Python, PHP, SQL, lucrul in diferite medii (ex. APEX etc) cat si pregatire pentru ECDL. Sedintele de meditatii le tin in format online (prin intermediul unor metode usor de inteles, care simuleaza sedinta de meditatii clasica). Pot oferi ajutor si pentru pregatire de examene nationale, Bacalaureat, admiteri, corectari teme. O ședință poate fi de o oră, o oră și 30 de minute sau 2 ore. Ofer meditații individuale sau în grupe de câte 2-5 elevi.
Preț
230 lei / 90 min
💻 De ce să colaborăm? Sunt mentor de informatică pentru gimnaziu și liceu, cu o experiență de peste 4 ani și mai mult de 200 de tineri ghidați cu succes în universul programării. Având o formare solidă în matematică și informatică, pun accent pe o predare intuitivă, logică și vizuală. Nu ne limităm la teorie: descompun fiecare concept în pași simpli, astfel încât elevul să înțeleagă exact de ce funcționează un cod și să capete autonomie în fața problemelor. 🧠 Cum lucrez cu elevii? Studiile mele în psihologia copilului mă ajută să mă sincronizez cu ritmul și stilul de învățare al fiecărui cursant. Îmi propun să mențin un climat relaxat și constructiv, eliminând teama de greșeală și transformând scrierea de cod într-o activitate creativă și plăcută. 🎓 Metodologie modernă Participarea constantă la cursuri de specialitate îmi oferă instrumente didactice actualizate, care facilitează predarea eficientă a algoritmilor și a structurilor de date, construind în același timp o relație bazată pe deschidere și încredere. 🏆 Performanțe și rezultate Cea mai mică notă obținută de elevii mei la Bacalaureat (la proba de Informatică): 8,80 Bilanțul pentru 2025: 2 note de 10 curate la Bacalaureat (Informatică) și o rată de promovabilitate excelentă, mulți elevi reușind să își depășească propriile așteptări. 👨🏫 Cine sunt eu? ✍️ Scriu frecvent articole și probleme de specialitate pentru reviste dedicate. Mă descriu ca o persoană calmă, extrem de răbdătoare și empatică. Știu cum să transform noțiuni abstracte – cum ar fi vectorii, matricile sau recursivitatea – în concepte prietenoase, ușor de asimilat. 💡 Cred cu tărie că informatica se înțelege prin exercițiu și înțelegere logică, nu prin memorare mecanică. Ajut fiecare elev să își descopere potențialul și să capete încredere deplină în forțele proprii. 📚 Cum se desfășoară pregătirea? Toate ședințele sunt exclusiv 1 la 1 (individuale). 💻 Întâlnirile au loc online, într-un mediu interactiv optimizat pentru partajarea ecranului și scriere de cod în timp real. Structura unei ședințe tip: Debriefing: Analiza temei anterioare și clarificarea oricăror neclarități. Predare interactivă: Noțiuni noi explicate pas cu pas, însoțite de exemple practice și vizuale direct în mediul de lucru. Sesiune practică: Rezolvarea împreună de probleme, analizarea erorilor de cod (debugging) și exersarea logicii algoritmice. Temă personalizată: Set de aplicații croite exact pe nivelul și ritmul elevului.
„Nu mă învață doar să scriu cod, ci să gândesc ca un programator. Când greșesc, nu îmi dă direct rezolvarea, ci mă ghidează cu răbdare să îmi găsesc singur eroarea. Asta m-a ajutat enorm să devin mult mai sigur pe mine la problemele grele.”Munteanu M.
💻 De ce să colaborăm? Sunt mentor de informatică pentru gimnaziu și liceu, cu o experiență de peste 4 ani și mai mult de 200 de tineri ghidați cu succes în universul programării. Având o formare solidă în matematică și informatică, pun accent pe o predare intuitivă, logică și vizuală. Nu ne limităm la teorie: descompun fiecare concept în pași simpli, astfel încât elevul să înțeleagă exact de ce funcționează un cod și să capete autonomie în fața problemelor. 🧠 Cum lucrez cu elevii? Studiile mele în psihologia copilului mă ajută să mă sincronizez cu ritmul și stilul de învățare al fiecărui cursant. Îmi propun să mențin un climat relaxat și constructiv, eliminând teama de greșeală și transformând scrierea de cod într-o activitate creativă și plăcută. 🎓 Metodologie modernă Participarea constantă la cursuri de specialitate îmi oferă instrumente didactice actualizate, care facilitează predarea eficientă a algoritmilor și a structurilor de date, construind în același timp o relație bazată pe deschidere și încredere. 🏆 Performanțe și rezultate Cea mai mică notă obținută de elevii mei la Bacalaureat (la proba de Informatică): 8,80 Bilanțul pentru 2025: 2 note de 10 curate la Bacalaureat (Informatică) și o rată de promovabilitate excelentă, mulți elevi reușind să își depășească propriile așteptări. 👨🏫 Cine sunt eu? ✍️ Scriu frecvent articole și probleme de specialitate pentru reviste dedicate. Mă descriu ca o persoană calmă, extrem de răbdătoare și empatică. Știu cum să transform noțiuni abstracte – cum ar fi vectorii, matricile sau recursivitatea – în concepte prietenoase, ușor de asimilat. 💡 Cred cu tărie că informatica se înțelege prin exercițiu și înțelegere logică, nu prin memorare mecanică. Ajut fiecare elev să își descopere potențialul și să capete încredere deplină în forțele proprii. 📚 Cum se desfășoară pregătirea? Toate ședințele sunt exclusiv 1 la 1 (individuale). 💻 Întâlnirile au loc online, într-un mediu interactiv optimizat pentru partajarea ecranului și scriere de cod în timp real. Structura unei ședințe tip: Debriefing: Analiza temei anterioare și clarificarea oricăror neclarități. Predare interactivă: Noțiuni noi explicate pas cu pas, însoțite de exemple practice și vizuale direct în mediul de lucru. Sesiune practică: Rezolvarea împreună de probleme, analizarea erorilor de cod (debugging) și exersarea logicii algoritmice. Temă personalizată: Set de aplicații croite exact pe nivelul și ritmul elevului.
„Nu mă învață doar să scriu cod, ci să gândesc ca un programator. Când greșesc, nu îmi dă direct rezolvarea, ci mă ghidează cu răbdare să îmi găsesc singur eroarea. Asta m-a ajutat enorm să devin mult mai sigur pe mine la problemele grele.”
Preț
150 lei / 2 h
Ofer meditații tuturor elevilor și studenților care își doresc să învețe informatică, și să se perfecționeze pentru a obține o notă cât mai mare la Bacalaureat, dar și pentru studenții care întâmpină probleme la susținerea examenelor universitare. Lucrez cu elevi de orice nivel și adaptez stilul în funcție de nevoile fiecăruia. Datorită faptului că diferența de vârstă mică dintre mine și elevii mei, orele de pregătire se desfășoară într-o atmosferă relaxată, lucru care le permite elevilor să fie mai deschiși la a pune întrebări și astfel, asimilează mult mai ușor cunoștințele. Pentru mai multe detalii, vă rog să mă contactați.
„profesorul este bun, intelegator,si te ajuta sa intelegi indiferent de nivelul la care esti, fie ca e lectie noua sau o recapitulare ,stie sa te tina prins in ora, sincer nu cred ca exista profesor sa ma faca sa imi placa sa invat pana am dat de el, ma bucur ca imi este meditator si recomand cu toata increderea!!”Floris Daniel T.
Ofer meditații tuturor elevilor și studenților care își doresc să învețe informatică, și să se perfecționeze pentru a obține o notă cât mai mare la Bacalaureat, dar și pentru studenții care întâmpină probleme la susținerea examenelor universitare. Lucrez cu elevi de orice nivel și adaptez stilul în funcție de nevoile fiecăruia. Datorită faptului că diferența de vârstă mică dintre mine și elevii mei, orele de pregătire se desfășoară într-o atmosferă relaxată, lucru care le permite elevilor să fie mai deschiși la a pune întrebări și astfel, asimilează mult mai ușor cunoștințele. Pentru mai multe detalii, vă rog să mă contactați.
„profesorul este bun, intelegator,si te ajuta sa intelegi indiferent de nivelul la care esti, fie ca e lectie noua sau o recapitulare ,stie sa te tina prins in ora, sincer nu cred ca exista profesor sa ma faca sa imi placa sa invat pana am dat de el, ma bucur ca imi este meditator si recomand cu toata increderea!!”
Preț
100 lei / 2 h