Sunteți pe pagina 1din 12

1. Fiierul text BAC.

txtconine, pe o singur linie, cel mult 1000de numere naturale nenule


cu cel mult 4cifre fiecare, numerele fiind separate prin cte un spaiu. Scriei un program Pascal
care citete de la tastatur un numr natural nenul n(n999) i numerele din fiierul BAC.txti
care afieaz pe ecran, separate prin cte un spaiu, toate numerele din fiier care sunt divizibile cu n.
Dac fiierul nu conine niciun astfel de numr, atunci se va afia pe ecran mesajul NUEXISTA.
Exemplu: dac fiierul BAC.txtconine numerele: 310040702558063798,
pentru n=10atunci pe ecran se va afia: 100407080
2. Fiierul text NR.TXTconine pe o singur linie, separate prin cte un spaiu, cel mult 100de
numere ntregi, fiecare numr avnd cel mult 4cifre. Scriei un program Pascalcare citete
numerele din fiierul NR.TXTi afieaz pe ecran, separate prin cte un spaiu, n ordine cresctoare,
toate numerele naturale nenule din fiier. Dac nu exist astfel de numere se va afia pe ecran
mesajul NUEXISTA.
Exemplu: dac fiierul NR.TXTconine numerele: -31007575180063798,
atunci pe ecran se va afia: 677513798
3. Fiierului text NR.TXTconine pe o singur linie, separate prin cte un singur spaiu, cel mult
100de numere naturale, fiecare numr avnd cel mult 4cifre. Scriei un program Pascalcare
citete toate numerele din fiierul NR.TXTi afieaz pe ecran, separate prin cte un spaiu, n ordine
cresctoare, toate numerele din fiier care au cel puin 3cifre. Dac fiierul nu conine astfel de
numere se va afia pe ecran mesajul NUEXISTA.
4. Fiierul text NR.TXTconine pe o singur linie, separate prin cte un singur spaiu, cel mult 100de
numere naturale, fiecare numr avnd cel mult 4cifre. Scriei un program Pascalcare citete
numerele din fiierul NR.TXTi afieaz pe ecran, separate prin cte un spaiu, n ordine
descresctoare, toate numerele din fiier care au cel mult 2cifre. Dac fiierul nu conine astfel de
numere se va afia pe ecran mesajul NUEXISTA.
5. Scriei un program Pascalcare citete de la tastur un numr natural ncu cel mult 8cifre
(n10) i care creeaz fiierul text NR.TXTce conine numrul ni toate prefixele nenule ale
acestuia, pe o singur linie, separate prin cte un spaiu, n ordine descresctoare a valorii lor.
Exemplu: pentru n=10305fiierul NR.TXTva conine numerele:
103051030103101
6. Scriei un program Pascalcare citete de la tastatur un numr natural n(0<n<=100)i cele 3*n
elemente ale tabloului unidimensional v, fiecare element fiind un numr natural cu cel mult patru cifre
fiecare. Tabloul este mprit n trei zone, cu cte nelemente: prima zon conine primele nelemente
din tablou, a doua zon conine urmtoarele nelemente din tablou, restul elementelor fiind n zona a
treia. Programul va interschimba primul element par (dac exist) al zonei unucu ultimul element
impar (dac exist) al zonei treii apoi va scrie pe prima linie a fiierului text BAC.TXTtoate
elementele tabloului astfel obinut, separate prin cte un spaiu. n cazul n care unul dintre aceste dou
elemente, care urmeaz a fi interschimbate, nu exist, programul nu va efectua nici o modificare
asupra tabloului dat.
Exemplu: pentru n=3i v=(123456789), fiierul BAC.TXTva conine:
193456782
7.Pe prima linie a fiierului text BAC.TXTse afl o valoare natural n(1<n<=50), iar pe a doua
linie nnumere naturale cu maximum 4cifre fiecare, desprite prin cte un spaiu. n irul
numerelor de pe a doua linie a fiierului exist cel puin dou numere ptrate perfecte.
Scriei un program Pascalcare citete toate numerele din fiier i afieaz pe ecran
expresia aritmetic reprezentnd suma numerelor de pe a doua linie a fiierului care au
proprietatea c sunt ptrate perfecte, cu simbolul +ntre ele i, dup un semn =, valoarea
acestei sume, ca n exemplu. Termenii sumei afiate se pot afla n orice ordine.
Exemplu: dac fiierul BAC.TXTare urmtorul coninut:
5
953698
atunci pe ecran se poate afia: 9+9+36=54sau 9+36+9=54sau 36+9+9=54

8. Fiierul text numere.txtconine pe prima linie un numr natural n(n<30000), iar pe a


