Sunteți pe pagina 1din 12

SUBIECTE PROGRAMARE ATESTAT 2003 BACKTRACKING 1. Se citesc de la tastatur dou numere naturale n i m (0<n<m<12).

. S se afieze toate irurile formate din n litere distincte, litere alese dintre primele m ale alfabetului englez. De e emplu, pentru n !2 i m !" se afieaz, nu neaprat #n aceast ordine, irurile$ %&, &%, %', '%, %D, D%, &', '&, &D, D&,'D,D'. 2. '()i*a copii cu *(rste #ntre 2 i + ani trebuie s fie *izita)i de ,o 'rciun. Scrie)i un program care determin toate modurile diferite #n care pot ei s fie aeza)i #n lista lui ,o 'rciun, astfel #nc(t s fie *izita)i to)i copiii i *izitele s se fac #n ordinea cresctoare a *(rstei lor. Se citesc de la tastatur$ n, numrul de copii (0< n<10), apoi numele i *(rsta fiecruia dintre cei n copii. Se scriu #n fiierul te t '-%'./0.121, pe linii diferite, liste cu numele copiilor, #n ordinea #n care *or fi *izita)i de ,o 'rciun. 3 list este format din toate cele n nume ale copiilor, #ntr4o anumit ordine, orice dou nume succesi*e fiind despr)ite prin spa)ii. 5 emplu: 6entru datele de intrare n!" Dan 7 'ristina " 'orina 2 .ulia " se scriu #n fiierul '-%'./0.121 urmtoarele solu)ii$ 'orina .ulia 'ristina Dan 'orina 'ristina .ulia Dan 8. Se citesc de la tastatur numerele naturale n i k (0<n910000 i 0<k910) reprezentate #n baza 10. S se afieze #n ordine cresctoare toate numerele naturale de k cifre cu proprietatea c sunt formate numai cu cifre ale numrului n. De e emplu, pentru n!217 i :!2, se *or afia numerele$ 11, 12, 17, 21, 22, 27, 71, 72, 77.

4. S se genereze toate irurile de n (n<7, numr natural dat de la tastatur) note muzicale din mul)imea ;do, re, mi, fa, sol, la, si<. 3rice not poate s nu apar sau se poate repeta #n cadrul unui ir. =iecare ir *a fi afiat pe c(te o linie #n fisierul te t 3/1.121, notele #n cadrul liniei fiind separate prin c(te un spa)iu. 5 emplu$ pentru n!>, unul dintre irurile generate este$ mi do do si mi 5. S se genereze toate cu*intele de lungime n (n<10) ale alfabeltului ,orse (formate doar din caracterele ?4? i ?.?) care nu #ncep i nu se termin cu caracterul ?4?. =iecare cu*(nt *a fi afiat pe c(te o linie #n fiierul te t 3/1.121. 6. Se consider n inter*ale desc@ise, un inter*al fiind identificat prin cele dou *alori reale din capete a, b. S se genereze toate sec*en)ele de inter*ale cu proprietatea c oricare dou inter*ale ale unei sec*en)e sunt disAuncte (dou mul)imi se numesc disAuncte dac intersec)ia lor este *id). =iecare solu)ie se *a scrie pe c(te o linie a fiierului 3/1.121 #n formatul (al,bl) (a2,b2)... Exemplu $ 6entru n!8 i inter*alele (2,>.>), (8,7), (7.+,10) fiierul 3/1.121 *a con)ine$ (2, >.>) (8,7) (7.+,10) (2,>.>) (7.+,10) (8,7) (7.+,10) 7. Se citete un cu*(nt format din ma im 20 de litere distincte. S se afieze toate anagramele cu*(ntului respecti*. /n cu*(nt s este anagrama unui cu*(nt t dac s este format din aceleai litere ca i cu*(ntul t, dar aezate #n alt ordine. Exemplu$ 6entru cu*(ntul BcarB trebuie afiate, nu neaprat #n aceast ordine anagramele$ car,cra,acr,arc,rca,rac.
8. Se citete din fiierul standard de intrare un numr nN* i o mulime M cu p elemente numere intregi. S se determine i s se scrie n fiierul text CART elementele produsului cartezian MM...M (de n ori) S se listeze coninutul acestui fiier.

