Sunteți pe pagina 1din 15

Atestat 2016.

Subiecte programare

Atestat 2016. Subiecte programare


1. Fiierul text numere.in conine pe prima linie un numr natural n (0<n<1000), iar pe a doua
linie n numere naturale cu cel mult 9 cifre fiecare, desprite prin cte un spaiu. Scriei un
program C/C++ care citete toate numerele din fiierul numere.in i care:
a) afieaz n fiierul numere.out toate numerele din fiierul de intrare care au toate
cifrele pare;
b) afieaz pe a doua linie a fiierului numere.out cel mai mare numr care are toate
cifrele pare.
Exemplu:
numere.in
numere.out
4
24 2462
23 24 555 2462
2462
2. Fiierul atestat.in conine pe prima linie un numr natural n de cel mult 9 cifre. Scriei un
program C++ care citete din atestat.in numrul n i care scrie n fiierul atestat.out:
a) pe prima linie, cifrele de rang par separate printr-un spaiu (rangul se numeroteaz de
la dreapta la stnga ncepnd cu cifra unitilor care va avea rangul 1);
b) pe a doua linie numrul obinut din n dup ce s-a fcut o permutare circular spre
stnga a cifrelor sale.
Exemplu:
Dac fiierul atestat.in conine:
32245673
atunci atestat.out va avea urmtorul coninut:
7523
22456733
3. n fiierul date.in pe prima linie este memorat un numr natural n iar pe urmtoarea linie
sunt memorate n numere naturale separate prin spaiu, numere de maxim 9 cifre. Se cere:
a) s se afieze pe prima linie a fiierului date.out cel mai mic numr impar i poziia
primei apariii a acestuia. Dac nu exist astfel de numere s se afieze mesajul "NU
EXISTA";
b) s se afieze pe a doua linie a fiierului date.out cel mai mare divizor comun al
primelor dou numere dintre cele n numere naturale din fiierul date.in.
Exemplu:
date.in
date.out
4
33 2
24 33 234 100
3
4. Fiierul date.in conine cel mult 50 de numere naturale, numerele fiind separate prin cte un
spaiu. Fiecare numr are cel mult 4 cifre.
Se cere:
a) scriei un program C/C++ care afieaz pe cte o linie a fiierului date.out, fiecare numr
citit, n ordinea citirii, i divizorii proprii ai acestuia;
b) scriei pe urmtoare linie a fiierului date.out, numrul care are cei mai muli divizori
proprii. n cazul n care exist mai multe valori n fiier care au numr maxim de divizori
proprii, programul va afia cea mai mic valoare dintre acestea.
Exemplu: dac fiierul date.in conine valorile:
23 12 100 36
atunci se va scrie n fiierul date.out:
23
12 2 3 4 6
1

Atestat 2016. Subiecte programare

100 2 4 5 10 20 25 50
36 2 3 4 6 9 12 18
36
pentru c att 100 ct i 36 au numr maxim de divizori proprii, dar 36 este cel mai mic.
4. Fiierul text Numere.in conine cel mult 1000 de numere naturale cu cel mult patru cifre
fiecare, desprite prin cte un spaiu.
Se cere:
a) afiai pe ecran primul numr prim din fiier. Dac fiierul nu conine nici un astfel de
numr, atunci se va scrie mesajul NU EXISTA.
b) afiai factorii primi mpreun cu exponenii lor, din descompunerea n factori primi ai
primului numr din fiierul Numere.in. Afiarea se va face n fiierul Rezultate.out,
fiecare factor i exponentul su pe cte o linie n fiier, separai prin cte un spaiu.
Exemplu: dac fiierul Numere.in are urmtorul coninut:
300 11 44 25 7 13
pe ecran se va afia 11,
iar fiierul Rezultate.out va avea urmtorul coninut:
22
31
52
pentru c 300=22*31*52.
6. n fiierul numere.in sunt memorate cel mult 1000 de numere naturale de cel mult 4 cifre
fiecare.
Scriei un program care citete numerele din fiierul numere.txt i rezolv urmtoarele cerine:
a) scrie pe prima linie a fiierului numere.out cel mai mare numr palindrom din
fiierul numere.in;
b) scrie pe a doua linie a fiierului numere.out, separate prin spaiu, primul i ultimul
numr palindrom din fiierul numere.in.
Exemplu:
numere.in
numere.out
10 101 23 44 676 43 88 201 202 124 141 90 676
101 141
7. Fiierul atestat.in conine dou linii. Pe prima linie este scris un numr natural nenul n,
(5<n<30). Pe cea de-a doua linie a fiierului sunt scrise n numere naturale separate prin cte un
spaiu, formate fiecare din cel mult 4 cifre, reprezentnd un ir de n numere naturale nenule.
Cel puin unul din cele n numere din ir este numr impar.
S se realizeze un program n limbajul C/C++, care scrie n fiierul atestat.out:
a) pe prima linie, separate printr-un spaiu, numrul cifrelor numerelor impare din ir;
b) pe urmtoarea linie a fiierului, cel mai mare divizor comun dintre elementul minim i
cel maxim din ir.
Exemplu:
atestat.in
atestat.out
6
312
1232 243 98 3 242 27
3
8. Din fiierul cmmdc3.in se citete un numr natural n de exact 9 cifre. Numrul n citit se va
mpri apoi n 3 numere, de cte 3 cifre fiecare, spre exemplu: pentru = 123456789, cele 3
numere vor fi: 123, 456, 789.
Se cere:
a) pe prima linie a fiierului cmmdc3.out se vor afia cele 3 numere astfel formate,
separate prin cte un spaiu;
2

