Sunteți pe pagina 1din 9

Problemepentru ATESTAT -programare 2013

Problemepropusepentruexamenul de ATESTAT la INFORMATIC Seciunea PROGRAMARE Din fiierul text vector.in se citesc: un numr natural n reprezentnd numrul de componente ale unui vector cu numere naturale i cele n componente ale vectorului(n<50000). Fiecare component va fi un numr natural cu cel puin dou cifre! a) Afiai elementele vectorului pe primul rnd al fiierului text vector.out, separate prin cte un spaiu. b) Sortai cresctor vectorul, dup ultimele dou cifre ale fiecruia din cele n numere ce reprezint componentele vectorului, apoi afiai, pe al doilea rnd al fiierului vector.out componentele vectorului sortat, separate prin cte un spaiu. Exemplu: Dac fiierul vector.in are forma: 5 122 13 1445 9000 321 atunci fiierul vector.out va conine: 122 13 1445 9000 321 9000 13 321 122 1445 1. 2. Din fiierul text vector.in se citesc: un numr natural n (n<10000) reprezentnd numrul de componente ale unui vector cu numere naturale i cele n componente ale vectorului. a) Afiai componentele vectorului, pe primul rnd al fiierului text vector.out, n ordine invers citirii lor . b) Pe al doilea rnd al fiierului text vector.outafiai media aritmetic a componentelor vectorului, care sunt divizibile cu 3. Exist cel puin un numr multiplu de 3. Exemplu: Dac fiierul vector.inare forma: 5 12 6 48 28 33 atunci fiierul vector.out va conine: 33 28 48 6 12 24.75 Din fiierul text vector.in se citesc: un numr natural n (n<2000)i n perechi de numere a, bsunt dou numere ntregi ce reprezint capetele unor intervale nchise la ambele capete, de forma [a,b] (a<b). Pe primul rnd al fiierului text vector.out, afiai suma obinut prin adunarea tuturor numerelor ntregi aflate n intervalul obinut prin intersectarea celor n intervale date. Dac intersecia este mulimea vid, atunci se va afia mesajul Niciun element!. Exemplu: Dac fiierul vector.inare forma: 3 -3 2 -2 10 -2 7 atunci fiierul vector.out va conine: 0 Explicaie: Intervalul obinut prin intersectarea celor n intervale este [-2,2]. 3.

Problemepentru ATESTAT -programare 2013


Este sfritul colii. Dirigintele clasei dorete s premieze elevii cei mai buni. Pentru aceasta are nevoie de o ierarhizare a acestora, n ordinea descresctoare a mediilor. tiind c, pentru fiecare din cei n elevi ai clasei se cunosc numele i media general, ajutai-l pe diriginte s fac premierea. Datele se citesc din fiierul vector.in astfel: - Pe prima linie se afl numrul n de elevi; - Pe urmtoarele n linii se afl numele elevului i media, separate prin cte un spaiu. 4. n fiierul de ieire vector.out se vor afia pe n linii, separate prin cte un spaiu, numele elevului i media, n ordinea descresctoare a mediilor. Exemplu: Dac fiierul vector.in are forma: 3 Popoviciu 7.86 Ionovici 9.47 Arhivescu 8. 88 atunci fiierul vector.out va conine: Ionovici 9.47 Arhivescu 8.88 Popoviciu 7.86 Din fiierul vector.in se citesc: n un numr natural nenul reprezentnd numrul de componente ale unui vector cu numere naturale nenule i cele n componente ale vectorului. a) Afiai, pe primul rnd al fiierului vector.out mesajul Exista sau Nu exista, dac printre componentele vectorului exist vreun numr perfect. Un numr este perfect dac este egal cu suma divizorilor si. b) n cazul n care, exist cel puin un numr perfect, afiai, pe al doilea rnd al fiierului vector.out suma tuturor numerelor perfecte din irul dat. Dac nu exist niciun numr cu proprietatea cerut, pe al doilea rnd al fiierului de ieire se va afia -1. Exemplu: Dac fiierul vector.inare forma: 6 13 33 6 28 6 16 atunci fiierul vector.out va conine: Exista 40 Explicaie: Numrul 6 este perfect deoarece 6=1+2+3 5. Dinfiierultextdate.in se citescnumerentregi. S se determinecel mai mare divizorpropriu al fiecruinumrcitit. Afiarea va fi fcutnfiieruldate.out. Exemplu : date.in date.out 6 8 15 21 Divizorul maxim al elementului 6 este 3 Divizorul maxim al elementului 8 este 4 Divizorul maxim al elementului 15 este 5 Divizorul maxim al elementului 21 este 7 6.