9. /n copil doreste sa puna n bile numerotate de la 1 la n in n cutii, cate o bila in fiecare cutie. Sa se afiseze toate posibilitatile pe care le are copilul de a pune cele n bile in cele n cutii. 10. Sa se genereze toate palindroamele ce au n cifre ,iar cifrele au *alori intre 0 si p. Se citesc de la tastatura n si p (0<n<10, 0<p<>). 6alindroamele se *or afisa in fisierul te t 3/1.121. -eamintim ca un numar este palindrom daca coincide cu imaginea lui in oglinda. Barem : 4 declararea *ariabilelor$ 4 citirea datelor de intrare$ 4 un algoritm de generare principial corect$ 4 *erificarea conditiilor de continuare $ 4 afisarea solutiilor$ 4 corectitudinea sintactica a programului $ 4 din oficiu ALOCARE DINAMICA
11. S se realizeze operaiile de creare i vizualizare a unei stive implementate dinamic precum i eliminarea unui element din stiv. Barem: ! declararea corect a varia"ilelor# $ punct ! crearea# % puncte ! vizualizarea# & puncte ! eliminarea unui element# & puncte ! din oficiu# $ punct 12. S se realizeze operaiile de creare i vizualizare a unei cozi implementate dinamic precum i eliminarea unui element din coad. Barem: ! declararea corect a varia"ilelor# $ punct ! crearea# % puncte ! vizualizarea# & puncte ! eliminarea unui element# & puncte ! din oficiu# $ punct

0.> puncte 1 punct 8 puncte 2 puncte 2 puncte 0.> puncte 1 punct

13. Sa se creeze o lista liniara du"lu inlantuita avand ca elemente cuvinte citite din fisierul standard de intrare pana la intalnirea caracterului *. Sa se afiseze cuvintele in ordine inversa citirii si apoi in ordinea in care s'au citit Barem: ! declararea corect a varia"ilelor# $ punct ! crearea# % puncte ! vizualizarea# % puncte ! din oficiu# $ punct 14. Se citeste de la tastatura un sir de numere intregi care se inc(eie cu citirea valorii ). Sa se creeze o lista liniara simplu inlantuita astfel incat la parcurgerea listei elementele sa apara in ordinea in care au fost citite. a) Sa se afiseze continutul listei ") Sa se verifice daca elementele listei sunt ordonate crescator* Barem: ! declaratii corecte# $ punct ! crearea listei# + puncte ! vizualizarea continutului# & puncte ' verificarea ordonarii crescatoare# + puncte ! din oficiu# $ punct 15. Sa se creeze o lista liniara simplu inlantuita formata din numere intregi introduse de la tastatura. Sa se afiseze continutul listei dupa care sa se realizeze transferul primului element la sfarsitul listei. Exemplu: daca lista contine initial elementele & ,$ % - $% &, ./ (in aceasta ordine) dupa transfer continutul va fi# ,$ % - $% &, ./ & (in aceasta ordine). Barem: ! declaratii corecte# ! crearea listei# ! vizualizarea continutului# ' realizarea transferului cerut# ! din oficiu# $ punct + puncte & puncte + puncte $ punct

16. Sa se descrie operatia de adaugare a unui nou element la o lista liniara simplu inlantuta implementata dinamic ce contine in noduri caractere Barem: ! declaratii corecte# ! crearea listei# ! vizualizarea continutului# ' adaugarea unui element# $ punct + puncte & puncte + puncte

! din oficiu#

$ punct

17. Sa se realizeze operatiile de creare si vizualizare a unei liste circulare Barem: ! declaratii corecte# ! crearea listei# ! vizualizarea continutului# ! din oficiu# $ punct % puncte % puncte $ punct

18. Sa se realizeze operatia de eliminare a unui element dintr'o lista simplu inlantuita implementata dinamic ce contine numere intregi citite de la tastatura. Sa se afiseze lista inainte si dupa stergere Barem: ! declaraii i citire# ! crearea listei # ! stergerea unui element# ! afiarea listei# ! din oficiu# $ punct + puncte + puncte & punct $ punct