Atestat 2016. Subiecte programare

b) pe a doua linie a fiierului cmmdc3.out se va afia cel mai mare divizor comun a
celor 3 numere.
Exemplu:
cmmdc3.in
cmmdc3.out
153006018
153 6 18
3
9. Din fiierul tip1.in se citete un numr natural n cu maxim nou cifre nenule i o cifr par
k. S se scrie n fiierul tip1.out rspunsul la urmtoarele cerine:
a) numrul care se obine prin eliminarea tuturor cifrelor cu valoarea k din x;
b) cel mai mare numr, mai mic dect n, care este o putere a lui k.
Exemplu:
Date de intrare: 1231 2
Date de ieire: pe prima linie a fiierului tip1.out se va scrie 131
pe a doua linie a fiierului tip1.out se va scrie 1024
10. Fiierul text numere.in conine pe prima linie un numr natural n (0<n<1000), iar pe a doua
linie n numere naturale cu cel mult 9 cifre fiecare, desprite prin cte un spaiu. Scriei un
program C/C++ care citete toate numerele din fiierul numere.in i care:
a) scrie pe prima linie n fiierul de ieire numere.out, separate prin cte un spaiu,
numerele palindrom de pe a doua linie a fiierului numere.in;
b) scrie pe a doua linie n fiierul numere.out, n ordine cresctoare numerele palindrom
care au un numr impar de cifre de pe a doua linie a fiierului numere.in.
Exemplu:
numere.in

numere.out

8
53135 3113 61556 373 54 239932 313 122

53135 3113 373 239932 313


313 373 53135

11. Fiierul puncte.txt conine cel mult 1000 de linii, pe fiecare linie fiind scrise cte dou
numere ntregi nenule semnificnd coordonatele unor puncte n plan.
Scriei un program care citete coordonatele punctelor din fiierul puncte.txt i afieaz pe
ecran, separate prin spaiu, dou valori determinate astfel:
a) prima valoare reprezint numrul de valori care se afl n cadranul I;
b) a doua valoare reprezint distana maxim existent ntre dou puncte.
Exemplu:
puncte.txt
1 1
10 1
-1 1

ecran
2 11

12. Fiierul fractii.txt conine pe prima linie un numr n cu cel mult dou cifre iar pe
urmtoarele n linii cte dou numere naturale nenule semnificnd numrtorul i numitorul unei
fracii. Scriei un program care citete datele din fiierul fractii.txt i afieaz pe ecran, separate
prin spaiu, dou valori determinate astfel:
a) prima valoare reprezint numrul de fracii ireductibile scrise n fiierul fractii.txt;
b) a doua valoare reprezint cel mai mic numitor comun al tuturor fraciilor.
Exemplu:
Dac fiierul fractii.txt are urmtorul coninut:
4
23
46
24
11 6
3

Atestat 2016. Subiecte programare

atunci pe ecran se vor afia valorile: 2 12 deoarece sunt dou fracii ireductibile i cel mai mic
numitor comun al tuturor fraciilor este 12.
13. Fiierul atestat.in conine pe prima linie numrul natural nenul n (2<n<10). Pe fiecare
dintre urmtoarele n linii sunt scrise cte trei numere reale x , y i r, reprezentnd coordonatele
carteziene ale centrului unui cerc din planul xOy i raza acestuia. Cele trei numere x, y i r sunt
separate prin cte un spaiu.
S se scrie un program, n limbajul /C/C++, care scrie n fiierul atestat.out:
a) coordonatele carteziene ale centrelor cercurilor din planul xOy i raza acestora, sub
forma (x, y, r) (abscis, ordonat, raz), cte unul pe linie, n ordinea cresctoare a
razelor;
b) pe linia urmtoare, numrul de cercuri care au centrul situat pe prima bisectoare. Un
punct se afl situat pe prima bisectoare atunci cnd abscisa i ordonata acestuia sunt
egale.
Exemplu:
atestat.in
atestat.out
5
(1,3,1)
131
(3,3,2)
447
(6,2,3)
255
(2,5,5)
332
(4,4,7)
623
2
14. La un magazin sunt cel mult n produse fiecare produs fiind identificat prin cod, pre,
cantitate (numere naturale de maxim 4 cifre) i denumire(maxim 20 litere i spaii). n fiierul
tip5.in pe prima linie se afl n numrul de produse iar pe urmtoarele n linii, datele pentru
fiecare produs( cod, pre cantitate i denumire). S se realizeze un program C++ care s afieze
n fiierul de ieire tip5.out:
a) pe prima linie, lista denumirii produselor cu cantitatea mai mare ca 10, separate prin
virgul, sau mesajul NU EXISTA;
b) pe urmtoarele linii se va scrie lista produselor ordonat descresctor dup pre ( cod,
denumire, pre i cantitate) i la final pe o linie nou valoarea total a stocului de marf.
Exemplu:
tip5.in
3
11 3 20 unt
2 2 5 apa
6 4 11 paste

