Sunteți pe pagina 1din 13

EXAMEN PENTRU OBTINEREA ATESTATULUI PROFESIONAL

anul colar 2009 - 2010


SPECIALIZAREA: MATEMATIC INFORMATIC
JUDEUL GALAI

SUBIECTELE DE PROGRAMARE

Au fost propuse un numr de 40 de probleme de programare care trebuie


rezolvate la clas mpreun cu elevii n timpul anului colar 2009-2010. Toate
problemele propuse se vor regsi n biletele de examen pentru obinerea atestatului
profesional.
Subiectele de programare propuse pentru examenul de atestat profesional
doresc s evalueze elevii n urmtoarele direcii :
1) Identificarea datelor care intervin ntr-o problem i a relaiilor dintre acestea;
2) Elaborarea algoritmilor de rezolvare a problemelor;
3) Aplicarea algoritmilor fundamentali n prelucrarea datelor;
4) Aplicarea n mod creativ a algoritmilor fundamentali n rezolvarea unor probleme
concrete;
5) Implementarea algoritmilor ntr-un limbaj de programare;
6) Identificarea necesitii structurrii datelor n tablouri, structuri, liste;
7) Prelucrarea datelor structurate n tablouri unidimensionale i bidimensionale;
8) Utilizarea fiierelor text pentru introducerea datelor i extragerea rezultatelor;
9) Alegerea celui mai eficient algoritm de rezolvare a unei probleme;
10) Analizarea unei probleme n scopul identificrii datelor necesare i alegerea
modalitilor adecvate de structurare a datelor care intervin ntr-o problem;
11) Identificarea avantajelor utilizrii diferitelor metode de structurare a datelor necesare
pentru rezolvarea unei probleme;
12) Utilizarea tablourilor, a irurilor de caractere i a structurilor de date neomogene n
modelarea unor situaii problem;
13) Implementarea unor algoritmi de prelucrare a tablourilor , a irurilor de caractere i
a structurilor neomogene ;
14) Recunoaterea situaiilor n care este necesar utilizarea unor subprograme;
15) Analiza problemei n scopul identificrii subproblemelor acesteia;
16) Utilizarea corect a subprogramelor predefinite i a celor definite de utilizator;
17) Descrierea i aplicarea mecanismului recursivitii;
18) Descrierea operaiilor specifice listelor simplu nlnuite i elaborarea unor
subprograme care s implementeze aceste operaii;
19) Analizarea n mod comparativ a avantajelor utilizrii diferitelor metode de
structurare a datelor necesare pentru rezolvarea unei probleme;
Subiectul 1

S se descompun un numr natural n (n1.000.000) n factori primi i s se determine factorul


care apare la puterea cea mai mare i factorul care apare la puterea cea mai mic.

Exemplu:
Date de intrare Date de ieire Explicaie
n=3060 2^2 3^2 5^1 17^1 Descompunerea este
17 i 2 22*32*5*17
n=19 19 ^1 19 este numr prim
19 i 19

Subiectul 2

Se citete de la tastatur un numr n100 ir de n numere naturale mai mici dect 1000, x=(x1,
x2, x3,.., xn). Scriei un program care afieaz mesajul da, daca suma numerelor din ir
este un numr prim i nu n caz contrar.

Exemplu:
Date de intrare Date de ieire Explicaie
n=5 da 29 este numr prim
x=(4,3,19,1,2)
n=5 nu 28 nu este numr prim
x=(3,3,19,1,2)

Subiectul 3

Se citete de la tastatur un numr natural n (n500). Se cere s se afieze toate numerele


naturale mai mici sau egale cu n, care au exact 3 divizori.

Exemplu:
Date de intrare Date de ieire Explicaie
n=80 4 9 25 49 Sunt ptratele perfecte ale
numerelor prime

Subiectul 4

Scriei un program care afieaz toate numerele naturale prime de trei cifre, ale cror oglindite
sunt tot numere prime (ex: 183 este numr prim i 381 este tot numr prim).

Subiectul 5

S se afieze numrul format prin eliminarea cifrelor pare ale unui numr n dat
(n<1.000.000.000).