GRAFURI 19. Se da un graf neorientat C prin$ numarul de *arfuri (n, numar natural poziti*) pentru fiecare *arf se cunosc *arfurile adiacente cu el Se cere sa se scrie un program prin care sa se afiseze$ a) gradul fiecarui *arfD b) lista tuturor *arfurilor de grad ma imD c) numarul de *arfuri izolateD d) numarul de muc@ii din graf
Barem: ! declaraii i introducere corecta a grafului# $ punct ! realizarea punctului a) # & puncte ! realizarea punctului ")# & puncte ! realizarea punctului c)# & puncte ' realizarea punctului d)# & puncte ! din oficiu# $ punct

20. Se da un graf neorientat C cu n *arfuri si m muc@ii (n si m sunt numere naturale introduse de la tastatura). Sa se scrie un program care sa *erifice daca graful este complet.
Barem: ! declaraii corecte de varia"ile# $ punct ! reprezentarea corecta a grafului prin matricea de adiacenta# + puncte ! realizarea algoritmului de prelucrare# + puncte ! afisarea rezultatului # & puncte ! din oficiu# $ punct

21. =ie C un graf neorientat dat prin numarul de *arfuri si numarul de muc@ii (n respecti* m, numere naturale introduse de la tastatura). Sa se scrie un program care sa *erifice daca graful contine un ciclu de lungime patru.
Barem: ! declaraii corecte de varia"ile# $ punct ! reprezentarea corecta a grafului prin matricea de adiacenta# + puncte ! realizarea algoritmului de prelucrare# + puncte ! afisarea rezultatului # & puncte ! din oficiu# $ punct

22. 6entru un graf orientat C cu n *arfuri si m arce (n si m numere naturale citite la intrare) sa se scrie un program care sa determine matricea drumurilor. ,atricea se *a afisa pe ecran linie cu linie
Barem: ! declaraii corecte de varia"ile# $ punct ! reprezentarea corecta a grafului prin matricea de adiacenta# + puncte ! determinarea matricii drumurilor prin alg. lui 0o1'2ars(all# + puncte ! afisarea matricii drumurilor # & puncte ! din oficiu# $ punct

23. 6entru un graf orientat C cu n *arfuri si m arce, sa se scrie un program care sa construiasca si sa afiseze listele de adiacenta a succesorilor *arfurilor grafului sub forma de liste liniare simplu inlantuite. (n si m sunt numere naturale citite la intrare)
Barem: ! declaraii corecte de varia"ile# & puncte ! generarea listelor de adiacenta# % puncte ! afisarea listelor # + puncte

! din oficiu#

$ punct

&%. Dat un graf orientat C cu n *arfuri si m arce, sa se scrie un program prin care$ a) sa se calculeze semigradul interior,respecti* e terior al fiecarui *arf b) sa se *erifice daca graful are *arfuri izolate Datele de intrare se preiau din fisierul te t .06/1.121 sub forma urmatoare $ pe prima linie $ n E reprezentand numarul de *arfuri a grafului D pe linia a doua $ m E reprezentand numarul de arce a grafului D pe urmatoarele m linii cate o perec@e de numere separate printr4un spatiu ce reprezinta e tremitatea initiala,respecti* finala a arcului. -ezultatele se *or afisa pe ecran.
Barem: ! declaraii corecte de varia"ile# $ punct ' citirea corecta a datelor din fisier# $ punct ! reprezentarea corecta a grafului prin matricea de adiacenta# & puncte ! realizarea punctului a)# & puncte ' realizarea punctului ")# & puncte ! afisarea rezultatelor# $ punct ! din oficiu# $ punct

25. Se da un graf orientat C cu n *arfuri si m arce reprezentat in memorie prin matricea de adiacenta. Sa se scrie un program care pornind de la matricea drumurilor corespunzatoare grafului sa *erifice daca $ a. graful are *arfuri izolate. b. graful contine circuite (n si m sunt numere naturale citite la intrare)
Barem: ! declaraii corecte de varia"ile# $ punct ! reprezentarea corecta a grafului prin matricea de adiacenta# & puncte ! determinarea matricii drumurilor prin alg. lui 0o1'2ars(all# & puncte ! realizarea punctului a)# & puncte ' realizarea punctului ")# & puncte ' din oficiu# $ punct