tip5.out
unt, paste
6 paste 4 11
11 unt 3 20
2 apa 2 5
114

15. ntr-o clas sunt maxim 30 elevi, fiecare elev fiind identificat prin nume i prenume. Elevul
poate primi pe semestru la o disciplina maxim 5 note. Dac are mai puin de 5 note, notelor
lips li se va atribui valoarea 0. Datele sunt citite din fiierul de intrare elev.in astfel: pe prima
linie numrul n de elevi iar pe urmtoarele n linii atributele pentru fiecare elev (notele urmate
de numele i prenumele). S se realizeze un program C++ care s afieze n fiierul de ieire
elev.out mediile elevilor din clas la acea disciplina(medie urmat de nume i prenume) n
ordinea:
a) descresctoare a mediilor, pe primele n linii;
b) alfabetic a numelui i prenumelui, pe urmtoarele n linii.
Exemplu:
elev.in

elev.out
4

Atestat 2016. Subiecte programare

3
5 5 5 5 0 Pop Vasile
6 6 0 6 6 Aldea Maria
0 0 7 7 7 Bran Ion

7.00 Bran Ion


6.00 Aldea Maria
5.00 Pop Vasile
6.00 Aldea Maria
7.00 Bran Ion
5.00 Pop Vasile

16. Fiierul text numere.in conine pe prima linie un numr natural n (0<n<1000), iar pe a doua
linie n numere naturale cu cel mult 9 cifre fiecare, desprite prin cte un spaiu. Scriei un
program C/C++ care citete toate numerele din fiierul numere.in i care:
a) afieaz pe prima linie n fiierul numere.out suma cifrelor fiecrui numr din
fiierul de intrare;
b) afieaz pe a doua linie n fiierul numere.out numerele care au suma cifrelor
maxim.
Exemplu:
numere.in
3
82 500 1234

numere.out
10 5 10
82 1234

17. Fiierul atestat.in conine dou linii. Pe prima linie este scris un numr natural n nenul
(n<=50) iar pe a doua linie sunt scrise n numere naturale nenule de cel mult 9 cifre separate
prin cte un spaiu. Scriei un program C++ care citete din atestat.in numrul n i apoi cele n
numere i care scrie n fiierul atestat.out:
a) pe prima linie media aritmetic a numerelor de pe poziii impare din ir;
b) pe a doua linie, n ordine cresctoare elementele distincte ale irului dat.
Exemplu:
Dac fiierul atestat.in conine:
5
4 2 2 2 6
atunci atestat.out va avea urmtorul coninut:
3
2 4 6
18. Fiierul text numere.in conine pe prima linie un numr natural n (0<n<1000), iar pe a doua
linie n numere naturale cu cel mult 9 cifre fiecare, desprite prin cte un spaiu. Scriei un
program C/C++ care citete toate numerele din fiierul numere.in, construiete un vector cu
aceste numere, i care:
a) scrie pe prima linie n fiierul de ieire numere.out, mesajul DA dac numerele din
vector sunt prime ntre ele dou cte dou i mesajul NU n caz contrar;
b) n cazul n care numerele din vector nu sunt prime ntre ele dou cte dou, eliminai
din vector numere astfel nct elementele rmase s fie prime ntre ele dou cte dou.
Vectorul obinut se va scrie pe a doua linie a fiierului de ieire numere.out. n cazul
n care vectorul reprezenta o mulime se va scrie nemodificat.
Exemplu:
numere.in
numere.out
7
NU
5 131 56 14 55 456 513
5 131 14 55 456

Atestat 2016. Subiecte programare