Exemplu:
Date de intrare Date de ieire Explicaie
n=1234567 1357 Am eliminat cifrele pare 2, 4, 6
n=3746801 371 Am eliminat cifrele 4, 6, 8, 0

Subiectul 6
Se citete de la tastatur un numr n100 i apoi n numere naturale 10.000. S se afieze
acele numere dintre cele n care au suma divizorilor un numr prim.

Exemplu:
Date de intrare Date de ieire Explicaie
n=7 289 729 Divizorii lui 123 sunt 1, 3, 41, 123. Suma
123 289 100 54 729 10 999 1+3+41+123=168 nu e prim
Divizorii lui 289 sunt 1, 17, 289.
Suma 1+17+289=307 este numr prim
Divizorii lui 729:
1+3+9+27+81+243+729=1093 prim

Subiectul 7
Se d un vector v cu n elemente de tip intreg, n 20. S se determine vectorii v1 i v2 ai cror
componente ndeplinesc urmtoarele condiii :
v1[i] este format din suma cifrelor lui v[i]
v2[i] este format din produsul cifrelor lui v[i].

Exemplu:
Date de intrare Date de ieire Explicaie
n=5 v1 = (2,4,3,7,11) v[i]=43
v=(2,4,21,34,56) v2 = (2,4,2,12,30) v1[i]=4+3=7
v2[i]=4*3=12

Subiectul 8

Se consider un vector cu n (n100) componente ntregi x=(x1, x2, x3,.., xn). S se afieze
cte elemente din vector au valoarea mai mare dect media aritmetic a componentelor
vectorului.

Exemplu:
Date de intrare Date de ieire Explicaie
n=5 3 Media aritmetic este 8. Elementele mai
x=(4,9,12,5,10) mari ca 8 sunt 9, 12, 10

Subiectul 9

Fie v un vector cu format din n numere ntregi, n100. S se afieze suma maxim ce se poate
obine cu elemente din vectorul v. Numrul de elemente din sum trebuie s fie de cel puin 1.

Exemplu:
Date de intrare Date de ieire Explicaie
n=5 24 Suma maxima este
v=(-4,9,-12,5,10) s=9+5+10=24
n=5 -4
v=(-4, -9,-12, -5, -10)

Subiectul 10
Se citete un vector A cu n componente numere ntregi i un vector B cu m componente
numere ntregi (1 n,m 100). S se afieze cte din componentele vectorului A sunt strict mai
mici dect orice component a lui B.

Exemplu:
Date de intrare Date de ieire Explicaie
n =10 4 Valorile 4, 1, 5 i 3 din A sunt mai
m= 8 mici dect orice element al lui B.
A= ( 4, 8, 1, 9, 5, 11, 3, 43, 6, 20)
B= ( 9, 9 , 6, 9, 9, 8, 6, 9)

Subiectul 11

Se d un vector v cu n elemente numere naturale (1 n 100). Se cere s se afieze numrul


cel mai mare format cu prima cifr a fiecrei componente din v.

Exemplu:
Date de intrare Date de ieire Explicaie
n =4 7221 Primele cifre sunt 2, 7, 1, 2. Cel
v= ( 2341, 789, 1998, 2000) mai mare numr ce se poate
obine cu aceste cifre este 7221

Subiectul 12

S se inverseze cele dou jumti ale unui numr natural n. Dac numrul are un numr impar
de cifre, cifra din mijloc rmne pe loc. (n1.000.000.000)

Exemplu:

Date de intrare Date de ieire Explicaie


123456 456123 n=123456 => n=456123
1234567 5674123 n=1234567 => n=5674123

Subiectul 13

Se citete de la tastatur un numr natural n i un tablou unidimensional cu n numere ntregi


(n100). S se ordoneze cresctor elementele de pe poziiile pare ale tabloului i descresctor
elementele de pe poziiile impare.

Exemplu :

Date de intrare Date de ieire Explicaie


n=11 91 9 1 8 3 7 5 3 7 1 a={1, 5, 7, 3, 9, 1, 8, 7, 3, 1, 9}
a={1, 5, 7, 3, 9, 1, 8, 7, 3, 1, 9} irul a devine:
a={9, 1, 9, 1, 8, 3, 7, 5, 3, 7, 1}

