Sunteți pe pagina 1din 2

Numele______________________Grupa______________________

Test “Subprograme”

1. (1p) Stabileşte valoarea de adevăr a următoarelor afirmaţii.


a. Când un subprogram este apelat, parametrii efectivi şi cei formali nu trebuie obligatoriu să coincidă în
număr, tip şi nume.
b. Un parametru formal transmis prin referinţă nu este precedat de cuvântul cheie var
c. O procedură se apelează prin intermediul unei instrucţiuni procedurale de forma:
nume(lista_parametrilor_formali);
d. Functiile trebuie sa aiba cel putin un parametru formal;
2. (1p) Fie funcţia:
Function secret(x:integer):integer;
Var i,j:integer;
Begin
i:=2*x;
if i>10 then j:=x mod 2
else j:=x div 3
secret:=j-2*x
end;
Ce va tipări acest fragment de program pentru: x:=10; writeln(secret(x));
a. 3 b. 8 c. -10 d. altă valoare
3. (2p) Fie următoarea procedură. Care este efectul? Scrie un subprogram de tip funcţie care să
aibă acelaşi efect.
Procedure p(x:integer; var ok:boolean);
Var i,s:integer;
Begin
S:=1;
For i:=2 to x div 2 do
If x mod i=0 then s:=s+i;
If s=x then ok:=true
else ok:=false
end;
4. (4p) Scrieţi subprograme care:
a) Calculează câte numere pozitive se gasesc intr-un vector cu n numere intregi.

b) Determină cel mai mare element de pe coloana k a unei matrici cu componente întregi

c) Calculează suma elementelor perfecte ale unui vector cu n numere întregi.

d) Determină suma numerele pare dintre două valori date a şi b(a<b), citite de la tastatură.

5. (2p) Scrie un program, utilizând subprograme, care:


- calculează suma elementelor impare dintr-o matrice patratica cu n linii si n coloane
- afisează numerele prime de pe diagonala principală.
Matricea este memorată tabelar în fişierul text ‘mat.in’, iar rezultatele vor fi afişate la ecran.

0-1p 2p 3p 4p 6p 7p 8p 9p 10p
1 2 3 5 6 7 8 9 10
Numele ______________________Grupa_________________
Test
1. (1p) Stabileşte valoarea de adevăr a următoarelor afirmaţii. Justifică răspunsul.
a. Când un subprogram este apelat, se specifică numele şi tipul parametrilor formali.
b. Un parametru efectiv se poate declara numai în subprogram.
c. O funcţie se declară prin intermediul unei instrucţiuni de forma:
nume(lista_parametrilor_formali):tipul_funcţiei;
d. parametrii formali ai unui subprogram sunt cei care intervin in momentul apelarii subprogramului.

2. (0,5p) Fie funcţia:


Function secret(x:integer):integer;
Var i,j:integer;
Begin
i:=2*x;
if i<10 then j:=x mod 2
else j:=x div 3
secret:=x*j-2
end;
Ce va tipări acest fragment de program pentru: x:=5; writeln(secret(x));
a. 3 b. 8 c. 1 d. altă valoare

3. (2p) Fie următoarea procedură. Care este efectul? Scrie un subprogram de tip funcţie care să
aibă acelaşi efect.
Procedure p(x:integer; var ok:boolean);
Var i:integer;
Begin
Ok:=true;i:=2;
while (i<=round(sqrt(x))) and ok do begin
If x mod i=0 then Ok:=false;
I:=i+1; end;
end;

4. (4p) Scrieţi subprograme care:


a) Determină câte numere impare sunt între două valori, x şi y(x<y), citite de la tastatură

b) Determină cel mai mic element de pe linia k a unei matrici cu componente întregi.

c) Calculează câte elemente negative sunt într-un vector cu n numere întregi.

d) Determină suma numerelor prime dintr-un vector cu n componete intregi.


5. (2p) Scrie un program, utilizând subprograme, care:
- calculează media aritmetică a elementelor pozitive dintr-un sir de numere intregi;
- afişează numerele perfecte citite
Numerele sunt memorate în fişierul text ‘numere.in’, iar rezultatele vor fi afişate la ecran.

0-1p 2p 3p 4p 6p 7p 8p 9p 10p
1 2 3 5 6 7 8 9 10

S-ar putea să vă placă și