Problemepentru ATESTAT -programare 2013


Din fisierul date.in se citesc de pe prima linie un numr natural n, iar de pe urmtoarele n linii o matrice patratic de dimensiune nxn. S se afieze suma elementelor de pe fiecare linie. Rezultatul va fi afiat n fisierul date.out sub forma: linie 1 - >suma_1 linie 2 - >suma_2 ......... linie n ->suma_n Exemplu : date.in date.out 4 linie 1 - > 16 2536 linie 2 - > 20 3584 linie 3 - > 12 1263 linie 4 - > 25 8359 7. 8. Fie sirului Fibonacci datprinrecurena F0=0, F1=1,,Fn=Fn-1 + Fn-2. S se calculezerecursiv al n-lea termen Fibonacci. Exemplu:pentru n=5 se vaafia 5, iarpentru n=8 se vaafia 21. 9. Din fiierulcontur.in se citete n, numr natural (2<=n<=20) io matriceptratic de dimensiunenxn. Realizai un program care afieaznfiierulcontur.out : a) conturulmatricei b) cteelemente prime se aflpeconturulmatricei

Exemplu: Pentru n=3 imatricea: 123 456 789 Se va afia: 12369874 3 10. Realizai un program care determincelmai mare divizorcomun al elementelor situate pefiecarecoloan auneimatriciptratice. Exemplu:pentru n=3 imatricea 4 3 7 12 15 6 36 90 30 sevaafia 4 , 3 , 1. 11. Se citete un ir de n(numr natural 1<n<=10) numerenaturale. Se formeazunnumr cu ultimacifr a fiecruinumr din ir. S se scrieun program care afieazpeecrandacnumrulastfelobinutestepalindrom(adicdaccitit de la stnga la dreaptaesteegal cu celcitit de la dreapta la stnga).

Problemepentru ATESTAT -programare 2013


Exemplu: Pentru n=6 inumerele 11 22 43 151 17 3, se vaafiamesajul nu estepalindrom. 12. S se citeasc din fiiereul text date.in un ir de maximum 255 de caractere format din cuvinte separate prin unul sau mai multe spaii. Cuvintele sunt formate numai din litere mici ale alfabetului englez. Scriei un program C/C++ care citete un astfel de ir i afieaz pe ecran frecvena de apariie a fiecreu litere din ir. Exemplu: Pentru irul: competente profesionale Se va afia: a apare de 1 ori c apare de 1 ori e apare de 5 ori f apare de 1 ori i apare de 1 ori l apare de 1 ori m apare de 1 ori n apare de 2 ori o apare de 3 ori p apare de 2 ori r apare de 1 ori s apare de 1 ori t apare de 2 ori S se citeasc de la tastatur dou iruri formate din maximum 25 de caractere fiecare Fiecare ir conine numai litere mici ale alfabetului englez. Scriei un program C/C++ care verific i afieaz printr-un mesaj sugestiv, dac cele dou iruri sunt sau nu anagrame (s conin aceleai litere, n orice ordine de apariie). Exemplu: Pentru irurile curat si urcat se afieaz sirurile sunt anagrame Pentru irurile problema si emblema se afieaz sirurile nu sunt anagrame 13. Se dun vector cu n componentenumerentregi (datele se citesc de la tastatur, n<=50). Rspundeiurmtoarelorcerine, utilizndsubprograme recursive: a) S se calculezeis se afiezesumacomponentelorpozitive din vector. b) S se verificedaccomponentelevectoruluisuntordonatecresctor. Se vaafia un mesajadecvat. Exemplu: Fie n=5 ivectorul cu componentele (5,-4,3,7,-1). Se vaafiavaloarea 15 imesajul Vectorul nu esteordonat. 14. Se dun vector cu n componentenumerenaturale (datele se citesc de la tastatur, n<=50). S se nlocuiasc componentele neprime din vector cu numrul divizorilor acestora. Se vor utiliza subprogramele recursive: nrd care vaimplementa un algoritm de numrare a divizorilorunuinumr natural iinlocuireprin care se vornlocuicomponenteleneprime din vector. Exemplu:Dac vectorulcititeste (5,6,1,0,15), dupnlocuiredevine (5,4,1,0,4). 15.