19. Fiierul atestat.in conine dou linii. Pe prima linie este scris un numr natural nenul n,
(5<n<30). Pe cea dea doua linie a fiierului sunt scrise n numere naturale separate prin cte
un spaiu, formate fiecare din cel mult 4 cifre, reprezentnd un ir de n numere naturale. irul
conine cel puin dou numere impare.
S se scrie un program care:
a) s afieze pe ecran, n linie, n ordinea invers citirii, toate numerele din ir, separate
prin cte un spaiu;
b) s afieze pe ecran, n linie, numrul de cifre din care este format fiecare numr din irul
iniial, separate prin cte un spaiu.
Exemplu:
Dac fiierul atestat.in conine:
6
13 555 71 2 242 1001
Se va afia pe ecran:
1001 242 2 71 555 13
232134
20. Numim prefix al unui numr natural x orice ct nenul obinut prin mprirea ntreag a lui
x la o putere a lui 10.
Fiierul numere.in conine pe o singur linie un ir de cel mult 100 de numere naturale cu
maxim 9 cifre, separate prin cte un singur spaiu.
Scriei un program care citete valorile din fiierul numere.in i scrie n fiierul numere.out:
a) pe prima linie o valoare ce reprezint numrul de valori care au un prefix divizibil cu
10;
b) pe a doua linie dou valori semnificnd prima pereche de numere consecutive, citite
din fiierul numere.in, cu proprietatea c primul numr citit are un prefix egal cu al
doilea numr.
Exemplu: Prefixele numrului 12546 sunt 12546, 1254, 125, 12, 1.
Dac fiierul numere.in conine pe prima linie valorile:
103 234 567 613 61 100 345 2103 21
atunci fiierul numere.out va avea urmtorul coninut:
3
613 61
deoarece sunt trei numere care au un prefix divizibil cu 10 i anume 103, 100 i 2103 iar 613
61 este prima pereche de numere citite consecutiv din fiier care are proprietatea cerut.
21. In fiierul date.in, pe prima linie, este memorat un numr natural n, iar pe linia urmtoare
n numere naturale de cel puin 3 cifre i cel mult 9 cifre, cu toate cifrele nenule.
Se cere:
a) scriei un program C/C++ care afieaz pe prima linie a fiierului date.out, valorile
obinute prin eliminarea primei cifre din fiecare dintre cele n numere citite;
b) scriei pe a doua linie a fiierului date.out cel mai mare numr obinut din prima cifr
distinct a fiecrui numr din cele n citite.
Exemplu: dac se citete pentru n valoarea 4 i de pe rndul urmtor valorile
234 1567 278 5673
se obine n fiierul date.out:
34 567 78 673
521
22. Fiierul text Numere.txt conine pe prima linie dou numere naturale, n (0<n<100) i k
(0<k<15), i pe urmtorul rnd n numere naturale, numerele de pe acelai rnd fiind
separate prin cte un spaiu.
6

Atestat 2016. Subiecte programare

a) Verificai dac cifrele primului numr scris pe a doua linie n fiierul Numere.txt au
aceeai paritate (toate pare sau toate impare), i afiai pe ecran un mesaj corespunztor
(DA sau NU).
b) Scriei un program care afieaz n fiierul de ieire Numere.out, n ordine
cresctoare, separate de cate un spaiu, acele numere din fiierul Numere.txt care au
cel puin k divizori proprii. Dac un numr care corespunde cerinei apare de mai multe
ori, se va afia o singur dat.
Exemplu: dac fiierul Numere.txt are urmtorul coninut:
49
15 36 24 33 36 1 12 1 2
fiierul Numere.out va conine :
12 24 36
Pe ecran se va afia DA (deoarece 1 i 5 sunt de aceeai paritate).
23. Fiierul atestat.in conine dou linii. Pe prima linie este scris un numr natural nenul n
(5<n<30). Pe cea de-a doua linie a fiierului sunt scrise n numere naturale separate prin cte un
spaiu, formate fiecare din cel mult 4 cifre i cel puin 2 cifre, reprezentnd un ir de n numere
naturale. Cel puin unul din cele n numere din ir este numr par.
S se scrie un program, care preia valorile din fiierul atestat.in i scrie n fiierul
atestat.out:
a) pe prima linie, separate printr-un spaiu, toate numerele pare din ir n ordinea
descresctoare a valorii lor;
b) pe a doua linie, separate prin cte un spaiu, toate numerele supraperfecte din irul citit
din fiier. Un numr natural se numete supraperfect dac suma divizorilor si,
exceptnd numrul nsui, este mai mare dect numrul dat, de exemplu:
18<1+2+3+6+9. Dac nu exist astfel de numere, se va scrie pe a doua linie a fiierului
mesajul NU EXISTA NUMERE SUPRAPERFECTE.
Exemplu:
atestat.in
atestat.out
6
6138 496 18 12
6138 12 496 2523 18 1243
6138 12 18
24. Fiierul text numere.in conine pe prima linie un numr natural n (0<n<1000), iar pe a doua
linie n numere naturale cu cel mult 9 cifre fiecare, desprite prin cte un spaiu.
Scriei un program care citete numerele din fiierul numere.in i rezolv urmtoarele
cerine:
a) verific dac numerele de pe a doua linie sunt n ordine cresctoare i scrie pe prima
linie a fiierului numere.out unul din mesajele Da sau Nu;
b) scrie pe a doua linie a fiierului numere.out cel mai mare numr care se poate forma
cu prima cifr a fiecrui numr de pe a doua linie a fiierului numere.in.
Exemplu:
numere.in
numere.out
12
Nu
10 301 23 44 676 43 88 201 702 124 147 90 986744322111
25. De pe prima linie a fiierului cifre.in se citete un numr natural nenul n de maxim 18 cifre.
a) Pe prima linie a fiierului cifre.out se va afia suma cifrelor i cifra maxim, separate
prin spaiu;
b) Pe a doua linie a fiierului cifre.out se vor afia frecvenele cifrelor numrului n n
ordine cresctoare a cifrelor, separate prin cte un spaiu.
Exemplu:
7

Atestat 2016. Subiecte programare

cifre.in
32490396303754