Subiectul 14

Se citete de la tastatur un numr n<50. S se formeze fiierul piramida.txt care s conin


numerele naturale de la 1 la n, dispuse astfel: pe primul rnd un numr, pe al doilea rnd 2
numere, pe al treilea rnd 3 numere etc. Ultimul rnd poate s rmn incomplet. Numerele
vor fi separate printr-un singur spaiu.
Exemplu :
Date de intrare piramida.txt Explicaie
n=19 1 Ultimul rnd e incomplet, doar
23 de 4 numere, pn s-a ajuns la
456 19
7 8 9 10
11 12 13 14 15
16 17 18 19

Subiectul 15

S se determine suma elementelor de sub diagonal principal a unei matrici ptratice de


ntregi, inclusiv elementele de pe diagonala principal. Matricea are n linii i coloane, n20.

Exemplu :
Date de intrare Date de ieire Explicaie
n=4 56 3 7 8 10
3 7 8 10 1 5 2 20
1 5 2 20 7 2 9 13
7 2 9 13 8 9 1 11
8 9 1 11
3+1+5+7+2+9+8+9+1+11=56

Subiectul 16

S se verifice daca elementele unui vector pot forma o mulime. Se va afia DA sau NU.
Vectorul are n elemente numere naturale, n100.

Exemplu :
Date de intrare Date de ieire Explicaie
n=7 DA Elementele sunt distincte
a=(1, 5, 7, 3, 9, 10, 8)

n=7 NU Sunt elemente care se repet.


a=(1, 5, 7, 3, 9, 1, 9)

Subiectul 17

Scriei un program C/C++ care citete de la tastatur dou valori naturale nenule m i n (m10,
n10) i apoi m*n numere naturale nenule cu cel mult 4 cifre fiecare, reprezentnd elementele
unei matrice cu m linii i n coloane. Programul determin apoi valorile minime de pe fiecare linie
a matricei i le afieaz pe o linie a ecranului separate prin cte un spaiu, iar la sfrit valoarea
maxim din irul valorilor minime determinate anterior.

Exemplu :
Date de intrare Date de ieire Explicaie
m=3 362 Cea mai mic valoare de pe
n=5 6 prima linie a matricei este 3,
5 13 7 7 3 cea mai mic valoare de pe
9 6 12 9 10 linia a doua este 6, cea mai
3 2 5 4 7 mic valoare de pe linia a treia
este 2 iar cea mai mare valoare
dintre ele este 6

Subiectul 18

Scriei un program C/C++ care citete de la tastatur un numr natural cu n cifre (cel mult 9
cifre) i construiete n memorie o matrice cu n linii i n coloane, numerotate de la 1 la n,
format astfel:
- elementele de pe linia 1, au toate valoarea egal cu cifra unitilor numrului citit;
- elementele de pe linia 2, au toate valoarea egal cu cifra zecilor numrului citit;
- elementele de pe linia 3, au toate valoarea egal cu cifra sutelor;
etc.
Programul afieaz pe ecran matricea astfel construit, cte o linie a matricei pe cte o linie a
ecranului, elementele de pe aceeai linie fiind separate prin cte un spaiu.

Exemplu :
Date de intrare Date de ieire Explicaie
28731 11111 Cifra unitilor e 1, cifra zecilor
33333 e 3 etc.
77777
88888
22222

Subiectul 19

Se consider o matrice ptratic cu n linii i n coloane (1<n30), ce memoreaz numere ntregi


nenule de cel mult dou cifre fiecare.
Scriei un program C/C++ care citete de la tastatur valoarea n i elementele matricei i care
afieaz pe ecran produsul acelor elemente de pe diagonala secundar care au proprietatea c
sunt valori minime pe coloanele lor. Dac nu exist astfel de elemente n matrice, se va afia
mesajul NU EXISTA.

Exemplu :
Date de intrare Date de ieire Explicaie
n=4 20 3 7 8 10
3 7 8 10 1 5 2 20
1 5 2 20 7 2 9 13
7 2 9 13 8 9 1 11
8 9 1 11
10*2=20
n=4 NU EXISTA
3 7 8 20
1 5 2 20
7 8 9 13
8 9 1 11

