Sunteți pe pagina 1din 11

SUBIECTE PROBA PRACTIC PROGRAMARE

EXAMENUL DE ATESTAT PROFESIONAL LA INFORMATIC 2015-2016


Subiecte propuse de prof. TAKACS Ferencz Zoltan
Licelul Pedagogic Regele Ferdinand, Sighetu Marmaiei
Modificri la subiectele propuse au fost fcute de prof. KALMAR Violeta-Mihaela i prof. PINTESCU Alina
Colegiul Naional Gheorghe incai Baia Mare

SPECIALIZAREA MATEMATIC INFORMATIC

Subiectul nr. 1
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere ntregi, de cel mult 4 cifre fiecare,
separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, n linie, valorile absolute ale numerelor din ir, separate prin cte un
spaiu;
b) s afieze pe ecran, n linie, numrul de divizori pozitivi proprii pentru fiecare numr din ir,
separai prin cte un spaiu;
c) s scrie n fiierul atestat.out toate numerele impare din ir, n ordine cresctoare,
separate prin cte un spaiu.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
6
12

-14

Date de ieire:
-7

15

27

a)
b)

12
4

14
2

7
0

15
2

27
2

5
0

Fiierul atestat.out conine:


c)

-7

15

27

Subiectul nr. 2
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere ntregi, de cel mult 4 cifre fiecare,
separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe aceeai linie, valorile absolute ale numerelor din ir, separate prin
cte un spaiu;
b) s afieze pe ecran, pe urmtoarea linie, numrul de divizori pozitivi pentru fiecare numr
din ir (numerele afiate se vor separa prin cte un spaiu);
c) s scrie n fiierul atestat.out toate numerele pare din ir, n ordine descresctoare,
separate prin cte un spaiu.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
6
12

-9

Date de ieire:
7

-14

27

a)
b)

12
6

9
3

7
2

14
4

27
4

5
2

Fiierul atestat.out conine:


c)

12

-14

Subiectul nr. 3
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere naturale, de cel mult 9 cifre fiecare,
separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, numerele din ir, separate prin cte un spaiu;
b) s afieze pe ecran, pe linii diferite, cel mai mic numr a i cel mai mare numr b din irul
dat;
c) s scrie n fiierul atestat.out cel mai mare divizor comun al numerelor a i b,
determinate la punctul b).
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
6
123

55

Date de ieire:
372

3465

242

44

a)
b)

123
44
3465

55

372

3465

242

44

Fiierul atestat.out conine:


c)

11

Subiectul nr. 4
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (3<n<1000), iar pe cea de-a doua linie un ir de n numere naturale, de cel mult 9 cifre fiecare,
separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, toate numerele din ir, separate prin cte un spaiu;
b) s afieze pe ecran, pe a doua linie, toate numerele din ir formate numai din cifre pare
(dac nu exist astfel de numere n ir se va afia mesajul NU EXIST NUMERE NUMAI CU
CIFRE PARE);
c) s citeasc de la tastatur dou numere naturale nenule p1 i p2 (1<p1<p2<n), s
ordoneze descresctor numerele din ir situate ntre poziiile p1 i p2, inclusiv, i s scrie
noul ir n fiierul atestat.out numerele separndu-se prin cte un spaiu.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu: de la tastatur se citesc: p1=2 i p2=4
atestat.in
6
1233

22

Date de ieire:
1785

56

15657

457

a)
b)

1233
22

22

1785

56

15657

457

15657

457

Fiierul atestat.out conine:


c)

1233

1785

56

22

Subiectul nr. 5
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere reale, separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, toate numerele din ir, separate prin cte un spaiu;
b) s afieze pe urmtoarea linie a ecranului, media aritmetic a numerelor negative din ir,
cu o precizie de 2 zecimale (dac irul nu conine numere negative se va afia 0);
c) s citeasc de la tastatur dou numere naturale nenule p1 i p2 (1<p1<p2<n), s
ordoneze cresctor numerele din ir situate ntre poziiile p1 i p2, inclusiv, i s scrie noul
ir n fiierul atestat.out numerele separndu-se prin cte un spaiu.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu: de la tastatur se citesc: p1=2 i p2=4
atestat.in
6
-56.765