cifre.out
58 9
2 0 1 4 2 1 1 1 0 2

26. Fiierul text numere.in conine, cel mult un milion de numere naturale nenule cu cel mult
9 cifre fiecare. Scriei programul C++ care:
a) scrie pe prima linie n fiierul de ieire numere.out, cel mai mare numr care este
termen al irului lui Fibonacci. Dac nu exist astfel de numere se va scrie mesajul "NU
EXISTA";
b) scrie pe a doua linie n fiierul de ieire numere.out, n ordine cresctoare, toate
numerele din fiierului de intrare, care sunt termeni ai irului lui Fibonacci.
Exemplu:
numere.in
numere.out
3 434 21 4 144 2 3 56 34 200 5
144
2 3 3 5 21 34 144
27. Fiierul atestat.in conine trei linii. Pe prima linie este scris un numr natural nenul n, (5<n).
Pe cea de-a doua linie a fiierului sunt scrise n numere naturale, separate prin cte un spaiu,
formate fiecare din cel mult 9 cifre i cel puin 2 cifre, reprezentnd un ir de n numere naturale.
Primul numr din ir se gsete pe poziia 1, iar ultimul numr din ir se gsete pe poziia n.
Cel puin unul din cele n numere din ir are cifra zecilor impar. Pe ultima linie este scris un
numr natural k, 1k<n. S se scrie n fiierul atestat.out:
a) pe prima linie, separate printr-un spaiu, toate numerele din ir, care au cifra zecilor
impar;
b) separate prin cte un spaiu elementele din ir dup interschimbarea elementului de pe
poziia k, cu elementul de pe poziia k+1.
Exemplu:
Date de intrare
6
6138 12 496 2523 18 1243
3
Date de ieire:
6138 12 496 18
6138 12 2523 496 18 1243
28. Se citete din fiierul tip2.in de pe prima linie un numr natural n iar pe a doua linie n
numere naturale. Se cere s se afieze n fiierul de ieire tip2.out:
a) valorile cu suma cifrelor un numr par n ordine descresctoare;
b) numerele prime din a doua linie din fiier n ordine cresctoare sau mesajul NU
EXISTA.
Exemplu :
Date de intrare: 5
417 2152 26 664 7
Date de ieire: Pe prima linie a fiierului: 2152 664 417 7
Pe a doua linie a fiierului: 7
29. Se citesc din fiierul vector.in urmtoarele date: pe prima linie un numr natural n
(dimensiunea vectorului ) iar pe a doua linie n numere naturale (elementele vectorului). Se
cere s se afieze n fiierul de ieire vector.out:
a) elementele n ordine descresctoare a primei cifre;
b) elementele n ordine cresctoare dup numrul de apariii a cifrei 1 n reprezentarea
n baza 2 a numerelor. n cazul n care doua numere au acelai numr de cifre egale
cu 1 n reprezentarea lor binara atunci ele vor aprea ordonate descresctor.
Exemplu :
8

Atestat 2016. Subiecte programare

Date de intrare: 5 4 3 15 16 8
Date de ieire: Pe prima linie a fiierului: 16 15 8 5 4 3
Pe a doua linie a fiierului: 16 8 4 5 3 15
30. Din fiierul text tablou.in se citesc: un numr natural n reprezentnd numrul de
componente ale unui vector cu numere naturale nenule cu cel mult 9 cifre fiecare i cele n
componente ale vectorului (n<100).
Se cere:
a) afiai elementele vectorului pe primul rnd al fiierului text tablou.out, ordonate
cresctor;
b) determinai cel mai mare i cel mai mic element din cele n citite care au ultima cifr
par. Acestea se vor afia, separate printr-un spaiu, pe a doua linie a fiierului
tablou.out. Dac nu exist niciun element care s aib ultima cifr par, se va afia
n fiier mesajul Nu exist!.
Exemplu:
tablou.in
5
25 2 42 313 122

tablou.out
2 25 42 122 313
122 2

31. Pe prima linie a fiierului atestat.in se afl un numr natural n, iar pe urmtoarele n linii
cte n numere naturale de maxim 2 cifre separate prin spaii reprezentnd elementele unui
tablou bidimensional. Scriei un program C++ care citete din atestat.in numrul n i apoi
elementele tabloului i care scrie n fiierul atestat.out:
a) scrie pe prima linie numrul de numere prime situate sub diagonala secundar; dac
nu este niciun numr prim se va scrie nu exist. (un numr natural n>=2 se
numete prim dac nu are ali divizori dect 1 i el nsui);
b) scrie pe a doua linie, separate de cte un spaiu, elementele distincte ale tabloului,
n ordine cresctoare.
Exemplu :
Daca fiierul atestat.in conine:
4
6 4 4 1
2 6 8 1
0 4 2 2
8 6 7 4
atunci atestat.out va avea urmtorul coninut:
3
0 1 2 4 6 7 8
32. O matrice ptratic, A, de dimensiune n, cu p elemente naturale nenule, este memorat
economic n fiierul de intrare Matrice.txt sub urmtoarea form: pe prima linie a fiierului se
gsesc dou numere, n i p, dimensiunea matricei respectiv numrul de elemente nenule, iar
pe urmtoarele p linii triplete de numere naturale (v, l, c) care reprezint valoarea, linia respectiv
coloana pe care se gsesc elementele nenule.
Se cere:
a) scriei un program care citete informaiile din fiierul de intrare, reface i scrie n
fiierul de ieire Matrice.out matricea A;
b) un numr este considerat perfect dac este egal cu suma tuturor divizorilor si
naturali. Ex : 6 =1+2+3 ; 28=1+2+4+7+14 . Verificai dac suma elementelor nenule ale
matricei este un numr perfect i afiai pe ecran un mesaj corespunztor (DA sau NU).
Exemplu: dac fiierul Matrice.txt are urmtorul coninut:
9

