Sunteți pe pagina 1din 8

bursucliviu@yahoo.

com

PROBLEME PROPUSE PENTRU EXAMENUL DE ATESTAT


2006-2007
(Pascal sau C++)
Cap. 1 Algoritmi elementari
1. Se citesc numere de la tastatur pn la ntlnirea lui 0. Afiai suma numerelor care au
exact k divizori (k se citete de la tastatur). Restricii: 0 k 10
2. Se citesc de la tastatur n numere naturale mai mici dect 100. Afiai produsul cifrelor
diferite de zero ale numerelor citite. Restricii: 0 n 100
3. Se citete un numr natural n (n 1000 ). Afiai numrul n baza b (b se citete de la
tastatur). Restricii: b 20 .
4. Scriei un program care determin toate numerele naturale perfecte mai mici dect un
numr natural n n 100 citit de la tastatur. Un numr este perfect dac este egal cu
suma divizorilor si. Exemplu: 28 = 1 + 2 + 4 + 7 + 14
5. Se citesc dintr-un fiier text, n numere naturale formate din 3 cifre. Afiai n alt fiier
mesajul Este palindrom dac numrul format din cifra din mijloc a fiecrui numr
citit este palindrom. Exemplu: daca n=5 si cele n numere sunt:123, 345, 654, 447, 921
numarul care se obine este 24542 si este palindrom, sau daca n=5 si numerele sunt :
123, 345, 654, 437, 921, atunci numrul 24532 nu este palindrom
6. Dintr-un fiier text se citesc n numere naturale pozitive n 100 . Afiai pe ecran
toate numerele care ndeplinesc condiia ca oglinditul lor s fie un numr prim.
Restricii: Numerele nu vor conine cifra 0.
7. Se d un numr natural n (n<100.000.000) format din cifre nenule.
a. Determinai numerele naturale n1 i n2 formate din cifrele pare, respectiv
impare din n (n ordinea din numr)
b. Afiai cel mai mare numr care poate fi obinut din concatenarea numerelor
n1 i n2.
8.

Se d un numr natural n (n<100.000.000). S se afieze descompunerea lui n ca


sum de numere naturale consecutive ncepnd de la 1. In caz c nu exist soluie, se
va afia un mesaj corespunzator. Exemplu: n=15, n=1+2+3+4+5

9. Se d un numr natural n (n<100.000.000). S se afieze toate descompunerile lui n ca


sum de numere naturale consecutive. Exemplu: n=15n=1+2+3+4+5=4+5+6=7+8
10. Se citeste un numar natural n. Sa se determine cel mai apropiat numar prim fata de n.
Exemplu: daca n= 20 cel mai apropiat numar prim este 19, iar daca n=22 rezultatul va
fi 23.
11. Se citesc doua valori a si b care reprezinta capetele unui intreval. Sa se construiasca un
subprogram care primeste prin doi parametri capetele intervalului si intoarce printr-un

