Documente Academic
Documente Profesional
Documente Cultură
Prenumele ______________
1. Continuaţi enunţul:
Institutia de învăţămînt L
În limbajul pascal există __două__ tipuri de subprogram şi anume: __funcţii___ şi ___proceduri__.
_________________________
0
1
2
Câte un punct pentru fiecare răspuns corect, total 3 puncte 3
2. Scrieţi adevărat (A) sau fals (F) în dependenţă de faptul dacă este sau nu adevărată afirmaţia:
Nr. crt. Afirmaţia A sau F L
1. O procedură poate avea doar parametri formali valoare A 0
1
2
2. O funcție poate fi utilizată doar o singură dată într-un program pascal F
3
4
3. Paramatrul actual transmite valoarea din programul principal în procedură. A 5
6
4. Un parametru actual poate fi o valoare A 7
8
5. Un subprogram obligatoriu trebuie să conțină un parametru formal F
6. Procedurile pot întoarce mai multe rezultate prin intermediul parametrilor variabilă A
1p – definirea tipurilor, scrierea şi utilizarea corectă a variabilelor globale şi locale, respectarea sintaxei
limbajului pascal.
1p – respectarea denumirii functiei (PARE) şi a procedurii (POZITIE)
1p – scrierea corecta a parametrilor valoare (t:tablou;n:integer) pentru funcţie, a parametrilor valoare şi
variabilă pentru procedură (v:tablou;n:integer; var k:integer)
1p – algoritm corect de calculare a elementelor pare
1p – returnarea corectă a rezultatului (PARE:=k)
1p- algoritm corect de determinare a poziţiei primului element negative din tablou
1p – citirea corectă a numărului de componente ( readln(n) )
1p - citirea corectă a componentelor (for i:=1 to n do read(t[i])
1p – apel corect al funcţiei (y:=PARE(t,n)) şi al procedurii (POZITIE(t,n,poz))
1p – afişarea corectă a rezultatului după apelul procedurii (writeln(poz))
Notă: se acceptă şi alte modalităţi corecte de apel pentru funcţie si a algoritmilor de rezolvare a
problemei decât cel prezentat
Răspuns
Type tablou=array[1..100] of integer;
Var t:tablou; i,n,poz,par:integer;
Function PARE(t:tablou; n:integer):integer;
Var k,i:integer;
Begin
K:=0; for i:=1 to n do if t[i] mod 2 =0 then k:=k+1;
PARE:=k;
End;
Preocedure POZITIE(t:tablou; n:integer; var k:integer);
Begin
k:=1;
while t[k]>=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.
6. Fie dat programul:
programa p12; Nivel_0_ L
var m, n: integer; k:real; 0
1
procedure P(var x:integer; y:integer; var z:real); Nivel_1_ 2
function f(h:integer):integer; begin f:=sqr(h)+2; end; Nivel_2_ 3
begin 4
5
x:=f(x)+y; y:=x+f(2); z:=y mod x ; 6
writeln(x,' ',y,' ',z:0:0) 7
end; 8
9
begin 10
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); 11
end.
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
Raspuns: f(1)=25
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}
L
8. Elaboraţi o funcţie pascal (doar funcţia) pentru definiţia f(n) de la itemul 7. 0
Function f(n:integer):integer; 1
Begin 2
3
If n=4 then f:=n+1 else if n>=5 then f:=n+2 else if n<4 then f:=f(n+1)+f(n+3); 4
End;
10. Scrieţi adevărat (A) sau fals (F) în dependenţă de faptul dacă este sau nu adevărată afirmaţia:
Nr. crt. Afirmaţia A sau F L
9. Numele unei proceduri poate începe cu o cifră F 0
1
2
10. O funcție poate fi utilizată de mai multe ori într-un program pascal A
3
4
11. Paramatrul actual transmite valoarea din programul principal în procedură. A 5
6
12. În cazul unui parametru actual variabilă poate fi utilizată și o constantă F 7
8
13. Un subprogram obligatoriu trebuie să conțină un parametru formal F
14. Procedurile pot întoarce mai multe rezultate prin intermediul parametrilor variabilă A
L
0
1
2
3
4
5
6
7
8
9
10
14. Fie dat programul: 11
programa p12; Nivel_0_
var x, y: integer; z:real;
procedure P(a:integer; var b:integer; var c:real); Nivel_1_
function f(h:integer):integer; begin f:=(h +7) div 3; end; Nivel_2_
begin
a:=f(a)+f(b); b:=a-2; c:=a + b ;
writeln(a,' ',b,' ',c:0:0)
end;
begin
x:=2; y:=4; z:=1; P(y,x,z); x:=x+1; writeln(x,' ',y,' ',z:0:0);P(x,y,z); y:=y-1; writeln(x,' ',y,' ',z:0:0);
end.
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)
x=2 y=4 z=1
P(y,x,z)
a=y=4 b=x=2 c=z=1
a=3+3=6 b=6-2=4 c= 6 + 4=10
6 4 10 1p- raspuns corect, argumentare
Y=y=4 x=b=4 z=c=10
X=4+1=5
5 4 10 1p- raspuns corect, argumentare
P(x,y,z)
a=x=5 b=y=4 c=z=10
a=4+3=7 b=7-2=5 c= 7 +5=12
7 5 12 1p- raspuns corect, argumentare
X=5 y=b=5 z=c=12
Y=5-1=4
5 4 12 1p- raspuns corect, argumentare
Argumentare:
f(5)=f(4)+f(2)
F(4)=f(3)+f(1)
F(3)=f(2)+f(0)
F(2)=f(1)+f(-1)
F(1)=1+3=4
F(0)=2
F(-1)=2
F(2)=4+2=6
F(3)=6+2=8
F(4)=8+4=12
F(5)=12+6=18
Raspuns: f(5)=18
L
16. Elaboraţi o funcţie pascal (doar funcţia) pentru definiţia f(x) de la itemul 7. 0
Function f(x:integer):integer; 1
Begin 2
3
If x<=0 then f:=2 else if x=1 then f:=x+3 else if x>1 then f:=f(x-1)+f(x-3); 4
End;