Problemepentru ATESTAT -programare 2013


Se dun vector cu n componentenumerenaturale (datele se citesc de la tastatur, n<=50). S se afiezecomponentelevectorului care conin o cifrdat, nenul (cifra se citete de la tastatur).Se vor utiliza subprogramele recursive: - verific care vaimplementa un algoritmpentruverificareaexisteneiuneicifrentr-un numr; - afipentruafiareacomponentelorunui vector care conin o cifrdat. Exemplu:Dac vectorulcititeste (15,621,14,502,155) i c=5 se vorafiavalorile: 15 502 155. 16. Se d un graf neorientat cu n noduri. Numrul de noduri i muchiile grafului se citesc din fiierul graf.txt. S se verifice dac graful este complet i s se afieze un mesaj adecvat. Dac graful nu este complet s se afieze muchiile care ar trebui adugate astfel nct graful s devin complet. Exemplu: Dac fiierul graf.txt are urmtorul coninut: 5 13 14 15 24 35 Se vaafiamesajul Graful nu estecomplet dup care se vorafiamuchiilelips: 12 23 25 34 45 17. Se d un graf neorientat cu n noduri. Numrul de noduri i muchiile grafului se citesc din fiierul graf.txt. S se verifice dac graful este regulat. n situaia n care graful nu este regulat s se afieze nodurile terminale i numrul de noduri izolate. (Un graf neorientat se numete regulat dac toate nodurile sale au acelai grad). Exemplu: Dac fiierul graf.txt are urmtorul coninut: 5 13 15 24 35 Se va afia mesajul Graful nu este regulat dup care se vor afia nodurile terminale: 2, 4 i numrul de noduri izolate: 0 18. Se d graful un graf neorientat pentru care datele se citesc din fiierul graf.txt. S se verifice dac un ir de m numere citite de la tastatur este lan n graf i s se afieze un mesaj adecvat. Dac formeaz lan, s se verifice dac lanul este elementar. Exemplu: Dac fiierul graf.txt are urmtorul coninut: 5 13 14 15 19.

Problemepentru ATESTAT -programare 2013


24 35 irul de numere 2 4 1 3, citit de la tastatur, formeaz lan elementar. irul de numere 4 2 3 1 5 nu formeaz lan. Se citete de la tastatur o serie de n numere ntregi. Afiai primul i ultimul numr par din serie. Afirile se vor face cu text semnificativ, cte o informaie pe linie. Dac nu exist cel puin 2 numere pare n serie se va afia textul Nu exista. Exemple: 1. n = 6, seria : 6 1 2 7 4 9, se va afia 6 i 4. 2. n=4, seria : 6 1 3 7 5 9, se va afia Nu exista. 20. n fiierul text atestat.in se gsesc pe prima linie dou numere ntregi n i k (1<k<n<=1000), iar pe urmtoarea linie n numere ntregi separate prin spaii. Afiai n fiierul text atestat.out primele k minime din seria de n numere de pe linia a doua a fiierului de intrare. Exemplu:n=5, k=3, seria este: 3, 2, -3, 6 i -1, se va afia -3, -1, 2. 21. Se citesc de la tastatur dou numere ntregi n i m. Construii i afiai pe ecran, linie cu linie o matrice n*m construit dup regula: a[i][j] = min(i,j).Numerotarea liniilor, respectiv coloanelor matricei ncepe de la 1. Exemplu: Pentru n=2 i m=3 se vaafiamatricea: 111 122 22. Fiierul text graf.in conine pe prima linie un numr natural n reprezentnd numrul de vrfuri ale unui graf neorientat, iar pe fiecare din urmtoarele n rnduri cte n valori de 0 i 1 separate prin spaii, reprezentnd elementele unei linii a matricei de adiacen corespunztoare grafului. a) S se scrie o funciegradceprimete ca parametru un numr natural x i returneaz gradul vrfului x. b) S se scrie programul C++ care citete datele din fiier i care afieaz n fiirul text graf.out, peprimulrnd, separate prin cte un spaiu vrfurile terminale ale grafului, sau mesajul Nu exist, dac n graf nu sunt vrfuri terminale, folosind apeluri utile ale subprogramului grad. Exemplu: Dac fiierul graf.in are forma: 5 00101 00011 10000 01000 11000 atunci fiierul graf.out va conine numerele 3 i 4. 24. Fiierul text muchii.txt conine pe prima linie un numr natural n reprezentnd numrul de vrfuri ale unui graf neorientat, pe al doilea rnd un numr natural m reprezentnd 23.