FUNCTII SI PROCEDURI RECURSIVE


26. Sa se scrie un program care citeste de la tastatura un numar natural n si apeleaza o functie recursiva care intoarce valoarea produsului# p(n)3$*+*,*4 *(&n5$)

Exemple:

pentru n3) se va afisa p())3$ adica &*)5$ pentru n3+ se va afisa p(+)3$), adica $*+*,*-

Barem: ' corectitudinea definitiei recursive# + puncte ' declaratie corecta de functie# & puncte ' conditia de iesire din functie# & puncte ' corectitudine sintactica# $ punct ' din oficiu# $ punct 27. Sa se scrie un program prin care se citeste numarul n natural de la tastatura.6rogramul tre"uie sa apeleze o functie recursiva care sa intoarca valoarea sumei S(n) unde S(n)3&5,57545(&5+*n). 8aloarea pentru numarul n este citita in programul principal.8aloarea calculata de functie va fi afisata pe ecran tot in programul principal Exemplu: pentru n3+ se va afisa valoarea &. (S(+)3&5,575$$) Barem: ' corectitudinea definitiei recursive# + puncte ' declaratie corecta de functie# & puncte ' conditia de iesire din functie# & puncte ' corectitudine sintactica# $ punct ' din oficiu# $ punct 28. Se da un numar natural n introdus de la tastatura. Scrieti un program care sa calculeze suma cifrelor acestui numar.6rogramul tre"uie sa apeleze o functie recursiva care sa intoarca valoarea sumei. Barem: ' corectitudinea definitiei recursive# + puncte ' declaratie corecta de functie# & puncte ' conditia de iesire din functie# & puncte ' corectitudine sintactica# $ punct ' din oficiu# $ punct 29. Se da un numar natural n in "aza $) si un numar natural " (&93"93/). Sa se scrie un program care sa converteasca numarul n in "aza " utilizand in acest scop un su"program recursiv. Barem: ' apel corect de su"program# & puncte ' declaratie corecta de su"program# + puncte ' conversia in "aza "(alg.corect)# + puncte ' corectitudine sintactica# $ punct ' din oficiu# $ punct

30. Se citesc n cuvinte terminate fiecare cu cate un spatiu. :uvintele se citesc de la tastatura din n linii. Sa se scrie un program care sa afiseze fiecare cuvant asa cum sa citit si apoi cu literele inversate. Sa se rezolve pro"lema recursiv. Barem: ' apel corect de su"program# & puncte ' declaratie corecta de su"program# + puncte ' algoritm corect de inversare recursiva# + puncte ' corectitudine sintactica# $ punct ' din oficiu# $ punct 31. Se da un sir de caractere citit de la tastatura sir ce se termina cu caracterul punct. Scrieti un program care sa afiseze in ordine inversa sirul citit. Sa se rezolve pro"lema recursiv. Barem: ' apel corect de su"program# & puncte ' declaratie corecta de su"program# + puncte ' algoritm corect de inversare recursiva# + puncte ' corectitudine sintactica# $ punct ' din oficiu# $ punct

ALGORITMI FUNDAMENTALI CARE LUCREAZA CU TABLOURI !"#$"%&" $&'#"&$!"(


32. Se citeste din fisierul standard de intrare un numar natural n si o mutime de n valori numere intregi. Sa se afiseze in fisierul text S;<M.=>= toate su"multimile multimii date cate una pe o linie. Barem: ! declaraii i citire# $ punct ! algoritmul de determinare a su"mulimilor# % puncte ! crearea fiierului# & puncte ! listarea fiierului# & puncte ! din oficiu# $ punct 33. S se citeasc din fiierul standard de intrare un numr natural n. S se creeze un fiier text numit ?@:=A0B.=>= cu structura # ! pe prima linie se va scrie valoarea lui n* ! pe urmatoarele linii se vor scrie factorii primi i puterile lor n descompunerea lui n n factori primi (cate unul pe o linie). S se citeasc fiierul creat i s se afieze pe ecran descompunerea numrului n. Barem:

