EXAMENUL DE ATESTAT PROFESIONAL LA INFORMATICĂ - 2007
CLASE DE MATEMATICĂ INFORMATICĂ, intensiv informatica
SUBIECTE PROGRAMARE
Subiectul nr. 1
Conjectura lui Goldbach consta în posibilitatea scrierii oricarui numar par mai mare decât 2 ca suma a doua numere prime. Se citestc doua valori n si m. Sa se afiseze în fisierul f1.out câte o conjectura pentru fiecare numar par cuprins între n si m.
Exemplu : n=700 m=800 700=683+17; 702=691+11; 704=701+3; . ; 800=793+7;
în fisierul f1.out se va afisa 683 17
691 11
701 3
793 7
Subiectul nr. 2
Se numeste numar bine ordonat crescator/descrescator, un numar natural cu proprietatea ca cifrele sale citite de la stânga la dreapta sunt în ordine crescatoare/descrescatoare. Din fisierul f2.in se citeste de pe primul rând o valoare n si de pe urmatorul rând n valori întregi, afisati în fisierul f2.out doar acele numere care sunt bine ordonate crescator/descrescator specificând si tipul lor. Numerele de o cifra se vor considera bine ordonate crescator
Exemplu :
pentru fisierul f2.in
123 7657 888765 445677 445676 90 6
fisierul f2.out va fi :
123 descrescator
888765 crescator
445677 descrescator
90 crescator
6 crescator
Subiectul nr. 3
Se citeste o valoare n. Sa se afiseze în fisierul f3.out primele n perechi de numere prime consecutive în multimea numerelor impare (i, i+2 prime)
Exemplu: pentru n=6 în fisierul f3.out se va afisa 3 5
Subiectul nr. 4
Scrieti un program care construieste în memorie o matrice patratica cu n linii si n coloane formata numai din valori 0,1 si 2 astfel încât elementele de pe diagonala secundara si cea principala sa fie egale cu 0, elementele din Nord si Sud egale cu 1, iar restul elementelor din matrice sa fie egale cu 2.Matricea va fi afisata în fisierul f4.out.
Exemplu: pentru n=5
în fisierul f4.out se va afisa
Subiectul nr. 5
În fisierul f5.in pe prima linie se afla numarul de linii si coloane ale unei matrici, iar pe urmatoarele linii elementele matricii, numere naturale < 32000. Sa se scrie un program care sa verifice care din elementele matricii apartin sirului lui FIBONACCI. Elementele se vor afisa în fisierul f5.out despartite prin spatii.
Exemplu :
pentru fisierul f5.in
3 7
12 3 987 4181 31 610 7
56 8 144 231 234 987 980
1597 2584 6765 2 21 50 15
fisierul f5.out va fi :
3 987 4181 610 8 144 987 1597 2584 6765 2 21
Subiectul nr. 6
Din fisierul f6.in se citeste de pe prima linie dimensiunea unui vector si un numar întreg, iar de pe a doua linie elementele vectorului. Sa se scrie un program care sa decida, folosind metoda cautarii binare, daca numarul întreg citit se gaseste sau nu printre elementele vectorului citit din fisier. Se va afisa pozitia în cazul în care elementul a fost gasit si un mesaj corespunzator daca nu a fost gasit.
Exemplu :
pentru fisierul f6.in
3 7
12 3 987 4181 7 31 610
vectorul va fi: 3 7 12 31 610 987 4181
numarul cautat 7 se va afisa 1 (pozitia 1, daca consideram prima pozitie 0)
numarul cautat 15 se va afisa nu se afla in vector
Subiectul nr. 7
Sa se scrie un program care sa sorteze crescator liniile unei matrici folosind metoda BUBBLESORT. Dimensiunile matricii vor fi citite de la tastatura, iar elementele matricii vor fi generate aleator. Dupa sortare matricea se va afisa în fisierul f7.out.
Exemplu :
daca se citesc valorile 4 si 5 si se genereaza matricea
4 3 4 2 1
3 7 12 7 4
12 3 9 4 1
81 31 6 10 7
în fisierul f7.out se va afisa
1 2 3 4 4
3 4 7 7 12
1 3 4 9 12
6 7 10 31 81
Subiectul nr. 8
În fisierul f8.in se afla pe prima linie doua valori n si m, dimensiunile a doi vectori, pe a doua linie cele n elemente ale primului vector, iar pe linia urmatoare cele m elemente ale celui de-al doilea vector (elementele sunt numere reale). Sa se scrie un program care sa realizeze INTERCLASAREA celor doi vectori ordonati crescator. Vectorul rezultat va fi afisat în fisierul f8.out.
Exemplu :
pentru fisierul f8.in
5 9
12 3 9 17 4
7 31 6 10 2 3 19 9 15
primul vector dupa ordonare crescatoare va fi: 3 4 9 12 17
al doilea vector dupa ordonare crescatoare va fi: 2 3 6 7 9 10 15 19 31
fisierul f8.out va fi :
2 3 3 4 6 7 9 9 10 12 15 19 31
Subiectul nr. 9
Sa se scrie un program care sa citeasca un sir de numere naturale din fisierul f9.in si sa afiseze în fisierul f9.out elementele autopomorfice ale sirului. Numim numar autopomorfic o valoare care este sufix al patratului sau (252=625).
Exemplu :
pentru fisierul f9.in
5 9 6 25 18
fisierul f9.out va fi :
Subiectul nr. 10
Sa se scrie un program care sa citeasca informatiile despre elevii unei clase din fisierul f10.in, sub forma: pe fiecare linie 3 note ale unui si numele sau si sa le memoreze într-un vector de structuri. Sa se afiseze pe ecran media generala a clasei si elevul/elevii cu media cea mai mare din clasa.
Exemplu :
pentru fisierul f10.in
5 9 7 Ionescu
9 10 10 Anghel
3 5 4 Popa
10 9 10 Vasiloiu
8 7 6 Grigore
se va afisa
Anghel
Vasiloiu
Subiectul nr. 11
Sa se scrie un program care pentru un sir de numere naturale citite din fisierul f11.in, calculeaza suma si produsul cifrelor fiecarui numar, folsind functii recursive. Sa se afiseze în fisierul f11.out pe câte o linie numarul, suma si produsul obtinute
Exemplu :
pentru fisierul f11.in
7 123 7257 88225
fisierul f11.out va fi :
123 6 6
7257 21 490
88225 25 1280
Subiectul nr. 12
Sa se scrie un program recursiv care sa transforme un numar natural citit de la tastatura din baza 10 în baza k (2<=k<=16) citita de la tastatura si sa îl afiseze pe ecran.
Exemplu :
daca se citeste 123 si 2
se va afisa 1111011 (deoarece numarul 123(10)=1111011(2))
Subiectul nr. 13
Sa se scrie un program care citeste din fisierul f13.in de pe fiecare linie câte o muchie a unui graf neorientat afiseaza pentru fiecare nod lista de noduri adiacente, calculeaza apoi nodul cu cele mai multe muchii incidente si îl afiseaza pe ecran.
Exemplu :
pentru fisierul f13.in
0 1 1 0 0
1 0 1 1 1
1 1 0 1 0
0 1 1 0 1
0 1 0 1 0
se va afisa :
1: 2, 3
2: 1, 3, 4,5
3: 2, 4
4: 2, 3, 5
5: 4
2 este nodul cu cele mai multe muchii incidente
Subiectul nr. 14
Sa se scrie un program care citeste un graf orientat memorat prin matricea de adiacenta, citita din fisierul f14.in, în care pe prima linie se afla numarul de vârfuri si afiseaza vârful/vârfurile cu gradul exterior cel mai mare si vârful/vârfurile cu gradul interior cel mai mic. Afisarea se va realiza pe ecran.
Exemplu :
pentru fisierul f14.in
0 1 1 0 0
0 0 1 1 0
1 0 0 1 0
0 0 0 0 1
0 1 1 1 0
se va afisa :
5
1 5
(deoarece 5 are gradul exterior maxim =3 si 1,5 au gradul interior minim =1)
Subiectul nr. 15
Sa se scrie un program care sa construiasca o lista simplu înlantuita dintr-un sir de numere citite din fisierul f15.in si care sa calculeze suma numerelor prime si produsul numerelor impare din lista. În fisierul f15.out pe prima linie se vor afisa elementele listei iar pe a doua linie suma si produsul cerute.
Exemplu :
pentru fisierul f15.in
5 0 1 2 17 4 3 15 8 31
fisierul f15.out va fi:
5 0 1 2 17 4 3 15 33 31
58
Subiectul nr. 16
Din fisierul f16.in se citeste de pe primul rând o valoare n si de pe urmatorul rând n valori întregi. Sa se construiasca o lista simplu înlantuita cu ele. Sa se insereze în lista dupa fiecare element un element ce contine ca valoare "cifra de control" si apoi sa se afiseze lista. "Cifra de control" a unui numar se obtine facând suma cifrelor lui, apoi suma cifrelor sumei etc. pâna se obtine o suma formata dintr-o singura cifra.
Exemplu :
pentru fisierul f16.in
7 123 88997 999 5656 89 3
se va afisa
7 7 123 6 88997 5 999 9 5656 4 89 8 3 3
Subiectul nr. 17
Din fisierul f17.in se citeste de pe primul rând o valoare n si de pe urmatorul rând n valori întregi. Sa se construiasca o lista simplu înlantuita cu ele. Sa se afiseze lista. Fara a aloca alt spatiu sa se desparta lista initiala în doua liste prima cu elemente numere pare, a doua cu elemente numere impare si sa se afiseze aceste liste.
Exemplu :
pentru fisierul f17.in
2 4 1 12 5 7 8 9 8 10 3
se va afisa lista
2 4 1 12 5 7 8 9 8 10 3
se vor obtine si se vor afisa listele:
2 4 12 8 8 10
1 5 7 9 3
Subiectul nr. 18
Din fisierul f18.in se citeste de pe prima linie o valoare n reprezentând dimensiunea unei matrici patratice, iar de pe urmatoarele n linii se citesc elementele matricii. Sa se afiseze matricea, sa se precizeze câte numere prime se afla sub diagonala principala si cel mai mare divizor comun al numerelor de deasupra diagonalei secundare.
Exemplu :
pentru fisierul f18.in
5
3 15 12 3 9
6 21 18 4 7
12 9 17 5 10
42 23 3 15 8
22 8 31 7 12
se va afisa:
3 15 12 3 9
6 21 18 4 7
12 9 17 5 10
42 23 3 15 8
22 8 31 7 12
(sunt 4 numere prime 23, 3, 31, 7 si cmmdc este 3)
Subiectul nr. 19
Din fisierul f19.in se citesc n puncte din plan, prin coordonatele lor (x,y). Sa se afiseze indicii punctelor aflate pe prima bisectoare si indicii punctelor aflate pe una din axele Ox sau Oy.
Exemplu:
Pentru n=7 si punctele (3,7), (0,20), (3,3), (5,0), (0,10), (-5,-5), (4,9) punctele 3 si 6 se afla pe prima bisectoare iar punctele 2, 4 si 5 se afla pe axe.
Subiectul nr. 20
Considerând un numar complex de forma z=x+iy implementat ca structura, scrieti un program ce citeste n numere complexe din fisierul f20.in si afiseaza suma, produsul si modul lor.
Exemplu:
daca n=2 si z[0]=3+2i z[1]=5-i
atunci se vor afisa numerele complexe:
suma=8+i*1
produsul=17+i*10
modul de z1=3.60555
Subiectul nr. 21
Sa se scrie câte o functie recursiva pentru citirea, afisarea unei matrice si pentru a calcula
- suma elementelor de pe diagonala principala din matrice
- produsul elementelor de deasupra diagonalei secundara din matrice.
Exemplu :
Pentru n=4 si matricea se va afisa matricea si apoi 34 si 1620
(34= 1+6+11+16 ; 1620= 1*2*3*5*6 *9)
Subiectul nr. 22
Sa se scrie într-un fisier text f22.out toate numerele prime mai mici decât un numar n dat. Pe un rând se vor scrie p numere prime despartite printr-un spatiu, exceptie ultima linie care poate avea mai putin de p numere.
Exemplu
Pentru n=20 si p=5
fisierul f22.out va fi :
2 3 5 7 11
13 17 19
Subiectul nr. 23
Sa se creeze un fisier text f23.out care sa contina toate numerele cuprinse între a si b formate din cifre identice. Valorile lui a si b se citesc de la tastatura.
Exemplu
Pentru a=10 si b=150
fisierul f23.out va fi:
Subiectul nr. 24
Se considera fisierul f24.in ce contine pe prima linie un numar natural n ce semnifica numarul de linii ale unei matrice patratice de numere întregi iar pe urmatoarea linie elementele matricei în ordinea parcurgerii acesteia pe linii. Afisati pe ecran suma elementelor de pe cele doua diagonale ale matricei. Nu se vor folosi tipuri structurate de date.
Exemplu
pentru fisierul f24.in
se va afisa :
14 18.
Subiectul nr. 25
Se considera fisierul f25.in ce contine dimensiunea unei matrici patratice si matricea pe liniile urmatoare. Sa se verifice daca matricea este simetric a fata de diagonala secundara.
Exemplu. Matricea este simetrica fata de diagonala secundara.
Subiectul nr. 26
Se considera fisierul f26.in ce contine datele pentru doua polinoame : gradul m, si coeficientii a[i], i=0,m, respectiv gradul n si coeficientii b[j], j=0,n. Sa se afiseze polinomul suma si valoarea polinoamelor in punctul a citit de la tastatura.
Exemplu
Daca polinoamele sunt p(x) = x3+5*x2-3*x+2 si q(x) = 3*x2+8
fisierul va contine:
Se afiseaza: Suma polinoamelor :p(x)+q(x)= x3+8*x2-3*x+10
2 -3 5 1 pentru valoarea in a=2
p(2)=24
0 3 q(2)=20
Subiectul nr. 27
Se considera fisierul f27.in din care se citeste o fraza de lungime cel mult 70 de caractere. Între cuvintele frazei pot aparea ca separatori numai spatiul si punctul. Sa se afiseze unul sub altul cuvintele frazei în ordine alfabetica.
Exemplu
Pentru fraza "Atestatul la informatica este o incercare ca oricare alta." se vor afisa cuvintele în urmatoarea ordine: 'alta', 'Atestatul', 'ca', 'este", 'incercare', 'informatica', 'la', 'o', 'oricare'.
Subiectul nr. 28
Se citeste o valoare n<=20. Fara a folosi nici o structura repetitiva sa se afiseze urmatorul triunghi de numere:
1 2 3 4 5 . n-2 n-1 n
1 2 3 4 5 . n-2 n-1
1 2 3 4 5 . n-2
1 2 3
1 2
Exemplu :
daca se citeste n=4
se va afisa:
1 2 3 4
1 2 3
1 2
Subiectul nr. 29
Din fisierul f29.in se citesc de pe prima linie doua valori reprezentând numarul de linii respectiv de coloane ale unei matrici, iar de pe urmatoarele linii elementele matricii. Sa se scrie un program care sa permute circular dreapta, fiecare linie i a matricii, cu i+1 pozitii. Sa se afiseze în fisierul f29.out matricea înainte si dupa permutarea liniilor.
Exemplu :
pentru fisierul f29.in
5 6
3 15 12 3 9 2
6 21 18 4 7 1
12 9 17 5 10 3
42 23 3 15 8 2
22 8 31 7 12 4
fisierul f29.out va fi:
3 15 12 3 9 2
6 21 18 4 7 1
12 9 17 5 10 3
42 23 3 15 8 2
22 8 31 7 12 4
dupa
2 3 15 12 3 9
7 1 6 21 18 4
5 10 3 12 9 17
3 15 8 2 42 23
8 31 7 12 4 22
Subiectul nr. 30
Se dau doua siruri de caractere S si T si un fisier text f30.in . Sa se scrie un program care copiaza continutul lui f30.in într-un alt fisier text f30.out, însa înlocuieste fiecare aparitie a sirului S cu sirul T.
Exemplu. S='sint', T='sunt'
f30.in f30.out
Sint un elev cuminte. Sunt un elev cuminte.
Ei sint mai dificili. Ei sunt mai dificili.
Barem de corectare si notare:
- declaratii corecte de variabile 1 punct
- citire corecta a datelor de la tastatura sau din fisier dupa caz 2 puncte
- algoritm corect de rezolvare a problemei 4 puncte
- afisare corecta a rezultatelor pe ecran sau în fisier dupa caz 2 puncte
- din oficiu 1 punct
|