1.
4.
Fiierul text bac.txt conine, pe o singur linie, cel mult 1000 de numere naturale nenule
cu cel mult 4 cifre 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.txt i 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 NU EXISTA.
Exemplu: dac fiierul bac.txt conine numerele: 3 100 40 70 25 5 80 6 3798,
pentru n=10 atunci pe ecran se va afia: 100 40 70 80
(10p.)
Subprogramul sub, cu trei parametri, primete prin intermediul parametrilor:
v un tablou unidimensional cu cel mult 100 de componente ce memoreaz numere
ntregi de cel mult 4 cifre fiecare;
n un numr natural nenul mai mic sau egal cu 100 ce reprezint numrul efectiv de
componente ale tabloului primit prin intermediul parametrului v;
a un numr ntreg cu cel mult 4 cifre.
Subprogramul sub returneaz numrul componentelor tabloului primit prin intermediul
parametrului v ale cror valori sunt strict mai mici dect valoarea parametrului a.
Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=20 ale parametrilor, n urma
apelului, subprogramului sub va returna valoarea 2.
a) Scriei definiiile tipurilor de date i definiia complet a subprogramului sub.
(4p.)
Subiectul III
1.
Fiierul text NR.TXT conine pe o singur linie, separate prin cte un spaiu, cel mult 100 de
numere ntregi, fiecare numr avnd cel mult 4 cifre. Scriei un program Pascal care
citete numerele din fiierul NR.TXT i 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 NU EXISTA.
Exemplu: dac fiierul NR.TXT conine numerele: -3 -10 0 7 -5 7 51 -800 6 3798,
atunci pe ecran se va afia: 6 7 7 51 3798
(10p.)
4.
Un numr n se numete extraprim dac att el, ct i orice numr obinut prin permutarea
cifrelor lui n, sunt numere prime. De exemplu, numrul 113 este un numr extraprim
deoarece 113, 311, 131 sunt numere prime.
a) Scriei definiia complet a unui subprogram f, cu un parametru, subprogram care:
- primete prin intermediul parametrului a un numr natural cu cel mult 3 cifre (a>1)
- returneaz suma tuturor exponenilor din descompunerea n factori primi a valorii
parametrului a.
Exemplu: pentru a=90 subprogramul va returna valoarea 4, deoarece a=2*32*5 i
1+2+1=4.
(4p.)
b) Scriei un program Pascal care citete de la tastatur un numr natural n, 2n999 i,
folosind apeluri utile ale subprogramului f, verific dac n este un numr extraprim. n caz
afirmativ, programul afieaz pe ecran mesajul DA, n caz contrar afind mesajul NU. (6p.)
Subiectul III
1.
Fiierului text NR.TXT conine pe o singur linie, separate prin cte un singur spaiu, cel mult
100 de numere naturale, fiecare numr avnd cel mult 4 cifre. Scriei un program Pascal
care citete toate numerele din fiierul NR.TXT i afieaz pe ecran, separate prin cte un
spaiu, n ordine cresctoare, toate numerele din fiier care au cel puin 3 cifre. Dac fiierul
nu conine astfel de numere se va afia pe ecran mesajul NU EXISTA.
(10p.)
4.
Subiectul III
Fiierul text NR.TXT conine pe o singur linie, separate prin cte un singur spaiu, cel mult
100 de numere naturale, fiecare numr avnd cel mult 4 cifre. Scriei un program Pascal
care citete numerele din fiierul NR.TXT i afieaz pe ecran, separate prin cte un spaiu,
n ordine descresctoare, toate numerele din fiier care au cel mult 2 cifre. Dac fiierul nu
conine astfel de numere se va afia pe ecran mesajul NU EXISTA.
(10p.)
4.
(4p.)
Subiectul III
Folosind modelul combinrilor se genereaz numerele naturale cu cte trei cifre distincte din
mulimea {1,2,3,7}, numere cu cifrele n ordine strict cresctoare, obinndu-se, n ordine:
123, 127, 137, 237. Dac se utilizeaz exact aceeai metod pentru a genera numerele
naturale cu patru cifre distincte din mulimea {1,2,3,4,5,6,7,8}, cte dintre numerele
generate au prima cifr 2 i ultima cifr 7?
(4p.)
b. 3
c. 4
d. 6
a. 8
Scriei un program Pascal care citete de la tastur un numr natural n cu cel mult 8 cifre
(n10) i care creeaz fiierul text NR.TXT ce conine numrul n i toate prefixele nenule
ale acestuia, pe o singur linie, separate prin cte un spaiu, n ordine descresctoare a
valorii lor.
Exemplu: pentru n=10305 fiierul NR.TXT va conine numerele:
10305 1030 103 10 1
(10p.)
4.
Subprogramul f, cu un parametru:
- primete prin intermediul parametrului a un numr natural cu cel mult 8 cifre (a>1)
- returneaz cel mai mic divizor prim al valorii parametrului a.
Exemplu: pentru valoarea 45 a parametrului a, subprogramul va returna valoarea 3
deoarece a=32*5, iar cel mai mic divizor prim al su este 3.
a) Scriei definiia complet a subprogramului f.
(4p.)
Subiectul III
2.
3.
Scriei un program C/C++ care citete de la tastatur un numr natural n (n100) i apoi
cele n elemente, numere naturale cu cel mult 4 cifre fiecare, ale unui tablou unidimensional
a. Programul afieaz pe o linie a ecranului suma celor n elemente ale tabloului, pe
urmtoarea linie a ecranului suma primelor n-1 elemente i aa mai departe, astfel nct
ultima linie afiat s conin doar primul element al tabloului.
15
Exemplu: dac n=4 iar tabloul are
11
elementele a=(1,7,3,4) programul va
8
afia valorile alturate:
(10p.)
1
4.
(6p.)
Subiectul III
(4p.)
(6p.)
Subiectul III
2.
3.
Pe prima linie a fiierului text BAC.TXT se afl o valoare natural n (1<n50), iar pe a doua
linie n numere naturale cu maximum 4 cifre fiecare, desprite prin cte un spaiu. n irul
numerelor de pe a doua linie a fiierului exist cel pzin dou numere ptrate perfecte.
Scriei un program Pascal care 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.TXT are urmtorul coninut:
5
9 5 36 9 8
atunci pe ecran se poate afia:
9+9+36=54 sau 9+36+9=54 sau 36+9+9=54
(10p.)
4.
Subiectul III
3.
4.
(10p.)
Se consider fiierul BAC.TXT ce conine cel mult un milion de numere naturale separate
prin spatii, fiecare numr avnd cel mult nou cifre.
a) S se scrie un program Pascal care citete toate numerele din fiierul BAC.TXT i
determin, folosind un algoritm eficient din punct de vedere al timpului de executare, cele
mai mari dou numere de trei cifre care nu se afl n fiier. Cele dou numere vor fi afiate
pe ecran n ordine descresctoare, cu un spaiu ntre ele. Dac nu pot fi determinate dou
astfel de numere, programul va afia pe ecran valoarea 0.
Exemplu: dac fiierul BAC.TXT conine numerele:
12 2345 123 67 989 6 999 123 67 989 999
atunci programul va afia:
998 997
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
Un elev a scris un program care, folosind metoda backtracking, genereaz toate numerele
de cte 5 cifre, cifrele fiind n ordine strict cresctoare. Scriei toate numerele generate de
program care au prima cifr 5.
(6p.)
3.
4.
Subiectul III
1.
3.
Fiierul text numere.txt conine pe prima linie un numr natural n (n<30000), iar pe a
doua linie n numere ntregi avnd maximum 4 cifre fiecare. Se cere s se afieze pe ecran
un ir de n numere 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 i valori 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.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului descris.
(6p.)
Exemplu: dac fiierul numere.txt are coninutul 12
4 6 3 7 8 1 6 2 7 9 10 8
alturat, se afieaz pe ecran numerele
4 6 6 7 8 8 8 8 8 9 10 10
4.
a) Scriei doar antetul funciei sum care primete ca parametru un numr natural x cu
maximum 9 cifre i returneaz suma divizorilor numrului x.
Exemplu: sum(6) are valoarea 12 (=1+2+3+6).
(3p.)
Subiectul III
3.
Fiierele text NR1.TXT i NR2.TXT conin, separate prin cte un spaiu, mai multe numere
ntregi de cel mult 9 cifre fiecare. Fiecare dintre fiiere conine cel mult 100 de valori i
numerele din fiecare fiier sunt ordonate strict cresctor. Se cere s se afieze pe ecran, n
ordine cresctoare, numerele divizibile cu 5 care se gsesc doar n unul din cele dou
fiiere.
Exemplu: dac fiierul NR1.TXT conine numerele 1 2 3 4 7 20 60, iar fiierul
NR2.TXT conine numerele 3 5 7 8 9 10 12 20 24, atunci se vor afia pe ecran
valorile 5 10 60.
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.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului descris.
(6p.)
4.
Scriei un program Pascal care citete de la tastatur o valoare natural nenul n (n20),
apoi un ir de n numere naturale, avnd fiecare exact 5 cifre. Dintre cele n numere citite,
programul determin pe acelea care au toate cifrele egale i le afieaz pe ecran, n ordine
cresctoare, separate prin cte un spaiu.
Exemplu: pentru n=5 i numerele 11111 33333 12423 59824 11111 33443 se va
afia: 11111 11111 33333.
(10p.)
Subiectul III
a.
b.
c.
d.
Fie subprogramul fct definit alturat, parial. Iniial, variabile procedure fct(....);
ntregi a, b i c au valorile a=8, b=31 i c=9, iar dup apelul begin
x:=x+1; y:=y-1;
fct(a,b,c), valorile celor trei variabile sunt a=9, b=31 i
z:=x+y
c=39. Care poate fi antetul subprogramului fct?
(4p.)
end;
procedure fct(var x,y,z:integer);
procedure fct(x:integer;var y:integer;var z:integer);
procedure fct(x,y,z:integer);
procedure fct(var x:integer;y:integer;var z:integer);
Trei biei, Alin, Bogdan i Ciprian, i trei fete, Delia, Elena i Felicia, trebuie s
formeze o echip de 3 copii, care s participe la un concurs. Echipa trebuie s fie mixt
(adic s conin cel puin o fat i cel puin un biat). Ordinea copiilor n echip este
important deoarece aceasta va fi ordinea de intrare a copiilor n concurs (de exemplu
echipa Alin, Bogdan, Delia este diferit de echipa Bogdan, Alin, Delia). Cte echipe
se pot forma, astfel nct din ele s fac parte simultan Alin i Bogdan?
(6p.)
3.
4.
(2p.)
b) Pe prima linie a fiierului text BAC.IN se gsesc, separate prin cte un spaiu, mai multe
numere naturale de cel mult 9 cifre fiecare. Scriei programul Pascal care citete numerele
din acest fiier, utiliznd apeluri ale subprogramului P elimin toate cifrele impare din fiecare
dintre aceste numere i apoi scrie n fiierul text BAC.OUT numerele 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.
(8p.)
Exemplu: dac fiierul BAC.IN conine numerele 25 7 38 1030 45127 0 35 60 15
atunci BAC.OUT va avea coninutul: 2 8 42 60.
Subiectul III
function f1(c:integer):longint;
begin
if c mod 2=1 then f1:=1
else f1:=2
end;
function f2(n:longint):longint;
begin
if n=0 then f2:=0
else f2:=f1(n mod 10)+f2(n div 10)
end;
3.
Se citete de la tastatur un numr natural n (n500) i apoi n cifre separate prin spaii. Se
cere s se afieze pe ecran cele n cifre citite, n ordine cresctoare, separate prin cte un
spaiu.
Exemplu: pentru n=19 i cifrele 3 3 0 9 2 1 2 1 3 7 1 5 2 7 1 0 3 2 3 se va
afia pe ecran 0 0 1 1 1 1 2 2 2 2 3 3 3 3 3 5 7 7 9.
a) Descriei pe scurt un algoritm de rezolvare al problemei, eficient din punct de vedere al
spaiului de memorie utilizat i al timpului de executare, explicnd n ce const eficiena
metodei alese.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului descris.
4.
(6p.)
Fiierul text BAC.TXT conine mai multe numere naturale, cu cel mult 6 cifre fiecare, cte
un numr pe fiecare linie a fiierului.
11
Scriei un program Pascal care citete toate numerele din fiierul BAC.TXT i le
21
afieaz pe ecran, n aceeai ordine, cte 5 pe fiecare linie, separate prin cte un
30
spaiu, cu excepia ultimei linii care poate conine mai puin de 5 numere.
40
Programul va afia apoi pe ecran, pe o linie separat, cte numere din fiier au
51
suma cifrelor par.
16
Exemplu: dac fiierul are coninutul alturat, pe ecran se vor afia numerele 17
de mai jos:
10
11 21 30 40 51
1
16 17 10 1
4
(10p.)
Subiectul III
(4p.)
Pentru funciile f i g definite mai jos, stabilii care este rezultatul returnat la apelul f(6)?
(6p.)
function g(x:longint):longint;
function f(c:integer):longint;
begin
begin
if x>9 then
if c<1 then
g:=x div 10 + x mod 10
f:=1
else
else
g:=x
f:=g(c+f(c-1))
end;
end;
3.
4.
n fiierul text BAC.IN se gsesc, pe o singur linie, separate prin cte un spaiu, mai multe
numere naturale de cel mult 6 cifre 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 Numere insuficiente.
Exemplu. dac fiierul BAC.IN conine valorile: 12 15 68 13 17 90 31 42 se va
afia 17 31.
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.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului descris.
(6p.)
Subiectul III
1.
Un algoritm genereaz n ordine cresctoare toate numerele de n cifre, folosind doar cifrele
3, 5 i 7. Dac pentru n=5, primele 5 soluii generate sunt 33333, 33335, 33337,
33353, 33355, precizai care sunt ultimele 3 soluii generate, n ordinea generrii. (6p.)
3.
Scriei definiia complet a subprogramului multiplu care are 3 parametri: a, prin care
primete un tablou unidimensional cu maximum 100 de numere naturale mai mici dect
1000, n, numrul efectiv de elemente ale tabloului i k, un numr natural (k9).
Subprogramul returneaz numrul de elemente din tablou care sunt multipli ai numrului k
i au ultima cifr egal cu k.
Exemplu: dac n=6, a=(9,273,63,83,93,123), iar k=3, subprogramul va returna
valoarea 4.
(10p.)
4.
n fiierul numere.txt sunt memorate maximum 10000 de numere naturale cu cel mult 9
cifre fiecare. Fiecare linie a fiierului conine cte un numr. Se cere afiarea pe ecran, n
ordine descresctoare, a tuturor cifrelor care apar n numerele din fiier. Alegei un algoritm
de rezolvare eficient din punct de vedere al timpului de executare.
Exemplu: dac fiierul numere.txt conine:
267
39628
79
se va tipri 9987766322.
a) Descriei succint, n limbaj natural, strategia de rezolvare i justificai eficiena algoritmului
ales.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului ales.
(6p.)
Subiectul III
1.
Un algoritm genereaz n ordine descresctoare toate numerele de 5 cifre, fiecare dintre ele
avnd cifrele n ordine strict cresctoare. tiind c primele 5 soluii generate sunt 56789,
46789, 45789, 45689, 45679, precizai care sunt ultimele 3 soluii generate, n ordinea
generrii.
(6p.)
3.
Scriei definiia complet a subprogramului interval care are 2 parametri a i n, prin care
primete un tablou unidimensional cu maximum 100 de numere naturale mai mici dect
1000 i respectiv numrul efectiv de elemente din tabloul unidimensional. Subprogramul
returneaz numrul de elemente din tabloul unidimensional care aparin intervalului nchis
determinat de primul i respectiv ultimul element al tabloului.
Exemplu: dac tabloul are 6 elemente i este de forma (12,27,6,8,9,2), subprogramul
va returna valoarea 5.
(10p.)
4.
n fiierul numere.txt pe prima linie este memorat un numr natural n (n10000), iar pe
linia urmtoare un ir de n numere naturale distincte dou cte dou, separate prin cte un
spaiu, cu maximum 4 cifre fiecare. Se cere afiarea pe ecran a poziiei pe care s-ar gsi
primul element din irul aflat pe linia a doua a fiierului, n cazul n care irul ar fi ordonat
cresctor. Numerotarea poziiilor elementelor n cadrul irului este de la 1 la n. Alegei un
algoritm de rezolvare eficient din punct de vedere al memoriei utilizate i al timpului de
executare.
Exemplu: dac fiierul numere.txt conine:
6
267 13 45 628 7 79
se va afia 5, deoarece primul element din irul iniial, 267, s-ar gsi pe poziia a cincea n
irul ordonat cresctor (7 13 45 79 267 628).
a) Descriei succint, n limbaj natural, strategia de rezolvare i justificai eficiena algoritmului
ales.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului ales.
(6p.)
Subiectul III
Un algoritm genereaz, n ordine lexicografic, toate irurile alctuite din cte n cifre binare
(0 i 1). tiind c pentru n=5, primele 4 soluii generate sunt 00000, 00001, 00010, 00011,
precizai care sunt ultimele 3 soluii generate, n ordinea obinerii lor.
(6p.)
3.
Scriei definiia complet a subprogramului count care are doi parametri, a i n, prin care
primete un tablou unidimensional cu maximum 100 de numere reale i respectiv numrul
efectiv de elemente din tablou. Subprogramul returneaz numrul de elemente din tabloul a
care sunt mai mari sau cel puin egale cu media aritmetic a tuturor elementelor din tablou.
Exemplu: dac tabloul are 6 elemente i este de forma (12, 7.5, 6.5, 3, 8.5,
7.5), subprogramul va returna valoarea 4 (deoarece media tuturor elementelor este 7.5
i numerele subliniate sunt cel puin egale cu aceast medie)
(10p.)
4.
(6p.)
Subiectul III
3.
Subprogramul aranjare are doi parametri: a prin care primete un tablou unidimensional
cu maximum 100 de numere reale nenule i n, numrul de elemente din tablou.
Subprogramul rearanjeaz elementele tabloului unidimensional astfel nct toate valorile
negative s se afle pe primele poziii, iar valorile pozitive n continuarea celor negative.
Ordinea n cadrul secvenei de elemente pozitive, respectiv n cadrul secvenei de elemente
negative, poate fi oricare. Tabloul modificat va fi furnizat tot prin intermediul parametrului a.
Exemplu: dac tabloul are 6 elemente i este de forma (12, -7.5, 6.5, -3, -8,
7.5), dup apel, acesta ar putea fi: (-7.5, -3, -8, 12, 6.5, 7.5).
Scriei definiia complet a subprogramului aranjare.
(10p.)
4.
n fiierul nr1.txt este memorat pe prima linie o valoare natural n de cel mult 8 cifre,
iar pe linia urmtoare sunt memorate n numere naturale, cu maximum 4 cifre fiecare,
ordonate strict cresctor i separate prin cte un spaiu. n fiierul nr2.txt este memorat
pe prima linie o valoare natural m de cel mult 8 cifre, iar pe linia urmtoare sunt memorate
m numere naturale, cu maximum 4 cifre fiecare, ordonate strict cresctor i separate prin
cte un spaiu. Se cere afiarea pe ecran, separate prin cte un spaiu, n ordine strict
cresctoare, a tuturor numerelor aflate pe a doua linie n cel puin unul dintre cele dou
fiiere. n cazul n care un numr apare n ambele fiiere, el va fi afiat o singur dat.
Alegei un algoritm de rezolvare eficient din punct de vedere al memoriei utilizate i al
timpului de executare.
Exemplu: pentru urmtoarele fiiere:
nr1.txt
nr2.txt
5
6
3 6 8 9 12
2 3 5 7 9 13
se va afia 2 3 5 6 7 8 9 12 13.
a) Descriei succint, n limbaj natural, strategia de rezolvare i justificai eficiena algoritmului
ales.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului ales.
(6p.)
Subiectul III
1.
3.
Subprogramul nule are doi parametri: a, prin care primete un tablou unidimensional cu
maximum 100 de numere ntregi, cu cel mult 4 cifre fiecare i n, numrul de elemente din
tablou. Subprogramul rearanjeaz elementele tabloului unidimensional astfel nct toate
valorile nule s se afle la sfritul tabloului. Ordinea n cadrul secvenei de elemente nenule
poate fi oricare. Tabloul modificat este furnizat tot prin parametrul a.
Exemplu: dac n=6, a=(12,0,0,-3,-8,0), dup apel, acesta ar putea fi:
a=(12,-3,-8,0,0,0).
Scriei definiia complet a subprogramului nule.
4.
(10p.)
n fiierul nr1.txt este memorat pe prima linie o valoare natural n de cel mult 8 cifre,
iar pe linia urmtoare sunt memorate n numere naturale, cu maximum 4 cifre fiecare,
ordonate strict cresctor i separate prin cte un spaiu. n fiierul nr2.txt este memorat
pe prima linie o valoare natural m de cel mult 8 cifre, iar pe linia urmtoare sunt memorate
m numere naturale, cu maximum 4 cifre fiecare, ordonate strict cresctor i separate prin
cte un spaiu. Se cere afiarea pe ecran, separate prin cte un spaiu, n ordine strict
cresctoare, a tuturor numerelor aflate pe a doua linie att n primul ct i n al doilea fiier.
Alegei un algoritm de rezolvare eficient din punct de vedere al memoriei utilizate i al
timpului de executare.
Exemplu: pentru urmtoarele fiiere:
nr1.txt
nr2.txt
5
6
3 6 8 9 12
2 3 5 7 9 13
se va afia 3 9.
a) Descriei succint, n limbaj natural, strategia de rezolvare i justificai eficiena algoritmului
ales.
(4p.)
b) Scriei programul Pascal corespunztor algoritmului ales.
(6p.)
Subiectul III
elementului
elementelor
b. generarea
cartezian M x M
minim
al
produsului
Scriei definiia complet a unui subprogram i_prim care primete prin singurul su
parametru, n, un numr natural din intervalul [2,30000] i returneaz diferena minim
p2-p1 n care p1 i p2 sunt numere prime i p1np2.
Exemplu: dac n=20 atunci i_prim(n)=4, valoare obinut pentru p1=19 i p2=23.
(10p.)
4.
Fiierul text BAC.TXT conine pe prima linie dou numere naturale n i k separate de un
spaiu (3n10000, 2kn/2), iar pe a doua linie un ir de n numere naturale x1, x2, ...,
xn separate prin cte un spaiu, fiecare numr din acest ir avnd cel mult patru cifre.
a) Scriei un program Pascal care citete numerele din fiier i determin, utiliznd o
metod eficient din punct de vedere al timpului de executare, cel mai mic indice i (1ink+1) pentru care media aritmetic a numerelor xi, xi+1, ..., xi+k-1 este maxim. Programul
afieaz valoarea lui i pe ecran.
8 3
Exemplu: pentru fiierul alturat se afieaz 2, deoarece media
maxim se obine pentru 9, 4, 7.
(6p.) 2 9 4 7 5 2 9 9
b) Explicai succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena
acesteia.
(4p.)
Subiectul III
b. xkxk-1
d. xkxk-1 i xkxk+1
3.
(4p.)
procedure f(c:char);
begin
if c>A then f(pred(c));
write(c);
if c>A then f(pred(c))
end;
4.
Scriei programul Pascal care citete din fiierul text BAC.TXT numrul ntreg n
(1n10000) i un ir de n perechi de numere ntregi a b (1ab32000), 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,b cel mai mare numr natural din intervalul
nchis [a,b] care este o putere a lui 2 sau numrul 0 dac nu exist nicio putere a lui 2 n
intervalul respectiv. Numerele afiate pe ecran se scriu n linie, separate prin cte un spaiu.
Un numr p este putere a lui 2 dac exist un numr natural k astfel nct p=2k.
Exemplu: dac fiierul BAC.TXT conine numerele
3
2 69
10 20
19 25
se va afia: 64 16 0.
(10p.)
Subiectul III
Algoritmul de generare a tuturor numerelor de 5 cifre nenule, fiecare avnd cifrele ordonate
strict cresctor, este echivalent cu algoritmul de generare a:
(6p.)
4.
Fiierul text BAC.TXT conine pe prima linie un numr natural nenul n (1n1000), iar pe
fiecare dintre urmtoarele n linii, cte dou numere ntregi a i b (1ab32000), fiecare
pereche reprezentnd un interval nchis de forma [a,b]. Scriei un program Pascal care
determin intervalele care au proprietatea c intersecia cu oricare dintre celelalte n-1
intervale este vid i afieaz pe cte o linie a ecranului, separate printr-un spaiu,
numerele care reprezint capetele intervalelor determinate. Dac nu exist nici un astfel de
interval, se afieaz pe ecran mesajul NU EXISTA.
(10p.)
4
Exemplu: dac fiierul BAC.TXT are coninutul alturat, pe ecran se va
17 20
afia:
2 6
2 6
sau
17 20
10 15
17 20
2 6
8 16
Subiectul III
a. BCA
b. CAB
c. BC
d. BEA
3.
function f(n:integer):integer;
(3p.) begin
if n<=9 then f:=0
(3p.)
else if n mod 4=0 then f:=0
else f:=1+f(n-3)
end;
4.
Fiierul text bac.txt conine pe prima linie numrul natural n, 1n30000, pe urmtoarele
n linii un ir de n numere ntregi, ordonate cresctor, iar pe ultima linie dou numere
ntregi a i b (ab) separate de un spaiu. Fiecare dintre cele n numere, precum i valorile a
i 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.
4
Exemplu: dac fiierul bac.txt are coninutul alturat, programul afieaz
-2
valoarea 11
(6p.)
7
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena
11
ei.
(4p.)
35
8 15
Subiectul III
Un program citete o valoare natural nenul impar pentru n i apoi genereaz i afieaz
n ordine cresctoare lexicografic toate combinaiile formate din n cifre care ndeplinesc
urmtoarele proprieti:
- ncep i se termin cu 0;
- modulul diferenei ntre oricare dou cifre alturate dintr-o combinaie este 1.
Astfel, pentru n=5, combinaiile afiate sunt, n ordine, urmtoarele: 01010, 01210. Dac
se ruleaz acest program i se citete pentru n valoarea 7, imediat dup combinaia
0101210 va fi afiat combinaia:
(4p.)
a. 0121210
b. 0123210
c. 0111210
d. 0121010
4.
Fiierul text NUMAR.TXT conine pe prima linie un numr real pozitiv x care are cel mult
dou cifre la partea ntreag i cel mult apte cifre dup punctul zecimal..
a) Scriei un program Pascal care, 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 x i a cror diferen absolut este
minim.
Exemplu: dac fiierul conine valoarea alturat, se vor afia pe ecran 0.375
numerele 3 8.
(6p.)
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei.
(4p.)
Subiectul III
(6p.)
(10p.)
Subiectul III
Subprogramul scrie
este definit procedure scrie (x,y:integer);
begin
alturat.
write(x,y);
Ce se afieaz ca urmare a apelului
if x<y then begin
scrie(2,6);?
(6p.)
scrie(x+1,y-1);
write((x+y)div 2)
end
end;
(10p.)
4. Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (2n100) i pe
urmtoarea linie n numere reale pozitive, n ordine strict cresctoare, separate prin cte un
spaiu.
a) Scriei un program Pascal care, utiliznd un algoritm eficient din punct de vedere al
memoriei utilizate, determin i afieaz pe ecran cel mai mare numr natural x cu
proprietatea c n orice interval deschis avnd drept capete oricare dou dintre cele n
numere aflate pe linia a doua n fiierul NUMERE.IN se gsesc cel puin x numere ntregi.
Exemplu: dac fiierul NUMERE.IN are coninutul:
6
3.5 5.1 9.2 16 20.33 100
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. (6p.)
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei.
(4p.)
Subiectul III
Generarea tuturor cuvintelor de trei litere mici, nu neaprat distincte, ale alfabetului englez,
se poate realiza cu ajutorul unui algoritm echivalent cu cel de generare a:
(4p.)
a. produsului cartezian
b. combinrilor
c. aranjamentelor
d. permutrilor
Subiectul III
3.
4.
(10p.)
(4p.)
Subiectul III
2.
3.
Scriei definiia complet a subprogramului suma, care primete prin cei 4 parametri
v,n,i,j:
- v, un tablou unidimensional cu maximum 100 de elemente ntregi din intervalul
[-1000,1000], numerotate de la 1 la n;
- n, un numr natural reprezentnd numrul de elemente din tabloul v;
- i i j dou valori naturale cu 1ijn;
i returneaz suma elementelor v1, vi-1,vj+1,,vn din tabloul v.
4.
(10p.)
Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (1n100) i pe
urmtoarea linie n numere reale pozitive ordonate cresctor, separate prin cte un spaiu.
a) Scriei un program Pascal care citete din fiierul NUMERE.IN numrul 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 x numr
natural, a cror reuniune include toate numerele reale din fiier.
Exemplu: dac fiierul NUMERE.IN are coninutul:
6
2.3 2.3 2.8 5.7 5.7 6.3
atunci se afieaz 3 (intervalele [2,3], [5,6], [6,7] sunt cele 3 intervale de forma
cerut care conin numere din ir).
(6p.)
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei.
(4p.)
Subiectul III
4.
n fiierul numere.txt se afl memorate, pe prima linie un numr natural n (1n100), iar
pe fiecare dintre urmtoarele n linii, cte dou numere ntregi x,y (-100xy100),
reprezentnd capetele cte unui segment [x,y] desenat pe axa Ox de coordonate.
a) Scriei n limbajul Pascal un program eficient din punct de vedere al timpului de
executare i al spaiului de memorare, care citete din fiier datele existente, determin
segmentul rezultat n urma interseciei tuturor celor n segmente date i afieaz pe ecran
dou numere desprie printr-un spaiu ce reprezint capetele segmentului cerut. Dac
segmentele nu au niciun punct comun se va afia pe ecran valoarea 0.
(6p.)
b) Descriei n limbaj natural algoritmul utilizat, justificnd eficiena acestuia.
5
Exemplu: dac fiierul numere.txt are coninutul alturat, se va -7 10
afia pe ecran
3 20
3 5
-5 5
0 12
-8 30
(4p.)
Subiectul III
4.
n fiierul numere.txt sunt memorate pe mai multe linii, numere ntregi (cel mult 100),
numerele de pe aceeai linie fiind desprite prin cte un spaiu, fiecare numr avnd cel
mult 9 cifre. S se determine cele mai mici dou valori distincte, fiecare avnd exact dou
cifre, memorate n fiier i s se afieze pe ecran aceste valori, desprite printr-un spaiu.
Dac n fiier nu se afl dou astfel de valori, pe ecran se va afia 0.
a) Descriei n limbaj natural o metod de rezolvare eficient din punct de vedere al
gestionrii memoriei i al timpului de executare.
(4p.)
b) Scriei programul Pascal corespunztor metodei descrise la punctul a.
(6p.)
Exemplu: dac fiierul numere.txt are coninutul alturat, se va 5 10
3 -77 20
afia pe ecran, nu neaprat n aceast ordine:
50 5 0 12 18 30
-77 10
Subiectul III
Folosind un algoritm de generare putem obine numere naturale de k cifre care au suma
cifrelor egal cu un numr natural s. Astfel, pentru valorile k=2 i s=6 se genereaz, n
ordine, numerele: 15, 24, 33, 42, 51, 60. Care va fi al treilea numr generat pentru k=4 i
s=5?
(4p.)
a. 1301
b. 1022
c. 2201
d. 1031
Subprogramul sum3 primete prin parametrul x un tablou unidimensional, cu cel mult 100
de elemente, numere ntregi cu cel mult 4 cifre fiecare, iar prin parametrul n un numr
natural ce reprezint numrul efectiv de elemente ale tabloului x (n100). Scriei definiia
complet a subprogramului sum3 care returneaz suma elementelor tabloului care sunt
divizibile cu 3. Dac tabloul nu conine nicio valoare divizibil cu 3, subprogramul va returna
0.
(6p.)
4.
(4p.)
Subiectul III
Completarea unui bilet de LOTO presupune colorarea a 6 numere dintre cele 49, nscrise
pe bilet. O situaie statistic pe o anumit perioad de timp arat c cele mai frecvente
numere care au fost extrase la LOTO sunt: 2, 20, 18, 38, 36, 42, 46, 48. Cte bilete de 6
numere se pot completa folosind doar aceste valori, tiind c numrul 42 va fi colorat pe
fiecare bilet?
(4p.)
b. 6!
c. 42
d. 56
a. 21
Subiectul III
Fiierul text numere.in conine pe prima linie un numr natural n (0<n<1000), iar pe a
doua linie n numere naturale cu cel mult 9 cifre fiecare, desprite prin cte un spaiu.
Scriei un program Pascal care 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.
(10p.)
9
Exemplu:
dac fiierul numere.in are 55 107 3 101 92 7 208 2782 80
coninutul alturat, se numerele ce se vor afia
sunt: 55 3 101 7 2782
4.
a) Scriei definiia complet a unui subprogram sum care primete prin parametrul x un
numr natural de cel mult 4 cifre i returneaz suma divizorilor numrului x, diferii de 1 i
de el nsui.
Exemplu: dac x=10 se va returna valoarea 7 (7=2+5).
(4p.)
Subiectul III
Subprogramul scif returneaz suma cifrelor unui numr natural transmis ca parametru.
Care este valoarea expresiei scif(scif(518)+scif(518))?
(4p.)
14
10
28
1
a.
b.
c.
d.
3.
Subprogramul cifra primete prin intermediul parametrului a un numr natural cu cel mult
4 cifre i returneaz ultima cifr par a sa. Dac numrul nu conine cifre pare,
subprogramul returneaz valoarea -1. De exemplu, dac a=8345, subprogramul va returna
4.
a) S se scrie definiia complet a subprogramului cifra.
(10p.)
b) Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n15000), iar pe a
doua linie a fiierului se afl un ir de n numere naturale, desprite prin cte un spaiu,
fiecare numr fiind format din cel mult 4 cifre.
Scriei un program Pascal care citete numerele din fiier i afieaz pe ecran, folosind
apeluri utile ale subprogramului cifra, cel mai mare numr care se poate forma cu
ultimele cifre pare ale fiecrui element, dac acestea exist. Alegei o metod de rezolvare
eficient ca timp de executare. eficient ca timp de executare. Dac toate numerele de pe a
doua linie a fiierului au numai cifre impare, programul va afia mesajul NU EXISTA.
Exemplu: dac fiierul bac.in are coninutul 7
alturat, pe ecran se va afia: 64220
(6p.) 369 113 2 0 33 1354
42
Subiectul III
3.
4.
k=3
a) Scriei doar antetul subprogramului nrdiv care primete prin intermediul parametrului x
un numr natural nenul cu cel mult 4 cifre, i returneaz numrul de divizori primi ai lui x.
(4p.)
b) Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n1000), iar pe a
doua linie a fiierului se afl un ir format din n numere naturale nenule, desprite prin
cte un spaiu, fiecare numr fiind format din cel mult 4 cifre. Scriei un program Pascal
care citete numerele din fiier i care afieaz pe ecran, folosind apeluri utile ale
subprogramului nrdiv, prima i ultima valoare din irul celor n numere citite, care au un
numr par de divizori primi. Numerele afiate vor fi separate printr-un spaiu.
Exemplu: dac fiierul bac.in are coninutul alturat pe 7
ecran se va afia: 20 10
(6p.) 30 105 20 140 7 10 5
Subiectul III
3.
Scriei n limbajul Pascal definiia complet a subprogramului Del care are doi
parametri: x, un numr ntreg de cel mult 9 cifre, i y, un numr natural nenul de o cifr.
Subprogramul determin eliminarea tuturor cifrelor lui x mai mari strict dect y i
furnizeaz numrul obinut tot prin intermediul parametrului x. Dac toate cifrele lui x sunt
mai mari strict dect y, atunci x va primi valoarea -1.
Exemplu: dac x=37659 i y=6, dup apel x=365, iar y=6.
4.
(10p.)
Se consider subprogramul inter, cu doi parametri: x i y (numere ntregi formate din cel
mult patru cifre fiecare); subprogramul interschimb valorile a dou variabile transmise prin
intermediul parametrilor x i y.
a) Scriei n limbajul Pascal definiia complet a subprogramului inter.
(4p.)
b) Pe prima linie a fiierului bac.in se afl un numr natural nenul n1000, iar pe a doua
linie a fiierului se afl un ir de n numere naturale nenule, desprite prin cte un spaiu,
fiecare numr fiind format din cel mult 4 cifre. Scriei un program Pascal care afieaz pe
ecran, n ordine cresctoare, numerele aflate pe a doua linie a fiierului. Numerele vor fi
afiate pe o singur linie, iar ntre dou numere se va lsa un spaiu. Se vor folosi apeluri
utile ale subprogramului inter.
(6p.)
Subiectul III
3.
Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n1000), iar pe a
doua linie a fiierului se afl un ir format din n numere naturale, desprite prin cte un
spaiu, fiecare numr fiind format din cel mult 4 cifre. Scriei un program Pascal care
citete valorile din fiier i care afieaz pe ecran mesajul DA dac toate elementele pare
din ir sunt n ordine cresctoare i mesajul NU n caz contrar.
Exemplu: dac fiierul bac.in are coninutul
alturat, pe ecran se va afia: DA
(10p.)
4.
8
10 113 12 33 12 42 1354
421
(4p.)
b) Considerm un numr natural nenul n>99 cu cel mult 9 cifre. Din n se obine un ir de
valori prin eliminarea succesiv a ultimei cifre, apoi a ultimelor dou cifre, apoi a ultimelor
trei cifre etc., pn ce se obine un numr de dou cifre, ca n exemplu. S se realizeze un
program Pascal care citete de la tastatur numrul n i care, folosind apeluri utile ale
subprogramului pr, afieaz pe ecran, separate prin cte un spaiu, doar valorile prime din
irul numerelor obinute din n, prin procedeul descris mai sus
Exemplu: pentru n=193124 se obine irul de valori 19312,1931, 193, 19. din care se
vor afia pe ecran doar valorile doar valorile 1931 193 19 (nu neaprat n aceast
ordine).
(6p.)
Subiectul III
3.
a) Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n1000), iar pe a
doua linie a fiierului se afl un ir format din n numere naturale, desprite prin cte un
spaiu, fiecare numr fiind format din cel mult 4 cifre. Scriei un program Pascal care
citete numerele din fiier i care afieaz pe ecran mesajul DA dac elementele pare n ir
sunt n ordine cresctoare, iar cele impare sunt n ordine descresctoare i mesajul NU caz
contrar. Alegei un algoritm eficient ca timp de executare i spaiu de memorie utilizat.
(6p.)
b) Descriei succint, n limbaj natural, metoda utilizat, justificnd eficiena acesteia.
(4p.)
Subiectul III
Cea mai mare dintre valorile strict negative memorate ntr-un tablou unidimensional NU
exist dac:
(4p.)
n tablou sunt memorate numai valori strict negative
n tablou exist cel puin o valoare strict negativ
n tablou sunt memorate valori nenule pozitive i negative
n tablou sunt memorate numai valori strict pozitive
Scriei un subprogram DIST, cu doi parametri care primete prin intermediul parametrului a
un tablou unidimensional cu cel mult 100 de elemente, numere naturale de cel mult 4 cifre
fiecare, i prin intermediul parametrului n un numr natural nenul, n<100, ce reprezint
numrul de elemente din tablou. Subprogramul returneaz valoarea 1 dac toate
elementele tabloului a sunt distincte i dac diferena absolut a oricror dou elemente
vecine din tablou este diferit de 1, altfel returnnd valoarea 0.
(10p.)
4.
Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie un ir format din n cifre, separate prin cte un spaiu.
a) Scriei un program Pascal care 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.txt are urmtorul coninut:
7
3 5 2 1 5 3 1
atunci pe ecran se va afia: 5 2.
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
Scriei definiia complet a unui subprogram P, cu trei parametri, care primete prin
intermediul primului parametru, a, un tablou unidimensional de cel mult 100 de numere
ntregi, cu cel mult 4 cifre fiecare, prin intermediul celui de-al doilea parametru, n, numrul
efectiv de elemente ale tabloului, iar prin parametrul k (k<n) un numr natural i returneaz
cea mai mare sum cu k termeni care se poate obine adunnd k elemente ale tabloului.
Exemplu: dac n=6 i k=4, iar irul este format din elementele (5, 2, 5, 4, 1, 3),
atunci la apel se va returna 17.
(10p.)
4.
Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie, separate prin cte un spaiu, n numere naturale formate din cel mult dou cifre
fiecare.
a) Scriei un program Pascal care 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.txt are urmtorul coninut:
7
3 5 2 1 5 23 1
atunci pe ecran se va afia: 2 3 23.
(6p.)
Subiectul III
Scriei definiia complet a unui subprogram P cu doi parametri, care primete prin
intermediul primului parametru, n, un numr natural nenul (1n100) i prin intermediul
celui de-al doilea parametru, a, un tablou unidimensional cu elementele numerotate de la 1
la n, numere ntregi de cel mult 4 cifre fiecare. Subprogramul returneaz suma tuturor
numerelor impare aflate pe poziii pare din tablou.
Exemplu: dac n=6, iar irul a este format din elementele (3,12,7,1,4,3), atunci la apel se
va returna 4.
(10p.)
4.
Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000) iar pe a
doua linie n cifre, separate prin cte un spaiu.
a) Scriei un program Pascal care 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.txt are urmtorul coninut:
7
2 5 3 1 5 8 9
atunci pe ecran se va afia: 9855321.
(6p.)
Subiectul III
a.
b.
c.
d.
Care dintre urmtoarele variante reprezint antetul corect al unui subprogram care primete
prin parametrii x i y dou numere ntregi i furnizeaz prin parametrul m cea mai mic
dintre cele dou valori x i y?
(4p.)
function minim(x,y:integer):integer;
procedure minim(x,y:integer;var m:integer);
procedure minim(x,y,m:integer);
procedure minim(var x,y:integer;m:integer);
4.
Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie n numere naturale, formate din cel mult 4 cifre, separate prin cte un spaiu.
a) Scriei un program Pascal care determin n mod eficient, din punct de vedere al
timpului de executare, 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.txt are urmtorul coninut:
7
243 32 545 74 12 1344 90
atunci pe ecran se va afia: 0 1 2 3 4 5 7 9
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
4.
Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000) iar pe a
doua linie n numere naturale, formate din cel mult dou cifre, separate prin cte un spaiu.
a) Scriei un program Pascal, eficient 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.txt are urmtorul coninut:
7
12 21 22 11 9 12 3
atunci pe ecran se va afia: 3 9 11 12 12 21 22
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
Fiierul bac.txt conine pe prima linie un numr natural n (n100), iar pe a doua linie,
separate prin cte un spaiu, n numere naturale nenule, cu cel mult 4 cifre fiecare. Scriei
programul Pascal care citete de la tastatur un numr natural k (k25), construiete n
memorie i afieaz pe ecran un tablou unidimensional ce conine, n ordinea n care au
fost citite, numerele de pe a doua linie a fiierului bac.txt care au cel puin k divizori.
Exemplu: pentru k=5 i fiierul bac.txt cu 6
100 9 400 56 7 10
coninutul alturat, tabloul care se afieaz este:
100 400 56
(10p.)
4.
a) Scriei n limbajul Pascal doar antetul subprogramului cifre, care prin intermediul
parametrului nr primete un numr natural de cel mult 9 cifre i furnizeaz prin intermediul
parametrilor nc i sc numrul de cifre i respectiv suma cifrelor din scrierea lui nr.
(4p.)
b) Scriei programul Pascal care citete de la tastatur un numr natural n (10n109) i
verific, folosind apeluri utile ale subprogramului cifre, dac n scrierea n baza 10 a lui n
se gsete cel puin o cifr care s fie media aritmetic a celorlalte cifre din componena lui
n.Programul afieaz pe ecran mesajul DA n caz afirmativ i mesajul NU n caz contrar.
Exemplu: pentru n=27989 programul va afia mesajul DA, deoarece n scrierea lui n apare
cifra 7 care este media aritmetic a celorlalte cifre din scrierea lui n: 7=(2+9+8+9)/4.
Pentru n=7351 se va afia mesajul NU.
(6p.)
Subiectul III
1.
Fiierul text bac.txt conine pe prima linie un numr natural n (n<100), iar pe a doua
linie, separate prin cte un spaiu, n numere naturale de cel mult 8 cifre fiecare.
Scriei un program Pascal care citete de la tastatur un numr natural k (k<50) precum
i numerele din fiierul bac.txt i 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 x este
y
putere a lui k dac exist un numr natural y astfel nct x=k . 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 8
fiierul are coninutul alturat, atunci pe ecran se 32 56 317 809 256 2 1 60
afieaz numerele:
32 256 2 1
(10p.)
4.
a) Scriei n limbajul Pascal doar antetul unui subprogram cif, care primete prin
intermediul primului parametru, nr, un numr natural cu cel mult 9 cifre i furnizeaz prin
intermediul celui de-al doilea parametru, s, suma cifrelor din scrierea lui nr.
(4p.)
b) Scriei programul Pascal care citete de la tastatur un numr natural n (0<n<25), apoi
un ir de n numere naturale nenule cu cel mult 9 cifre fiecare i care afieaz pe ecran,
separate prin cte un spaiu, numerele din ir care au suma cifrelor maxim, folosind
apeluri utile ale subprogramului cif.
Exemplu: dac pentru n=8 se citete irul de numere 274 56018 354 8219 293 287
932 634 atunci, pe ecran, se afieaz numerele 56018 8219
(6p.)
Subiectul III
1.
Se genereaz prin metoda backtracking mulimile distincte ale cror elemente sunt numere
naturale nenule i care au proprietatea c suma elementelor fiecrei mulimi este egal cu
7. Astfel, sunt generate, n aceast ordine, mulimile: {1,2,4}, {1,6}, {2,5}, {3,4},
{7}. Folosind aceeai metod pentru a genera mulimile distincte ale cror elemente sunt
numere naturale nenule i care au proprietatea c suma elementelor fiecrei mulimi este
egal cu 9, stabilii n ce ordine sunt generate urmtoarele mulimi: M1={2,3,4};
M2={3,6}; M3={2,7}; M4={4,5}.
(6p.)
3.
Se consider subprogramul cmdiv care primete prin parametrii x i y dou valori ntregi
pozitive (0<x<100 i 0<y<100) i returneaz cel mai mare divizor comun al lor.
a) Scriei definiia complet a subprogramului cmdiv.
(4p.)
b) Scriei un program Pascal care citete de la tastatur un numr natural n (1n100) i
determin, utiliznd apeluri ale subprogramului cmdiv, numrul fraciilor ireductibile de
forma
x
cu x numr natural (1xn). Numrul obinut va fi afiat pe ecran.
n
1 5
i .
6 6
1 2 3 4 5 6
, , , , , doar dou
6 6 6 6 6 6
(6p.)
Fiierul text bac.in conine pe prima linie un numr natural n (0<n<5000), iar pe a doua
linie, separate prin cte un spaiu, n numere naturale, formate din cel mult 4 cifre fiecare.
Scriei un program Pascal care determin i scrie n fiierul bac.out toate 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.in se afl 10, iar pe linia a doua se gsesc
numerele 2 4548 568 4548 57 89 5974 2 89 32 atunci valorile cutate sunt 32 57
568 5974.
(10p.)
Subiectul III
Se genereaz n ordine strict cresctoare numerele de cte ase cifre care conin: cifra 1 o
singur dat, cifra 2 de dou ori i cifra 3 de trei ori. Se obin, n aceast ordine, numerele:
122333, 123233, 123323, , 333221. Cte numere generate prin aceast metod au
prima cifr 1 i ultima cifr 2?
(4p.)
b. 3
c. 4
d. 8
a. 1
Se consider subprogramul cmax care prin parametrul a primete un numr natural nenul
mai mic dect 30000, iar prin parametrul b furnizeaz cifra maxim din numrul a.
a) Scriei, folosind limbajul Pascal, doar antetul subprogramului cmax.
(4p.)
b) Fiierul bac.txt conine cel mult 1000 numere naturale nenule, mai mici dect 30000
fiecare, separate prin cte un spaiu. Scriei programul Pascal care citete din fiierul
bac.txt toate numerele i care determin cea mai mare cifr din scrierea lor i cel mai mic
dintre numerele care conin aceast cifr, folosind apeluri utile ale subprogramului cmax.
Cifra i numrul determinate se vor afia pe ecran, separate printr-un spaiu.
Exemplu: dac fiierul bac.txt conine valorile: 23 12 64 12 72 345 67 23 71 634
atunci pe ecran se afieaz 7 67.
(6p.)
Subiectul III
Fie declararea:
type vector=array[1..6] of integer;
Valorile memorate de variabila v de tip vector
sunt, n aceast ordine: 973, 51, 75, 350,
350, 15. Se consider subprogramul t cu
definiia alturat. Care dintre urmtoarele
expresii are valoarea 2?
(4p.)
a. t(1,v)+t(4,v)
c. t(5,v)+t(6,v)
b.
function t(i:integer;v:vector)
:byte;
begin
if i=1 then t:=0
else if v[i]<>v[i-1] then
t:=t(i-1,v)
else t:=1
end;
t(2,v)+t(5,v)
d. t(4,v)+t(5,v)
Se genereaz n ordine strict cresctoare toate numerele de cte ase cifre care conin:
cifra 1 o singur dat, cifra 2 de dou ori i cifra 3 de trei ori. Se obin, n aceast ordine,
numerele: 122333, 123233, 123323, , 333221. Ce numr se afl imediat naintea i ce
numr se afl imediat dup numrul 332312 n irul numerelor generate?
(6p.)
3.
Se consider subprogramul divxy care primete prin parametrii x i y dou valori ntregi
pozitive (0<x<1000 i 0<y<1000) i returneaz valoarea 1 dac y este divizor al lui x sau
x este divizor al lui y i returneaz valoarea 0 n caz contrar.
a) Scriei definiia complet a subprogramului divxy.
(4p.)
b) Scriei un program Pascal care citete de la tastatur trei numere naturale nenule a, b i
n, cu cel mult 3 cifre fiecare i care afieaz pe ecran toi divizorii lui n din intervalul nchis
determinat de a i b folosind apeluri utile ale subprogramului divxy. Intervalul nchis
determinat de a i b este [a,b] dac a<b sau [b,a] dac ba. Numerele afiate sunt
separate prin cte un spaiu. Dac nu exist niciun astfel de numr se afieaz mesajul NU
EXISTA.
Exemplu: pentru a=85, b=10 i n=40 se afieaz: 10 20 40 (nu neaprat n aceast
ordine).
(6p.)
4.
Fiierul bac.in conine pe prima linie un numr natural n (0<n<5000), iar pe a doua linie,
separate prin cte un spaiu, n numere naturale, formate din cel mult 4 cifre fiecare.
Scriei un program Pascal care determin i scrie n fiierul bac.out, toate numerele, citite
de pe a doua linie a fiierului bac.in, care apar de cel puin dou ori. Numerele
determinate se vor scrie n ordine cresctoare, pe aceeai linie, separate prin cte un
spaiu.
Exemplu: dac fiierul bac.in conine pe prima linie numrul 11, iar pe linia a doua
valorile 23 12 54 12 78 345 67 23 78 934 23
atunci fiierul bac.out va conine: 12 23 78
(10p.)
Subiectul III
a.
b.
c.
d.
Care este antetul corect al subprogramului cifre, care primete prin intermediul primului
parametru, x, un numr natural i furnizeaz prin intermediul celui de-al doilea parametru,
y, suma cifrelor numrului natural x?
(4p.)
procedure cifre(x:integer;var y:integer);
function cifre(x:integer):integer;
procedure cifre(x,y:integer);
procedure cifre(var x:integer; y:integer);
Se consider un numr natural nenul x, avnd exact 8 cifre, distincte dou cte dou;
printre cifrele sale se gsete i cifra 0. Permutnd cifrele lui x, se obin alte numere
naturale. Cte dintre numerele obinute, inclusiv x, au exact 8 cifre?
(6p.)
3.
(4p.)
Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe a
doua linie n numere naturale nenule, separate prin cte un spaiu, fiecare numr avnd
maximum 4 cifre. Scriei un program Pascal care citete toate numerele din fiierul text
date.in, construiete n memorie un tablou unidimensional a, cu cele n elemente din fiier
i afieaz pe ecran perechile (ai, aj), 1i<jn, 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.in are coninutul alturat,
16 22 3 6 1
se vor afia:
16 22
16 6
22 6
3 1
(10p.)
Subiectul III
(6p.)
b) Fiierul text date.in conine cel mult 400 de numere naturale avnd maximum 8 cifre
fiecare. Scriei un program Pascal care, folosind apeluri utile ale subprogramului mult,
afieaz pe ecran valoarea maxim k, astfel nct primele k numere succesive din fiier s
poat forma o mulime.
Exemplu: dac fiierul date.in conine
16 17 8 31 8 2 10
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)
(4p.)
4.
Scriei un program Pascal care citete de la tastatur dou numere naturale nenule n i k
(k<n10000) i afieaz pe ecran un ir format din k numere naturale consecutive care au
suma n. Numerele se vor afia pe ecran, n ordine cresctoare, desprite ntre ele prin
cte un spaiu. n cazul n care nu exist un astfel de ir, se va afia mesajul Nu exist.
(10p.)
Subiectul III
4.
Fiierul text bac.txt are dou linii: pe prima linie conine un numr natural nenul n
(n100), iar pe linia a doua un ir format din n numere naturale distincte de cel mult 4 cifre
fiecare, desprite prin spaii. Scriei un program Pascal care adaug n fiier toate
permutrile circulare distincte ale irului de pe linia a doua a fiierului. Astfel, se vor aduga
la sfritul fiierului nc n-1 linii, fiecare linie coninnd permutarea circular cu o poziie
ctre stnga, a elementelor irului aflat pe linia precedent din fiier. Elementele fiecrei
permutari vor fi separate prin cte un spaiu.
Exemplu: dac fiierul bac.txt conine liniile:
4
4
10 20 30 49
10 20 30 49
20 30 49 10
atunci, dup rularea programului, fiierul va avea coninutul 30 49 10 20
reprezentat alturat.
(10p.) 49 10 20 30
Subiectul III
(4p.)
Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe a
doua linie un ir de n numere naturale nenule distincte, separate prin cte un spaiu,
fiecare numr avnd maximum 8 cifre.
a) Scriei un program Pascal care citete numerele din fiier i determin cte dintre
componentele 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.in conine
6
1 10 25 2 15 3
atunci se va afia valoarea 2 (deoarece 25=10+15, 3=1+2).
(8p.)
b) Descriei pe scurt, n limbaj natural, metoda de rezolvare.
(2p.)
Subiectul III
Utiliznd metoda backtracking se genereaz toate matricele ptratice de ordinul 4 ale cror
elemente aparin mulimii {0,1}, cu proprietatea c pe fiecare linie i pe fiecare coloan
exist o singur valoare 1. Primele 4 soluii generate sunt, n aceast ordine:
1 0 0 0
1 0 0 0
0 1 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 1
0 0 1 0
Care este a opta soluie?
a. 0 1 0 0
b. 0 1 0 0
1 0 0 0
1 0 0 0
0 0 0 1
0 0 1 0
0 0 1 0
0 0 0 1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
c. 0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
(4p.)
0
0
0
1
d. 0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
(4p.)
b) Se consider fiierul text date.in ce conine pe prima linie un numr natural nenul n
(n100), iar pe a doua linie n numere naturale, separate prin cte un spaiu, fiecare numr
avnd maximum 8 cifre nenule. Scriei un program Pascal care citete toate numerele din
fiierul text date.in i 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.
Exemplu: dac fiierul date.in are coninutul 6
alturat, atunci se vor afia numerele: 16 269 (6p.)
16 175 333 242477 321 269
4.
Scriei un program Pascal care citete de la tastatur un numr natural nenul n (n100)
i 2*n numere naturale de maximum 3 cifre; primele n reprezint elementele tabloului
unidimensional a, iar urmtoarele n elementele tabloului unidimensional b; fiecare tablou
are elementele numerotate ncepnd de la 1. Programul construieste n memorie i
afieaz pe ecran, cu spaii ntre ele, cele n elemente ale unui tablou unidimensional c, n
care orice element ci (1in) se obine conform definiiei urmtoare:
ci =
Subiectul III
Pentru a genera toate numerele naturale cu exact 4 cifre i care au cifrele n ordine strict
descresctoare, se poate utiliza un algoritm echivalent cu cel pentru generarea:
(4p.)
aranjamentelor de 4 obiecte luate cte 10 b.
combinrilor de 10 obiecte luate cte 4
d.
permutrilor a 10 obiecte
permutrilor a 4 obiecte
2.
3.
Fiierul text numere.txt conine, pe o singur linie, cel mult 1000 de numere naturale
nenule cu cel mult 4 cifre fiecare, numerele fiind separate prin cte un spaiu. Scriei un
program Pascal care citete toate numerele din fiier i scrie pe ecran toate numerele
pare citite, ordonate cresctor. Dac fiierul numere.txt nu conine niciun numr par,
atunci se va afia pe ecran mesajul nu exista.
Exemplu: dac fiierul numere.txt conine numerele 2 3 1 4 7 2 5 8 6, atunci pe
ecran se va afia: 2 2 4 6 8
(10p.)
4.
Se consider subprogramele
prim, care primete prin intermediul unicului su parametrului x un numr natural nenul
de cel mult 4 cifre i returneaz valoarea 1 dac x este un numr prim i 0 n caz contrar;
numar, care primete prin intermediul parametrului x un numr natural nenul de cel mult
4 cifre i furnizeaz prin intermediul parametrului nrp numrul de numere prime mai mici
dect x.
a) Scriei numai antetul subprogramului prim i definiia complet a subprogramului
numar.
(6p.)
b) Scriei un programul Pascal n care se citesc de la tastatur dou numere naturale
nenule de cel mult 4 cifre, a i b (a<b), i, prin apeluri utile ale subprogramului numar, se
verific dac intervalul nchis [a,b] conine cel puin un numr prim. Programul va afia
pe ecran, n caz afirmativ, mesajul DA, iar n caz contrar, mesajul NU.
(4p.)
Subiectul III
Fiierul text INTRARE.TXT conine, pe o singur linie, cel mult 100 de numere naturale
nenule de cel mult patru cifre fiecare, numerele fiind separate prin cte un spaiu. Scriei un
program Pascal care 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 prima linie a fiierului INTRARE.TXT.
Exemplu:
INTRARE.TXT
IESIRE.TXT
1 4 3 2
3 4 5 6 7
(10p.)
4.
(4p.)
b) Scriei declarrile de date i programul principal Pascal care citete de la tastatur trei
numere naturale nenule x, y, z, de cel mult 4 cifre fiecare (xy), i care, prin apeluri utile
ale subprogramului multiplu, verific dac intervalul [x,y] conine cel puin un multiplu
al lui z. Programul va afia pe ecran, n caz afirmativ, mesajul DA, iar n caz contrar
mesajul NU.
(6p.)
Subiectul III
2.
3.
Fiierul text BAC.TXT conine, pe o singur linie, cel puin 3 i cel mult 100 de numere
naturale nenule distincte de cel mult 4 cifre fiecare, numerele fiind separate prin cte un
spaiu. Scriei un program Pascal care citete toate numerele din fiierul BAC.TXT i scrie
pe ecran, n ordine descresctoare, cele mai mici 3 numere citite.
Exemplu: dac fiierul BAC.TXT conine numerele 1017 48 310 5710 162, atunci se
va afia: 310 162 48
(10p.)
4.
(4p.)
Subiectul III
Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele care
conin toate literele din mulimea {a,m,i,c}, astfel nct fiecare liter s apar exact o dat
ntr-un cuvnt. Cte soluii sunt generate dup cuvntul amic i nainte de cuvntul cami? (4p.)
b. 4
c. 1
d. 3
a. 6
3.
Fiierul text bac.txt conine, pe o singur linie, cel puin 3 i cel mult 100 de numere
naturale nenule distincte de cel mult 4 cifre fiecare, numerele fiind separate prin cte un
spaiu. Scriei un program Pascal care citete numerele din fiier i scrie pe ecran ultima
cifr a produsului celor mai mari trei numere citite.
Exemplu: dac fiierul bac.txt conine numerele:
1017 48 312 5742 162
atunci se va afia: 8 (ultima cifr a produsului numerelor 1017, 5742, 312)
(10p.)
4.
(4p.)
Subiectul III
Se utilizeaz metoda backtracking pentru a genera toate cuvintele care conin toate literele din
mulimea {i,n,f,o}, astfel nct fiecare liter s apar exact o dat ntr-un cuvnt i literele n
i o s nu se afle pe poziii vecine. tiind c primul cuvnt generat este info, iar al treilea, al
patrulea i al cincilea sunt nifo, niof, nfio care este cel de-al doilea cuvnt obinut?
(4p.)
a. iofn
b. inof
c. ionf
d. niof
2.
3.
Fiierul text bac.txt conine, pe prima sa linie, 100 de numere naturale de cel mult 4 cifre
fiecare, numerele fiind ordonate cresctor i separate prin cte un spaiu, iar pe a doua linie
un singur numr natural x, cu cel mult 4 cifre. Scriei un program Pascal care citete toate
numerele din fiier i verific dac x se afl n irul celor 100 de 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.txt conine:
17 38 40 45 50 51 52 53 54 55 ... 145
52
atunci se va afia: DA ;
dac fiierul bac.txt conine:
2 11 15 16 20 25 30 35 40 ... 495
33
atunci se va afia: NU.
(10p.)
4.
(4p.)
Subiectul III
1.
3.
function
Se consider tabloul unidimensional a, definit
f(x:integer):integer;
global, ce memoreaz elementele a1=12,
begin
a2=35, a3=2, a4=8 i subprogramul f, definit
alturat. Ce valoare are f(1)? Dar f(4)? (6p.) if x>0 then
f:=(a[x]+f(x-1)) mod 10
else f:=0
end;
Subprogramul cifra primete prin parametrul x un numr real nenul pozitiv i
furnizeaz prin parametrul y valoarea cifrei unitilor prii ntregi a lui x.
Exemplu: dac x=34.567, dup apel y=4.
a) Scriei definiia complet a subprogramului cifra.
(6p.)
b) Scriei un program Pascal care citete de la tastatur dou numere reale cu cel
mult dou zecimale, numere reprezentnd mediile semestriale obinute de un elev.
Programul stabilete, folosind apeluri utile ale subprogramului cifra, dac cele dou
medii citite se afl n aceeai categorie de medii sau nu. Precizm c orice medie, n
funcie de intervalul n care se ncadreaz, face parte din una dintre categoriile:
[3,3.99], [4,4.99], [5,5.99], [6,6.99], [7,7.99], [8,8.99] sau
[9,10]. n cazul n care ambele medii fac parte din aceeai categorie, programul va
afia mesajul Da, altfel va afia mesajul Nu.
(4p.)
4.
n fiierul text.in se 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, o i u.
De exemplu, dac text.in conine textul:
Aleea ce strabate valea
e-o unduire de pietris scanteietor,
De-aceea nu stii daca zboara sau doar inoata in unde aurii
cele mai frecvente perechi de vocale ntlnite n acest text sunt: ea i 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).
(4p.)
b) Scriei programul Pascal corespunztor metodei descrise la cerina a.
(6p.)
Subiectul III
Scriei definiia complet a unui subprogram fibo cu doi parametri, n i v, care primete
prin intermediul parametrului n un numr natural (1<n<30) i returneaz prin intermediul
parametrului v un tablou unidimensional care conine primii n termeni impari ai irului lui
Fibonacci (amintim c irul lui Fibonacci este: 1,1,2,3,5,8,13,21,).
(10p.)
4.
a) Fiierul date.in conine un ir de cel mult 10000 numere naturale (printre care cel puin
un numr par i cel puin un numr impar), cu cel mult 2 cifre fiecare, separate prin cte un
spaiu. Scriei un program Pascal care citete numerele din fiierul date.in i scrie n
fiierul text date.out valorile 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.in se afl numerele:
75 12 3 3 18 75 1 3
atunci fiierul date.out va conine:
1 3 75
18 12
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
(6p.)
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.in conine un ir de cel puin dou i cel mult 10000 de numere
naturale avnd maximum 6 cifre fiecare, numere separate prin cte un spaiu. Scriei un
program Pascal care citete toate numerele din fiier i afieaz numrul de noduri ale
irului citit, folosind un algoritm eficient din punctul de vedere al memoriei utilizate.
(6p.)
Exemplu: dac fiierul date.in are urmtorul coninut:
51 20 100 43 43 618 5000 31 2020 114 116 4
atunci pe ecran se afieaz 7 (cele apte 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).
(4p.)
Subiectul III
procedure f(i,j:integer);
begin
if j<=9 then f(i,j+1);
writeln(i,*,j,=,i*j)
end;
3.
4.
Fiierul text date.in conine pe prima linie , separate prin cte un spaiu, cel mult 1000 de
numere naturale, fiecare dintre ele avnd maximum 9 cifre.
a) Scriei un program Pascal care citete numerele din fiierul date.txt i 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.in conine:
pe ecran se afieaz:
5 2 19 4 3 6 3 2 1 0 8
(6p.) 6 3 2 1 0
Subiectul III
3.
(6p.)
Subprogramul sfx primete prin singurul su parametru x un numr natural din intervalul
[100,2000000000] i returneaz valoarea 1 dac ultimele trei cifre ale numrului sunt n
ordine strict descresctoare sau valoarea 0 n caz contrar.
Exemplu: dac x=24973 se va returna valoarea 1.
a) Scriei definiia complet a subprogramului sfx.
(5p.)
b) Scriei un program Pascal care citete de la tastatur un numr natural n format din
exact 6 cifre i verific, utiliznd apeluri ale subprogramului sfx, dac acest numr are
toate cifrele n ordine strict descresctoare. Programul va afia mesajul Da n caz afirmativ
i mesajul Nu n caz contrar.
Exemplu: dac n=756543 se va afia Nu, iar dac n=976532 se va afia Da.
4.
(5p.)
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.in conine un ir de cel mult 10000 de numere naturale avnd
maximum 6 cifre 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.
(6p.)
Exemplu: dac fiierul date.in are urmtorul coninut:
51 20 100 43 43 618 5000 31 2020 114 116 4
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).
(4p.)
Subiectul III
a. 32645 i 34625
c. 32654 i 34625
b. 32654 i 34655
d. 32645 i 34655
3.
4.
Fiierele text A.TXT i B.TXT conin cel mult 10000 de numere naturale cu cel mult 9
cifre fiecare, scrise fiecare pe cte o linie.
a) Scriei un program Pascal care 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.TXT sunt strict mai mici
dect toate numerele memorate n fiierul B.TXT.
(6p.)
41111 iar fiierul B.TXT are coninutul
91111
Exemplu:
dac
fiierul
81111 alturat:
91111
A.TXT are coninutul alturat,
11111
61111
91111
91111
51111
91111
111111
81111
31111
61111
431111
91111
61111
201111
atunci programul va afia valoarea 4, deoarece 41111, 11111, 51111, 31111 sunt mai
mici dect toate elementele din fiierul B.TXT.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena
acesteia.
(4p.)
Subiectul III
a. 65987 i 67958
b. 65978 i 67988
c. 65978 i 67958
d. 65987 i 67988
3.
4.
Subiectul III
1.
procedure gama(n:integer);
3.
4.
Subiectul III
d. ptaeu i patue
2.
Se
consider
subprogramul
recursiv definit alturat. Ce valori
vor fi afiate pe ecran n urma
apelului beta(15)?
(6p.)
3.
4.
Subiectul III
Pentru rezolvarea crei probleme dintre cele enumerate mai jos se poate utiliza metoda
backtracking ?
(4p.)
a. determinarea reuniunii a 3 mulimi
b. determinarea tuturor divizorilor unui numr din 3 cifre
c. determinarea tuturor elementelor mai mici dect 30000 din irul lui Fibonacci
d. determinarea tuturor variantelor n care se pot genera steagurile cu 3 culori (din mulimea:
rou, galben, albastru i alb), avnd la mijloc culoarea galben
3.
4.
Subiectul III
3.
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 Palindrom care primete prin intermediul
parametrului n un numr natural de cel mult nou cifre i returneaz 1 dac acesta este
palindrom i 0 n caz contrar.
(10p.)
b) Fiierul text NUMERE.IN conine cel mult 100000 numere naturale de cel mult nou cifre
fiecare, numerele fiind desprite prin cte un spaiu. Cel puin unul dintre numere este
palindrom.
Scriei programul Pascal care citete numerele din fiierul NUMERE.IN i, 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.
(6p.)
Exemplu: dac NUMERE.IN conine numerele:
23 565 78687 7887 7865 78687 7887 23 78687 98798
atunci NUMERE.OUT va conine:
78687
3
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul b, explicnd n
ce const eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
Se genereaz n ordine cresctoare toate numerele de 4 cifre, cu cifre distincte, astfel nct
diferena n valoare absolut dintre prima i ultima, respectiv a doua i a treia cifr este
egal cu 2. Primele 11 soluii generate sunt, n ordine: 1023, 1203, 1243, 1423, 1463,
1573, 1643, 1683, 1753, 1793, 1863. Care dintre urmtoarele numere se va genera
imediat naintea numrului 9317?
(4p.)
a. 9247
b. 9357
c. 9207
d. 8976
2.
3.
Subiectul III
Se genereaz n ordine cresctoare toate numerele de 4 cifre, cu cifre distincte, astfel nct
diferena n valoare absolut dintre ultimele dou cifre ale fiecrui numr generat este egal
cu 2. Primele opt soluii generate sunt, n ordine: 1024, 1035, 1042, 1046, 1053, 1057,
1064, 1068. Care dintre urmtoarele numere se va genera imediat dup numrul 8975?
(4p.)
a. 8979
b. 9013
c. 8957
d. 9024
2.
3.
Subiectul III
1.
3.
4.
Se numete numr mare orice numr natural care are mai mult de nou cifre.
a) Scriei un program Pascal care citete de pe prima linie a fiierului text NUMERE.IN un
numr natural n (10n<1000), iar de pe a doua linie n cifre desprite prin cte un spaiu,
dintre care cel puin una nenul, i afieaz pe ecran cel mai mic numr mare format cu
toate cele n cifre din fiier. Alegei o metod eficient din punct de vedere al utilizrii memoriei.
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
Exemplu: dac fiierul NUMERE.IN conine
10
7 9 4 0 9 0 1 1 8 8
atunci se va afia pe ecran numrul mare :
1001478899
Subiectul III
1.
3.
a) Scriei definiia complet a funciei UltimaCifra care primete prin cei doi parametri a
i b cte un numr natural (0<a<30000, 0<b<30000), calculeaz n mod eficient din punct
de vedere al timpului de executare i returneaz ultima cifr a numrului ab (a la puterea b).
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
c) Fiierul text SIR.IN conine pe prima sa linie un numr natural n (0<n<1001), iar pe
fiecare dintre urmtoarele n linii cte o pereche de numere naturale, xi yi (1in,
xi30000, yi30000).
Scriei programul Pascal care citete numerele din fiierul SIR.IN i scrie n fiierul text
SIR.OUT ultima cifr a expresiei: x1 + x 2 +...+ x n ,folosind apeluri ale funciei
UltimaCifra.
Exemplu: dac fiierul SIR.IN are coninutul alturat, atunci 3
25 6
SIR.OUT va conine cifra 0.
(10p.)
8 10
1 4589
y1
y2
yn
Subiectul III
1.
Pentru
definiia
alturat
a function sub(n:longint):longint;
subprogramului sub, scriei ce valoare begin
if n<>0 then
are sub(3). Dar sub(132764)?
if n mod 2 <> 0 then
(6p.)
sub:=n mod 10*sub(n div 10)
else sub:=sub(n div 10)
else sub:=1
end;
3.
Scriei definiia complet a unui subprogram s cu trei parametri care primete prin
intermediul parametrului n un numr natural de maximum 9 cifre, prin intermediul
parametrului c o cifr i furnizeaz prin intermediul parametrului k numrul de cifre ale lui n
care aparin intervalului [c-1,c+1].
Exemplu: pentru n=1233 i c=3, k va avea valoarea 3, iar pentru n=650 i c=3, k va
avea valoarea 0.
(10p.)
4.
Fiierul BAC.TXT are pe prima linie dou numere naturale n i m (0<n<1000, 0<m<1000)
separate prin cte un spaiu, pe linia a doua n numere ntregi ordonate strict cresctor, iar
pe linia a treia m numere naturale distincte. Numerele din fiier aflate pe linia a doua i a
treia au cel mult 6 cifre fiecare i sunt desprite n cadrul liniei prin cte un spaiu. S se
scrie un program care citete toate numerele din fiier i afieaz pe ecran, desprite prin
cte un spaiu, toate numerele de pe a doua linie a fiierului care apar i pe linia a treia a
acestuia.
Exemplu: dac fiierul are urmtorul coninut:
6 5
2 3 4 5 8 9
4 5 2 11 8
atunci se va afia: 5 2 8 4, nu neaprat n aceast ordine.
a) Descriei n limbaj natural o metod de rezolvare eficient ca timp de executare.
b) Scriei programul Pascal corespunztor metodei descrise la punctul a).
(4p.)
(6p.)
Subiectul III
a.
b.
c.
d.
3.
Scriei un program Pascal care citete de la tastatur dou numere naturale nenule n i k
(0<n<100, 0<k<4) i apoi n numere reale pozitive care au cel mult 3 cifre la partea
ntreag i cel mult 5 cifre zecimale i afieaz pe ecran numrul de valori reale citite care
au mai mult de k cifre zecimale.
Exemplu: dac pentru n se citete valoarea 5 i pentru k valoarea 2 i apoi irul de
numere reale 6.2 4.234 2 8.13 10.001 pe ecran se va afia valoarea 2.
(10p.)
4.
Fiierul text bac.in conine pe prima sa linie un numr natural n (0<n<10000), iar pe
urmtoarea linie n numere naturale din intervalul [1,100] separate prin cte un spaiu.
Se cere s se citesc din fiier toate numerele i s se afieze pe ecran numrul sau
numerele care apar de cele mai multe ori printre numerele citite de pe a doua linie a
fiierului. Numerele afiate vor fi separate prin cte un spaiu. Alegei un algoritm de
rezolvare eficient att din punctul de vedere al timpului de executare ct i al gestionrii
memoriei.
Exemplu: dac fiierul bac.in are urmtorul coninut:
12
1 2 2 3 2 9 3 3 9 9 7 1
pe ecran se vor afia valorile 2, 3 i 9, nu neaprat n aceast ordine.
a) Explicai n limbaj natural metoda utilizat justificnd eficiena acesteia (4-6 rnduri) (4p.)
b) Scriei programul Pascal ce rezolv problema enunat, corespunztor metodei
descrise la punctul a).
(6p.)
Subiectul III
1.
a) Scriei doar antetul unui subprogram prim care primete prin intermediul parametrului n
un numr natural cu cel mult patru cifre i furnizeaz prin intermediului parametrului p
valoarea true dac n este prim i false n caz contrar.
(2p.)
b) Scriei un program Pascal care citete de la tastatur un numr natural n (3<n<10000)
i afieaz pe ecran, desprite prin cte un spaiu, primele n numerele prime, folosind
apeluri utile ale subprogramului prim.
(8p.)
Exemplu: pentru n=4 pe ecran vor fi afiate numerele 2 3 5 7
4.
Fiierul text bac.in conine pe prima sa linie un numr natural n (0<n<10000), iar pe
urmtoarea linie n numere naturale din intervalul [1,100]. Se cere s se citesc din fiier
toate numerele i s se afieze pe ecran, n ordine descresctoare, toate numerele care
apar pe a doua linie a fiierului i numrul de apariii ale fiecruia. Dac un numr apare de
mai multe ori, el va fi afiat o singur dat. Fiecare pereche valoare - numr de apariii va
fi afiat pe cte o linie a ecranului, numerele fiind separate printr-un spaiu, ca n exemplu.
Alegei un algoritm de rezolvare eficient din punctul de vedere al timpului de executare.
Exemplu: dac fiierul bac.in are urmtorul coninut:
12
1 2 2 3 2 2 3 3 2 3 2 1
pe ecran se vor afia, n aceast ordine, perechile:
3 4
2 6
1 2
a) Explicai n limbaj natural metoda utilizat justificnd eficiena acesteia (4-6 rnduri). (4p.)
b) Scriei programul Pascal ce rezolv problema enunat, corespunztor metodei
descrise la punctul a).
(6p.)
Subiectul III
Problema generrii tuturor codurilor formate din exact 4 cifre nenule, cu toate cifrele
distincte dou cte dou, este similar cu generarea tuturor:
(4p.)
aranjamentelor de 9 elemente luate cte 4
permutrilor elementelor unei mulimi cu 4 elemente
elementelor produsului cartezian AxAxAxA unde A este o mulime cu 9 elemente
submulimilor cu 4 elemente ale mulimii {1,2,3,4,5,6,7,8,9}
3.
Scriei definiia complet a unui subprogram max, cu trei parametri, a, b, c, care primete
prin intermediul parametrilor a i b dou numere reale cu exact dou cifre la partea
ntreag i exact dou zecimale fiecare. Subprogramul determin cel mai mare numr real
dintre urmtoarele 4 valori: a, b i numerele reale obinute din a i b prin interschimbarea
prii ntregi cu partea fracionar n cadrul aceluiai numr. Aceast valoare este furnizat
prin intermediul parametrului real c.
Exemplu: dac a=33.17 i b=15.40, c va avea valoarea 40.15 (cea mai mare valoare
dintre 33.17, 15.40, 17.33 i 40.15)
(10p.)
4.
Subiectul III
1.
Fiierul text bac.in conine cel mult 1000 de numere naturale cu cel mult patru cifre
fiecare, desprite prin cte un spaiu. Scriei programul Pascal care citete numerele din
fiier i afieaz pe ecran, n ordine cresctoare, acele numerele din fiier care au toate
cifrele egale. Dac fiierul nu conine niciun astfel de numr, atunci se va afia pe ecran
mesajul NU EXISTA.
Exemplu: dac fiierul bac.in conine numerele: 30 44 111 7 25 5 atunci pe ecran
se va afia 5 7 44 111.
(10p.)
4.
a) Scriei definiia complet a unui subprogram divi cu doi parametri, care primete prin
intermediul parametrului n un numr natural nenul cu cel mult 6 cifre i returneaz prin
intermediul parametrului d cel mai mic divizor propriu al lui n sau 0 in cazul n care n nu are
niciun divizor propriu. De exemplu, pentru n=15, d va avea valoarea 3.
(4p.)
b) Scriei programul Pascal care citete de la tastatur un numr natural nenul n
(1<n<1000000) i afieaz pe ecran cel mai mare numar natural mai mic dect n care l
divide pe n. Se vor folosi apeluri utile ale subprogramului divi.
Exemple: dac n=120, se afieaz pe ecran 60, iar dac n=43, se afieaz 1.
(6p.)
Subiectul III
3.
Scriei n PASCAL definiia complet a subprogramului medie care are doi parametri:
- n, prin care primete un numr natural (1n100);
- v, prin care primete un tablou unidimensional cu n elemente, numere naturale, fiecare
element avnd cel mult patru cifre.
Subprogramul returneaz media aritmetic a elementelor din tablou.
(10p.)
4.
Fiierul text NUMERE.IN conine, pe mai multe linii, cel mult 30000 de numere naturale
nenule mai mici sau egale cu 500, desprite prin cte un spaiu.
a) Scriei programul PASCAL care, utiliznd un algoritm eficient din punct de vedere al timpului
de executare, afieaz pe ecran, n ordine cresctoare, toate numerele care au aprut o
singur dat din fiierul NUMERE.IN, desprite prin cte un spaiu.
Exemplu: dac fiierul NUMERE.IN conine numerele scrise alturat, se vor 2 23 34 3
afia valorile urmtoare: 3 4 5 6 34
(6p.) 8 9 9 23
6 8 9 2
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul a), 4 5 23 9
explicnd n ce const eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
2.
3.
Scriei n PASCAL definiia complet a subprogramului suma, care are doi parametri:
- n, prin care primete un numr natural (1n100);
- v, prin care primete un tablou unidimensional cu n elemente, numere ntregi situate n
intervalul [10,30000]. Funcia returneaz suma numerelor din tabloul v care au ultimele
dou cifre identice.
Exemplu: dac n=4 i v=(123, 122, 423, 555) funcia va returna 677 (=122+555).
(10p.)
4.
Fiierul text NUMERE.IN conine, pe mai multe linii, cel mult 30000 de numere naturale
nenule mai mici sau egale cu 500, numerele de pe fiecare linie fiind desprite prin cte un
spaiu. Fiierul conine cel puin dou numere distincte, fiecare avnd dou cifre.
a) Scriei programul PASCAL care citete toate numerele din fiierul NUMERE.IN i creeaz
fiierul text NUMERE.OUT care s conin pe prima linie cel mai mare numr de dou cifre
din fiierul NUMERE.IN, i de cte ori apare el n acest fiier, iar pe a doua linie, cel mai mic
numr de dou cifre din fiierul NUMERE.IN i de cte ori apare el n acest fiier. Alegei o
metod de rezolvare eficient din punct de vedere al memoriei utilizate i al timpului de
executare.
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul a), explicnd n
ce const eficiena ei (3 4 rnduri).
(4p.)
Exemplu: dac fiierul
atunci
fiierul
NUMERE.OUT
va
2 253 34 3
88 2
NUMERE.IN are coninutul 6 88 9 2 3
avea urmtorul coninut:
34 2
alturat:
4 54 34 88
Subiectul III
3.
Scriei n PASCAL definiia complet a subprogramului suma, care are doi parametri:
- n, prin care primete un numr natural (1n100);
- v, prin care primete un tablou unidimensional cu n elemente, numere ntregi, fiecare
avnd exact trei cifre.
Funcia returneaz suma elementelor din tablou care au prima cifr egal cu ultima cifr.
(10p.)
4.
Fiierul text NUMERE.IN conine mai multe linii, pe fiecare linie existnd cte un ir de
numere naturale nenule mai mici sau egale dect 30000, desprite prin cte un spaiu;
fiecare linie se termin cu numarul 0 (care se consider c nu face parte din irul aflat pe
linia respectiv) i conine cel puin dou valori.
a) Scriei programul PASCAL care afieaz pe ecran valoarea maxim din irul care conine
cele mai puine numere. n cazul n care exist mai multe iruri cu acelai numr minim de
numere, se va afia cea mai mare valoare care apare n unul dintre aceste iruri. Alegei o
metod de rezolvare eficient din punct de vedere al memoriei utilizate i al timpului de
executare.
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul a), explicnd n
ce const eficiena ei (3 4 rnduri).
(4p.)
Exemplu: dac fiierul NUMERE.IN are coninutul 2 253 34 3 0
6 88 9 3 0
alturat, atunci pe ecran se va afia numrul 253.
4 54 88 12345 98 234 546 0
Subiectul III
3.
Scriei programul PASCAL care citete de la tastatur un numr natural n (1n100), apoi
un ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat a1,a2,a3,an, apoi un al doilea
ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat b1,b2,b3,bn. Fiecare ir conine
att valori pare, ct i impare.
Programul afieaz pe ecran suma acelor numere impare din irul b care sunt mai mici
dect suma tuturor numerelor pare din irul a.
Exemplu: pentru n=4 i numerele 2,3,7,8 respectiv 44,3,1,8 se afieaz valoarea 4
pentru c numerele 3 i 1 sunt mai mici dect suma numerelor pare din irul a, care este
10.
(10p.)
4.
Se consider subprogramul CMMMC care primete prin cei doi parametri, x i y, dou
numere naturale (1x10000, 1y10000) i returneaz cel mai mic multiplu comun al lor.
a) Scriei numai antetul subprogramului CMMMC.
(4p.)
b) Fiierul text NUMERE.IN conine, pe fiecare linie, cte dou numere naturale nenule mai
mici sau egale dect 10000, desprite printr-un spaiu. Scriei un program PASCAL care,
pentru fiecare linie k din fiierul NUMERE.IN, citete cele dou numere de pe aceast linie
i scrie n fiierul text NUMERE.OUT , tot pe linia k, cel mai mic multiplu comun al acestora,
ca n exemplu.
Se vor utiliza apeluri utile ale subprogramului CMMMC.
(6p.)
84
12 14
atunci fiierul
Exemplu: dac fiierul
132
11 12
NUMERE.OUT va avea
NUMERE.IN are coninutul
8
4
8
alturat:
urmtorul coninut:
Subiectul III
3.
Scriei programul PASCAL care citete de la tastatur un numr natural n (1n100), apoi
un ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat a1,a2,a3,an, apoi un al doilea
ir de n numere ntregi, cu cel mult 2 cifre fiecare, notat b1,b2,b3,bn. Programul afieaz
pe ecran suma acelor numere din irul b care sunt strict mai mici dect media aritmetic a
tuturor numerelor pare din irul a. Fiecare ir conine att valori pare, ct i impare.
Exemplu: pentru n=4 i numerele 2,3,7,8 respectiv 44,3,1,8 se afieaz valoarea 4
pentru c numerele 3 i 1 sunt mai mici dect media aritmetic a numerelor pare din irul a,
care este 5.
(10p.)
4.
Se consider subprogramul CMMDC care primete prin cei doi parametri, x i y, dou
numere naturale (1x10000, 1y10000) i returneaz cel mai mare divizor comun al lor.
a) Scriei definiia complet a subprogramului CMMDC.
(4p.)
b) Fiierul text NUMERE.IN conine, pe fiecare linie, cte dou numere naturale nenule mai
mici sau egale dect 10000, desprite printr-un spaiu, reprezentnd numitorul i
numrtorul cte unei fracii. Scriei un program PASCAL care, pentru fiecare linie k din
fiierul NUMERE.IN, citete numitorul i numrtorul fraciei de pe aceast linie i scrie n
fiierul text NUMERE.OUT , tot pe linia k, numitorul i numrtorul acestei fracii, adus la
forma ireductibil, ca n exemplu. Se vor utiliza apeluri apeluri utile ale subprogramului
CMMDC.
(6p.)
12 14
6 7
Exemplu: dac fiierul
atunci fiierul
11 12
11 12
NUMERE.IN are coninutul
NUMERE.OUT va avea
2
2
1 1
alturat:
urmtorul coninut:
4 8
1 2
Subiectul III
La examenul de bacalaureat, un elev primete un test format dintr-un subiect de tip I, unul
de tip II i unul de tip III. Stiind c pentru fiecare tip de subiect sunt elaborate exact 100
de variante, algoritmul de generare a tuturor posibilitilor de a forma un test este similar
cu algoritmul de generare a:
(4p.)
a. elementelor produsului cartezian
b. aranjamentelor
c. permutrilor
d. submulimilor
procedure f(n:integer);
begin
write('*');
if n>2 then
begin
f(n-1); write('#')
end
end;
3.
Scriei definiia complet a subprogramului numar, cu trei parametri, care primete prin
intermediul parametrului n un numr natural format din cel mult 9 cifre, iar prin intermediul
parametrilor c1 i c2 cte o cifr nenul; subprogramul retuneaz numrul obinut prin
nlocuirea n numrul primit prin parametrul n a fiecrei apariii a cifrei c1 cu cifra c2. Dac
c1 nu apare n n, subprogramul returneaz valoarea n.
Exemplu: pentru n=12445, c1=4 i c2=7 valoarea returnat va fi 12775.
(10p.)
4.
Fiierul text bac.txt conine cel puin dou i cel mult 1000 de numere naturale distincte,
dintre care cel puin dou sunt pare. Numerele sunt separate prin cte un spaiu i fiecare
dintre ele are cel mult 9 cifre.
a) Scriei un program Pascal care determin cele mai mari dou numere pare din fiier,
utiliznd un algoritm eficient din punct de vedere al timpului de executare i al spaiului de
memorie utilizat. Cele dou numere vor fi afiate pe ecran, n ordine descresctoare,
separate printr-un spaiu.
Exemplu: dac fiierul conine numerele: 5123 8 6 12 3 se va afia: 12 8
(6p.)
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)
Subiectul III
1.
2.
3.
Scriei definiia complet a subprogramului reduce cu doi parametri, care primete prin
intermediul parametrilor a i b dou numere naturale formate din cel mult nou cifre fiecare.
Funcia returneaz o valoare obinut din numrul a prin nsumarea acelor cifre diferite de 0
ale numrului a care NU divid numrul b. Dac nu exist asemenea cifre, se va returna
valoarea 0.
Exemplu: pentru a=184465709 i b=18, cifrele corespunztoare vor fi 8, 4, 4, 5 i 7, deci
valoarea returnat va fi 28. Dac a=2402804 i b=8000, valoarea returnat va fi 0. (10p.)
4.
Fiierul text bac.txt conine un ir de cel mult 2009 numere naturale, cu cel mult nou
cifre fiecare, pe mai multe rnduri, numerele de pe acelai rnd fiind separate prin cte un
spaiu.
a) Scriei un program Pascal care afieaz pe ecran cel mai mic numr din fiier pentru
care suma cifrelor pare este egal cu suma cifrelor impare, precum i numrul de apariii n
fiier ale acestui numr, folosind o metod eficient din punctul de vedere al timpului de
executare. Cele dou valori vor fi afiate pe o linie a ecranului, separate printr-un spaiu.
Dac nu xist asemenea valori, se afieaz mesajul NU EXISTA.
Exemplu: dac n fiier avem numerele 22031 9021 22031 1021 2011 10012 1021
457008 99882 atunci pe ecran se vor afia numerele: 1021 2.
(6p.)
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)
Subiectul III
1.
Scriei definiia complet a subprogramului numar, cu patru parametri, care primete prin
intermediul parametrului n un numr natural format din cel mult 9 cifre, iar prin intermediul
parametrilor c1 i c2 cte o cifr nenul; subprogramul furnizeaz prin intermediul celui de
al patrulea parametru, x, o valoare obinut prin eliminarea din numrul primit prin
parametrul n a fiecrei cifre cuprinse n intervalul nchis [c1, c2]. Dac toate cifrele lui n
aparin acestui interval, valoarea furnizat prin x va fi 0.
Exemplu: pentru n=162448, c1=4 i c2=7, valoarea returnat va fi 128.
(10p.)
4.
Fiierul text bac.txt conine cel mult 10000 de numere naturale din intervalul nchis
[0,9], dintre care cel puin unul este prim. Numerele se afl pe mai multe rnduri, cele de
pe acelai rnd fiind separate prin cte un spaiu.
a) Scriei un program Pascal care determin i afieaz pe ecran cel mai mare numr
prim care apare n fiier i numrul de apariii ale acestuia, utiliznd un algoritm eficient din
punct de vedere al timpului de executare i al spaiului de memorie utilizat. Programul
afieaz pe ecran cele dou valori determinate separate printr-un spaiu.
Exemplu: dac fiierul conine numerele: 5 8 9 1 9 5 1 1 2 2 se va afia 5 2. (6p.)
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)
Subiectul III
Scriei definiia complet a subprogramului numar, cu trei parametri, care primete prin
intermediul parametrului n un numr natural format din cel mult 9 cifre, iar prin intermediul
parametrilor c1 i c2 cte o cifr nenul. Subprogramul caut prima apariie (de la stnga
la dreapta) a cifrei c1 n n, i dac aceasta apare, o nlocuiete cu c2, iar urmtoarele cifre,
dac exist, sunt nlocuite cu cte o cifr 0. Subprogramul furnizeaz tot prin n numrul
astfel obinut. Dac cifra c1 nu apare n n, atunci valoarea lui n rmne nemodificat.
Exemplu: pentru n=162448, c1=4 i c2=7 valoarea furnizat prin n va fi 162700. (10p.)
4.
Fiierul text bac.txt conine pe mai multe rnduri cel mult 50000 de numere naturale din
intervalul nchis [0, 99], numerele de pe acelai rnd fiind separate prin cte un spaiu.
a) Scriei un program Pascal care afieaz pe ecran n ordine descresctoare acele
numere din fiier care sunt mai mari dect un numr natural k, citit de la tastatur, utiliznd
un algoritm eficient din punct de vedere al timpului de executare. Dac un numr apare de
mai multe ori, i este mai mare dect k, se va afia o singur dat. Numerele vor fi afiate
cte 20 pe fiecare linie (cu excepia ultimei linii care poate s conin mai puine valori),
separate prin cte un spaiu.
Exemplu: dac fiierul conine numerele: 15 8 99 15 1 37 1 24 2, iar pentru k
se citete valoarea 7, se vor afia numerele 99 37 24 15 8.
(6p.)
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)
Subiectul III
procedure f(c:char);
begin
if c<>'e' then
begin
f(succ(c)); write(c)
end
end;
3.
Funcia verif primete prin intermediul parametrului n un numr natural format din cel mult
9 cifre, i prin intermediul parametrului a, un numr natural nenul (2a9). Funcia
returneaz valoarea 1 dac n este un numr format din cifre aparinnd intervalului nchis
[0,a] i valoarea 0 n caz contrar.
a) Scriei definiia complet a funciei verif.
(4p.)
b) Spunem c n poate fi o reprezentare n baza b (1<b10), dac toate cifrele lui n sunt
strict mai mici dect b. Scriei un program care citete de la tastatur o valoare natural n cu
cel mult 9 cifre i, utiliznd apeluri ale funciei verif, afieaz pe ecran, n ordine
cresctoare, cu spaii ntre ele, toate valorile lui b pentru care valoarea citit nu poate fi o
reprezentare n baza b.
(6p.)
Exemplu: Pentru n=4101, se afieaz 2 3 4.
4.
Fiierul text bac.txt conine cel mult 1000 de numere ntregi de cel mult 9 cifre fiecare,
numerele fiind separate prin cte un spaiu; printre numerele din fiier exist cel puin dou
numere pozitive, aflate pe poziii consecutive.
a) Scriei un program Pascal care afieaz dou numere pozitive, aflate unul dup altul n
fiier, a cror sum este maxim, utiliznd un algoritm eficient din punct de vedere al timpului
de executare i al spaiului de memorie utilizat. Dac exist mai multe soluii, se afieaz
doar acea pereche pentru care diferena dintre cele dou numere este maxim. Numerele
vor fi afiate pe ecran, n ordinea din fiier, separate printr-un spaiu.
Exemplu: dac fiierul conine numerele: -2 2 16 4 -1 25 -2 8 12 7 13 se vor
afia numerele 16 4, n aceast ordine, cu un spaiu ntre ele.
(6p.)
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)
Subiectul III
Pentru a planifica n orarul unei coli, la clasa a XII-a, 4 ore de informatic n zile lucrtoare
diferite din sptmn, cte o singur or pe zi, se poate utiliza un algoritm echivalent cu
algoritmul de generare a:
(4p.)
a. permutrilor de 4 elemente
Subprogramul par primete prin singurul su parametru, n, un numr natural nenul cu cel
mult 8 cifre i returneaz valoarea 1 dac n conine cel puin o cifr par, sau returneaz
valoarea 0 n caz contrar.
Exemplu: pentru n=723 subprogramul va returna valoarea 1.
a) Scriei numai antetul subprogramului par.
(2p.)
b) Scriei un program Pascal care citete de la tastatur un numr natural nenul n cu cel
mult trei cifre, apoi un ir de n numere naturale, cu cel puin dou i cel mult 8 cifre fiecare,
i afieaz pe ecran numrul de valori din irul citit care au numai cifra unitilor par,
celelalte cifre fiind impare. Se vor utiliza apeluri utile ale subprogramului par.
Exemplu: dac n=4, iar irul citit este 7354, 123864, 51731, 570 se va afia 2 (numerele
7354 i 570 respect condiia cerut).
(8p.)
4.
Fiierul numere.in conine cel mult 5000 de numere reale, cte unul pe fiecare linie. Se
cere s se scrie un program care s citesc toate numerele din fiier i s afieze pe ecran
numrul de ordine al primei, respectiv al ultimei linii pe care se afl cel mai mare numr din
fiier. Cele dou numere vor fi separate printr-un spaiu. Alegei o metod de rezolvare
eficient din punct de vedere al spaiului de memorare i al timpului de executare.
Exemplu: dac fiierul are coninutul alturat, pe ecran se vor afia numerele 2 6. 3.5
7
a) Descriei succint, n limbaj natural, metoda de rezolvare aleas, explicnd n ce -4
const eficiena ei.
(4p.) 7
b) Scriei programul Pascal corespunztor metodei descrise.
(6p.) 2
7
6.3
5
Subiectul III
4.
Scriei un program Pascal care creeaz fiierul text SIR.TXT i scrie n el toate irurile
formate din dou caractere distincte, litere mari ale alfabetului englez, astfel nct niciun ir
s nu fie format din dou vocale alturate. Fiecare ir va fi scris pe cte o linie a fiierului.
(6p.)
Subiectul III
Scriei programul Pascal care citete de la tastatur un numr natural n (1n99), impar, i
construiete n memorie un tablou unidimensional A=(A1, A2,, An) cu elementele
mulimii {1,2,...,n} astfel nct elementele de pe poziii impare formeaz irul cresctor
1,2,...,[(n+1)/2], iar elementele de pe poziii pare irul descresctor n,n-1,...,
[(n+1)/2]+1.
Exemplu: pentru n=11 se va construi tabloul A :
Programul va crea un fiier text TABLOU.TXT. Elementele tabloului se vor scrie, n ordine, pe
prima linie a fiierului, cu cte un spaiu ntre ele.
(10p.)
4.
(6p.)
(4p.)
Subiectul III
2
1
3
1
3
2
1
2
1
3
2
3
Funcia recursiv f este astfel definit nct f(1)=8, iar f(n+1)=2*f(n)-4 pentru orice
n natural nenul.
a) Ce valoare are f(5) ?
(3p.)
b) Care este cea mai mare valoare pe care o poate lua x astfel nct f(x) < 1000 ? (3p.)
3.
Scriei definiia complet a funciei f, care primete prin intermediul parametrului n un numr
natural nenul (2n200), iar prin intermediul parametrului a un tablou unidimensional care
conine n valori ntregi, fiecare dintre aceste valori ntregi avnd cel mult patru cifre. Funcia
returneaz valoarea 1 dac elementele tabloului formeaz un ir cresctor, valoarea 2 dac
elementele tabloului formeaz un ir descresctor, valoarea 0 dac elementele tabloului
formeaz un ir constant i valoarea -1 n rest.
(10p.)
4.
Fiierul text numr.txt conine pe prima linie o valoare natural n cu exact 9 cifre nenule
distincte. Scriei un program eficient din punctul de vedere al timpului de executare care
citete din fiier numrul n i afieaz pe ecran cea mai mic valoare m format din exact
aceleai cifre ca i n, astfel nct m>n. n cazul n care nu exist o astfel de valoare,
programul va afia pe ecran mesajul Nu exista.
Exemplu: Dac fiierul numr.txt conine numrul 257869431, se va afia pe ecran
numrul 257891346.
a) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
b) Scriei un program Pascal care rezolv problema conform metodei descrise.
(6p.)
Subiectul III
1.
Funcia f primete prin intermediul parametrului n un numr natural nenul (2n200), iar
prin intermediul parametrului a un tablou unidimensional care conine n valori ntregi nenule
(fiecare dintre aceste valori ntregi avnd cel mult patru cifre).
Funcia returneaz valoarea -1 dac numrul de valori negative din tabloul a este strict mai
mare dect numrul de valori pozitive din tablou, valoarea 0 dac numrul de valori
negative din a este egal cu numrul de valori pozitive din tablou i valoarea 1 dac numrul
de valori pozitive din tabloul a este strict mai mare dect numrul de valori negative din a.
Scriei definiia complet a funciei f.
(10p.)
4.
a) Scriei un program Pascal care citete de la tastatur un numr natural nenul S, avnd
maximum 9 cifre, i printr-o metod eficient din punct de vedere al timpului de executare,
determin i scrie n fiierul rez.dat trei valori naturale a cror sum este egal cu S, i al
cror produs este maxim. Cele trei valori vor fi scrise n ordine cresctoare pe prima linie a
fiierului rez.dat, separate prin cte un spaiu.
Exemplu: dac se citete valoarea 5, fiierul rez.dat va avea o linie cu coninutul 1 2 2.
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri).
(4p.)
Subiectul III
1.
3.
Funcia verif primete prin intermediul a trei parametri, notai a, b i c, trei valori naturale
nenule, fiecare de maximum patru cifre. Funcia returneaz valoarea 1 dac cele trei valori
pot constitui laturile unui triunghi i valoarea 0 n caz contrar.
a) Scriei definiia complet a funciei verif.
(5p.)
b) Scriei un program Pascal care citete de la tastatur ase valori naturale nenule,
fiecare de maximum patru cifre, apoi verific, utiliznd apeluri utile ale funciei verif, dac
primele trei numere citite pot constitui laturile unui triunghi i dac ultimele trei numere citite
pot constitui laturile unui triunghi; n caz afirmativ, programul afieaz pe ecran mesajul
congruente dac cele dou triunghiuri sunt congruente sau mesajul necongruente dac
cele dou triunghiuri nu sunt congruente; dac cel puin unul dintre cele dou triplete de
valori nu pot constitui laturile unui triunghi, programul va afia pe ecran mesajul nu. (5p.)
4.
Fiierul BAC.DAT conine pe prima linie, separate printr-un spaiu, dou valori naturale n i m
(2n1000, 2m1000), pe a doua linie n valori ntregi i pe a treia linie m valori ntregi.
Valorile de pe a doua i de pe a treia linie apar n fiier n ordine strict cresctoare, sunt
separate prin cte un spaiu i au cel mult 4 cifre fiecare.
Se cere afiarea pe ecran a dou valori, dintre cele aflate n poziii consecutive pe a treia
linie a fiierului, care determin intervalul nchis n care se afl un numr maxim de valori de
pe a doua linie a fiierului. Se va utiliza o metod eficient din punct de vedere al timpului de
executare i al spaiului de memorie utilizat. Se garanteaz c cel puin un numr aflat pe a
doua linie a fiierului aparine unuia dintre intervalele determinate de numerele de pe a treia
linie a fiierului.
Exemplu: dac fiierul BAC.DAT are coninutul 10 4
-1 1 3 4 5 6 10 15 16 117
alturat, programul va afia: 1 9
0 1 9 20
Explicaie: cele patru numere de pe a treia linie a fiierului determin trei intervale:
[0,1], [1,9], [9,20]; n intervalul [1,9] se afl 5 valori de pe a doua linie a fiierului,
acesta fiind numrul maxim de valori aflate n unul dintre cele trei intervale.
a) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri)
(4p.)
b) Scriei un program Pascal care s rezolve problema conform metodei descrise.
(6p.)
Subiectul III
3.
(4p.)
Subiectul III
1.
4.
Pe prima linie a fiierului text DATE.TXT se afl dou numere naturale nenule n i m
(n3000, m3000), pe a doua linie un ir de n numere naturale, ordonate cresctor, avnd
fiecare cel mult 9 cifre, iar pe linia a treia un ir de m numere naturale, ordonate
descresctor, avnd fiecare cel mult 9 cifre. Numerele sunt desprite, n cadrul liniilor, prin
cte un spaiu.
a) Scriei programul Pascal care citete numerele din fiier i afieaz, pe ecran, doar
numerele pare din cele dou iruri, ordonate cresctor. Programul nu va afia nimic dac nu
exist numere pare n cele dou iruri. Alegei o metod de rezolvare eficient ca timp de
executare.
Exemplu: dac fiierul are coninutul alturat, pe ecran se 5 8
va afia: 2 4 4 32 42 42 88 88
(6p.) 2 4 7 37 42
88 88 67 45 42 32 4 1
b)Descriei succint, n limbaj natural, metoda utilizat,
justificnd eficiena acesteia.
(4p.)
Subiectul III
Se utilizeaz metoda backtracking pentru a genera toate cuvintele formate din dou litere
distincte din muimea {w,x,z,y} astfel nct niciun cuvnt s nu nceap cu litera x i
niciun cuvnt s nu conin litera w lng litera z. Cuvintele vor fi generate n ordinea wx,
wy, zx, zy, yw, yx, yz. Folosind aceeai metod se genereaz toate cuvintele de dou
litere distincte din mulimea {w,x,z,y,t} astfel nct niciun cuvnt s nu nceap cu litera
x i niciun cuvnt s nu conin litera w lng litera z. Care sunt a treia i a patra soluie
generat?
(6p.)
3.
4.
Pe prima linie a fiierului text DATE.TXT se afl un ir de cel mult 10000 de numere ntregi,
avnd cel mult 4 cifre fiecare. Numerele sunt desprite prin cte un spaiu.
a) Scriei un program Pascal care citete numerele din fiier i afieaz pe ecran lungimea
maxim a unei secvene de numere din ir, cu proprietatea c oricare dou numere din
secven, aflate pe poziii consecutive, au pariti diferite. Pe a doua linie a ecranului
programul va afia o secven de lungime maxim, valorile fiind desprite prin cte un
spaiu. Dac exist mai multe secvene de lungime maxim, se va afia una dintre ele,
oricare. Alegei o metod de rezolvare eficient ca timp de executare.
Exemplu: dac fiierul conine, n ordine, numerele 2 4 3 2 7 4 6 2 7 8 12, se va
afia:
5
4 3 2 7 4
(6p.)
b) Descriei succint, n limbaj natural, metoda utilizat, justificnd eficiena acesteia.
(4p.)
Subiectul III
Scriei definiia complet a subprogramului divizor, cu trei parametri, prin care primete 3
numere naturale nenule cu cel mult 9 cifre fiecare i returneaz numrul divizorilor comuni
tuturor celor 3 numere.
Exemplu: dac numerele primite ca parametri sunt 24, 20 i 12, subprogramul returneaz
valoarea 3 (divizorii comuni sunt 1, 2 i 4).
(10p.)
4.
(4p.)
Subiectul III