doua linie nnumere ntregi avnd maximum 4cifre fiecare. Se cere s se afieze pe ecran
un ir de nnumere ntregi cu proprietatea c valoarea termenului de pe poziia i
(i=1,2,,n) din acest ir este egal cu cea mai mare dintre primele ivalori de pe a doua
linie a fiierului numere.txt.
a) Descriei pe scurt un algoritm de rezolvare, eficient din punct de vedere al timpului de
executare i al spaiului de memorie utilizat, explicnd n ce const eficiena sa.
b) Scriei programul Pascalcorespunztor algoritmului descris.
Exemplu: dac fiierul numere.txtare coninutul
12
4637816279108
se afieaz pe ecran numerele
46678888891010
9. Fiierele text NR1.TXTi NR2.TXTconin, separate prin cte un spaiu, mai multe numere
ntregi de cel mult 9cifre fiecare. Fiecare dintre fiiere conine cel mult 100de valori i
numerele din fiecare fiier sunt ordonate strict cresctor. Se cere s se afieze pe ecran, n
ordine cresctoare, numerele divizibile cu 5care se gsesc doar n unul din cele dou
fiiere.
Exemplu: dac fiierul NR1.TXTconine numerele 123472060, iar fiierul
NR2.TXTconine numerele 3578910122024, atunci se vor afia pe ecran
valorile 51060.
a) Descriei un algoritm de rezolvare a acestei probleme, eficient din punct de vedere al
timpului de executare i al spaiului de memorie utilizat, explicnd n ce const eficiena
acestuia.
b) Scriei programul Pascalcorespunztor algoritmului descris.
10. Pe prima linie a fiierului text BAC.INse gsesc, separate prin cte un spaiu, mai multe
numere naturale de cel mult 9cifre fiecare. Scriei programul Pascalcare citete numerele
din acest fiier, elimin toate cifrele impare din fiecare dintre aceste numere i apoi scrie n fiierul text
BAC.OUTnumerele astfel obinute, separate prin cte un spaiu. Dac un numr din fiierul BAC.IN
nu conine nicio cifr par nenul, acesta nu va mai aprea deloc n fiierul de ieire.
Exemplu: dac fiierul BAC.INconine numerele 257381030451270356015
atunci BAC.OUTva avea coninutul: 284260.
11. Fiierul text BAC.TXTconine mai multe numere naturale, cu cel mult 6cifre
fiecare, cte un numr pe fiecare linie a fiierului.
Scriei un program Pascalcare citete toate numerele din fiierul BAC.TXTi le
afieaz pe ecran, n aceeai ordine, cte 5pe fiecare linie, separate prin cte un
spaiu, cu excepia ultimei linii care poate conine mai puin de 5numere. Programul va
afia apoi pe ecran, pe o linie separat, cte numere din fiier au suma cifrelor par.
Exemplu: dac fiierul are coninutul alturat, pe ecran se vor afia numerele
de mai jos:
1121304051
1617101
4

11
21
30
40
51
16
17
10
1

12.n fiierul text BAC.INse gsesc, pe o singur linie, separate prin cte un spaiu, mai multe
numere naturale de cel mult 6cifre fiecare. Se cere s se determine i s se afieze pe
ecran, separate printr-un spaiu, ultimele dou numere impare (nu neaprat distincte) din
fiierul BAC.IN. Dac n fiier se gsete un singur numr impar sau niciun numr impar se
va scrie pe ecran mesajul Numereinsuficiente.
Exemplu. dac fiierul BAC.INconine valorile:1215681317903142se va
afia 1731.
a) Descriei n limbaj natural un algoritm eficient, din punct de vedere al spaiului de
memorie i al timpului de executare, pentru rezolvarea acestei probleme, explicnd n ce
const eficiena acestuia.
b) Scriei programul Pascalcorespunztor algoritmului descris.

13. Fiierul text BAC.TXTconine pe prima linie dou numere naturale ni kseparate de un
spaiu (3<=n<=10000,2<=k<=n/2), iar pe a doua linie un ir de nnumere naturale x1, x2, ...,
xnseparate prin cte un spaiu, fiecare numr din acest ir avnd cel mult patru cifre.
a) Scriei un program Pascalcare citete numerele din fiier i determin, utiliznd o
metod eficient din punct de vedere al timpului de executare, cel mai mic indice i(1<=i<=nk+1)
pentru care media aritmetic a numerelor xi, xi+1, ..., xi+k1este maxim. Programul
afieaz valoarea lui ipe ecran.
Exemplu: pentru fiierul alturat se afieaz 2, deoarece media maxim se obine pentru 9,4,7.
83
29475299
b) Explicai succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia.
14. Scriei programul Pascalcare citete din fiierul text BAC.TXTnumrul ntreg n
(1<=n<=10000) i un ir de nperechi de numere ntregi ab(1<=a<=b<=32000), fiecare pereche
fiind scris pe o linie nou a fiierului, cu un spaiu ntre cele dou numere. Programul
afieaz pe ecran pentru fiecare pereche a,bcel mai mare numr natural din intervalul
nchis [a,b]care este o putere a lui 2sau numrul 0dac nu exist nicio putere a lui 2n
intervalul respectiv. Numerele afiate pe ecran se scriu n linie, separate prin cte un
spaiu. Un numr peste putere a lui 2dac exist un numr natural kastfel nct p=2k.
Exemplu: dac fiierul BAC.TXTconine numerele
3
269
1020
1925
4
se va afia: 64160.
1720
26
15. Fiierul text BAC.TXTconine pe prima linie un numr natural nenul n
1015
(1<=n<=1000), iar pe fiecare dintre urmtoarele nlinii, cte dou numere ntregi ai
816
b(1<=a<=b<=32000), fiecare pereche reprezentnd un interval nchis de forma
[a,b]. Scriei un program Pascalcare determin intervalele care au proprietatea c
intersecia cu oricare dintre celelalte n1intervale este vid i afieaz pe cte o linie a ecranului,
separate printr-un spaiu, numerele care reprezint capetele intervalelor determinate.
Exemplu: dac fiierul BAC.TXTare coninutulalturat, pe ecran se va afia:
26sau 1720
172026
16.Fiierul text BAC.txtconine pe prima linie numrul natural n, 1<=n<=30000, pe
urmtoarele nlinii un ir de nnumere ntregi, ordonate cresctor, iar pe ultima linie
dou numere ntregi ai b(a<=b) separate de un spaiu. Fiecare dintre cele nnumere,
precum i valorile ai b, au cel mult patru cifre.
a) Scriei un program Pascal, eficient din punct de vedere al timpului de executare, care
afieaz pe ecran cel mai mic numr ntreg din intervalul nchis [a,b] care se gsete n
irul dat. Dac nu exist un astfel de numr, programul afieaz textul NU.
Exemplu: dac fiierul BAC.txtare coninutul alturat, programul afieaz valoarea 11
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei.

