Sunteți pe pagina 1din 7

1.n fiierul numere.in se afl pe prima linie un numar natural n de cel mult 9 cifre.

S se descompun numrul natural n citit


din fiier n sum de termeni distinci (excepie facnd primii doi care au amndoi valoarea 1) ai irului Fibonacci, numrul
termenilor din sum trebuie sa fie minim. Se va utiliza o funcie pentru crearea unui nou termen al descompunerii. irul lui
Fibonacci, legea creterilor organice, se va considera aa cum a fost definit de ctre Leonardo Fibonacci:1,1,2,3,5,8
Exemple:
pentru n=13 se afieaz 8+5 ;
pentru n=23 se afieaza 21+2.
2.n fiierul numere.in se afl pe prima linie maxim un milion de numere naturale de cel mult 2 cifre fiecare. S se gseasc
un procedeu eficient de determinare a numrului care se repet cel mai des. Eficiena procedeului const n utilizarea unei
singure treceri prin numere, dup ce acestea au fost citite toate, pentru a se determina acel numr care se repet de cele mai
multe ori.
Exemplu :
DATE.TXT
5316313613

se afieazl
3

3.n fiierul numere.in se afl pe prima linie un numr natural n (n<=9), iar pe a doua linie se afl numere naturale a1, a2,
.., an din multimea cifrelor zecimale ({0,1,2,.., 9}). Se cere s se calculeze suma S= a1a2an + ana1a2an-1 + +
a2a3ana1, utiliznd un proces iterativ de calcul al nsumrii, termenul curent de nsumat fiind obinut prin rotaia la dreapta
aplicat precedentului termen. Pentru obinerea termenului curent al sumei se va aplica un procedeu eficient prin care s se
evite crearea puterilor lui 10.
Exemplu:fie n=3; a1=2; a2=5; a3=4; S=254 + 425 + 542 =1221
4.n fiierul cuvinte.in se afl cte unul pe linie un ir de cuvinte. S se scrie un program care citete cuvintele din fiier i le
afieaz n fiierul cuvinte.out n ordine alfabetic. Pentru ordonarea alfabetic vei utiliza unul din algoritmii de sortare
studiai.
Exemplu:
cuvinte.in
Dana
Are
Bomboane

Cuvinte.out
Are
Bomboane
Dana

5.Subprogramul sub primete prin intermediul parametrului n (0<n<20) dimensiunea unei matrice ptrate, prin intermediul
parametrului a matricea de numere reale (aij cu 1in, 1jn) i prin intermediul parametrului k un numr natural nenul
(1<k<=2n). El returneaz prin intermediul parametrului s suma tuturor elementelor a ij cu proprietatea c i+j=k. Scriei
programul care citete de la tastatur un tablou de numere reale cu n linii i n coloane i afieaz suma elementelor din tablou
aflate strict deasupra diagonalei secundare a tabloului, folosind apeluri ale subprogramului sub, definit conform cerinei.
Exemplu:
Date de intrare
4
1631
6131
1316
3161

se afieaz
20

6.Se citesc de la tastatur dou numere naturale nenule a i b (3<a<b) de cel mult 9 cifre fiecare. S se determine, dac exist,
un numr prim x care aparine intervalului nchis [a,b] pentru care valoarea expresiei |b+a-2x| este minim. S-a folosit
notaia |m| pentru modulul numrului m. Dac nu exist un astfel de numr, se va afia valoarea 0, iar dac exist mai multe,
se va afia unul dintre ele.

Exemplu:pentru a=7 i b=18, dintre numerele prime 7, 11, 13 i 17, se va afia 13 deoarece |18+7-213|<|18+7-211|<|18+7217|<|18+7-27|. Pentru rezolvarea problemei se va utiliza o funcie prim care primete prin intermediul parametrului n un
numr natural (n>1) i stabilete n mod eficient dac numrul n este prim sau nu.
7.Subprogramul apcar primete prin intermediul parametrului s un ir cu cel mult 255 de caractere i prin parametrul c un
caracter. El returneaz prin intermediul parametrului p un numr natural reprezentnd numrul de apariii ale caracterului c n
irul s. Scriei programul care citete de la tastatur un ir de caractere (litere mari i cifre). Se cere s se determine numrul
total de vocale din irul dat, folosind apeluri ale subprogramului apcar, definit conform cerinei.
Exemplu :
Pentru s= "VULPEA11VULPEA22" se va afisa 6 (deoarece sunt 6 vocale in ir)
8.Se citesc n (n numr natural, n>1) i apoi n numere reale x1, x2, ..., xn. S se determine cte dintre cele n numere citite se
afl n afara intervalului nchis determinat de numerele x1 i xn.
Exemplu:
pentru n=6 i numerele 2, 0.5, 4, -1, -8, -3, se afieaz valoarea 2 (deoarece dou dintre numerele date, cele subliniate, se afl n
afara intervalului determinat de numerele 2 i 3).

