Sunteți pe pagina 1din 5

Inspectoratul Scolar al Judetului Vaslui Subiecte pentru obtinerea atestatului profesional

INFORMATICA

(Pascal/C,C++) 1. Sa se scrie un program care pentru un numar n (1<=n<=1000), dat, afiseaza acele numere x, 1<=x<=n, care nu sunt divizibile nici cu 3 si nici cu 5. 2. Sa se scrie un program care pentru numerele naturale p si q date, determina cel mai mic numar n ce indeplineste simultan conditiile: n>p n>q q divide n 3. Fiind date trei numere reale pozitive, sa se stabileasca daca acestea pot fi lungimile laturilor unui triunghi si, in caz afirmativ, sa se calculeze aria si sa se precizeze natura triunghiului dupa laturi (isoscel, echilateral, oarecare) . 4. Fiind date un numar natural n si un numar prim p (1<p<n<2000000000), sa se stabileasca la ce putere apare factorul prim in descompunerea numarului dat. Un factor care nu apare in descompunerea unui numar va fi considerat la puterea 0. 5. Sa se construiasca un subprogram optim ce verifica daca un numar n (1<n<=1000) este prim. Folosind acest subprogram afisati toate numerele prime mai mici decat 1000. . 6. Fie n un numar natural (1<=n<=2000000000). Construiti un subprogram care verifica daca n este numar Fibonacci. 7. Sa se scrie un program care sa rezolve orice ecuatie de gradul II cu coeficienti reali (ax2 + bx +c = 0), in care coeficientii a,b si c se citesc de la tastatura. Solutiile (in caz ca exista) se vor afisa cu 4 zecimale exacte. Daca ecuatia are solutii complexe, acestea se vor afisa pe ecran in formatul z=x+iy. 8. Sa se determine printr-o singura parcurgere a unui sir dat de numere reale atat elementul cel mai mic cat si elementul cel mai mare. Sirul de numere se va citi de la tastatura. 9. Sa se afle cea mai mare diferenta dintre doi termeni aflati pe pozitii consecutive intr-un sir de numere naturale. 10. Cunoscandu-se numarul de elemente ale unui sir de numere reale si componentele sale, sa se verifice daca acestea formeaza o progresie aritmetica.

11. Se considera un sir cu n (1<=n<=100) numere naturale <=60000. Se cere sa se construiasca si sa se afiseze un nou sir format din componentele pare ale celui initial. Sirul de numere se va citi dintr-un fisier text. 12. Se considera un sir cu n (1<=n<=10000) numere intregi cuprinse intre 1 si 100. Scrieti un program care tipareste elementele sirului in ordine descrescatoare precum si frecventa lor de aparitie. 13. Sa se scrie un program care elimina elementele nule dintru-un sir de numere intregi, dat, folosind o singura parcurgere. 14. Fiind dat un tablou unidimensional cu n (1<=n<=10000) elemente numre intregi, sa se construiasca alte doua tablouri unidimensionale: primul va contine numai elementele pare, iar al doilea numai elementele impare ale tabloului initial. 15. Scrieti un program care verifica daca cele n (1<=n<=1000) elemente ale unui sir dat de numere intregi sunt in ordine strict crescatoare . Citirea datelor se va face dintr-un fisier text. 16. Sa se genereze aleatoriu un tablou unidimensional de n (10<=n<=10000) numere intregi din intervalul [-10000..10000] si apoi sa se ordoneze crescator acest tablou. 17. *Fisierul text BAC.IN contine pe fiecare linie numele unui candidat, prenumele acestuia si media obtinuta la examenul de bacalaureat, separate prin unul sau mai multe spatii. Lungimea unei linii nu depaseste 80 de caractere, numele si prenumele avand, fiecare, maxim 20 de caractere. Stiind ca au fost cel mult 500 de candidati, creati fisierul text BAC.OUT care sa contina candidatii in ordinea descrescatoare a mediilor. Pentru fiecare candidat se vor scrie numele, prenumele si media cu doua zecimale, separate prin spatii, pe o linie separata in fisierul de iesire. 18. *Se considera un fisier text cu numele MULT.IN care are doua linii. Fiecare linie contine elementele (ce fac parte din multimea {a..z, A..Z, 0..9}) multimilor A si B, separate intre ele prin cate un spatiu. Sa se scrie un program care : a) scrie pe prima linie din fisierul text MULT.OUT mesajul DA daca A este inclusa in B, respectiv NU in caz contrar; b) scrie pe a doua linie in fisierul text MULT.OUT elementele multimii (A\B)U(B\A), adica diferenta simetrica. 19.Se citeste de la tastatura un text (cu cel mult 255 de caractere) format din litere mari si mici ale alfabetului englez si spatii. Cuvintele din text sunt separate prin cel putin un spatiu. Se cere sa se afiseze cuvintele din text unele sub altele (fiecare cuvant pe cate o linie). 20*. Se citeste un text (cu cel mult 255 de caractere) format din litere mari si mici ale alfabetului englez si spatii. Cuvintele din text sunt separate prin cel putin un spatiu. Se