4
2
7
11
35
815

17. Fiierul text NUMAR.TXTconine pe prima linie un numr real pozitiv xcare are cel mult dou cifre
la partea ntreag i cel mult apte cifre dup punctul zecimal. Scriei un program Pascalcare,
utiliznd un algoritm eficient din punct de vedere al timpului de executare i al memoriei utilizate,
afieaz pe ecran, separate printr-un spaiu, dou numere naturale al cror raport este egal cu xi a
cror diferen absolut este minim.
Exemplu: dac fiierul conine valoarea 0.375, se vor afia pe ecran numerele 38.
18. Fiierul text NUMERE.INconine pe prima linie un numr natural nenul n(1<=n<=100) i pe
urmtoarea linie nnumere ntregi din intervalul [1000;1000], separate prin cte un spaiu.
Scriei un program Pascalcare citete din fiierul NUMERE.INnumrul natural n, construiete n
memorie un tablou unidimensional vcu cele nnumere ntregi aflate pe linia a

doua n fiier i elimina din tablou un numr minim de elemente astfel nct s nu existe dou elemente
alturate cu aceeai valoare. Elementele tabloului obinut se afieaz pe ecran, separate prin cte un
spaiu.
Exemplu: Dac fiierul NUMERE.INare coninutul:
12
101022199999151515atunci se afieaz 10219915.
19.Fiierul text NUMERE.INconine pe prima linie un numr natural nenul n(2<=n<=100) i pe
urmtoarea linie nnumere reale pozitive, n ordine strict cresctoare, separate prin cte un spaiu.
a) Scriei un program Pascalcare, utiliznd un algoritm eficient din punct de vedere al memoriei
utilizate, determin i afieaz pe ecran cel mai mare numr natural xcu proprietatea c n orice
interval deschis avnd drept capete oricare dou dintre cele nnumere aflate pe linia a doua n fiierul
NUMERE.INse gsesc cel puin xnumere ntregi.
Exemplu: dac fiierul NUMERE.INare coninutul:
6
3.55.19.21620.33100
atunci se afieaz 2
Explicaie: n oricare dintre intervalele (3.5,5.1), (3.5,9.2), (3.5,16), (3.5,20.33),(3.5,100),
(5.1,9.2), (5.1,16), (5.1,20.33), (5.1,100), (9.2,16), (9.2,20.33),(9.2,100), 16,20.33),
(16,100), (20,33,100)exist cel puin dou numere ntregi.
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei.
20. Fiierul text NUMERE.INconine pe prima linie un numr natural nenul n(1<=n<=100)i
pe urmtoarea linie nnumere naturale din intervalul [2,10000]separate prin cte un spaiu.
Un numr natural nse numete aproape prim dac este egal cu produsul a dou numere
prime distincte. De exemplu, numrul 14este aproape prim pentru c este egal cu produsul
numerelor prime 2i 7.
Scriei un program Pascalcare determin cel mai mare numr aproape prim de pe linia a doua a
fiierului NUMERE.IN. n cazul n care exist un astfel de numr se afieaz pe ecran mesajul DA
urmat de numrul determinat, iar n caz contrar mesajul NU.
Exemplu: dac fiierul NUMERE.INare coninutul:
6
100142187735atunci se afieaz pe ecran DA77pentru c numrul 77este cel cel mai
mare dintre numerele aproape prime din fiier (14=7*2,21=7*3,77=7*11,35=7*5).
21. Se consider dou tablouri unidimensionale Ai Bcu elemente numere naturale din
intervalul [1;10000]. Spunem c tabloul Ase poate reduce la tabloul Bdac exist o
mprire a tabloului A n secvene disjuncte de elemente aflate pe poziii consecutive n
tabloul Aastfel nct prin nlocuirea secvenelor cu suma elementelor din secven s se
obin, n ordine, elementele tabloului B. De exemplu tabloul

se poate reduce la tabloul


Fiierul text NUMERE.INconine pe prima linie dou numere naturale nenule ni m
(1<=m<=n<=100), pe linia a doua nnumere naturale din intervalul [1;10000]i pe linia a
treia alte mnumere naturale din intervalul [1;10000]. Pe fiecare linie numerele sunt
separate prin cte un spaiu. Scriei un program Pascalcare citete toate numerele din fiierul
NUMERE.INi verific, utiliznd un algoritm eficient din punct de vedere al timpului de executare, dac
tabloul construit cu cele nnumere aflate pe linia a doua n fiier se poate reduce la tabloul construit cu
cele mnumere aflate pe linia a treia n fiier. Programul afieaz pe ecran mesajul DAn caz afirmativ
i mesajul NUn caz negativ.
22. Fiierul text NUMERE.INconine pe prima linie un numr natural nenul n(1<=n<=100)i pe
urmtoarea linie nnumere reale pozitive ordonate cresctor, separate prin cte un spaiu. Scriei un
program Pascalcare citete din fiierul NUMERE.INnumrul natural n, i determin, utiliznd un