alt parametru numarul de valori palindrom. Exemplu daca a=10 si b=20 singurul
numar palindrom din intervalul dat este 11 i funia trebuie s returneze valoarea 1.
12. Sa se scrie o functie care verifica daca un numar este sufixul patratului sau Exemplu:
n=25 si patratul sau 625
13. S se determine i s se afieze pe ecran toate numerele naturale de cel puin dou
cifre formate numai din cifre pare, distincte.
14. Sa se genereze primele n numere prime, n citit de la tastaura.
15. Sa se determine suma tuturor numerelor formate numai din cifre impare distincte.
16. Se citesc de la tastatur numerele x i y. Afiai divizorii comuni ai acestora.
17. Se dau 2 numere naturale a i b.(0<=a<=b<100.000.000 . Sa se afieze numrul de
cifre ale tuturor numerelor din intervalul [a,b].

Cap.2 Tablouri
1. Fiierul text "matrice.in conine:
- pe prima linie dou numere naturale n i m care reprezint numrul de linii, respectiv
numrul de coloane ale unui tablou bidimensional A(n x m).
- pe urmtoarele n linii cte m numere naturale din intervalul [0,9].
Elementele de pe fiecare linie reprezint cifrele unui numr intr-o anumit baz.
Determinai i afiai pentru fiecare linie:
a) baza minim n care cifrele respective pot reprezenta un numr.
b) valoarea obinut dup conversia numrului in baza 10, daca se considera ca
numrul este reprezentat in baza determinata la punctul a
2. Din fiierul de intrare tab2.in se citete de pe prima linie n (0<n<100) i de pe
urmtoarele n linii cele n*n elemente ale unei matrici ptratice (toate elementele
matricii sunt numere naturale mai mici dect 32.767). Scriei programul care creeaz
fiierul text tab2.out care conine:
- pe prima linie acele numere din matrice care au cel puin doi divizori strict mai
mici dect numrul n sine;
- pe linia a doua din fiier toate numerele prime din matrice.
3. Realizai un program care determina cel mai mare divizor comun al elementelor
situate pe fiecare coloan a unei matrice ptratice. Matricea se va citi din fiier text
care are urmatoarea structur: pe prima linie 2 numere n i m care reprezint numrul
de linii i de coloane si apoi cele n linii ale matricei.
4. Fie mulimea de numere M={m1, m2, , mn}. Un tablou cu n linii i n coloane se
numete ptrat latin dac fiecare element al mulimii M apare o dat i numai o dat pe
fiecare linie i pe fiecare coloan. S se scrie programul care citete din fiierul
tab5.in de pe prima linie n i de pe urmtoarele n linii elementele tabloului i scrie
n fiierul de ieire tab5.out mesajul Tabloul este ptrat latin sau Tabloul nu este