Subiectul 20

Scriei un program C/C++ care citete de la tastatur dou numere naturale n i m (m10,
n10), apoi elementele unui tablou bidimensional cu m linii i n coloane, numere ntregi
distincte, de maximum 4 cifre fiecare, i care determin cel mai mic i cel mai mare numr din
tablou i le interschimb. Matricea modificat va fi afiat pe ecran, cte o linie a matricei pe o
linie a ecranului, elementele fiecrei linii fiind separate prin cte un spaiu.

Exemplu :
Date de intrare Date de ieire Explicaie
m=5 2 24 70 8 Cel mai mic element este -5
n=4 3 25 17 9 iar cel mai mare, 70
2 24 -5 8 4 -2 13 10
3 25 17 9 5 14 12 -5
4 -2 13 10 6 57 36 43
5 14 12 70
6 57 36 43

Subiectul 21

S se scrie un program care s sorteze cresctor liniile unei matrice cu m linii i n coloane (m20,
n20) folosind metoda BUBBLESORT. Valorile lui m i n i elementele ei vor fi citite de la
tastatur. Dup sortare matricea se va afia n fiierul f.out.
Exemplu :
Date de intrare Date de ieire
m=4 n=5

4 3 4 2 1 1 2 3 4 4
3 7 12 7 4 3 4 7 7 12
12 3 9 4 1 1 3 4 9 12
81 31 6 10 7 6 7 10 31 81

Subiectul 22

Din fiierul f.in se citete de pe prima linie un numr natural n (n<=20) reprezentnd numrul
de linii respectiv de coloane ale unei matrice ptratice, iar de pe urmtoarele n linii se citesc
elementele matricei. S se afieze matricea, s se precizeze cte numere prime se afl sub
diagonala principal i cate numere ptrate perfecte sunt deasupra diagonalei principale.

Exemplu :
Date de intrare Date de ieire Explicaie
5 3 15 12 3 9 Sub diagonala principala sunt
3 15 12 3 9 6 21 18 4 7 patru numere prime: 23,
6 21 18 4 7 12 9 17 5 10 3,31,7
12 9 17 5 10 42 23 3 15 8
42 23 3 15 8 22 8 31 7 12 Deasupra diagonalei
principale sunt dou ptrate
22 8 31 7 12 4
perfecte:9, 4
2

Subiectul 23
Scriei un program care construiete n memorie o matrice ptratic cu n linii i n coloane (n<=20)
format numai din valori 0,1 i 2 astfel nct elementele de pe diagonala secundar i cea
principal s fie egale cu 0, elementele din Nord si Sud egale cu 1, iar restul elementelor din
matrice s fie egale cu 2. Matricea va fi afiat n fiierul f.out.

Exemplu:
Date de intrare Date de ieire
n=5 01110
20102
22022
20102
01110

Subiectul 24

Se consider fiierul f.in ce conine pe prima linie un numr natural n (n<=20) ce semnific
numrul de linii ale unei matrice ptratice de numere ntregi iar pe urmtoarea linie elementele
matricei n ordinea parcurgerii acesteia pe linii. Afiai pe ecran suma elementelor de pe cele
dou diagonale ale matricei.

Exemplu :
Date de intrare Date de ieire
4 14 18
1234597321096044

Subiectul 25

Fie o matrice A cu n linii i m (n<=20, m<=20) coloane cu elemente numere ntregi (n, m i
elementele matricei se citesc de la tastatur). Se cere s se determine cel mai mare numr de
pe marginea tabloului, precum i de cte ori apare.
Exemplu :
Date de intrare Date de ieire Explicaie
n= 5, m= 4 5 3 Elementele de pe contur sunt:
12341535223531
1234 Cel mai mare numr este 5 i
1511 apare de 3 ori
3785
5383
3225

Subiectul 26

Se citete de la tastatur un numr natural n (n50). Se cere s se formeze i s se afieze


matricea ptratica nxn astfel: prima linie conine numerele de la 1 la n, de la dreapta la stanga;
a doua linie conine urmtoarele n numere naturale, de la stnga la dreapta; a treia linie conine
urmtoarele n numere naturale, de la dreapta la stanga etc.