algoritm eficient din punct de vedere al timpului de executare i al memoriei utilizate, numrul minim de
intervale nchise de forma [x,x+1], cu xnumr natural, a cror reuniune include toate numerele
reale din fiier.
Exemplu: dac fiierul NUMERE.INare coninutul:
6
2.32.32.85.75.76.3
atunci se afieaz 3(intervalele [2,3],[5,6],[6,7]sunt cele 3 intervale de forma
cerut care conin numere din ir).
23. Fiierul text numere.inconine pe prima linie un numr natural n(0<n<1000), iar pe a doua linie
nnumere naturale cu cel mult 9cifre fiecare, desprite prin cte un spaiu. Scriei un program
Pascalcare citete toate numerele din fiier i afieaz pe ecran, separate prin cte un spaiu,
numerele de pe a doua linie a fiierului, care ncep i se termin cu aceeai cifr.
Exemplu: dac fiierul numere.inare coninutul
5510731019272082782
alturat, se numerele ce se vor afia sunt:
9
80
55310172782
24.Fiierul text numere.txtconine pe prima linie un numr natural n(0<n<100000), iar pe a
doua linie un ir format din ncifre, separate prin cte un spaiu. Scriei un program Pascalcare
determin n mod eficient din punct de vedere al timpului de executare cea mai mare cifr dintre cele
situate pe a doua linie a fiierului, precum i numrul de apariii ale acesteia. Cele dou numere vor fi
afiate pe o singur linie a ecranului, separate printr-un spaiu.
Exemplu: dac fiierul numere.txtare urmtorul coninut:
7
3521531
atunci pe ecran se va afia: 52.
25. Fiierul text numere.txtconine pe prima linie un numr natural n(0<n<100000), iar pe
doua linie, separate prin cte un spaiu, nnumere naturale formate din cel mult dou cifre
fiecare. Scriei un program Pascalcare determin n mod eficient, din punct de vedere al
timpului de executare, numerele ce apar o singur dat n a doua linie a fiierului. Aceste
numere vor fi afiate pe ecran n ordine cresctoare, separate prin cte un spaiu.
Exemplu: dac fiierul numere.txtare urmtorul coninut:
7
35215231
atunci pe ecran se va afia: 2323.
26. Fiierul text numere.txtconine pe prima linie un numr natural n(0<n<100000) iar pe a
doua linie ncifre, separate prin cte un spaiu.
a) Scriei un program Pascalcare determin n mod eficient, din punct de vedere al timpului de
executare, cel mai mare numr ce se poate forma cu toate cifrele coninute de a doua linie a fiierului
numere.txt. Numrul determinat se va afia pe ecran.
Exemplu: daca fiierul numere.txtare urmtorul coninut:
7
2531589
atunci pe ecran se va afia: 9855321.
27. Fiierul text numere.txtconine pe prima linie un numr natural n(0<n<100000), iar pe a
doua linie nnumere naturale, formate din cel mult 4cifre, separate prin cte un spaiu. Scriei un
program Pascalcare determin n mod eficient, din punct de vedere al timpului de execuie, cifrele ce
apar n scrierea numerelor situate pe a doua linie a fiierului. Programul va afia pe ecran aceste cifre
in ordine cresctoare, separate prin cte un spaiu.
Exemplu: dac fiierul numere.txtare urmtorul coninut:
7
243325457412134490
atunci pe ecran se va afia: 01234579
28. Fiierul text numere.txtconine pe prima linie un numr natural n(0<n<100000) iar pe a

doua linie nnumere naturale, formate din cel mult dou cifre, separate prin cte un spaiu.
a) Scriei un program Pascal, eficient att din punct de vedere al timpului de executare,
care afieaz pe ecran toate numerele situate pe a doua linie a fiierului, n ordinea
cresctoare a valorilor lor, separate prin cte un spaiu.
Exemplu: dac fiierul numere.txtare urmtorul coninut:
7
122122119123
atunci pe ecran se va afia: 391112122122
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
29. Fiierul text bac.txtconine pe prima linie un numr natural n(n<100), iar pe a doua
linie, separate prin cte un spaiu, nnumere naturale de cel mult 8cifre fiecare.
Scriei un program Pascalcare citete de la tastatur un numr natural k(k<50) precum
i numerele din fiierul bac.txti afieaz pe ecran, cu cte un spaiu ntre ele, toate
numerele de pe a doua linie a fiierului care sunt puteri ale lui k. Un numr natural xeste
putere a lui kdac exist un numr natural yastfel nct x=ky. Dac nu exist un
asemenea numr pe a doua linie a fiierului, se afieaz pe ecran mesajul NU.
Exemplu: dac se citete de la tastatur k=2, iar fiierul are coninutul alturat,
8
32563178092562160
atunci pe ecran se afieaz numerele:3225621