Atestat 2016. Subiecte programare

5 8
1 1 1
5 1 2
1 2 3
3 2 5
4 3 2
4 4 1
2 4 3
8 5 4
atunci fiierul Matrice.out va avea urmtorul coninut:
1 5 0 0 0
0 0 1 0 3
0 4 0 0 0
4 0 2 0 0
0 0 0 8 0
Pe ecran se va afia DA (deoarece suma este 1+5+1+3+4+4+2+8=28 care este un numr
perfect).
33. Fiierul atestat.in conine pe prima linie un numr natural n (2<n<20), care reprezint
numrul de linii, respectiv numrul de coloane ale unei matrice. Pe fiecare din urmtoarele n
linii, sunt scrise cte n numere ntregi, formate din cel mult 4 cifre, separate prin cte un spaiu,
reprezentnd valorile elementelor matricei.
S se scrie un program, care preia valorile din fiierul atestat.in i scrie n fiierul
atestat.out:
a) pe prima linie, separate printr-un spaiu, numrul de elemente prime de pe fiecare
coloan a matricei;
b) pe a doua linie, mesajul DA dac suma elementelor din zona EST a matricei este un
numr palindrom sau mesajul NU n caz contrar.
Liniile i coloanele matricei vor fi numerotate ncepnd cu 1.
Exemplu:
atestat.in
3
714
462
9 22 193

atestat.out
102
DA

34. Fiierul text matrice.in conine pe prima linie un numr natural n (0<n<20), iar pe
urmtoarele n linii cte n numere ntregi de cel mult patru cifre, separate prin spaiu,
reprezentnd elementele unei matrice cu n linii i n coloane.
Scriei un program care citete datele din fiierul matrice.in i rezolv urmtoarele cerine:
a) scrie pe prima linie a fiierului matrice.out cel mai mare numr situat pe diagonala
secundar a matricei;
b) ordoneaz cresctor elementele de pe diagonala principal a matricei i scrie matricea
rezultat ncepnd cu a doua linie a fiierului matrice.out.
Exemplu:
matrice.in
matrice.out
4
76
10 20 30 40
10 20 30 40
51 82 42 56
51 75 42 56
45 76 90 18
45 76 82 18
32 11 43 75
32 11 43 90
10

Atestat 2016. Subiecte programare

35. Fiierul text matrice.in conine pe prima linie dou numere naturale n i m (0<n<20,
0<m<20), iar pe urmtoarele n linii cte m numere ntregi distincte de cel mult patru cifre,
separate prin spaiu, reprezentnd elementele unei matrice cu n linii i m coloane.
Scriei un program care citete datele din fiierul matrice.in i rezolv urmtoarele cerine:
a) inverseaz elementul maxim cu elementul minim din matrice i scrie matricea rezultat
n fiierul matrice.out, ncepnd cu prima linie;
b) elimin din matrice, linia i coloana pe care se gsete elementul minim i scrie matricea
obinut n fiierul matrice.out, n continuarea matricei de la punctul a) dup o linie
liber.
Exemplu:
matrice.in
matrice.out
43
10 20 30 40
10 20 30 40
51 82 42 90
51 82 42 5
45 76 5 18
45 76 90 18
10 20 30
45 76 90
36. Fiierul atestat.in conine pe prima linie numrul natural nenul n (2<n<20), care reprezint
numrul de linii, respectiv numrul de coloane ale unei matrice A. Pe fiecare din urmtoarele n
linii, sunt scrise cte n numere ntregi, formate din cel mult 4 cifre, separate prin spaii,
reprezentnd valorile elementelor matricei A.
S se scrie un program, n limbajul C/C++, care scrie n fiierul atestat.out:
a) pe prima linie, numrul elementelor numere perfecte din matricea A; Un numr ntreg
a se numete perfect dac este egal cu suma divizorilor mai mici dect el, de exemplu
6=1+2+3. Dac nu exist numere perfecte se va scrie mesajul Nu exista numere
perfecte.
b) Scrie pe urmtoarea linie n fiierul atestat.out, numrul obinut prin adunarea ultimei
cifre a fiecrui numr din prima coloana a matricei A.
Exemplu:
atestat.in
atestat.out
34
35 23 9 6
9 4 2 35
26
57 -58 23 34
34 9 -5 69
6 26 33 28
37. Se citesc din fiierul tip3.in de pe prima linie doua numere naturale n i m iar pe linia
urmtoarea valorile n x m numere naturale de maxim patru cifre reprezentnd elementele unei
matrice. Se cere sa se afieze n fiierul de ieire tip3.out:
a) numrul de ordine al primei linii din matrice ce conine o valoare ce este palindrom
sau mesajul NU EXISTA;
b) s se afieze numrul de valori prime de pe contur.
Exemplu:
Date de intrare: 3 3
12 234 71
131 32 5
12 17 33
Date de ieire: pe prima linie a fiierului: 1
pe a doua linie a fiierului: 4
11