ptrat latin. Exemplu: pentru tab5.in (4//1 2 3 4//4 1 2 3//3 4 1 2//2 3 4 1) se va scrie
n fiierul tab5.out mesajul (Tabloul este ptrat latin).
5. Scriei programul care creeaz fiierul tab1.out ce conine pe prima sa linie, n ordine,
toate literele mari ale alfabetului englez, cu excepia vocalelor, aflate n alfabet dup o
liter mare citit de la tastatur. Exemplu: dac se citete litera R, atunci fiierul
tab1.out va conine: STVWXYZ.
6. Se citete dintr-un fiier text o matrice cu n linii si m coloane cu componente numere
ntregi. Se cere s se afieze numrul/numerele de ordine a liniilor din matrice care au
cele mai multe componente distincte.
7. Se consider o matrice A(n, n) cu p elemente nenule. Matricea este memorat
economic sub forma a 3 vectori V, L, C cu cte p elemente ce rein valoarea, linia,
coloana fiecrui element nenul din matrice. S se scrie programul care citete n, p i
vectorii dintr-un fiier text i construiete matricea A corespunztoare.
8. Se citete de la tastatur un numr natural N cuprins ntre 1 i 20 inclusiv. S se
constriasc o matrice ptratic de dimensiune N care s memoreze primele N*N
numere prime. Ordinea de completare a matricei va fi spiral n sens invers
trigonometric. Se consider c primul numr prim este 2. Matricea rezultat se va
scrie n fiierul matrice.out.
Exemplu
Dac N=4 atunci matricea va fi:
2
37
31
29

3
41
53
23

5
43
47
19

7
11
13
17

9. Sa se construiasca un program care permite inlocuirea elementelor unui vector cu


suma factorialelor cifrelor lor daca aceasta suma nu se afla intr-un interval [x,y], citite
de la tastatura.
10. Se considera un vector cu n elemente numere reale. Inserati in fata fiecarui element
negativ un element de valoare 0. Elementele vor fi afisate cu 2 zecimale. Exemplu :
n=4 si vectorul : (2.32, -4.34, -9.2, 1.0) se va afisa : 2.23 0.00 -4.34 0.00 9.20 1.00
11. Se citeste din fisierul text matrice.txt o matrice patratica, se imparte matricea in patru
zone, din care lipsesc diagonalele. Se cere:
a. suma elementelor din prima zona,
b. afisarea numerelor prime din zona a doua
c. suma elementelor pare din zona 3
12. Se da o matrice patratica de dimensiune n citita din fisierul matrice.in Se cere s se
bordeze matricea cu cel mai mare divizor comun de pe fiecare linie.
13. Se da un vector cu n elemente numere intregi. Sa se elimine din vector toate
elementele care au mai mult de 2 divizori proprii.

14. Se considera o multime de n numere reale. Se cere o submultime a sa , cu un numar


maxim de elemente, astfel incat suma elementelor sale sa fie maxima. Exemplu: daca
n=5 si vectorul conine: -3, 2, 1, 5, -6 suma maxima este 8 iar submultimea care o
formeaz este alcatuit din valorile : 2,1,5.
Cap. 3 Siruri de caractere, structuri
1. Se citesc de la tastatur 3 iruri de caractere s, s1 i s2. S se nlocuiasc toate
apariiile irului s1 din irul s cu sirul s2.
2. Se citete un text de la tastatur. S se insereze dup fiecare vocal codul ASCII
corespunztor acesteia. Afiai textul modificat.
3. Se citete un text de la tastatur. Cuvintele se consider separate prin spaiu, virgul
sau punct i virgul. Numrai cte cuvinte conine textul i cte dintre acestea sunt
palindrom. Un cuvnt se consider ca fiind palindrom, dac ignornd diferenele dintre
minuscule i majuscule, este identic cu cuvntul obinut prin citirea caracterelor de la
dreapta la stnga.
4. Se citete de la tastatur o propoziie terminat cu punct. Cuvintele din propoziie sunt
separate prin caracterul virgul i prin caracterul spaiu. Dup virgul poate exista i
spaiu. Se cere:
a. s se afieze cuvintele din propoziie, fiecare pe cte un rnd. Cuvintele vor fi
afiate cu litere mici, exceptnd prima liter care va fi majuscul.
b. S se numere i sp se afieze cte cuvinte conine aceast propoziie.
5. La un concurs de informatic au participat n elevi, pentru fiecare elev cunoscndu-se
numele, liceul de provenien i nota obinut. Realizai un program care citete datele
elevilor participani, apoi tiprete numele elevilor cu cea mai mare not, media
general a concurenilor precum i numele elevilor ce au obinut un punctaj peste
aceast medie.
6. S se descompun un numr n factori primi, memornd rezultatul sub forma unui
vector de nregistrri: fiecare nregistrare va cuprinde dou cmpuri, unul indicnd
factorul prim, iar cellalt puterea la care apare n descompunere. S se afieze factorii
primi care apar la puterea cea mai mare.
7. Se citesc din fiier text un text alctuit din unul sau mai multe cuvinte. Cuvintele sunt
separate printr-un singur spaiu. S se afieze aceste cuvinte n ordine alfabetic i apoi
s se numere cte dintre ele ncep i se termin cu aceeai liter.
8. S se elimine toate apariiile n exces ale caracterului spaiu dintr-un text . De
exemplu, dac textul iniial este Examenul la informatica
, se va obine
textul Examenul la informatica.
9. ntr-un fiier text sunt pstrate informaii despre elevii unei clase. Pe primul rnd este
nregistrat numrul n de elevi din clas. De pe urmtoarele n linii se vor citi pentru
fiecare elev: numele i CNP-ul. S se afieze numele i ziua naterii celui mai tnr
elev din clas. Dac sunt mai muli elevi cu aceeai vrst minim, se vor afia toi

elevii respectivi.

(Codul numeric personal este format din 13 caractere, astfel:


saallzzxxxxxx, unde s precizeaz sexul persoanei respective i poate lua valoarea 1 pentru
masculin i 2 pentru feminin, iar aa reprezint anul , ll reprezinta luna, zz reprezint ziua din
data de natere.)
Cap.4 Recursivitate
1. Se citesc de la tastatur dou numere naturale n i k (nk, n>0). S se calculeze,
recursiv, nk i Cnk.
2. Se citete o valoare natural n . Se cere s se scrie un subprogram recursiv care s
calculeze valoarea expresiei:
a. E1=1*3 - 2*4 + 3*5 - 4*6++(-1)n+1 *n*(n+2)
b. E2=2*4*6*8*.*(2*n)
3. Se citete un numr ntreg si pozitiv. Se cere s se scrie cte un subprogram recursiv
care s determine:
a. Suma cifrelor impare ale numrului
b. Dac numrul este bine ordonat cresctor
4. Se citete o valoare natural n . Se cere s se scrie cte un subprogram recursiv care s
calculeze valoarea expresiei:
a. E1=1 *4*7**(3n-2)
b. E2=2 4 + 6 ++(-1)n+1 (2*n)
5. Se citesc dou numere naturale diferite a i b. Se cere:
a. Definii o funcie recursiv care s calculeze valoarea ab.
b. Definii o funcie recursiv care s calculeze suma valorilor din intervalul [a,
b]
6. Se citete de la tastatur un vector cu n elemente numere ntregi. Se cere:
a. Scriei o funcie recursiv care calculeaz produsul elementelor impare din
vector.
b. Scriei o funcie recursiv care determin dac elementele situate simetric fata
de mijlocul vectorului sunt egale.
7. Se citete de la tastatur un vector cu n elemente numere ntregi. Se cere:
a. Scriei o funcie recursiv care calculeaz suma elementelor din vector
b. Scriei o funcie recursiv care verific dac exist cel puin o valoare pozitiv
n vector .
8. Se citete un ir de caractere. Realizai un subprogram recursiv care returneaz acest
ir oglindit, din care lipsesc consoanele.
Cap. 5. Backtracking
1. S se determine toate irurile de n numere ntregi (x 1, x2, ..., xn) astfel nct x1=a, xn=b
(n,a i b citite de la tastatur, |a-b|n-1), iar diferena dintre orice dou numere vecine
este cel mult 1. Scrierea se va face n fiierul numere.txt. S se precizeze numrul de
soluii ale problemei.

2. Sa se genereze toate sirurile de n (n<=6) note muzicale din multimea


{do,re,mi,fa,sol,la,si}. Fiecare sir va fi afisat pe cate o linie, acestea se pot repeat in
cadrul unui sir.
3. Un student are de sustinut intr-o sesiune n exemene, numerotate cu numere de la 1 la
n, in functie de ordinea in care trebuie sa le sustina. Sesiunea dureaza un numar de m
zile consecutive (n<=[m/2]<=10), iar studentul paote sa-si programeze fiecare examen
in ce zi doreste, respectand doar ordinea acestora.In plus el nu doreste sa aiba de
sustinut doua examnene in zile consecutive. Sa se genereze toate programarile pe zile
ale examenelor in conditiile dorite de student.Zilele sesiunii vor fi numerotate de la 1
la m.
4. S se afieze toate numerele naturale de n cifre care conin k cifre de 1. Exemplu:
pentru n=3 i k=2 se obin soluiile 101, 110 , 112, 113,, 911.
5. Se citete n, un numr natural. S se afieze toate numerele naturale, formate din cifre
distincte nenule, care sunt mai mici dect n i care au aceiai sum a cifrelor ca i n.
Exemplu: daca n=312 atunci trebuie afiate numerele 123, 132, 15, 213, 231, 24, 42,
51, 6
6. Se citete de la tastatur un cuvnt de maxim 6 litere. S se afieze toate anagramele
sale. Exemplu: dac se citete cuvntul mar atunci se va afia: mar, mra, amr, arm,
rma, ram.
7. S se genereze toate modalitile de aezare pe tabla de ah a n regi, fiecare pe cte o
linie, astfel nct s nu se atace ntre ei. Soluiile se vor afia n fiierul text
REGI.OUT si se vor numerota.
8. Se consider un numr natural n (citit de la tastatur) din intervalul (1...100). Creai
programul care scrie n fiierul de ieire back1.out toate numerele naturale de n cifre
cu produsul cifrelor egal cu 8. Exemplu: pentru n=3, n fiierul de ieire se vor scrie,
pe
cte
o
linie,
urmtoarele
secvene:
(118//124//142//181//214//222//241//412//421//811).
9. S se genereze toate irurile strict cresctoare formate din numere naturale cu
proprietatea c primul element din ir este n iar ultimul element din ir este n+p.
Numerele n i p se citesc de la tastatur (0<n<20 i 0<p<16). Fiecare ir generat va fi
scris pe cte o linie, n fiierul de ieire back2.out, elementele irului fiind separate
prin cte un spaiu. Exemplu: pentru n=7 i p=3 se vor afia, nu neaparat n aceast
ordine irurile: (7 8 9 10//7 8 10//7 9 10//7 10) .
Cap. 5. Liste
1. Din fiierul lista.txt se citesc mai multe numere naturale. S se creeze o list liniar
simplu nlnuit cu numerele cu suma cifrelor k (citit de la tastatur) i s se afieze.
S se tearg din list numerele pare i s se afieze lista.
2. Se citete N natural. S se construiasc o list care conine divizorii lui N. (toi). Se
citete de la tastatur un numr X. S se afieze elementele din L care sunt prime cu X.

3. S se creeze un arbore binar avnd drept chei numere ntregi, citite de la tastatur.
Pentru acest arbore afiai cheile n postordine, afiai cheile din nodurile care au exact
un succesor, fie drept, fie stng. Determinai cte noduri terminale conine arborele.
4. ntr-un fiier text sunt aezate numere ntregi pe o singura linie. Numerele sunt
separate printr-un singur spaiu. Se cere s se construiasc o list cu numerele din
fiier care s respecte urmtoarele reguli:
a. dac numrul curent citit din fiier nu se mai gsete n list atunci el va fi
adugat la sfritul listei, altfel el va fi adugat lng numrul care are aceeai
valoare cu el;
b. se va citi de la tastatur un numr ntreg k i vor fi terse din list toate
elementele care sunt egale cu k;
c. Se va afia lista nainte i dup operaia de tergere.
5. Sa se scrie un program care construiete un arbore binar cu n noduri avnd drept chei
numere ntregi citite de la tastatura . Sa se afieze:
a. arborele construit in preordine, postordine, inordine
b. suma cheilor pare
6. Sa se scrie un program care construiete un arbore binar cu n noduri avnd drept chei
numere ntregi citite de la tastatura . Sa se afieze:
a. valoarea minima si maxim din arbore
b. cheile din nodurile care au exact un succesor(fie stng, fie drept).
7. Sa se scrie un program care construiete o list simplu nlnuit cu n noduri avnd
drept chei numere ntregi citite de la tastatura . Se citesc apoi dou numere ntregi n
variabilele x i y. Sa se nlocuiasc toate apariiile valorii x n list cu valoarea y.
Afiai lista nainte i dup modificare.
Cap. 7. Grafuri
1. Se citete de la tastatur o fraz. S se construiasc un arbore binar de cutare
cuprinznd caracterele din fraz i frecvenele lor de apariie. S se afieze pe ecran
caracterele (n ordinea codurilor ASCII), mpreun cu frecvenele lor de apariie.
2. Consideram un (di)graf si o functie de cost atasata muchiilor, se cere sa se determine
drumurile de cost minim de la un nod i0 la toate nodurile grafului precum si costurile
acestor drumuri.
3. Se citete matricea de adiacen a unui graf orientat. Sa se afieze toate nodurile pentru
care d+(x)=d_(x) (gradul exterior este egal cu gradul interior). Pentru un nod x citit sa
se listeze toate nodurile adiacente cu acesta.
4. n fiierul text graf1.in sunt memorate pe prima linie n (numrul de noduri al unui graf
neorientat G) i m (numrul de muchii ale grafului) iar pe urmtoarele m linii perechi
de numere care reprezint muchiile lui. Se cere s se afieze, n fiierul graf1.out, o
parcurgere n adncime a grafului plecnd din nodul de grad maxim.

5. Se definete o muchie a unui graf neorientat ca o nregistrare cu trei cmpuri: cele


dou vrfuri extremiti si un cost asociat muchiei (un numr ntreg). Definim un graf
neorientat ca un vector de muchii. Fiind dat vectorul de muchii al unui graf neorientat
G=(X,U) cu m muchii i n vrfuri, s se afieze matricea de adiacen i muchia
(muchiile) de cost minim.
6. Fie un graf G cu n vrfuri a crui matrice de adiacen se citete dintr-un fiier text. S
se determine dac graful G este neorientat. n cazul n care G este un graf neorientat,
s se verifice dac este graf regulat.
7. Se citete dintr-un fiier text matricea de adiacen a unui graf neorientat cu n vrfuri.
S se afieze toate componentele conexe, precum i numrul acestora. La fiecare
component conex sa se precizeze cte vrfuri conine.
8. S se verifice dac o secven de noduri dat reprezint un drum elementar sau
neelementar ntr-un graf orientat. Numrul de noduri ale grafului, matricea de
adiacen i secvena de noduri se citesc dintr-un fiier text.

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