Problemepentru ATESTAT -programare 2013


numrul de munchii ale unui graf neorientat, iar pe fiecare din urmtoarele m rnduri cte dou numere naturale, separate pritr-un spaiu, reprezantnd extremitile unei muchii a grafului. a) S se scrie o funcie gradce primete ca parametru un numr natural x i returneaz gradul vrfului x. b) S se scrie programul C++ care citete datele din fiier, construiete matricea de adiacen asociat grafului, i care afieaz n fiirul text grade.txt, separate prin cte un spaiu vrfurile de grad maxim ale grafului, folosind apeluri utile ale subprogramului grad. Exemplu: Dac fiierul muchii.txt are forma: 5 6 12 23 24 34 35 45 atunci fiierul grade.txt va conine numerele 2, 3 i 4. Fiierul text adiacenta.in conine pe prima linie un numr natural n reprezentnd numrul de noduri ale unui graf orientat, iar pe fiecare din urmtoarele n rnduri cte n valori de 0 i 1 separate prin spaii, reprezentnd elementele unei linii a matricei de adiacen corespunztoare grafului. a) S se scrie o funcie grad_internce primete ca parametru un numr natural x i returneaz gradul intern al nodului x. Funcia grad_extern primete ca parametru un numr natural x i returneaz gradul extern al nodului x. b) S se scrie programul C++ care citete datele din fiier, i care afieaz n fiirul text noduri.out, separate prin cte un spaiu nodurile grafului care au gradul intern egal cu gradul extern, folosind apeluri utile ale subprogramelor grad_intern i grad_extern. Exemplu: Dac fiierul adiacenta.in are forma: 5 01110 00001 01000 00000 10000 atunci fiierul noduri.out va conine numerele 3 i 5. 25. 26. Fiierul text arce.txt conine pe prima linie un numr natural n reprezentnd numrul de noduri ale unui graf orientat, pe al doilea rnd un numr natural m reprezentnd numrul de arce ale unui graf orientat, iar pe fiecare din urmtoarele m rnduri cte dou numere naturale separate prin spaii, reprezentnd arcele corespunztoare unui graf orientat. a) S se scrie o funciegrad_internce primete ca parametru un numr natural x i returneaz gradul intern al nodului x.

Problemepentru ATESTAT -programare 2013