Date de ieire:

2.3

4.56

-1.2

-1.8

a)
b)

-56.765
-19.92

2.3

4.56

-1.2

-1.8

-1.8

Fiierul atestat.out conine:


c)

-56.765

-1.2

2.3

4.56

Subiectul nr. 6
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere naturale distincte, de cel mult 4 cifre
fiecare, separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, toate numerele din ir, separate prin cte un spaiu;
b) s afieze pe ecran, pe linii diferite, cel mai mic numr din ir i poziia acestuia;
c) s scrie n fiierul atestat.out separate prin cte un spaiu, toate numerele perfecte din
irul dat (dac nu exist astfel de numere, se va se va afia mesajul NU EXIST NUMERE
PERFECTE). Un numr este perfect dac este egal cu suma divizorilor lui, exceptndu-l pe
el nsui, de exemplu: 6 = 1+2+3.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
6
28

11

Date de ieire:
81

496

100

a)
b)

28
6
5

11

81

496

100

Fiierul atestat.out conine:


c)

28

496

Subiectul nr. 7
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere naturale distincte, de cel mult 4 cifre
fiecare, separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, toate numerele din ir, separate prin cte un spaiu;
b) s afieze pe ecran, pe linii diferite, cel mai mare numr din ir i poziia acestuia;
c) s scrie n fiierul atestat.out separate prin cte un spaiu, numerele supraperfecte din
irul dat (dac nu exist astfel de numere, se va se va afia mesajul NU EXIST NUMERE
SUPRAPERFECTE). Un numr este supraperfect dac este mai mic dect suma divizorilor
lui, exceptndu-l pe el nsui, de exemplu: 12<1+2+3+4+6.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
6
22

12

Date de ieire:
121

20

18

a)
b)

13

c)

22
121
3

12

121

20

18

13

Fiierul atestat.out conine:


12

20

18

Subiectul nr. 8
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere naturale, de cel mult 4 cifre fiecare,
separate prin cte un spaiu. irul conine cel puin dou numere pare.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, toate numerele din ir, separate prin cte un spaiu;
b) s afieze pe urmtoarea linie a ecranului, media aritmetic a tuturor numerelor pare din
ir;
c) s scrie n fiierul atestat.out separate prin cte un spaiu, numerele de tip palindrom
din irul dat (dac nu exist astfel de numere, se va afia mesajul NU EXIST). Un numr
este palindrom dac citit de la stnga la dreapta este egal cu numrul citit de la dreapta la
stnga, de exemplu: 33, 141, 2552.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
6
2552

56

Date de ieire:
32

444

46

1221

a)
b)

2552
626

56

32

444

46

1221

Fiierul atestat.out conine:


c)

2552

444

1221

Subiectul nr. 9
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere naturale, de cel mult 4 cifre fiecare,
separate prin cte un spaiu. irul conine cel puin dou numere impare.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, n ordinea invers citirii, toate numerele din ir, separate
prin cte un spaiu;
b) s afieze pe ecran, pe a doua linie, numrul de cifre din care este format fiecare numr
din irul iniial, numerele fiind separate prin cte un spaiu;
c) s scrie n fiierul atestat.out suma tuturor numerelor impare din ir.
Not: Programul va conine cel puin un subprogram util definit de utilizator.
Exemplu:
atestat.in
6
13

555

Date de ieire:
71

242

1001

a)
b)

1001
2

242
3

2
2

71
1

555
3

13
4

Fiierul atestat.out conine:


C)

1640

Subiectul nr. 10
Fiierul atestat.in conine dou linii. Pe prima linie se gsete un numr natural nenul
n, (n<1000), iar pe cea de-a doua linie un ir de n numere naturale, de cel mult 4 cifre fiecare,
separate prin cte un spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze pe ecran, pe prima linie, n ordinea invers citirii, toate numerele din ir, separate
prin cte un spaiu;
b) s afieze pe ecran, pe a doua linie, separate prin cte un spaiu, toate numerele prime din
ir (dac nu exist numere prime n ir, se va afia pe ecran mesajul NU EXISTA);
c) s scrie n fiierul atestat.out suma tuturor numerelor divizibile cu 3 din ir (dac nu
exist se va scrie n fiierul atestat.out mesajul mesajul NU EXISTA NUMERE
DIVIZIBILE CU 3).
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
6
1234

