36 0 141KB
Numele_________________ Prenumele ______________
1. Continuaţi enunţul:
Institutia de învăţămînt
În limbajul pascal există __două__ tipuri de subprogram şi anume: __funcţii___ şi ___proceduri__. _________________________ Câte un punct pentru fiecare răspuns corect, total 3 puncte
L 0 1 2 3
2. Scrieţi adevărat (A) sau fals (F) în dependenţă de faptul dacă este sau nu adevărată afirmaţia: Nr. crt. 1.
Afirmaţia
O procedură poate avea doar parametri formali valoare
A sau F A
2.
O funcție poate fi utilizată doar o singură dată într-un program pascal
F
3.
Paramatrul actual transmite valoarea din programul principal în procedură.
A
4.
Un parametru actual poate fi o valoare
A
5.
Un subprogram obligatoriu trebuie să conțină un parametru formal
F
6.
Procedurile pot întoarce mai multe rezultate prin intermediul parametrilor variabilă
A
7.
Procedurile și funcțiile pot rezolva aceiași problemă
A
8.
Exp(x) este o procedură predefinită a limbajului pascal.
F
Câte un punct pentru fiecare răspuns corect, total 8 puncte 3. Se consideră antetul: Var a,b:char; c,r:real; d,i:integer; Procedure P(var x:char; var y:real; z:integer); Încercuiţi apelurile corecte. a) P(a, c, d); b) P(b, r, ‘i’); c) P(‘k’, 8.145, 6); d) P(b, r, 5); e) P(a,c,i); f) P(‘9’,6.4, 3); Câte un punct pentru fiecare încercuire corectă, total 3 puncte 4. Fie dată o secvență de program PASCAL din care au fost radiate (eliminate) denumirile de tipuri ale variabilelor utilizate: Analizați secvența din programul P4 şi îndepliniți următoarele sarcini: Program P4; var q : __string________; a) Înscrieţi în textul programului denumirile de s : set of _0..9___; tip omise, astfel încît acestea să asigure i : _______integer_____; corectitudinea instrucțiunilor din program. begin q:='0691882883117'; b) Scrieţi, care va fi valoarea variabilei s după s:=[ ]; executarea ciclului for. for i:=1 to length(q)-1 do s:=s+[ord(q[i])-ord(’0’)]; ... s=[ 0,1,2,3,6,8,9 ] end. Câte un punct pentru fiecare răspuns corect, total 4 puncte Notă: 1. Punctul a - pentru variabila s se acceptă şi tipul byte, integer sau 0..255 2. punctual b - ordinea înscrierii valorilor în mulţimea s nu contează, important ca aceasta sa includă valorile întregi 0,1,2,3,6,8,9.
L 0 1 2 3 4 5 6
7 8
L 0 1 2 3
L 0 1 2 3 4
5. Se consideră un tablou (vector) cu n numere intregi, n=0 do k:=k+1; End; Begin Writeln(‘dati numarul de component din tablou’); readln(n); Writeln(‘dati ‘,n,’ component intregi’); For i:=1 to n do read(t[i]); Par:= PARE(t,n); Writeln(‘numarul de component pare ‘,par); POZITIE(t,n,poz); Writeln(‘pozitia primului numar negative este ‘,poz); End.
L 0 1 2 3 4 5 6 7 8 9 10
6. Fie dat programul: programa p12; Nivel_0_ var m, n: integer; k:real; procedure P(var x:integer; y:integer; var z:real); Nivel_1_ function f(h:integer):integer; begin f:=sqr(h)+2; end; Nivel_2_ begin x:=f(x)+y; y:=x+f(2); z:=y mod x ; writeln(x,' ',y,' ',z:0:0) end; begin n:=4; m:=1; k:=2; P(m,n,k); writeln(m,' ',n,' ',k:0:0);P(n,m,k); writeln(m,' ',n,' ',k:0:0); end.
L 0 1 2 3 4 5 6 7 8 9 10 11
a) Ce se va afişa la ecran în urma executării acestui program (argumentaţi răspunsul prin calcule, afişările le încercuiţi)
n=4 m=1 k=2 P(m,n,k) X=m=1 y=n=4 z=k=2 X=3+4=7 y=7+6=13 z= 13 mod 7=6
7 13 6
1p- raspuns corect, argumentare
M=x=7 n=n=4 k=z=6
746
1p- raspuns corect, argumentare
P(n,m,k) X=n=4 y=m=7 z=k=6 X=18+7=25 y=25+6=31 z= 31 mod 25=6
25 31 6
1p- raspuns corect, argumentare
N=x=25 m=m=7 k=z=6
7 25 6
1p- raspuns corect, argumentare
b)Enumeraţi variabilele globale, utilizate în program_______m,n,k____________________; 1p- scrierea corectă a rezultatului c) Subliniați un apel al funcției F;
1p- sublinierea corectă a unui apel de funcţie, x:=f(x)+y; y:=x+f(2); d) Enumerați parametrii variabilă din procedura P__________x,z_____________________;
1p- scrierea corectă a rezultatului e) Indicaţi nivelele de imbricare; 3p- scrierea corectă a rezultatului (câte un punct pentru fiecare nivel scris corect) f) În programul P12 este efect colateral?
Adevarat
Fals
1p- scrierea corectă a rezultatului 7. Se consideră funcția: a)
Calculați f(1). Argumentaţi răspunsul
Argumentare: f(1)=f(2)+f(4) F(2)=f(3)+f(5) F(3)=f(4)+f(6) F(4)=4+1=5 F(5)=5+2=7 F(6)=6+2=8 F(3)=5+8=13 F(2)=13+7=20 F(1)=20+5=25 Raspuns: f(1)=25
prin calcule!
L 0 1 2 3 4 5
1p- rezultat final corect 25 3p – argumentare corectă prin calcule {in caz că rezultatul final nu corespunde cu valoarea de 25, însă calculele sunt efectuate se va acorda 1 punct} b)
Definiţia funcţiei f(n) este o definiţie recursivă? Adevărat Fals
1p- scrierea corectă a rezultatului 8. Elaboraţi o funcţie pascal (doar funcţia) pentru definiţia f(n) de la itemul 7. Function f(n:integer):integer; Begin If n=4 then f:=n+1 else if n>=5 then f:=n+2 else if n