Documente Academic
Documente Profesional
Documente Cultură
Proba E
Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu. Timpul efectiv de lucru este de 3 ore. n programele cerute la subiectele III, identificatorii utilizai trebuie s respecte precizrile din enun (ngroate), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile asociate acestora (eventual n form prescurtat). corect. Fiecare rspuns corect se noteaz cu 5 puncte.
I. Pentru fiecare dintre itemii de la 1 la 8, scriei pe foaia de examen litera corespunztoare rspunsului
1. tiind c i este o variabil ntreag, se constat c secvena Pascal alturat este incorect sintactic. Care este eroarea? lipsa delimitatorilor begin-end n structura for caracterul ; plasat incorect scrierea instruciunii if n linie cu instruciunea for delimitatorii ' (apostrof) folosii incorect Orice arbore cu n noduri are cel mult n-2 muchii b. exact n muchii c. exact n-1 muchii d. cel puin n muchii Numrul minim de noduri dintr-un graf neorientat cu 12 muchii, fr noduri izolate, graf format din exact 3 componente conexe este: 7 8 9 10 b. c. d. Variabila s:string[7] memoreaz irul ARIADNA. Instruciunea care afieaz litera D este: write(s[4]) write(s(4)) write(s[5]) write(s(5)) b. c. d. Se consider algoritmul care determin toate permutrile distincte de n obiecte (numerotate de la 1 la n) n care nu exist puncte fixe. O permutare (p1, p2, .., pn) are puncte fixe dac exist cel puin o component pi=i. De exemplu, pentru n=5, permutarea (2,3,5,4,1) are puncte fixe deoarece p4=4. Pentru n=4, stabilii cte permutri fr puncte fixe exist. 9 10 12 b. c. d. 8 Care este antetul corect al subprogramului calc, astfel nct secvena readln(n); calc(n,k); alturat s realizeze afiarea sumei cifrelor numrului natural n citit? writeln(k) procedure calc(k:longint; var n:integer); procedure calc(n:longint; k:integer); function calc(n:longint):integer; function calc(n:longint; var k:integer); ntr-o list dublu nlnuit cu cel puin 4 elemente, fiecare element reine n cmpurile adp i adu adresa elementului precedent i respectiv adresa elementului urmtor din list. Dac p reprezint adresa primului element din list, iar q este de acelai tip cu p, atunci secvena alturat realizeaz: interschimbarea primelor dou componente eliminarea celui de-al doilea element b. d. q:=p^.adu^.adp; p:=q^.adu; p^.adp:=nil; dispose(q) for i:=1 to 100 do if i mod 2=0 then write('*'); else write('-')
a. b. c. d. 2. a. 3. a. 4. a. 5.
a. 6. a. b. c. d. 7.
a. c. 8.
a. b. c. d.
Este definit funcia max ce returneaz valoarea maxim dintre cele dou valori transmise ca parametri. Pentru un numr natural de cel mult dou cifre memorat n variabila ntreag n, stabilii care este expresia ce returneaz cea mai mare cifr a numrului n. max(n mod 10,n mod 100) max(n mod 10,n div 100) max(n div 10,n mod 10) max(n div 10,n mod 100) 1 Proba E
II.
Se consider programul pseudocod alturat : S-a notat cu x|y relaia x divide pe y sau y este divizibil cu x. S-a folosit notaia [x] pentru a desemna partea ntreag a numrului real x. Ce valoare se afieaz pentru n=72? (5p.)
1. 2.
3. 4.
Determinai o valoare de dou cifre pentru variabila n astfel nct valoarea corespunztoare afiat s fie cu unu mai mare dect valoarea citit. (3p.) Scriei programul Pascal echivalent cu algoritmul dat. (10p.) Scriei cte numere naturale din intervalul nchis [20,40] pot fi introduse pentru variabila n astfel nct numrul afiat s reprezinte suma divizorilor numrului citit. (2p.)
citete n (nr. natural, n>0) S 0 ; i 1 ct timp i[n/i] execut dac i|n atunci s s+i+[n/i] i i+1 scrie s
III.
1. Se citesc de la tastatur un numr natural n(1<n<22) i apoi 3 numere naturale de cel mult 3 cifre fiecare a,b,c. S se construiasc n memorie tabloul cu n linii i n coloane care are pe ambele diagonale valoarea a, deasupra diagonalei principale (cu excepia diagonalei secundare) valoarea b i sub diagonala principal (cu excepia diagonalei secundare) valoarea c. Tabloul se va afia pe ecran, cte o linie a tabloului pe cte o linie a ecranului, cu spaii ntre elementele fiecrei linii. De exemplu, pentru n=5 i numerele 2, 5, 3, se construiete n memorie i se afieaz tabloul 2 5 5 5 2 3 2 5 2 5 3 3 2 5 5 3 2 3 2 5 2 3 3 3 2 (10p.) Se citesc de la tastatur un numr natural n (0<n<15000) i apoi un ir cresctor format din n numere naturale de cel mult 9 cifre fiecare. a) Scriei programul Pascal care determin i afieaz numrul de termeni ai irului dat care au proprietatea c aparin irului lui Fibonacci (f1=1, f2=1 i fi=fi-1+fi-2 pentru orice i>2). Alegei o metod eficient de rezolvare (ca timp de executare i gestionare a memoriei). (8p.) b) Descriei pe scurt metoda folosit explicnd eficiena acesteia (3-4 rnduri). (2p.) De exemplu, pentru n=6 i numerele 2, 5, 10, 13, 13, 25 se afieaz valoarea 4, deoarece termenii 2, 5, 13 i 13 fac parte din irul lui Fibonacci. Scriei programul Pascal care citete de la tastatur un ir de cel mult 20 de caractere i creeaz fiierul text BAC.TXT ce conine irul de caractere dat i toate permutrile circulare ale acestuia, fiecare pe cte o linie. De exemplu, dac se citete irul magma, atunci BAC.TXT va conine (nu neaprat n aceast ordine) permutrile circulare: magma amagm mamag gmama agmam (10p.)
2.
3.
Proba E