555

Date de ieire:
41

242

11

a)
b)

11
41

242
2

2
11

41

555

1234

Fiierul atestat.out conine:


c)

555

Subiectul nr. 11
Fiierul atestat.in conine pe prima linie numrul n, natural nenul (2<n<20), ce
reprezint numrul de linii ale unei matrice ptratice A. Pe fiecare din urmtoarele n linii, sunt
scrise cte n numere naturale, formate din exact 2 cifre fiecare, separate prin cte un spaiu,
reprezentnd valorile elementelor matricei ptratice A.
S se scrie un program, n limbajul Pascal/C/C++, care:
a) s afieze pe ecran matricea A, elementele de pe aceeai linie fiind separate prin cte un
spaiu;
b) s modifice matricea A astfel nct toate elementele situate pe diagonala principal s aib
valoarea 22 i s se afieze matricea rezultat pe ecran;
c) s se scrie n fiierul atestat.out separate prin cte un spaiu, toate numerele prime din
matricea modificat. Dac nu exist se va scrie mesajul NU EXIST NUMERE PRIME.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
3
12
35
41

31
67
18

Date de ieire:
24
10
97

a)

12
35
41

31
67
18

24
10
97

b)

22
35
41

31
22
18

24
10
22

c)

Fiierul atestat.out conine:


31 41

Subiectul nr. 12
Fiierul atestat.in conine pe prima linie numrul n, natural nenul (2<n<20), ce
reprezint numrul de linii ale unei matrice ptratice A. Pe fiecare din urmtoarele n linii, sunt
scrise cte n numere naturale, formate din exact 2 cifre fiecare, separate prin cte un spaiu,
reprezentnd valorile elementelor matricei ptratice A.
S se scrie un program, n limbajul Pascal/C/C++, care:
a) s afieze pe ecran matricea A, elementele de pe aceeai linie fiind separate prin cte un
spaiu;
b) s afieze pe urmtoarea linie a ecranului, ultima cifr a produsului tuturor elementelor
matricei A situate sub diagonala principal;
c) s scrie n fiierul atestat.out, separate prin cte un spaiu, toate numerele de tip
palindrom din matricea A. Un numr este palindrom dac numrul citit de la stnga la
dreapta este egal cu numrul citit de la dreapta la stnga, de exemplu: 11, 22, 33. Dac nu
exist astfel de numere se va scrie pe prima linie a fiierului mesajul NU EXIST
NUMERE PALINDROM.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Date de ieire:
Exemplu:atestat.in
3
15
10
12

20
21
40

37
44
15

a)

15
10
12

b)

20
21
40

37
44
15

Fiierul atestat.out conine:


c)

44

Subiectul nr. 13
Fiierul atestat.in conine pe prima linie numrul n, natural nenul (2<n<20), ce
reprezint numrul de linii ale unei matrice ptratice A. Pe fiecare din urmtoarele n linii, sunt
scrise cte n numere naturale, formate din cel mult 4 cifre fiecare, separate prin cte un spaiu,
reprezentnd valorile elementelor matricei A.
S se scrie un program, n limbajul Pascal/C/C++, care:
a) s afieze pe ecran matricea A, elementele de pe aceeai linie fiind separate prin cte un
spaiu;
b) s afieze pe urmtoarea linie a ecranului suma elementelor matricei A situate pe
diagonala secundar;
c) s scrie n fiierul atestat.out separate prin cte un spaiu, toate numerele perfecte din
matricea A. Un numr este perfect dac este egal cu suma divizorilor lui pozitivi,
exceptndu-l pe el nsui, de exemplu: 28=1+2+4+7+14. Dac exist mai multe astfel de
numere, se va afia unul singur, oricare dintre ele, altfel, dac nu exist, se va scrie pe
prima linie a fiierului mesajul NU EXIST NUMERE PERFECTE.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
3
12
35
28