9.Din fiierul DATE.TXT se citesc n i m (n, m numere naturale, 0<m<n<5000) de pe prima linie,apoi n numere naturale
a1, a2, , an de pe linia a doua i apoi m numere naturale b1, b2, , bm de pe linia a treia a fiierului. S se verifice dac irul
b citit de pe a treia linie a fiierului se poate obine din irul a (aflat pe a doua linie a fiierului) prin eliminarea unora dintre
componentele irului a. S se scrie programul ce realizeaz prelucrarea descris folosind un algoritm eficient si afieaz pe
ecran un mesaj corespunztor.
Exemplu:
DATE.TXT
53
16313
613

se afieaz mesajul
b se poate obtine din a"

10.Scriei un program care citete din fiierul text DATE.TXT un ir S de maxim 100.000 de numere naturale formate din
exact dou cifre fiecare i afieaz distana maxim care exist ntre dou elemente egale ale irului. Definim distana dintre
dou elemente Si si Sj prin modulul diferenei indicilor celor dou elemente, |j-i|. Dac irul conine doar elemente distincte,
distana cerut este 0.
Exemplu:
DATE.TXT
14 12 10 10 14 15 10 12 90

se afieaz

Explicaii

(s2=s8=12, 8-2=6)

11.a. Scriei o definiie complet pentru un subprogram suma cu trei parametri:


x, matrice ptratic cu elemente ntregi;
n, numr natural ce reprezint numrul efectiv de linii i coloane ale matricei x, 2n10;
p, numr natural, 1pn.
Subprogramul va returna suma elementelor aflate pe linia p a matricei.
b. Scriei un program care citete din fiierul matrice.in un numr natural n i o matrice cu n linii i n coloane i afieaz
n fiierul matrice.out indicii liniilor din matrice pentru care suma elementelor este numr par. Se va folosi
subprogramul definit la punctul a.
Ex:
matrice.in
matrice.out
4
1 4
1 2 3 4
1 1 1 2

2 2 41 8
3 3 10 2
12.Pe prima linie a fiierului date.in se gsete un numr natural n, n100, iar a doua linie conine un ir cu n numere
naturale, separate prin cate un spaiu. Sa se scrie n fiierul date.out toate numerele prime din sir, separate prin cate un spaiu.
Se va folosi o funcie prim care verifica daca un numr natural, dat ca parametru de intrare, este numr prim.
Ex:
date.in
date.out
5
2 41
12 2 123 41 77
13.Se citete de la tastatura un numr natural n, 2n10. S se construiasc o matrice cu n linii i n coloane care sa conin pe
fiecare linie cate o permutare a mulimii {1,2,,n}, astfel nct pe linii diferite sa avem permutri diferite. Matricea se va
afia pe ecran ca matrice.
Ex:
tastatur
ecran
4
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3

14.Pe prima linie a fiierului date.in se gsete un numr natural n, n100, iar a doua linie conine un ir cu n numere
naturale, separate prin cate un spaiu. Sa se scrie n fiierul date.out toate numerele din ir care sunt termini din irul lui
Fibonacci. Se va folosi o funcie test_fibo care verific daca un numr natural, dat ca parametru de intrare, este termen n
irul lui Fibonacci (f1=1, f2=1, fn=fn-1+fn-2, pentru n>2).
Ex:
date.in
date.out
7
1 21 5
4 7 1 10 21 13 5

15.Se citesc din fiierul numere.in doua numere naturale a i b cu cel mult 9 cifre fiecare. Se cere sa se scrie n fiierul
numere.out cel mai mare numrul natural care se poate forma cu toate cifrele celor doua numere.
Ex:
numere.in
numere.out
36321
764333211
4173

16.Din fiierul numere.in se citesc, de pe prima linie, bazele b1, b2, i b3 pentru trei sisteme de numeraie, 2b1, b2, b39.
De pe a doua linie se citesc doua numere naturale: x n baza b1 i y n baza b2. Sa se scrie n fiierul numere.out suma
numerelor x i y n baza b3
numere.in
2 5 3
110 213

numere.out
2101

Explicatii
1102= 6
2135=58
6+58=64
64=21013

