Sunteți pe pagina 1din 18

EXAMENUL PENTRU OBINEREA ATESTATULUI PROFESIONAL LA

DISCIPLINA INFORMATIC
2016
SUBIECTE DE TIP II - 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:
afieaz n fiierul numere.out toate numerele din fiierul de intrare care au toate cifrele
pare;
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

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:
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;
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
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.

Fiierul text Numere.in conine cel mult 1000 de numere naturale cu cel mult patru cifre
fiecare, desprite prin cte un spaiu.
Se cere:
afiai pe ecran primul numr prim din fiier. Dac fiierul nu conine nici un astfel de
numr, atunci se va scrie mesajul NU EXISTA.
#include<iostream.h>
int prim(int n)
{int prim=1;
for(int d=2;d<=n/2;d++)
if(n%d==0)
prim=0;
if(prim)
return 1;
else
return 0;}
void main()
{int n;
cout<<"n=";cin>>n;
if(prim(n))
cout<<"da";
else
cout<<"nu";}
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:
scrie pe prima linie a fiierului numere.out cel mai mare numr palindrom din fiierul
numere.in;
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:
pe prima linie, separate printr-un spaiu, numrul cifrelor numerelor impare din ir;
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 , cele 3 numere vor fi: , , .
Se cere:
a) pe prima linie a fiierului cmmdc3.out se vor afia cele 3 numere astfel formate,
separate prin cte un spaiu;
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:
numrul care se obine prin eliminarea tuturor cifrelor cu valoarea k din x;
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 373 239932 313
53135 3113 61556 373 54 239932 313 122 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:
prima valoare reprezint numrul de valori care se afl n cadranul I;
a doua valoare reprezint distana maxim existent ntre dou puncte.
Exemplu:
puncte.txt ecran
1 1 2 11
10 1
-1 1

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:
prima valoare reprezint numrul de fracii ireductibile scrise n fiierul fractii.txt;
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
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:
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;
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 tip5.out
3 unt, paste
11 3 20 unt 6 paste 4 11
2 2 5 apa 11 unt 3 20
6 4 11 paste 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
3 7.00 Bran Ion
5 5 5 5 0 Pop Vasile 6.00 Aldea Maria
6 6 0 6 6 Aldea Maria 5.00 Pop Vasile
0 0 7 7 7 Bran Ion 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:
afieaz pe prima linie n fiierul numere.out suma cifrelor fiecrui numr din
fiierul de intrare;
afieaz pe a doua linie n fiierul numere.out numerele care au suma cifrelor
maxim.
Exemplu:
numere.in numere.out
3 10 5 10
82 500 1234 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:
pe prima linie media aritmetic a numerelor de pe poziii impare din ir;
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
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

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:
s afieze pe ecran, n linie, n ordinea invers citirii, toate numerele din ir, separate prin
cte un spaiu;
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:
pe prima linie o valoare ce reprezint numrul de valori care au un prefix divizibil cu 10;
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:
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;
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.
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).
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:
pe prima linie, separate printr-un spaiu, toate numerele pare din ir n ordinea
descresctoare a valorii lor;
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:
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;
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:
cifre.in cifre.out
32490396303754 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:
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";
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:
pe prima linie, separate printr-un spaiu, toate numerele din ir, care au cifra zecilor
impar;
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:
valorile cu suma cifrelor un numr par n ordine descresctoare;
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:
elementele n ordine descresctoare a primei cifre;
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 :
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 tablou.out
5 2 25 42 122 313
25 2 42 313 122 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:
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);
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
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:
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:
pe prima linie, separate printr-un spaiu, numrul de elemente prime de pe fiecare
coloan a matricei;
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 atestat.out
3 102
714 DA
462
9 22 193

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:
scrie pe prima linie a fiierului matrice.out cel mai mare numr situat pe diagonala
secundar a matricei;
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

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:
inverseaz elementul maxim cu elementul minim din matrice i scrie matricea rezultat
n fiierul matrice.out, ncepnd cu prima linie;
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:
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.
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:
numrul de ordine al primei linii din matrice ce conine o valoare ce este palindrom
sau mesajul NU EXISTA;
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

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 :
numrul de ordine ai primei liniei cu numr maxim de valori 1;
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 linie.out
3 3
9 4 2 975432 21
1 2 3
7 5 2

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:
pe prima linie irul din care s-au eliminat toate caracterele cifr;
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:
s afieze textul pe o singur linie a ecranului, scris cu majuscule;
s afieze n fiierul atestat.out numrul consoanelor din text.
Exemplu:
atestat.in
Imi place Informatica
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:
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;
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:
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;
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:

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;

scrie pe a doua linie a fiierului cuvinte.out, n ordine alfabetic, literele distincte care
apar n fiierul cuvinte.in.
Exemplu:
cuvinte.in cuvinte.out
5 bacalaureat
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 :
scrie pe prima linie n fiierul de ieire cuvinte.out, numrul de cuvinte din text care
ncep cu litera mare;
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:
scrie pe prima linie n fiierul de ieire cuvinte.out, numrul de cuvinte cu aspect de
palindrom;
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:
prima vocala si numrul ei de apariii(pe prima linie);
frecventele de apariii ale consoanelor(pe a doua linie).
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 :
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:
pe prima linie mesajul Soluia numrul x :;
pe urmtoarele n linii, litera D pentru poziia reginei i caracterul @ pentru
poziiile libere;
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 atestat.out :
8 135
Solutia nr 1:
@D@@@@@@
@@@@D@@@
@@@@@@D@
@@@D@@@@
D@@@@@@@
@@@@@@@D
@@@@@@D@
@@D@@@@@
Solutia nr 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