Funcia grad_extern primete ca parametru un numr natural x i returneaz gradul extern al nodului x. b) S se scrie programul C++ care citete datele din fiier, construiete matricea de adiacen asociat grafului, i care afieaz n fiirul text izolate.txt, separate prin cte un spaiu nodurile izolate ale grafului, sau mesajul Nu exist, dac n graf nu sunt noduri izolate, folosind apeluri utile ale subprogramelor grad_intern i grad_extern. Exemplu: Dac fiierul arce.txt are forma: 5 3 12 21 24 atunci fiierul izolate.txt va conine numerele 3 i 5. Se citesc numere naturale din fiierul text numere.txt. S se afieze numerele care au proprietatea de palindrom (numrul citit de la dreapta la stnga este egal cu numrul citit de la snga la dreapta) i suma cifrelor s fie par. Se vor folosi: un subprogram palin care va implementa un algoritm de determinare a proprietii de numr palindrom i un subprogram care s calculeze suma cifrelor unui numr natural. Exemplu: Pentru numerele 12, 12321, 565, 45, 18, 121 se va afia 565, 121. 27. 28. Se citesc numere naturale din fiierul numere.txt. Cte dintre aceste numere au toate cifrele cifre impare. Dac nu exist astfel de numere se va afia un mesaj corespunztor. Se va folosi un subprogram care s verifice cerina din enun referitoare la paritatea cifrelor. Exemplu:Pentrunumerele 135, 57, 279, 791, 56 se vaafia 3, iarpentrunumerele 1234, 56,22, 54, 78 se vaafisamesajul Nu existnici un numr cu proprietateacerut. 29. Se citesc n numerentregi din fiierulnumere.txt. S se afiezecelmai mare divizorcomundintresumatuturornumereloriprodusulcelorcuprinsentre 2 numere date. In fiierpe prima linievor fi valorilepentru n sicele 2 numere date, iarpeurmatoarealiniecele n numere. Exemplu: Pentrunumerele 5 17 27 12 34 25 6 21 sevaafiacmmdc(98,525)=7. 30. Fie doivectori a i b formai din n, respectiv m numerentreginenule (m,n<=50). Scriei un program care citete, numrul de elementeivalorile din vectorul a, respectiv b iafieazvalorile din vectorul a care sunt prime cu toatevalorile din vectorul b. Dounumerentregisunt prime ntreeledaccelmai mare divizorcomun al loreste 1. Exemplu: Fie n=6, a=(77,35,55,15,121,11) i m=3, b=(18,20,10). Se vor afia numerele 77,121,11. 31. Se citesc 2 vectori a i b cu n, respectiv m componente ntregi. S se determine dac cei 2 vectori sunt identici. Dac nu, s se afieze poziia de unde nu mai coincid elementele. Vectorii sunt identici dac au acelai numr de elemente i au aceleai valori.

Problemepentru ATESTAT -programare 2013


Exemplu: Pentru n=3 i elementele: 1 2 3 i m=3 i elementele: 1 2 3, se va afia mesajul Cei doi vectori sunt identici. 32. Scriei un program C/C++ care citete din fiierul date.in un numr natural n (1n20), elementele unei matrice cu n linii i n coloane, numere ntregi din intervalul [ -100,100] i afieaz pe ecran media aritmetic a elementelor prime ale matricei, care sunt situate deasupra diagonalei principale. Dac nu exist elemente prime situate deasupra diagonalei principale, programul va afia mesajul Nu exista!. Exemplu: pentru n=4 i matricea de mai jos se afieaz valoarea 3.33333 -1 2 -4 5 0631 2420 3 -5 1 -3 33. Scriei un program C/C++ care citete din fiierul date.in un numr natural n (1n50), elementele unei matrice cu n linii i n coloane, numere naturale din intervalul [0,99999] i afieaz pe ecran numrul elementelor palindrom ale matricei, care sunt situate deasupra diagonalei secundare. Dac nu exist elemente palindrom situate deasupra diagonalei secundare, programul va afia mesajul Nu exista!. Un numr natural este palindrom dac numrul citit de la stnga la dreapta este acelai cu numrul citit de la dreapta la stnga. Exemplu: pentru n=4 i matricea de mai jos se afieaz valoarea 4. 112 121 444 56 102 696 123 17 262 413 221 10 393 585 111 33 34. Scriei un program C/C++ care citete din fiierul date.in un numr natural n (1n100), un numr natural m (1m10) i elementele unei matrice cu n linii i m coloane, cifre binare, fiecare linie a tabloului reprezint cifrele unui numr n baza 2. S se afieze pe linii separate ale ecranuluinumerele care se obin prin transformarea fiecrei linii din matrice n numrul corespunztor n baza 10. Exemplu: Dac fiierul conine 37 1111001 1010101 1000110 Atunci se va afia: 121 85 70

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