31
67
18

Date de ieire:
24
10
97

a)

12
35
28

b)

119

31
67
18

24
10
97

Fiierul atestat.out conine:


c)

28

Subiectul nr. 14
Fiierul atestat.in conine pe prima linie numrul n, natural nenul (2<n<20), ce
reprezint numrul de linii ale unei matrice ptratice A. Pe fiecare din urmtoarele n linii, sunt
scrise cte n numere naturale, formate din cel mult 9 cifre fiecare, separate prin cte un spaiu,
reprezentnd valorile elementelor matricei A.
S se scrie un program, n limbajul Pascal/C/C++, care:
a) s afieze pe ecran matricea A, elementele de pe aceeai linie fiind separate prin cte un
spaiu;
b) s modifice matricea A prin atribuirea valorii 2 tuturor elementelor situate pe ultima coloan
a matricei i apoi s afieze matricea rezultat pe ecran;
c) s scrie n fiierul atestat.out separate prin cte un spaiu, toate ptratele perfecte din
matricea A. Un numr natural x este ptrat perfect dac exist un alt numr natural y astfel
nct x=y2, de exemplu 16 este ptrat perfect (42 =16). Dac nu exist, astfel de numere
se va scrie pe prima linie a fiierului mesajul NU EXIST PTRATE PERFECTE.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
3
8
35
5

36
67
311

Date de ieire:
101
10
7

a)

8
35
5

36
67
311

101
10
7

b)

8
35
5

36
67
311

2
2
2

Fiierul atestat.out conine:


c)

36

Subiectul nr. 15
Fiierul atestat.in conine pe prima linie numrul n, natural nenul (2<n<20), ce
reprezint numrul de linii ale unei matrice ptratice A. Pe fiecare din urmtoarele n linii, sunt
scrise cte n numere ntregi, formate din cel mult 9 cifre fiecare, separate prin cte un spaiu,
reprezentnd valorile elementelor matricei A.
S se scrie un program, n limbajul Pascal/C/C++, care:
a) s afieze pe ecran matricea A, elementele de pe aceeai linie fiind separate prin cte
un spaiu;
b) s citeasc de la tastatur un numr natural k de cel mult 9 cifre i s verifice dac
acesta se gsete n matricea A, afinduse pe ecran un mesaj corespunztor;
c) s modifice matricea A prin atribuirea valorii 0 tuturor elementelor situate pe ultima linie
a matricei i apoi s se scrie n fiierul atestat.out matricea rezultat, elementele de pe
aceeai linie fiind separate prin cte un spaiu.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
3
-1
13
5

311
-9
-92

Date de ieire:
234
67
4

Se citete de la tastatur k = 13

a)

-1
13
5

b)

DA

c)

Fiierul atestat.out conine:


-1
13
0

311
-9
-92

311
-9
0

234
67
4

234
67
0

Subiectul nr. 16
Fiierul atestat.in conine pe prima linie numrul n, natural nenul (2<n<20), ce
reprezint numrul de linii ale unei matrice ptratice A. Pe fiecare din urmtoarele n linii, sunt
scrise cte n numere ntregi, formate din cel mult 9 cifre fiecare, separate prin cte un spaiu,
reprezentnd valorile elementelor matricei A. (numerotarea liniilor i coloanelor ncepe de la 1)
S se scrie un program, n limbajul Pascal/C/C++, care:
a) s afieze pe ecran matricea A, elementele de pe aceeai linie fiind separate prin cte un
spaiu;
b) s afieze pe urmtoarea linie a ecranului, suma tuturor elementelor pare din matricea A;
c) s citeasc de la tastatur un numr natural k (0<kn), s determine i s scrie pe prima
linie a fiierului atestat.out elementul minim de pe linia k a matricei A.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
3
15
4
-19

266
23
-87

Date de ieire:
-9
56
111

Se citete de la tastatur k = 2

a)

15
4
-19