! declaraii i citire corect# $ punct ! algoritmul de descompunere n factori primi# + puncte ! crearea fiierului FACTORI.TXT# & puncte ! listarea coninutului fiierului# + puncte ! din oficiu# $ punct 34. Se da un ta"lou "idimensional cu m linii si n coloane ce contine numere intregi.Sa se determine linia ce contine cel mai mare element in valoare a"soluta din matrice. Catele de intrare se vor prelua dintr'un fisier text M@=0B:D.=>= cu structura # prima linie contine m si n( doua numere intregi pozitive separate printr'un spatiu) urmatoarele m linii contin fiecare n numere intregi separate printr'un spatiu. @fisarea rezultatelor pe ecran. Barem : ' crearea fisierului de intrare # $ punct ' citire din fisier # + puncte ' determinarea elementului maxim# % puncte ' afisare rezultate# $ punct ' din oficiu# $ punct 35. Se considera o matrice cu m linii si n coloane. Sa se scrie un program care sa ordoneze crescator liniile matricii prin una din metodele invatate. Se va mentiona metoda folosita printr'un comentariu in program. Catele de intrare se vor citi dintr'un fisier text BN6;=.=>= iar matricea ordonata se va afisa pe ecran linie cu linie. Barem : ' crearea fisierului de intrare # $ punct ' citire din fisier # + puncte ' sortarea crescatoare a liniilor# % puncte ' afisare matrice# $ punct ' din oficiu# $ punct 36. Scrieti un program care sa realizeze reuniunea a doua multimi a si " introduse prin doi vectori ce au n respectiv m elemente numere intregi distincte. Catele de intrare se vor citi de la tastatura. 0ezultatele se vor afisa pe ecran. Barem: ' declaratii de varia"ile# $ punct ' citire corecta a datelor# & puncte ' algoritm de prelucrare corect descris# , puncte ' afisarea reuniunii# $ punct ' din oficiu# $ punct

37. Scrieti un program care sa realizeze intersectia a doua multimi a si " introduse prin doi vectori ce au n respectiv m elemente numere intregi distincte. Catele de intrare se vor citi de la tastatura. 0ezultatele se vor afisa pe ecran. Barem: ' declaratii de varia"ile# $ punct ' citire corecta a datelor# & puncte ' algoritm de prelucrare corect descris# , puncte ' afisarea intersectiei# $ punct ' din oficiu# $ punct 38. Scrieti un program care sa realizeze diferenta a doua multimi a si " introduse prin doi vectori ce au n respectiv m elemente numere intregi distincte. Catele de intrare se vor citi de la tastatura. 0ezultatele se vor afisa pe ecran. Barem: ' declaratii de varia"ile# $ punct ' citire corecta a datelor# & puncte ' algoritm de prelucrare corect descris# , puncte ' afisarea diferentei# $ punct ' din oficiu# $ punct 39. Scrieti un program care sa afiseze elementele care sunt numere prime dintr'o matrice patratica cu n*n elemente intregi pozitive. Caca in matrice nu sunt astfel de elemente sa se mentioneze acest lucru print'un mesaE adecvat afisat pe ecran. Barem: ' declaratii de varia"ile# $ punct ' citire corecta a datelor# & puncte ' algoritm de determinare numar prim# , puncte ' afisare numere prime respectiv mesaE# $ punct ' din oficiu# $ punct 40. Se se scrie un program care sa realizeze interclasarea a doi vectori a si " ordonati crescator. 8ectorii au m respectiv n componente numere reale. Fa citire sa se verifice daca vectorii sunt ordonati crescator. Caca unul din ei nu satisface aceasta conditie sa se faca ordonarea prin una din metodele invatate. Barem: ' declaratii de varia"ile# $ punct ' citire corecta a datelor cu ordonare cand este cazul# + puncte ' algoritm de interclasare# % puncte ' afisare vector interclasat# $ punct ' din oficiu# $ punct

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