cere sa se afiseze cuvintele din text unele sub altele (fiecare cuvant pe cate o linie) in ordinea crescatoare a lungimilor lor. 21.Se considera un tablou patratic de dimensiune n (3<=n<=50) citit dintr-un fisier text, ale carei elemente sunt sunt cifre (0..9). Sa se afiseze pe ecran toate elementele acesteia situate deasupra diagonalei principale (inclusiv pe diagonala) sub forma unui triunghi, ca in exemplul urmator Pentru n=4 si tabloul: Pe ecran se va afisa: 1234 1234 3215 215 8795 95 2389 9 22* Se considera un sir continand n (1<=n<=100) numere naturale citite dintr-un fisier text cu valori cuprinse intre 1 si 60000. Sa se alcatuiasca un program care sa ordoneze crescator doar numerele pare din sir, fara insa a afecta pozitiile pe care sunt situate numerele impare si sa se scrie solutia intr-un fisier text. 23.* Se da un tablou unidimensional de numere reale. Sa se scrie un program care insereaza intre oricare doua numere elemente consecutive ale tabloului initial, media lor aritmetica. De exemplu, daca initial V=(10, 2 ,30, 5) atunci dupa procesare devine V=(10, 6, 2, 16, 30, 17.5, 5)
24.* Sa se scrie
n i =0

un program care pentru numerele intregi x,y,n date, determina suma

S= f (i ) * f (n i ) Unde: f(0)=0, f(1)=1, f(i+2)=x*f(i)+y*f(i+1), 0<=i<n-2, n<=10. 25.* Se considera n stalpi (10<=n<=100) de inaltimi h(1), h(2), ..., h(n) metri. La baza fiecarui stalp se afla cate un melc, codificat prin numarul stalpului. Fiecare melc i urca ziua p(i) metri si coboara noaptea q(i) metri (p(i) >= q(i)). Datele se dau in forma : Se citeste n. Pentru fiecare melc se citesc trei numere: inaltimea stalpului, cati metri urca pe zi, cati metri coboara pe noapte. Sa se afiseze melcii in ordinea in care ating varfurile stalpilor. Citirea datelor de intrare se va face dintr-un fisier text. 26.* Sa se scrie cate un subprogram pentru urmatoarele operatii cu polinoame cu coeficienti reali: citirea unui polinom si suma a doua polinoame. Sa se scrie apoi un program care sa apeleze aceste subprograme Interfata program-utilizator va fi realizata sub forma unui meniu cu optiuni de alegere.

27. Sa se citeasca de la tastatura un tablou bidimensional de numere intregi si sa se afiseze maximul si minimul dintre ele, precum si pozitiile in tablou pe care apar maximul, si respectiv minimul (toate pozitiile !). 28. La o statie meteo se calculeaza zilnic un buletin meteorologic care contine: numele meteorologului de serviciu, presiunea si temperatura atmosferica in ziua respectiva.Se citesc buletine meteo pe parcursul a n zile. Sa se afiseze temperatura maxima atinsa in perioada urmarita, precum si zilele in care s-a inregistrat impreuna cu numele meteorologului de serviciu din zilele respective. 29. La un concurs de matematica au particiapt n elevi (10<=n<=30), pt fiecare elev cunoscandu-se numele, liceul (siruri de caractere), si nota obtinuta. Realizati un program care citeste datele elevilor participanti dintr-un fisier, apoi tipareste numele elevilor cu cea mai mare nota, precum si media generala a concurentilor.
30. Sa se scrie un program care citeste din fisierul standard de intrare coeficientii polinomului P(X)=a0Xn+a1Xn-1+ .....+an-1X+an, ai R,i=0...n si un numar x0 R si calculeaza P(x0), n<10.