30.Fiierul text bac.txtconine pe prima linie un numr natural n(n<100), iar pe a doua linie,
separate prin cte un spaiu, nnumere naturale de cel mult 8cifre fiecare. Scriei un program Pascal
care citete de la tastatur un numr natural k(k<50) precum i numerele din fiierul bac.txti
afieaz pe ecran, cu cte un spaiu ntre ele, toate numerele de pe a doua linie a fiierului care sunt
puteri ale lui k. Un numr natural xeste putere a lui kdac exist un numr natural yastfel nct
x=ky. Dac nu exist un asemenea numr pe a doua linie a fiierului, se afieaz pe ecran mesajul NU.
Exemplu: dac se citete de la tastatur k=2, iar fiierul are coninutul alturat, atunci pe ecran se
afieaz numerele:
3225621
8
32563178092562160
31. Fiierul text bac.inconine pe prima linie un numr natural n(0<n<5000), iar pe a doua
linie, separate prin cte un spaiu, nnumere naturale, formate din cel mult 4cifre fiecare.
Scriei un program Pascalcare determin i scrie n fiierul bac.outtoate numerele de pe
a doua linie a fiierului care apar o singur dat pe aceast linie. Numerele determinate se
vor afia n ordinea cresctoare a valorilor lor, separate prin cte un spaiu.
Exemplu: dac pe prima linie a fiierului bac.inse afl 10, iar pe linia a doua se gsesc
numerele 2454856845485789597428932atunci valorile cutate sunt 3257
5685974.
32. Fiierul text date.inconine pe prima linie un numr natural nenul n(n<=100), iar pe a
doua linie nnumere naturale nenule, separate prin cte un spaiu, fiecare numr avnd
maximum 4cifre. Scriei un program Pascalcare citete toate numerele din fiierul text
date.in, construiete n memorie un tablou unidimensional a, cu cele nelemente din fiier
i afieaz pe ecran perechile (ai, aj), 1<=i<j<=n, cu proprietatea c elementele fiecreia
dintre aceste perechi au aceeai paritate. Fiecare pereche se va afia pe cte o linie a
ecranului, elementele perechii fiind separate prin cte un spaiu. n cazul n care nu exist
nicio pereche se va afia valoarea 0...
5
Exemplu: dac fiierul date.inare coninutul alturat,
1622361
se vor afia: (1622)(166)(226)(31)
33. Subprogramul mult, cu doi parametri, primete prin intermediul primului parametru, n, un

numr natural nenul cu maximum trei cifre i prin intermediul celui de-al doilea parametru,
a, un tablou unidimensional avnd ncomponente numere naturale cu cel mult 8cifre
fiecare. Subprogramul returneaz valoarea truedac cele ncomponente ale lui apot
forma o mulime i returneaz falsen caz contrar.
Exemplu: dac n=4 i a=(7,2,3,7,12), atunci subprogramul multva returna false.
a) Scriei declarrile de date necesare i definiia complet a subprogramului mult.
b) Fiierul text date.inconine cel mult 400de numere naturale avnd maximum 8cifre
fiecare. Scriei un program Pascalcare, folosind apeluri utile ale subprogramului mult,
afieaz pe ecran valoarea maxim k, astfel nct primele knumere succesive din fiier s
poat forma o mulime.
Exemplu: dac fiierul date.inconine
16178318210
atunci se va afia 4(deoarece primele patru numere din fiier pot forma o mulime i
acesta este cardinalul maxim posibil n condiiile impuse de enunul problemei)
34. Fiierul text date.inconine pe prima linie un numr natural nenul n(n<=100), iar pe a
doua linie un ir de nnumere naturale nenule distincte, separate prin cte un spaiu,
fiecare numr avnd maximum 8cifre.
a) Scriei un program Pascalcare citete numerele din fiier i determin cte dintre
comopnentele irului citit pot fi scrise ca sum a altor dou numere din acelai ir.
Rezultatul obinut se va afia pe ecran. n cazul n care nu exist niciun astfel de element,
se va afia valoarea 0.
Exemplu: dac fiierul date.inconine
6
110252153
atunci se va afia valoarea 2(deoarece 25=10+15, 3=1+2).
35. Se consider fiierul text date.ince conine pe prima linie un numr natural nenul n
(n<=100), iar pe a doua linie nnumere naturale, separate prin cte un spaiu, fiecare numr
avnd maximum 8cifre nenule. Scriei un program Pascalcare citete toate numerele din
fiierul text date.ini afieaz pe ecran, desprite prin cte un spaiu, numerele situate
pe a doua linie a fiierului, formate numai din cifre distincte ordonate strict cresctor,
folosind apeluri utile ale subprogramului cifre. n cazul n care nu exist niciun astfel de
numr se va afia valoarea 0.
6
Exemplu: dac fiierul date.inare coninutul
16175333242477321269
alturat, atunci se vor afia numerele: 16269
36. Fiierul text numere.txtconine, pe o singur linie, cel mult 1000de numere naturale
nenule cu cel mult 4cifre fiecare, numerele fiind separate prin cte un spaiu. Scriei un
program Pascalcare citete toate numerele din fiier i scrie pe ecran toate numerele
pare citite, ordonate cresctor. Dac fiierul numere.txtnu conine niciun numr par,
atunci se va afia pe ecran mesajul nuexista.
Exemplu: dac fiierul numere.txtconine numerele 231472586, atunci pe
ecran se va afia: 22468
37. Fiierul text INTRARE.TXTconine, pe o singur linie, cel mult 100de numere naturale
nenule de cel mult patru cifre fiecare, numerele fiind separate prin cte un spaiu. Scriei un
program Pascalcare citete numerele din fiier i scrie n fiierul text IESIRE.TXT, n
ordine cresctoare, toate valorile distincte obinute ca sum de dou elemente distincte
aflate pe linia a doua a fiierului.
Exemplu:
INTRARE.TXTIESIRE.TXT
143234567
38. Fiierul text BAC.TXTconine, pe o singur linie, cel puin 3i cel mult 100de numere
naturale nenule distincte de cel mult 4cifre fiecare, numerele fiind separate prin cte un
spaiu. Scriei un program Pascalcare citete toate numerele din fiierul BAC.TXTi scrie
pe ecran, n ordine descresctoare, cele mai mici 3numere citite.