Exemplu :
Date de intrare Date de ieire Explicaie
n=5 5 4 3 2 1 5 4 3 2 1
6 7 8 9 10 6 7 8 9 10
15 14 13 12 11 15 14 13 12 11
16 17 18 19 20 16 17 18 19 20
25 24 23 22 21 25 24 23 22 21

n=4 4 3 2 1 4 3 2 1
5 6 7 8 5 6 7 8
12 11 10 9 12 11 10 9
13 14 15 16 13 14 15 16

Subiectul 27

Sa se ordoneze alfabetic numele a n copii, (n <=100). Datele de intrare se vor citi de la


tastatura.

Exemplu :
Date de intrare Date de ieire
n= 4 alecu
IoAn Gigel
VasiLE IoAn
Gigel VasiLE
alecu

Subiectul 28

Sa se verifice dac doua cuvinte citite de la tastatur sunt anagrame. Se va afia Da sau NU
Cuvintele pot conine maximum 20 de caractere reprezentnd litere mari sau mici ale alfabetului
englez.

Exemplu :
Date de intrare Date de ieire Explicaie
ATLASE DA Dou cuvinte sunt anagrame
TESALA dac au aceleai litere dar
sunt scrise n alt ordine
ATLASE NU
TESELA

Subiectul 29

Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a doua
linie n cifre, separate prin cte un spaiu.Scriei un program C/C++ care determin cea mai
mare cifr dintre cele situate pe a doua linie a fiierului numere.txt i numrul de apariii ale
acesteia. Valorile determinate se vor afia pe ecran, separate printr-un spaiu.
Exemplu :
Date de intrare Date de ieire
12 92
253195892734

Subiectul 30

Fiierul numere.txt conine pe prima linie un numr natural n (n100), iar pe a doua linie,
separate prin cte un spaiu, n numere naturale nenule, cu cel mult 4 cifre fiecare. Scriei
programul C/C++ care citete de la tastatur un numr natural k (k25), construiete n
memorie i afieaz pe ecran un tablou unidimensional ce conine, n ordinea n care au fost
citite, numerele de pe a doua linie a fiierului numere.txt care au cel puin k divizori.

Exemplu :
Date de intrare Date de ieire
n=6 100 400 56
100 9 400 56 7 10
k=5

Subiectul 31

Scriei un program C/C++ care citete de la tastatur un cuvnt format din cel mult 20 de
caractere, doar litere ale alfabetului englez (cel puin o majuscul i cel puin o liter mic).
Programul determin transformarea cuvntului citit prin eliminarea fiecrei litere mici a
cuvntului, restul literelor nemodificndu-se, ca n exemplu. Programul afieaz pe ecran
cuvntul obinut.

Exemplu :
Date de intrare Date de ieire
baCALaUreaT CALUT

Subiectul 32

Scriei un program C/C++ care citete de la tastatur un ir de cel mult 500 de caractere (litere
mici i mari ale alfabetului englez, cifre, puncte, virgule i spaii) i afieaz pe ecran cifra care
apare de cele mai multe ori n irul citit. Dac irul conine mai multe cifre cu numr maxim de
apariii, atunci se va afia cea mai mic dintre acestea. Dac irul nu conine cifre, se va afia
pe ecran mesajul NU.

Exemplu :
Date de intrare Date de ieire Explicaie
Va lua 9,5 la matematica 10 la informatica 0 0 i 1 apar de cele mai
si 10 la romana multe ori n ir i 0 este
cea mai mic dintre ele

Subiectul 33

S se afieze toate prefixele unui cuvnt citit de la tastatur format din cel mult 20 de caractere,
doar litere ale alfabetului englez.
Exemplu :
Date de intrare Date de ieire
Informatica Informatic
Informati
Informat
Informa
Inform
Infor
Info
Inf
In
I

Subiectul 34

Se citesc de la tastatura n cuvinte (n10), fiecare cuvnt avnd lungimea de cel mult 25
caractere. Sa se afieze cuvintele care ndeplinesc condiia de palindrom (un cuvnt se
numete palindrom dac prin parcurgere de la stnga la dreapta i prin parcurgere de la
dreapta la stnga genereaz aceeai valoare).