31. Sa se scrie un program care pentru un n dat, decide daca exista i,j,k astfel incat n=2i3j5k * Sa se scrie un program care sa determine numarul de cifre de zero cu care se termina n!, 1<=n<=100.
32. 33. Se citeste un sir de n (1<=n<=10000) numere intregi din fisierul numere.in, unde numerele se presupun ordonate crescator si o valoare intreaga p. Sa se decida daca p se gaseste sau nu printre elementele sirului, iar in caz afirmativ sa se tipareasca indicele componentei care contine acea valoare.

34* Sa se creeze o lista inlantuita care sa contina in noduri informatii, citite de la tastatura, despre studenti, in formatul urmator: nume student, grupa, nota la disciplina INFORMATICA, si sa se afiseze continutul listei; Sa se creeze un nod cu informatii despre un nou student citite de la tastatura, si sa se adauge acest nou nod intre al 3-lea si al 4-lea nod al listei construite apoi sa se afiseze continutul listei 35*. Sa se creeze o lista inlantuita care sa contina in noduri informatii, citite de la tastatura, despre studenti, in formatul urmator: nume student, grupa, nota la disciplina INFORMATICA, si sa se afiseze continutul listei; Sa se citeasca de la tastatura un nume de student si sa se stearga nodul corespunzator acestui student din lista construita , apoi sa se afiseze continutul listei. 36*. Sa se creeze un fisier pe disc care sa cuprinda, pentru angajatii unei firme, urmatoarele informatii: numele angajatului, vechimea in munca si salariul; Sa se parcurga fisierul creat si sa se afiseze pe ecran lista angajatilor care au un salariu mai mic de 1 milion de lei

37*.Sa se creeze un fisier pe disc care sa cuprinda, pentru angajatii unei firme, urmatoarele informatii: numele angajatului, vechimea in munca si salariul; Sa se parcurga fisierul creat si fiecarui angajat cu o vechime in munca mai mare de 10 ani sa i se mareasca salariul cu un spor de vechime (acelasi pentru toti angajatii), citit de la tastatura la inceput; Sa se afiseze pe ecran lista angajatilor care au primit sporul 38.* Se da o lista liniara simplu inlantuita cuprinzand numere naturale. Sa se ordoneze crescator numerele din lista. 39.* Se citesc n perechi de numere reale reprezentand puncte din plan (in ordinea abcisa, ordonata). Scrieti un program care sa determine masura celui mai mare segment avand ca extremitati doua dintre punctele date. 40. Se considera un fisier text care contine numere pe mai multe randuri, numerele de pe acelasi rand fiind despartite intre ele prin spatii. Sa se determine cate numere sunt pe fiecare rand. 41 Sa se creeze un program care transforma literele mici ale unui cuvant in litere mari si literele mari in litere mici. 42.* Scrieti un program care determina numarul de cuvinte al unei propozitii. Cuvintele sunt formate din literele alfabetului englezesc si sunt despartite prin unul sau mai multi separatori. Multimea separatorilor se considera a fi formata din punct, punct si virgula, spatiu si virgula. 43. Se considera un tablou bidimensional cu m linii si n coloane (1<=m,n<=50) citit din fisierul text tablou.in avand componente numere naturale mai mici sau egale cu 1000. Sa se determine cel mai mare divizor si cel mai mic multiplu comun al componentelor tabloului. 44. Se considera un tablou bidimensional a cu n linii si n coloane (1<=n<=50) citit din fisierul text tablou.in avand componente intregi. Se cere ca prin operatii de interschimbare de linii si coloane sa se obtina un tablou cu elementele de pe diagonala principala ordonate crescator. Solutia se va scrie in fisierul text tablou.out. 45*. Se considera un tablou bidimensional a cu m linii si n coloane (1<=m,n<=50) citit din fisierul tablou.in, cu componente intregi. Sa se determine numarul de linii cu componentele strict crescatoare din a si sa se afiseze solutia pe ecran.

Nota: Subiectele marcate cu * sunt pentru candidatii de la clasele de matematicainformatica intensiv (Liceul Stefan Procopiu).