Exemplu: dac fiierul BAC.TXTconine numerele 1017483105710162, atunci se


va afia: 31016248
39.Fiierul text bac.txtconine, pe o singur linie, cel puin 3i cel mult 100de numere
naturale nenule distincte de cel mult 4cifre fiecare, numerele fiind separate prin cte un
spaiu. Scriei un program Pascalcare citete numerele din fiier i scrie pe ecran ultima
cifr a produsului celor mai mari trei numere citite.
Exemplu: dac fiierul bac.txtconine numerele:
1017483125742162
atunci se va afia: 8(ultima cifr a produsului numerelor 1017,5742,312)
40. Fiierul text bac.txtconine, pe prima sa linie, 100de numere naturale de cel mult 4cifre
fiecare, numerele fiind ordonate cresctor i separate prin cte un spaiu, iar pe a doua linie
un singur numr natural x. Scriei un program C/C++care citete toate numerele din fiier i
verific dac xse afl n irul celor 100de numere aflate pe prima linie a fiierului. n caz
afirmativ, se va afia pe ecran mesajul DA, altfel se va afia mesajul NU.
Exemple: dac fiierul bac.txtconine:
17384045505152535455...145
52
atunci se va afia: DA;
dac fiierul bac.txtconine:
21115162025303540...495
33
atunci se va afia: NU.
41. n fiierul text.inse afl un text scris pe mai multe linii, pe fiecare linie fiind
caractere diverse: litere mici ale alfabetului englez, cifre, spaii i semne de
punctuaie. Gsii o metod eficient din punctul de vedere al timpului de executare
i al gestionrii memoriei ce permite afiarea celor mai frecvente perechi de vocale
alturate din text. Menionm c vocalele sunt: a, e, i, oi u.
De exemplu, dac text.in conine textul:
Aleeacestrabatevalea
eounduiredepietrisscanteietor,
Deaceeanustiidacazboarasaudoarinoatainundeaurii
cele mai frecvente perechi de vocale ntlnite n acest text sunt: eai oa(ele apar de
3 ori, spre deosebire de alte perechi de vocale alturate care apar de mai puine ori).
a) Descriei succint, n limbaj natural, metoda de rezolvare aleas, explicnd n ce
const eficiena ei (3 4 rnduri).
b) Scriei programul Pascalcorespunztor metodei descrise la cerina a.
42. a) Fiierul date.inconine un ir de cel mult 10000numere naturale (printre care cel puin
un numr par i cel puin un numr impar), cu cel mult 2cifre fiecare, separate prin cte un
spaiu. Scriei un program Pascalcare citete numerele din fiierul date.ini scrie n
fiierul text date.outvalorile distincte citite, separate prin cte un spaiu, respectndu-se
regula: pe prima linie vor fi scrise numerele impare n ordine cresctoare, iar pe linia a doua
numerele pare, n ordine descresctoare. Alegei o metod eficient din punctul de vedere al
timpului de executare.
Exemplu: dac pe prima linie a fiierului date.inse afl numerele:
751233187513
atunci fiierul date.outva conine:
1375
1812
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
43. Pentru un ir de numere naturale, numim nod al irului un termen din ir care are doi
vecini, termenul precedent i termenul urmtor din ir, i valoarea termenului respectiv este
strict mai mic dect suma valorilor celor doi vecini ai si.
a) Fiierul text date.inconine un ir de cel puin dou i cel mult 10000de numere