Atestat 2016. Subiecte programare

38. Se citesc din fiierul matrice.in urmtoarele date: pe prima linie 2 numere naturale n i m
(dimensiunile matricei ) iar pe urmtoarele linii valori binare reprezentnd cte un numr
natural reprezentat n baza 2. Se cere sa se afieze n fiierul de ieire matrice.out :
a) numrul de ordine ai primei liniei cu numr maxim de valori 1;
b) s se afieze numerele n baza 10, fiecare pe cate un rnd.
Exemplu:
Date de intrare:
34
1010
1101
0110
Date de ieire: pe prima linie a fiierului: 2
pe a doua linie a fiierului: 10 13 6
39. Se citete din fiierul text linie.in numrul n i un tablou bidimensional a cu n x n (n <50)
elemente numere naturale de cel mult 9 cifre. S se realizeze un program care afieaz n fiierul
text linie.out:
a) liniile cu cele mai multe elemente prime sau mesajul NU EXISTA (pe prima linie);
b) pe a doua linie se vor afia elementele de pe chenarul tabloului n ordine descresctoare.
Exemplu:
linie.in
3
9 4 2
1 2 3
7 5 2

linie.out
3
975432 21

40. Fiierul atestat.in conine pe prima linie un text de maxim 100 de caractere format din
litere, cifre i spaii. Cuvintele sunt separate prin cte un spaiu. Primul caracter este o liter.
Scriei un program C++ care citete din atestat.in irul de caractere i care scrie n fiierul
atestat.out:
a) pe prima linie irul din care s-au eliminat toate caracterele cifr;
b) pe a doua linie a fiierului se vor scrie acele cuvinte care ncep cu o vocal separate
prin cte un spaiu. Dac nu exist astfel de cuvinte se va scrie nu sunt.
Exemplu :
Daca fiierul atestat.in conine:
Gigel are 2 mere si 3 alune
atunci fiierul atestat.out va avea urmtorul coninut:
Gigel are mere si alune
Are alune
41. Fiierul atestat.in conine o singur linie pe care se afl scris un text format din cel mult
200 de caractere, primul caracter fiind liter, iar cuvintele din text sunt separate prin cte un
spaiu. Fiecare cuvnt este format doar din litere mari sau mici ale alfabetului limbii engleze.
S se scrie un program care:
a) s afieze textul pe o singur linie a ecranului, scris cu majuscule;
b) s afieze n fiierul atestat.out numrul consoanelor din text.
Exemplu:
atestat.in
Imi place Informatica
12

Atestat 2016. Subiecte programare

Ecran
IMI PLACE INFORMATICA
atestat.out
10
42. Fiierul sir.in conine pe prima linie un text alctuit din cel mult 250 de caractere, n care
cuvintele sunt formate doar din litere mici ale alfabetului englez i sunt separate prin spaiu.
Se cere:
a) scriei un program C/C++ care citete din fiierul sir.in textul, elimin perechile de
cte dou litere identice, ce apar n ir i le afieaz pe cte o linie a fiierului sir.out;
b) scriei pe linia urmtoare irul obinut dup eliminarea tuturor secvenelor formate din
cte dou litere identice.
Exemplu: dac textul citit din fiier este: aaateeestat inffforrrmatica
se afieaz n fiierul sir.out
aa
ee
ff
rr
atestat informatica
43. Fiierul atestat.in conine o singur linie pe care se afl scris un text format din cel mult
70 de caractere, primul caracter fiind liter, iar cuvintele din text sunt separate prin cte un
spaiu. Fiecare cuvnt este format doar din litere mari sau mici ale alfabetului limbii engleze.
S se scrie un program, care preia valorile din fiierul atestat.in i:
a) afieaz pe ecran: numrul de apariii a primului caracter din text i apoi textul
transformat astfel: litere mari n litere mici i litere mici n litere mari;
b) modific fiecare cuvnt care ncepe i se termin cu o aceeai vocal prin eliminarea
acestei vocale de la nceputul i sfritul cuvntului. Cuvintele astfel modificate se vor
scrie n fiierul atestat.out, pe cte un rnd. Dac nu exist cuvinte care ncep i se
termin cu o aceeai vocal se va scrie pe prima linie a fiierului mesajul NU
EXISTA.
Exemplu:
atestat.in
Date de ieire
Ana ateStaT colaC elevele feReaStra

6 aNA ATEsTAt COLAc ELEVELE FErEAsTRA

Fiierul atestat.out conine:


n
level