266
23
-87

-9
56
111

b)

326

c)

Fiierul atestat.out conine:


4

Subiectul nr. 17
Fiierul atestat.in conine pe prima linie numrul n, natural nenul (2<n<20), ce
reprezint numrul de linii i de coloane ale unei matrice, iar pe urmtoarele n linii cte n numere
reale separate prin cte un spaiu, reprezentnd elementele matricei. (numerotarea liniilor i
coloanelor ncepe de la 1)
S se scrie un program, n limbajul Pascal/C/C++, pentru:
a) s afieze pe ecran matricea A, elementele de pe aceeai linie fiind separate prin cte
un spaiu;
b) s afieze pe urmtoarea linie a ecranului, media aritmetic a elementelor de pe
diagonala principal;
c) s determine suma elementelor matricei situate pe linia k, unde k (0<kn) este un
numr natural citit de la tastatur i s scrie n fiierul atestat.out valoarea acestei
sume.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in
3
1.29
3.1
-9.9

12.4
23.2
8.5

Date de ieire:
a)

9.46
-5.6
-8.2

b)

Se citete de la tastatur k=2

1.29
3.1
-9.9

12.4
23.2
8.5

9.46
-5.6
-8.2

5.43

Fiierul atestat.out conine:


c)

20.7

Subiectul nr. 18
Fiierul atestat.in conine o singur linie pe care se afl scris un text format din cel mult
70 de caractere care conine cuvinte separate de un spaiu. Fiecare cuvnt este format din litere
mari sau mici ale alfabetului limbii engleze, sau din cifre. Primul i ultimul caracter ale textului sunt
diferite de caracterul spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze textul pe o singur linie a ecranului, numai cu litere mari;
b) s afieze pe urmtoarea linie a ecranului numrul de consoane din text;
c) s scrie n fiierul atestat.out numrul cuvintelor din text.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in

Creierul calculatorului este microprocesorul

Date de ieire:

a) CREIERUL CALCULATORULUI ESTE MICROPROCESORUL

- pe ecran :

b) 22

- atestat.out

c) 4

10

Subiectul nr. 19
Fiierul atestat.in conine o singur linie pe care se afl scris un text format din cel mult
70 de caractere care conine cuvinte separate de un spaiu. Fiecare cuvnt este format din litere
mari sau mici ale alfabetului limbii engleze, sau din cifre. Primul i ultimul caracter ale textului sunt
diferite de caracterul spaiu.
S se scrie un program, n limbajul Pascal/C/C++, care:
a) s afieze textul pe o singur linie a ecranului, numai cu litere mari;
b) s afieze pe urmtoarea linie a ecranului numrul de vocale din text;
c) s scrie n fiierul atestat.out numrul de cuvinte din textul iniial care au primul
caracter a.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in

Date de ieire:

Se face sus aerisirea unui cojoc

a) SE FACE SUS AERISIREA UNUI COJOC


b) 15

Fiierul atestat.out conine:


c) 1

Subiectul nr. 20
Fiierul atestat.in conine o singur linie pe care se afl scris un text format din cel mult
70 de caractere care conine cuvinte separate de un spaiu. Fiecare cuvnt este format din litere
mari sau mici ale alfabetului limbii engleze, sau din cifre. Primul i ultimul caracter ale textului sunt
diferite de caracterul spaiu.
S se scrie un program n limbajul Pascal/C/C++, care:
a) s afieze textul pe o singur linie a ecranului, numai cu litere mici;
b) s afieze pe urmtoarea linie a ecranului, numrul de cuvinte din care este format textul;
c) s citeasc de la tastatur o liter, s modifice fiecare cuvnt care ncepe cu litera M prin
nlocuirea acesteia cu litera citit de la tastatur i s scrie n fiierul atestat.out textul
modificat.
Not: Programul va conine cel puin un subprogram definit de utilizator.
Exemplu:
atestat.in

Date de ieire:

MARIA ARE UN MAR

a) maria are un mar


b) 4

Se citete de la tastatur litera D

Fiierul atestat.out conine:


c) DARIA ARE UN DAR

11