naturale avnd maximum 6cifre fiecare, numere separate prin cte un spaiu. Scriei un
program Pascalcare citete toate numerele din fiier i afieaz numrul de noduri ale
irului citit, folosind un algoritm eficient din punctul de vedere al memoriei utilizate.
Exemplu: dac fiierul date.inare urmtorul coninut:
5120100434361850003120201141164
atunci pe ecran se afieaz 6(cele ase numere subliniate reprezint noduri ai irului)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
44. Fiierul text date.inconine pe prima linie , separate prin cte un spaiu, cel mult 1000de
numere naturale, fiecare dintre ele avnd maximum 9cifre.
a) Scriei un program Pascalcare citete numerele din fiierul date.txti determin cea
mai lung secven ordonat strict descresctor, format din valori citite consecutiv din
fiier. Numerele din secvena gsit vor fi afiate pe ecran, pe o linie, separate prin cte un
spaiu. Dac sunt mai multe secvene care respect condiia impus, se va afia doar prima
dintre acestea. Alegei o metod de rezolvare eficient din punctul de vedere al timpului de
executare.
Exemplu: dac fiierul date.inconine:
521943632108
pe ecran se afieaz:
63210
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
45. Pentru un ir de numere naturale, numim pol al irului un termen din ir care are doi vecini,
termenul precedent i termenul urmtor din ir, i valoarea termenului respectiv este strict
mai mare dect valoarea fiecruia dintre cei doi vecini ai si.
a) Fiierul text date.inconine un ir de cel mult 10000de numere naturale avnd
maximum 6cifre fiecare, numere separate prin cte un spaiu. Scriei un program Pascal
care citete toate numerele din fiier i afieaz numrul de poli ai irului citit, folosind un
algoritm eficient din punctul de vedere al memoriei utilizate.
Exemplu: dac fiierul date.inare urmtorul coninut:
5120100434361850003120201141164
atunci pe ecran se afieaz 4(cele patru numere subliniate reprezint poli ai irului)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
46. Fiierele text A.TXTi B.TXTconin cel mult 10000de numere naturale cu cel mult 9
cifre fiecare, scrise fiecare pe cte o linie.
a) Scriei un program Pascalcare citete numerele din cele dou fiiere i, printr-o
metod eficient din punct de vedere al timpului de executare i al spaiului de memorie
utilizat i afieaz pe ecran cte dintre numerele din fiierul A.TXTsunt strict mai mici
dect toate numerele memorate n fiierul B.TXT.
Exemplu: dac fiierul
201111
A.TXTare coninutul alturat,
41111
iar fiierul B.TXTare coninutul alturat:
81111
91111
11111
91111
91111
61111
51111
91111
111111
91111
31111
81111
431111
61111
61111
91111

atunci programul va afia valoarea 4, deoarece 41111, 11111, 51111, 31111sunt mai
mici dect toate elementele din fiierul B.TXT.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia.
47. Fiierul text NUMERE.TXTconine pe prima linie un numr natural n(1<=n<=10000)i pe a
doua linie, un ir cresctor de nnumere naturale, fiecare avnd cel mult 9cifre. Numerele
de pe a doua linie sunt separate prin cte un spaiu.
a) Scriei un program Pascalcare, utiliznd o metod eficient din punct de vedere al
timpului de executare i al spaiului de memorie, afieaz pe ecran elementele distincte ale
irului aflat pe a doua linie a fiierului.
Exemplu: dac fiierul NUMERE.TXTare coninutul alturat
7
111111111211141117111171111
atunci programul va afia pe ecran 1112111411171111.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a), justificnd eficiena
acesteia.
48. Fiierul text SIR.TXTconine pe prima linie un numr natural n(1<=n<=10000)i pe a
doua linie, separate prin spaii, un ir cresctor de nnumere naturale cu cel mult 9cifre
fiecare.
Numim platou ntr-un ir de valori o secven de elemente identice situate pe poziii
alturate. Lungimea unui platou este egal cu numrul de elemente care l formeaz.
a) Scriei un program Pascalcare citete valorile din fiier i, printr-o metod eficient din
punct de vedere al timpului de executare i al spaiului de memorie utilizat, afieaz pe
ecran, separate printr-un spaiu, lungimea maxim a unui platou, precum i valoarea care
formeaz platoul. n cazul n care sunt mai multe platouri de aceeai lungime se va afia
valoarea cea mai mare care formeaz unul dintre aceste platouri.
Exemplu: dac fiierul SIR.TXT
are coninutul alturat,
10
11211211211328400400120112011201
atunci programul va afia pe ecran 31201.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia.
49. Fiierul text NUMERE.TXTconine pe prima linie un numr natural n(1<=n<=10000)i pe a
doua linie nnumere naturale cu cel mult 9cifre fiecare. Aceste numere sunt dispuse n
ordine cresctoare i separate ntre ele prin cte un spaiu.
a) Scriei un program Pascalcare citete valorile din fiier i, printr-o metod eficient din
punct de vedere al timpului de executare, afieaz pe ecran, separate prin cte un spaiu,
n ordine cresctoare, numerele pare de pe a doua linie a fiierului, urmate de cele impare
n ordine descresctoare.
Exemplu: dac fiierul NUMERE.TXTare coninutul alturat
6
21241251117111381112
101112
atunci programul va afia pe ecran 21241281112101112711135111
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia.
50. Fiierul text NUMERE.TXTconine pe prima linie un numr natural n(1<=n<=10000)i pe a
doua linie, nnumere naturale cu cel mult 9cifre fiecare, numere nu neaprat distincte.
Aceste numere sunt dispuse n ordine cresctoare i separate ntre ele prin cte un spaiu.
a) Scriei un program Pascalcare citete valorile din fiier i, printr-o metod eficient din
punct de vedere al timpului de executare i al spaiului de memorie utilizat, afieaz pe
ecran, cu cte un spaiu ntre ele, valoarea care apare de cele mai multe ori n fiier i de
cte ori apare ea. Dac exist mai multe valori care apar de un numr maxim de ori, se va
afia cea mai mic dintre ele.
Exemplu: dac fiierul
NUMERE.TXTare coninutul alturat,
8