Exemplu :
Date de intrare Date de ieire
n=4 sas bob
sas cana bob daca

Subiectul 35

Se consider fiierul text UNU.txt care conine informaii scrise pe mai multe linii. Copiai n
fiierul DOI.txt coninutul liniilor cu numr de ordine impar.

Exemplu :
Date de intrare Date de ieire Explicaie
Aceasta este prima linie Aceasta este prima linie S-au copiat prima linie, a
23 67 informatica #1234 ABCD III-a i a V-a linie
#1234 ABCD linia cinci
1234567
linia cinci
ultima linie

Subiectul 36

Elaborai un program care scrie n fiierul text LITERE.txt toate irurile formate din trei caractere
distincte, litere mici ale alfabetului englez. irurile vor fi separate prin caracterul spaiu.

Subiectul 37
Fiierul ATESTAT.txt conine n numere naturale(2n 230)(cel puin dou numere pare) cu cel
mult 9 cifre fiecare. Scriei un program care afieaz pe ecran penultimul numr par citit din
fiier, precum i numrul de ordine al acestuia. Utilizai un algoritm eficient din punct de vedere
al memoriei utilizate precum i al timpului de execuie. De pe prima linie a fiierului
ATESTAT.txt se citete numrul natural n. De pe urmtoarele n linii se vor citi cele n numere
naturale.

Exemplu:
Date de
intrare Date de ieire
ATESTAT.txt Explicaii
5
10 n=5 ( se citesc 5 numere naturale de
pe de pe urmtoarele 5 linii ale fiie-
11 rului de intrare)
12
13 Primul numr citit este 10, al doilea 11,..., al 12 3
14 cincilea numr este 15.
15
Ultimul numr par citit este 14, iar penultimul este
12.
Se va afia numrul 12. Acesta este al treilea
numr citit din fiierul de intrare.

Subiectul 38

Se citete de la tastatur o fraz cu maxim 250 de caractere. Se cere s se afieze cte semne
de punctuaie sunt. Semne de punctuaie se consider . , : ; - ? !

Exemplu:
Date de intrare Date de ieire Explicaie
Nu-i rau, mai Stefane, sa stie si 19 Cele 19 semne de punctuaie
baiatul tau oleaca de carte. sunt:
Cartea iti aduce si oarecare -,,..,,,.,,,---.,,?
mangaiere. Eu, sa nu fi stiut a
citi, de mult as fi nnebunit,
cate am avut pe capul meu. Ei,
mai Stefane si Smaranduca,
mai ramaneti cu sanatate, ca
eu m-am dusu-m-am. Hai,
nepoate, gata esti?

Subiectul 39

n fiierul poezie.in este scris o poezie. Se cere s se afieze pe ecran cel mai lung vers.
Dac sunt mai multe versuri de lungime maxim, se va afia doar primul dintre ele. Se numr
toate caracterele, inclusiv spaiile i semnele de punctuaie (un vers nu poate depi 200 de
caractere).
Exemplu:
poezie.in Date de ieire Explicaie
Vine melcul suparat Date-ncolo, nu-mi sta-n drum Cel mai lung vers are 28
O furnica l-a piscat de caractere
Si cum vine, pas-pas-pas
Se-ntalni cu-n carabus
Striga melcu-n gura mare:
- Nu te mai praji la soare,
Date-ncolo, nu-mi sta-n drum
Ca te iau in coarne-acum.

Subiectul 40

Se citete de la tastatur un text cu maxim 250 de caractere. S se afieze pe ecran textul


obinut prin nlocuirea tuturor vocalelor cu litera a sau A, dup cum vocala respectiv este
liter mic sau liter mare.

Exemplu:
Date de intrare Date de ieire Explicaie
Stiam sa recunosc si sa Staam sa racanasc sa sa Vocala O a fost nlocuit cu
deosebesc, de la prima daasabasc, da la prama A, restul vocalelor cu a.
vedere, China de Arizona. vadara, Chana da Arazana.
O astfel de abilitate e A astfal da abalatata a
folositoare daca te ratacesti falasataare daca ta
noaptea. ratacasta naaptaa.

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