17.Pe prima linie a fiierului date.in se gsete un numr natural n, n100, iar a doua linie conine un ir cu n numere
naturale, separate prin cate un spaiu. Sa se scrie n fiierul date.out toate numerele din ir pentru care suma cifrelor este
divizibila cu 3. Se va folosi o funcie recursive suma_cifre care calculeaz i returneaz suma cifrelor parametrului de intrare
x.
Ex:
date.in
date.out
7
51 231 24
124 51 231 7 24 31 5

18.In fiierul multimi.in se dau, pe prima linie, dou numere naturale n i m separate printr-un spaiu, 2n,m100, iar pe
urmtoarele dou linii, separate prin cate un spaiu, n ordinea strict cresctoare, elementele a doua mulimi de numere
naturale, Se cere s scrie n fiierul multimi.out, n ordine strict cresctoare, elementele reuniunii celor doua mulimi.
Ex:
multimi.in
multimi.out
6 4
1 3 4 5 7 10 37 43
1 3 4 7 10 43
3 5 10 37

19.Scriei un program care citete de pe prima linie a fiierului date.in un numr natural n iar de pe urmtoarele linii o
matrice cu n linii i n coloane coninnd numere naturale i modifica matricea n felul urmtor: toate elementele liniilor care
conin valoarea maxim vor fi mrite cu valoarea minim din matrice. Scriei n fiierul date.out matricea astfel obinut.
Ex:
date.in
date.out
4
2 5 3 2
4 7 5 4
2 2 4 4
2 2 4 4

3 2 2 2
5 3 5 2

3 2 2 2
7 5 7 4

20.Se citesc din fiierul numere.in dou numere naturale a i b cu cel mult 9 cifre fiecare. Se cere s se scrie n fiierul
numere.out cel mai mic numrul natural care se poate forma cu toate cifrele celor dou numere.
Ex:
numere.in
numere.out
36321
112333467
4173

21.Din fiierul text doc.txt se citete un text care conine informaii despre mai multe persoane, sub o form nestructurat.
Informaiile sunt dispuse pe linii de maxim 200 de caracte i pot conine CNP-uri valide. tiid c CNP-ul unei persoane este
un ir de 13 cifre consecutive, s se scrie n fiierul text cnp.txt, pe linii distincte, toate CNP-urile extrase din text. Dac nu
exist nici un astfel de ir, se va scrie n fiier valoarea 0.
Ex:
doc.txt
cnp.txt
Popesu Grigore, 14 ani,
1991212122334
1991212122334; Gigel Banu 1031102453435
1031102453435, Bujorului 7;
2690405358687
Dana Marin: 2690405358687,
2450609987654
fara viza, 2450609987654 Jane Doe
doc.txt
cnp.txt
Popesu Grigore, 14 ani,
0
1991212134; Gigel Banu
103110245Bujorului 7; Dana
Marin: 269-04-05-358687,
fara viza, 2+450609+987654
- Jane Doe

22.Se citesc din fiierul text numere.in, din prima linie n, numrul de numere apoi din urmtoarea linie n numere naturale
din intervalul [10, 109], separate prin cte un spaiu. S se afieze pe ecran, dac exist, numerele rotunde, cte dou pe o
linie, separate prin spaii. Dac nu exist astfel de numere se va afia 0.Spunem c un numr x este rotund dac exist un
numr natural nenul k, mai mic strict dect numrul de cifre al lui x, astfel nct prin permutarea circular a cifrelor
numrului cu k poziii la dreapta, s se obin numrul iniial.
Ex:
numere.in
Ecran
5
2323 144144
12 3232 123 144144 77
77
numere.in
Ecran
3
0
11211 45678 232
23.Pentru numerotarea paginilor unei serii eciclopedice, formate din unul sau mai multe volume, se presupune ca se folosesc
n cifre. Fiecare volum are 300 de pagini, cu excepia eventual a celui din urm care ar putea avea mai puine. Numerotarea
paginilor incepe cu 1 n fiecare volum. Se citete de la tastatur n, numrul de cifre (1<n<100000000). Dac este posibil, s
se determine i s scrie n fiierul text pag.txt, pe linii distincte, numrul de volume din serie i numrul de pagini ale
ultimului volum. Dac nu este posibil se va scrie mesajul IMPOSIBIL.
Ex:
tastatur
pag.txt
999
2
105
tastatur
pag.txt

900

IMPOSIBIL