711711711111111111111111191111231111
atunci programul va afia pe ecran 7113.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena acesteia.
51. Un numr natural se numete palindrom dac numrul citit de la stnga la dreapta este egal
cu numrul citit de la dreapta la stnga.
a) Scriei definiia complet a subprogramului Palindromcare primete prin intermediul
parametrului nun numr natural de cel mult nou cifre i returneaz 1dac acesta este
palindrom i 0n caz contrar. (10p.)
b) Fiierul text NUMERE.INconine cel mult 100000numere naturale de cel mult nou cifre
fiecare, numerele fiind desprite prin cte un spaiu. Cel puin unul dintre numere este
palindrom.
Scriei programul Pascalcare citete numerele din fiierul NUMERE.INi, folosind apeluri
utile ale subprogramului Palindrom, determin n mod eficient, din punct de vedere al
memoriei utilizate i al timpului de executare, care este cel mai mare numr palindrom citit i
de cte ori apare el n fiierul NUMERE.IN. Programul scrie n fiierul text NUMERE.OUT
numrul astfel determinat precum i numrul de apariii ale acestuia, pe rnduri diferite.
Exemplu: dac NUMERE.INconine numerele:
235657868778877865786877887237868798798
atunci NUMERE.OUTva conine:
78687
3
52. a) Scriei definiia complet a subprogramului Ecuaiecare primete prin parametrii a, bi
ctrei numere ntregi, a 0, de cel mult patru cifre fiecare, reprezentnd coeficienii ecuaiei
de gradul al II-lea: ax2 +bx+c=0. n funcie de soluiile ecuaiei subprogramul va returna:
cea mai mare dintre soluii dac ecuaia are dou soluii reale distincte, dintre care cel
puin una pozitiv.
una dintre soluii dac ecuaia are dou soluii egale i pozitive.
32000n celelalte cazuri.
b) Se consider irul s:1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 1, 2,... .
Pentru un numr natural k, 0<k<=10000, se cere s se determine valoarea elementului ce
se afl pe poziia kn irul s.
Exemplu: pentru k=5numrul cerut este 2.
Scriei un program Pascalcare citete de la tastatur valoarea numrului natural ki, prin
apeluri utile ale funciei Ecuaie, determin valoarea elementului ce se afl pe poziia kn
irul s, folosind un algoritm eficient din punctul de vedere al spaiului de memorie alocat i
al timpului de executare. Valoarea astfel determinat se va scrie n fiierul text sir.out.
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul b, explicnd n
ce const eficiena ei (3 4 rnduri).
53. a) Scriei definiia complet a subprogramului Cautare, cu trei parametri, n, xi v, care
primete prin parametrul nun numr natural (1n1000), prin parametrul xun tablou
unidimensional format din ncomponente (numere ntregi de cel mult patru cifre fiecare: x1,
x2, , xn) memorate n ordine cresctoare i prin parametrul vun numr ntreg de cel mult
patru cifre, diferit de oricare dintre elementele tabloului unidimensional x.
Subprogramul va cuta, n mod eficient din punct de vedere al timpului de executare, poziia
pe care ar trebui inserat valoarea vn irul xastfel nct s se obin tot un ir ordonat i
returneaz aceast poziie.
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
c) Fiierul text sir.inconine cel mult 1000numere naturale de maximum patru cifre
fiecare, numerele fiind diferite dou cte dou i desprite prin cte un spaiu.
Scriei un program Pascalcare citete numerele din fiierul sir.ini, folosind apeluri utile
ale subprogramului Cautare, construiete n memorie un tablou unidimensional care va
conine toate numerele din fiierul sir.inordonate cresctor. Programul scrie n fiierul
text sir.outirul obinut, cte 10elemente pe un rnd, elementele de pe acelai rnd
fiind desprite printr-un singur spaiu.
Exemplu: dac fiierul sir.inconine numerele: 7563545608587986538

atunci dup executarea programului fiierul sir.outva conine:


4569885037865587
635
54. Se numete numr mare orice numr natural care are mai mult de nou cifre.
a) Scriei un program Pascalcare citete de pe prima linie a fiierului text NUMERE.INun
numr natural n(10<n<1000), iar de pe a doua linie ncifre desprite prin cte un spaiu,
dintre care cel puin una nenul, i afieaz pe ecran cel mai mic numr mare format cu
toate cele ncifre din fiier. Alegei o metod eficient din punct de vedere al utilizrii memoriei.
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
Exemplu: dac fiierul NUMERE.INconine
10
7940901188
atunci se va afia pe ecran numrul mare :
1001478899
55. a) Scriei definiia complet a funciei UltimaCifracare primete prin cei doi parametri a
i bcte un numr natural (0<a<1000000, 0<b<1000000), calculeaz n mod eficient din
punct de vedere al timpului de executare i returneaz ultima cifr a numrului ab(ala
puterea b).
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
c) Fiierul text SIR.INconine pe prima sa linie un numr natural n(0<n<1001), iar pe
fiecare dintre urmtoarele nlinii cte o pereche de numere naturale, xiyi(1in,
xi30000, yi30000).
Scriei programul Pascalcare citete numerele din fiierul SIR.INi scrie n fiierul text
SIR.OUTultima cifr expresiei: 1 2 n y
n
y
2
y
y1

y2

x 1 + x 2 ++ xn

yn

,folosind apeluri ale funciei UltimaCifra.

Exemplu: dac fiierul SIR.INare coninutul alturat, atunci


SIR.OUTva conine cifra 0. (10p.)
3
256
810
14589