44. Fiierul text cuvinte.in conine pe prima linie un numr natural n (0<n<100), iar pe
urmtoarea linie n cuvinte separate prin spaiu i alctuite doar din litere mici ale alfabetului
englez.
Scriei un program care citete datele din fiierul cuvinte.in i rezolv urmtoarele cerine:
a) scrie pe prima linie a fiierului cuvinte.out cuvntul din fiierul cuvinte.in care conine
cele mai multe vocale. n situaia n care exist mai multe cuvinte se va scrie primul
dintre acestea;
b) scrie pe a doua linie a fiierului cuvinte.out, n ordine alfabetic, literele distincte care
apar n fiierul cuvinte.in.
Exemplu:
cuvinte.in
5

cuvinte.out
bacalaureat
13

Atestat 2016. Subiecte programare

examenul de bacalaureat la informatica

abcefilmnotux

45. Fiierul text cuvinte.in conine pe prima linie un text cu maxim 255 de caractere n care
cuvintele sunt formate din litere mici si mari ale alfabetului englez i sunt separate prin spatii.
Scriei un program C/C++ care citete textul din fiierul cuvinte.in, i care :
a) scrie pe prima linie n fiierul de ieire cuvinte.out, numrul de cuvinte din text care
ncep cu litera mare;
b) Scrie pe a doua linie n fiierul de ieire cuvinte.out, separate prin cte un spaiu,
cuvintele de lungime maxim.
Exemplu:
cuvinte.in
cuvinte.out
Ana si Ion merg in excursie la Brasov
3
excursie
46. Din fiierul cuvant3.in se citete un ir de caractere (maxim 255 litere mici ale alfabetului
englez).
a) Pe prima linie a fiierului cuvant3.out se va afia numrul de caractere diferite de spaiu i
numrul de spatii din cadrul irului citit separate printr-un spaiu.
b) Pe urmtoarele linii ale fiierului cuvant3.out se vor afia cuvintele din irul de caractere
ordonate cresctor (cuvintele nu vor conine mai mult de 20 de caractere).
Exemplu:
Dac fiierul cuvant3.in conine irul de caractere el e bun
n fiierul cuvant3.out se va afia:
63
bun
e
el
47. Fiierul text cuvinte.in conine pe prima linie un numr natural n i pe urmtoarele n linii,
n cuvinte cu maxim 25 de litere mici ale alfabetului englez, fiecare cuvnt fiind scris pe cte o
linie. Scriei un program C/C++ care citete cuvintele din fiierul cuvinte.in, i care:
c) scrie pe prima linie n fiierul de ieire cuvinte.out, numrul de cuvinte cu aspect de
palindrom;
d) scrie pe a doua linie n fiierul de ieire cuvinte.out, n ordine lexicografic, separate
prin cte un spaiu, cuvintele cu aspect de palindrom.
Exemplu:
cuvinte.in
cuvinte.out
7
4
mare
capac
carte
cojoc
cojoc
potop
rotor
rotor
potop
tare
capac
48. Se citete din fiierul de intrare tip4.in un cuvnt de maxim 100 de caractere. Sa se scrie
un program C++ care sa afieze n fiierul de ieire tip4.out:
a) prima vocala si numrul ei de apariii(pe prima linie);
b) frecventele de apariii ale consoanelor(pe a doua linie).
14

Atestat 2016. Subiecte programare

Exemplu:
Date de intrare: informatica
Date de ieire: i 2
n1f1r1m1t1c1
49. Fiierul atestat.in conine pe prima linie numrul natural nenul n (5<n<10). Pe o tabl de
ah dou regine se atac dac se afla pe aceeai linie, aceeai coloan sau aceeai diagonal.
S se scrie un program, n limbajul /C/C++, care scrie n fiierul atestat.out :
a) toate modalitile de a aranja n regine pe o tabla de ah cu n linii i n coloane i cte
astfel de modaliti exista. Afiarea pentru o modalitate de aranjare va fi sub forma:
i.
pe prima linie mesajul Soluia numrul x :;
ii.
pe urmtoarele n linii, litera D pentru poziia reginei i caracterul @ pentru
poziiile libere;
b) pe ultima linie din fiierul atestat.out, se va scrie n cte din soluiile de la punctul
a) reginele de pe liniile pare stau pe poziii impare. Dac n nici o soluie nu este
ndeplinit aceasta condiie scriei mesajul Nu exista.
Exemplu:
atestat.in
8

atestat.out :
135
Solutia nr 1:
@D@@@@@@
@@@@D@@@
@@@@@@D@
@@@D@@@@
D@@@@@@@
@@@@@@@D
@@@@@@D@
@@D@@@@@
Solutia nr 2 :
.
2

50. Se citesc de la tastatur valorile n, a, b numere naturale. Scriei un program care afieaz
pe ecran pe prima linie toate permutrile mulimii {1,2,,n} care au proprietatea c a i b sunt
consecutive, iar pe a doua linie afiai numrul permutrilor de acest tip.
Exemplu: pentru n=3, a=1 i b=2 se va afia pe ecran:
123 312
2

15

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