24.Pentru cadourile pe care Mo Crciun urmeaz s le cumpere copiilor cumini, Consiliul Polului Nord a alocat suma de S
eureni (1<S<200000000). tiind c n comerul polar se utilizeaz n tipuri de bancnote (1<n<10) de valori 1, e1, e2, e3,..., en
(e=valoarea de baz a euren, numr natural de cel mult 3 cifre, dat) i faptul c Moul trebuie s primeasc un numr minim
de bancnote pentru suma aprobat, s se determine numrul de bancnote din fiecare tip utilizat n plata sumei i numrul total
de bancnote care i s-au alocat. Din fiierul text eur.in, de pe prima linie, separate prin cte un spaiu, se citesc, S, n, e. n
fiierul text eur.out se vor scrie, pe linii diferite, numrul de bancnote (nenul) care vor fi utilizate din fiecare tip (ca n
exemplu), iar pe ultima linie, numrul total de bancnote cu care se va plti suma.
Ex:
eur.in
eur.out
107 4 5
4 bancnote cu valoarea 25
1 bancnote cu valoarea 5
2 bancnote cu valoarea 1
7

25.n fiierul text numere.in sunt cel mult 9998 de numere naturale nenule, distincte. Scriei un program C/C++ eficient din
punct de vedere al timpului de execuie, care s scrie n fiierul numere.out, pe o linie, n ordine descresctoare, separate prin
cte un spaiu, numerele naturale nunule, de cel mult 4 cifre, care nu apar n fiierul numere.in.
Ex:
numere.in
numere.out
107 4 5 8 1 6 9
9999 9998 ... 108 106 105 ... 10 7 6 3 2

26.Scriei un program C/C++ eficient din punct de vedere al timpului de execuie, care genereaz i scrie n fiierul text
munte.txt, pe prima linie, separate prin cte un spaiu, toate palindroamele-munte de nou cifre (un palindrom de are aspect
de munte daca cifrele sale sunt strict cresctoare pn la jumtatea numrului. EX. 123454321).
Pe a doua linie n fiier se va scrie numrul de palindroame-munte generate.
27.Din fiierul text mat.in se citesc doua numere naturale n, m (1<n<30, 1<m<30 ) apoi elementele ntregi ale unei matrici
de dimensiune n*m. Scriei un program C/C++ care modific matricea astfel: toate elementele egale cu valoarea maxim din
matrice se nlocuiesc cu valoarea minim de pe coloana lor. Dac s-a fcut mcar o nlocuire, matricea rezultat se va scrie n
fiierul text mat.out, altfel matricea nu se va scrie n fiierul de ieire. Pe ultima linie n fiierul de ieire se va scrie numrul
de substituii efectuate.
Ex:
mat.in
mat.out
3 5
2 6 1 3
2 6 7 3
2 1 1 1
7 1 7 1
5 3 1 2
5 3 1 2
3

28.Se citesc din fiierul text numere.in, din prima linie n, un numr natural nenul, ptrat perfect, n<10000, apoi, din linia
urmtoare, separate prin cte un spaiu, n numere ntregi de cel mul 4 cifre. S se construiasc n memorie o matrice ptratic
cu toate elementele din fiierul de intrare, n spiral, n sens invers acelor de ceas astfel: pe prima coloan, ncepnd cu linia
1, se vor trece primele elemente din ir (de sus n jos), apoi pe ultima linie, ncepnd de la prima coloan pn la ultima (de la
stnga la dreapta), apoi pe ultima coloan, de la ultima linie la prima (de jos n sus), apoi pe prima linie, de la ultima coloan
la prima (de la dreapta la stnga) amd. Matricea construit astfel se va scrie n fiierul numere.out.
Ex:
numere.in
9
2 6 7 3 7 1 7 1 5

numere.out
2 1 7
6 5 1
7 3 7

29.Din fiierul text date.in se citete un text format din cuvinte separate prin spaii sau caractere de forma .,;:-?!. Lungimea
unei linii din fiier nu depete 255 caractere. S se scrie n fiierul text date.out, pe linii diferite, cuvintele distincte din text
care conin subirul ate, fr a face distincie ntre litere mari i mici.
Ex:
date.in
Daca satelitii nu sunt activi, GPS-ul nu
functioneaza...
- Ai vazut cate cuvinte marcate sunt?? Poate esti si
tu atent! Cate sunt?

date.out
satelitii
cate
marcate
Poate
atent

30.Scriei un program care rezolv n mulimea Z*Z ecuaia x2=n+ y2, unde n este un numr natural nenul, dat de la
tastatur (1<n<1000). Soluiile distincte, de forma x y, se vor scrie pe ecran, cte o soluie pe o linie.
Ex:
Tastatura
date.out
15
8 7
8 -7
-8 7
-8 -7
4 1
4 -1
-4 1
-4 -1

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