Sunteți pe pagina 1din 19

SUBIECTELE PROBEI PRACTICE PENTRU

EXAMENUL DE ATESTAT PROFESIONAL LA INFORMATIC, 2012

PROGRAMARE
SPECIALIZAREA MATEMATIC INFORMATIC, INTENSIV INFORMATIC

Subiectul nr. 1
Fiierul numr.in conine pe prima linie un numr natural n, format din cel mult 8
cifre, cel puin o cifr fiind impar.
Se consider subprogramele:
S1 cu doi parametri, care primete prin intermediul parametrilor a i b dou
numere naturale formate fiecare din cel mult 8 cifre; subprogramul determin
eliminarea cifrei unitilor numrului coninut de parametrul a, mutnd-o la
sfritul numrului coninut de parametrul b, returnnd prin intermediul
parametrilor a i b noile numere obinute. De exemplu, pentru valorile 21134 i
61 ale parametrilor a i b, n urma executrii subprogramului S1 valorile
returnate prin intermediul parametrilor vor fi 2113 i 614.
S2 cu un singur parametru k prin intermediul cruia primete un numr natural,
k>1; subprogramul returneaz numrul natural obinut prin eliminarea fiecrei
cifre pare din numrul k. De exemplu, pentru k=12345, subprogramul S2 va
returna 135, iar pentru k=177 subprogramul S2 va returna 177.

Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ care s citeasc din fiierul
numr.in numrul n, iar apoi, folosind apeluri utile ale subprogramelor S1 i S2,
s afieze pe ecran rsturnatul numrului obinut prin eliminarea tuturor cifrelor
pare din numrul n.

Exemplu. Dac fiierul numr.in are coninutul alturat, 83109327


programul va afia pe ecran numrul urmtor: 73913

Subiectul nr. 2
Fiierul date.in conine dou linii. Pe prima linie a fiierului este scris un numr
natural n (1n100), iar pe a doua linie sunt scrise n numere naturale, formate
fiecare din cel mult 4 cifre, separate prin cte un spaiu.
Se consider subprogramele:
S1 cu un singur parametru k prin intermediul cruia primete un numr natural
nenul, 1<k<10000; subprogramul returneaz numrul divizorilor proprii ai
numrului k;

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
1
S2 cu doi parametri, care primete prin intermediul parametrilor:
- p i q , dou numere naturale (1p<q100);
- v,un tablou unidimensional format din cel mult 100 componente
componente, cu indicii de la 1, ce memoreaz numere naturale, cu cel
mult 4 cifre fiecare.
Subprogramul determin ordonarea descresctoare doar a secvenei din vector
format din valorile componentelor v[p], v[p+1], v[p+2],,v[q], restul
componentelor tabloului nemodificndu-se, i apoi, returneaz tabloul ordonat
prin intermediul aceluiai parametru.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ care s citeasc din fiierul
date.in numrul n i cele n numere naturale, iar apoi, folosind apeluri utile ale
subprogramelor S1 i S2, s determine i s afieze pe prima linie a ecranului
toate numerele prime care se afl pe a doua linie a fiierului date.in, n ordinea
cresctoare a valorilor lor, separate prin cte un spaiu. Dac nu exist astfel de
numere se va afia mesajul NU.

Exemplu. Dac fiierul date.in are 8


coninutul alturat, programul va afia pe 12 101 9 3 28 3 17 24
ecran numerele urmtoare:
3 3 17 101

Subiectul nr. 3
In fiierul date.in se gsesc pe o singur linie, separate prin cte un spaiu, mai
multe numere naturale din intervalul nchis [10, 106-1].
Se consider subprogramele:
S1 cu un singur parametru k prin intermediul cruia primete un numr natural
nenul cu cel mult 6 cifre, k>9; subprogramul returneaz numrul format prin
eliminarea primei i ultimei cifre a valorii parametrului k;
Exemplu. Pentru k=12345 subprogramul returneaz valoarea 234.
S2 cu un singur parametru k prin intermediul cruia primete un numr natural
nenul cu cel mult 6 cifre, k>9; subprogramul returneaz cel mai mic numr prim
mai mare sau egal cu k.

Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ care s determine pentru fiecare
numr x, citit din fiierul date.in, cel mai mic numr prim mai mare sau egal cu
numrul format prin eliminarea primei i ultimei cifre a lui x, n aceast ordine,

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
2
folosind apeluri utile ale subprogramelor S1 i S2. Numerele prime determinate se
vor afia pe ecran, pe o singur linie, separate cte un spatiu.
Exemplu. Dac fiierul date.inare 3456 12345 22347 12321
coninutul alturat, programul va afia
numerele urmtoare:
47 239 239 233

Subiectul nr. 4
Fiierul date.in conine un text format din cel mult 250 de caractere, scris pe o
singur linie. Cuvintele din text sunt separate prin cte un spaiu, iar fiecare cuvnt
este format din cel mult 20 caractere, doar literele mici ale alfabetului englez.
Se consider subprogramele:
S1 care primeste prin intermediul singurului su parametru s un cuvnt i
returneaz numrul de vocale (a,e,i,o,u) coninute de cuvntul s;
S2 care primeste prin intermediul singurului su parametru s un cuvnt din text
format din cel puin 2 litere i returneaz cuvntul obinut prin oglindirea
acestuia. De exemplu, pentru cuvntul abcd primit prin intermediul parametrului
s, subprogramul returneaz cuvntul: dcba.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care folosind apeluri utile ale
subprogramelor S1 i S2, citete textul din fiierul date.in i l modific oglindind
fiecare cuvnt din text care conine cel puin dou vocale. Programul scrie noul text
n fiierul date.out pe o singur linie.

Exemplu. Dac fiierul date.inare ani are un creion si un pix


coninutul alturat, programul va scrie n
fiierul date.outurmtoarele:

ina era un noierc si un pix

Subiectul nr. 5
Fiierul date.in conine o singur linie pe care este scris un text de cel mult 250
de caractere, format din cifre, spaii, litere mici sau mari ale alfabetului englez.
Se consider subprogramele:
S1 cu un singur parametru, care determin, n urma apelului, citirea textului din
fiierul date.in i returneaz prin intermediul parametrului s textul citit;
S2 cu doi parametri, care primete prin intermediul parametrilor:
- c un caracter;
- s un ir de caractere format din cel mult 250 de caractere.

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
3
Subprogramul returneaz valoarea 1 dac numrul de apariii ale
caracterului c n irul s este cel puin 2, altfel subrogramul va returna
valoarea -1.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care, folosind apeluri utile ale
subprogramelor S1 i S2, citete textul din fiierul date.in i afieaz pe ecran,
pe o singur linie, separate prin cte un spaiu, n ordine alfabetic, toate literele
mici distincte ale alfabetului englez care apar de mai multe ori n textul citit. Dac
textul nu conine nicio liter mic, atunci programul va afia mesajul NU.
Exemplu. Dac fiierul date.inare coninutul urmtor
Examen de ATESTARE la informatica

programul va afia pe ecran literele urmtoare:

a e i m n

Subiectul nr. 6
Fiierul date.in conine un text format din cel mult 250 de caractere, scris pe o
singur linie. Cuvintele din text sunt separate prin cte un spaiu, iar fiecare cuvnt
este format din cel mult 20 caractere, doar literele mici ale alfabetului englez.
Se consider subprogramele:
S1 care primete prin intermediul singurului su parametru s un cuvnt i
returneaz cuvntul obinut prin nlocuirea primei litere din cuvntul primit cu
litera mare corespunztoare;
S2 care primeste prin intermediul singurului su parametru s un cuvnt din text
i furnizeaz prin intermediul parametrului s cuvntul obinut prin oglindirea
acestuia. De exemplu, pentru cuvntul abcd primit prin intermediul parametrului
s, subprogramul returneaz cuvntul: dcba.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care folosind apeluri utile ale
subprogramelor S1 i S2, citete textul din fiierul date.in i l transform
nlocuind prima i ultima liter fiecrui cuvnt din text cu litera mare
corespunztoare, restul caracterelor rmnnd nemodificate. Programul scrie noul
text n fiierul date.out pe o singur linie.

Exemplu. Dac fiierul date.inare ani are un creion si o guma


coninutul alturat, programul va scrie n
fiierul date.outurmtoarele:

AnI ArE UN CreioN SI O GumA

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
4
Subiectul nr. 7
Se consider declarrile urmtoare utilizate pentru a defini o list simplu nlnuit
(tip stiv), alocat dinamic:

type lista=^nod; struct nod


nod=record { int nr;
nr:integer; urm:lista
nod* urm;};
end;

Cerine:
a) Scriei definiia complet a subprogramului S1 cu doi parametri care primete
prin intermediul parametrilor:
- p adresa primului nod din lista definit mai sus;
- k un numr natural cu cel mult nou cifre.
Subprogramul determin adugarea la nceputul listei, naintea nodului cu adresa
p (primul), a unui nou nod care s memoreze n cmpul nr numrul k.
Subprogramul returneaz prin intermediul parametrului p adresa primului nod din
lista modificat prin adugare.

b) Scriei definiia complet a subprogramului S2 care primete prin intermediul


singurului parametru p adresa unui nod al listei definite i care returneaz numrul
memorat n cmpul nr al acestui nod.

c) Scriei un program Pascal/C/C++, care citete de la tastatur un numr


natural n (n<100) i un ir s format din n numere naturale, fiecare numr din ir
avnd cel mult nou cifre, iar apoi, folosind apeluri utile ale subprogramului S1,
construiete o list simplu nlnuit alocat dinamic ale crei noduri s memoreze
n cmpul nr toate numerele din irul s care sunt divizibile cu primul numr din
irului s. Programul, folosind apeluri utile ale subprogramului S2, va scrie n fiierul
date.out toate numerele memorate n nodurile listei, pe o singur linie, separate
prin cte un spaiu, n ordinea invers apariiei lor n irul s. Dac irul s nu conine
niciun numr divizibil cu primul numr din irul s atunci programul va scrie n fiier
mesajul NU EXISTA.

Exemplu. Dac n=11 iar irul s este format din 10 0 490 20 885 5
numerele: 5 24 885 123 20 490 6 21 0 6 10
atunci fiierul date.out va avea coninutul
alturat.

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
5
Subiectul nr. 8
Se consider declarrile urmtoare utilizate pentru a defini o list simplu nlnuit
alocat dinamic:
type lista=^nod; struct nod
nod=record { int nr;
nr:integer; urm:lista
nod* urm;};
end;

Cerine:

a) Scriei definiia complet a subprogramului S1 cu doi parametri care primete


prin intermediul parametrilor:
- p adresa primului nod din lista definit;
- k un numr natural cu cel mult nou cifre.
Subprogramul adaug un nod cu informaia k la sfritul listei. Subprogramul
returneaz prin intermediul parametrului p adresa primului nod din lista modificat
dup adugare.

b) Scriei definiia complet a subprogramului S2 care primete prin intermediul


singurului parametru p adresa primului nod al listei definite i care returneaz
valoarea din cmpul nr al ultimului nod.

c) Scriei un program Pascal/C/C++, care citete de la tastatur un numr


natural n format din cel mult 9 cifre, toate nenule, i construiete o list liniar
simplu nlnuit cu toate numerele obinute din numrul n prin eliminarea
succesiv a primei cifre, apoi a primelor dou cifre, .a.m.d. pn se obine un
numr format dintr-o singur cifr folosind apeluri utile ale subprogramului S1.
Programul afieaz pe ecran valorile memorate de nodurile listei create i, folosind
apeluri utile ale subprogramului S2, va scrie n fiierul date.out valoarea
memorat de ultimul nod din list.

Exemplu. Dac n=23456 atunci pe ecran se va afia:


3456 456 56 6
n fiierul date.out se va scrie valoarea: 6

Subiectul nr. 9
Se consider un graf neorientat G cu n vrfuri (nN, 2<n<30), dat prin matricea
de adiacen A. Vrfurile grafului sunt etichetate cu numerele distincte:
1,2,...,n.
Fiierul date.in conine n+1 linii. Pe prima linie a fiierului este scris numrul
n de vrfuri ale grafului G, iar pe fiecare dintre urmtoarele n linii, sunt scrise cte
n valori aparinnd mulimii {0,1}, separate prin cte un spaiu, reprezentnd
valorile elementelor matricei de adiacen A a grafului G.
Se consider subprogramele:

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
6
S1 cu doi parametri n i x, care determin, n urma apelului, citirea numerelor
din fiierul date.in i returneaz prin intermediul parametrilor:
- n numrul de vrfuri ale grafului G;
- x un tablou bidimensional cu n linii i n coloane care memoreaz
valorile elementelor matricei de adiacen A a grafului G;
S2 cu trei parametri n, v i s, care primete prin intermediul parametrilor:
- n un numr natural nenul (2<n<30);
- v un tablou unidimensional cu n componente care memoreaz
numere ntregi.
Subprogramul calculeaz i furnizeaz, prin intermediul parametrului s, suma
tuturor valorilor componentelor tabloului unidimensional v.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care citete de la tastatur un numr
natural k (0k<30) i apoi, folosind apeluri utile ale subprogramelor S1 i S2,
determin i afieaz pe ecran toate etichetele vrfurilor grafului G ale cror grade
sunt strict mai mici dect k. Etichetele se vor afia pe o singur linie, separate prin
cte un spaiu, n ordinea descresctoare a valorilor lor. Dac graful nu are niciun
vrf cu gradul strict mai mic dect k, atunci programul va afia valoarea 0.
Exemplu. Dac k=2 iar fiierul date.in are 7
coninutul alturat, atunci programul va afia pe ecran 0 1 0 0 0 1 1
etichetele urmtoare: 1 0 0 0 0 1 1
0 0 0 1 0 0 0
5 4 3 0 0 1 0 0 0 0
0 0 0 0 0 0 0
1 1 0 0 0 0 1
1 1 0 0 0 1 0

Subiectul nr. 10
Se consider un arbore cu rdcin i n vrfuri (nN, 2<n<100), dat prin vectorul
de tai. Vrfurile arborelui sunt etichetate cu numerele distincte: 1,2,...,n.
Fiierul date.in conine dou linii. Pe prima linie a fiierului este scris un
numr natural nenul n reprezentnd numrul de vrfuri ale arborelui dat, iar pe a
doua linie sunt scrise n numere naturale, separate prin cte un spaiu,
reprezentnd valorile componentelor vectorului de tai.
Se consider subprogramele:
S1 cu doi parametri n i t, care determin, n urma apelului, citirea numerelor
din fiierul date.in i returnarea prin intermediul parametrului n a numrului
de vrfuri ale arborelui din enun, iar prin intermediul parametrului t returnarea
unui tablou unidimensional cu n componente numere naturale reprezentnd
vectorul de tai al arborelui din enun;

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
7
S2 cu trei parametri n, t i k, care primete prin intermediul parametrilor:
-n numrul de vrfuri ale arborelui din enun;
-t vectorul de tai al arborelui din enun;
-k un numr natural (1kn) reprezentnd eticheta unui vrf al arborelui din
enun.
Subprogramul returneaz numrul tuturor fiilor (descendenilor direci) ai
vrfului cu eticheta k.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++ care s citeasc datele din fiierul
date.in i de la tastatur un numr natural m (0<m<n); programul va afia pe o
linie a ecranului, separate prin cte un spaiu, etichetelor tuturor vrfurilor arborelui
care au exact m fii, folosind apeluri utile ale subprogramelor S1 i S2.
Exemplu. Dac fiierul date.in are coninutul 10
alturat iar m=2, programul va afia pe ecran 6 5 5 2 0 3 3 3 6 2
numerele urmtoare:
2 5 6

Subiectul nr. 11
Pe prima linie a fiierului Matrice.in este scris un numr natural n (2<n30) iar
pe fiecare din urmtoarele n linii ale fiierului, sunt scrise cte n numere naturale,
formate fiecare din cel mult dou cifre, separate prin cte un spaiu, reprezentnd
valorile elementelor unei matrice ptratice A cu n linii.
Se consider subprogramele:
S1 cu doi parametri n i a, care determin, n urma apelului, citirea numerelor
din fiierul Matrice.in i returnarea prin intermediul parametrului n a
numrului de linii ale matricei din fiier, iar prin intermediul parametrului a
returnarea unui tablou bidimensional ptratic cu n linii care memoreaz valorile
elementelor matricei A din fiierul de intrare;
S2 cu doi parametri v i k, care primete prin intermediul parametrilor:
- v un tablou unidimensional cu cel mult 30 de elemente (valorile memorate
de elementele tabloului fiind numere naturale, formate fiecare din cel mult
dou cifre);
- k un numr natural (2<k30) reprezentnd numrul efectiv de elemente
ale tabloului v.
Subprogramul returneaz suma tuturor valorilor elementelor tabloului v.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care citete de la tastatur un numr
natural m (2<m100), i care, folosind apeluri utile ale subprogramelor S1 i S2,

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
8
verific dac matricea A, scris n fiierul Matrice.in, poate fi matricea de
adiacen a unui graf orientat cu n vrfuri (etichetate cu 1,2,...,n) i m arce,
fr bucle, caz n care programul va afia pe ecran, pe o singur linie, separate
prin cte un spaiu, gradele interioare ale tuturor vrfurilor grafului, n ordinea
cresctoare a etichetelor lor. Dac matricea A nu poate fi matricea de adiacen a
unui graf orientat cu n vrfuri i m arce, atunci programul va afia pe ecran mesajul
IMPOSIBIL.
Exemplu. Dac m=4 iar fiierul Matrice.in are coninutul 3
alturat, atunci programul va afia pe ecran urmtoare valori: 0 1 0
1 0 1
2 1 1 1 0 0

Subiectul nr. 12
Fiierul date.in conine cel mult 1000 de numere naturale, fiecare numr fiind
format din cel mult patru cifre, numerele fiind scrise pe o singur linie, separate prin
cte un spaiu.
Cerine:
a) Scriei definiia complet a subprogramului S1 care primete, prin
intermediul parametrului x, un numr natural nenul, format din cel mult patru cifre,
i care returneaz numrul de divizori pozitivi ai lui x.
b) Scriei definiia complet a subprogramului S1 cu doi parametri, care
primete prin intermediul parametrilor:
- n un numr natural, 0<n1000;
- v un ir de n numere naturale, fiecare numr avnd cel mult patru
cifre.
Subprogramul determin ordonarea cresctoare a numerelor din ir i returneaz
prin intermediul parametrului v irul ordonat.
c) Scriei un program Pascal/C/C++, care citete din fiierul date.in toate
numerele i, folosind apeluri utile ale subprogramelor S1 i S2, scrie n fiierul
date.out, pe o singur linie, separate printr-un spaiu, dou numere naturale
reprezentnd cel mai mic numr, respectiv cel mai mare numr, cu exact patru
divizori pozitivi din fiierul date.in. Dac niciun numr din fiierul date.in nu
are exact patru divizori, atunci pe prima linie a fiierului date.out se va scrie
mesajul NU EXISTA.

Exemplu. Dac fiierul date.in are 123 10 35 899 1202 145 5000
coninutul alturat, atunci fiierul
date.out va avea urmtorul coninut:

10 1202

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
9
Subiectul nr. 13
Se consider declarrile urmtoare utilizate pentru a defini o list simplu nlnuit,
alocat dinamic:
type lista=^nod; struct nod
nod=record { int nr;
nr:integer; urm:lista;
nod* urm;};
end;

Cerine:
a) Scriei definiia complet a subprogramului S1 cu trei parametri care
primete prin intermediul parametrilor:
- p adresa primului nod al listei definite;
- q adresa ultimului nod al listei definite;
- k un numr natural cu cel mult patru cifre;
Subprogramul determin adugarea la sfritul listei, dup nodul cu adresa q
(ultimul), a unui nou nod care s memoreze numrul k n cmpul nr.
Subprogramul returneaz, prin intermediul parametrului q, adresa ultimului nod
din lista modificat prin adugare.
b) Scriei definiia complet a subprogramului S2 care primete, prin
intermediul singurului parametru x, un numr natural de cel mult patru cifre, i
care returneaz TRUE/1 dac valoarea parametrului x este numr perfect, altfel va
returna FALSE/0. (Un numr natural este perfect dac este egal cu suma
divizorilor si pozitivi, fr el nsui).
c) Fiierul Numere.in conine cel mult 1000 de numere naturale nenule,
numere de cel mult patru cifre, scrise toate pe aceeai linie, separate prin cte un
spaiu. Scriei un program Pascal/C/C++, care citete numerele din fiierul
Numere.in, iar apoi, folosind apeluri utile ale subprogramelor S1 i S2,
construiete lista simplu nlnuit alocat dinamic, definit mai sus, ale crei
noduri memoreaz n cmpul nr toate numerele naturale perfecte din fiierul
Numere.in. Valorile memorate de nodurile listei create se vor scrie n fiierul
Perfect.out pe o singur linie, separate prin cte un spaiu. Dac fiierul
Numere.in nu conine niciun numr perfect atunci programul va scrie n fiierul
Perfect.out mesajul NU EXISTA.
Exemplu. Dac fiierul Numere.in are coninutul alturat, 5 28 24 6 49
atunci fiierul Perfect.out va avea urmtorul coninut:
28 6

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
10
Subiectul nr. 14
Fiierul date.in conine pe prima linie un numr natural nenul n, 1n100, iar pe
cea de-a doua linie n numere naturale de cel mult 9 cifre fiecare, separate prin
cte un spaiu.
Se consider subprogramele:
S1, care primete prin intermediul parametrului x, un numr natural de cel mult
9 cifre i returneaz prima (cea mai semnificativ) cifr a sa;
S2, care primete prin intermediul parametrilor:
- a, un tablou unidimensional cu cel mult 100 de componente care
memoreaz fiecare cte un numr natural de cel mult 9 cifre;
- n, numrul efectiv de componente ale tabloului a, n<101.
Subprogramul S2 ordoneaz descresctor elementele vectorului a.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program principal Pasca/C/C++ care, folosind apeluri utile ale
subprogramelor S1 i S2, s citeasc datele din fiierul date.in i care s scrie n
fiierul date.out pe linii separate numerele aflate pe cea de-a doua linie a fiierului
date.in care au prima cifr egal cu ultima, n ordine descresctoare. n cazul n
care nu exist astfel de numere, programul va scrie n fiierul date.out mesajul nu
exista pe prima linie a acestuia.
Exemplu. Dac fiierul date.in are 6
coninutul alturat, programul va scrie n 18 5415 7 88 100 123456781
fiierul date.out urmtoarele:
123456781
5415
88
7

Subiectul nr. 15
Un numr natural nenul x se numete ptrat perfect dac exist un alt numr
natural nenul y, cu proprietatea c y*y = x.
Fiierul date.in conine pe prima linie un numr natural nenul n, 1n100, iar pe
cea de-a doua linie n numere naturale de cel mult 9 cifre fiecare, separate prin
cte un spaiu.
Se consider subprogramele:
S1, care primete prin intermediul parametrului x, un numr natural de cel mult
9 cifre i returneaz cel mai mare numr natural nenul al crui ptrat este mai
mic sau egal cu x
S2, care primete prin intermediul parametrilor:
a, un tablou unidimensional cu cel mult 100 de componente care
memoreaz fiecare cte un numr natural de cel mult 9 cifre;
n, numrul efectiv de componente ale tabloului a, n<101.

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
11
Subprogramul S2 afieaz pe ecran, pe linii separate, valorile memorate de
componentele vectorului a, n ordine invers fa de cea a poziiilor acestora
n tablou.

Cerine:
a) Scriei definiia complet a subprogramului S1.
b) Scriei definiia complet a subprogramului S2.
c) Scriei un program principal Pasca/C/C++ care, folosind apeluri utile ale
subprogramelor S1 i S2, s citeasc datele din fiierul date.in i care s scrie pe
ecran, pe linii separate, numerele aflate pe cea de-a doua linie a fiierului date.in
care sunt ptrate perfecte, n ordine invers fa de cea n care au fost citite. n
cazul n care nu exist astfel de numere, programul va scrie pe ecran mesajul nu
exista.
Exemplu. Dac fiierul date.in are coninutul 6
alturat, programul va scrie pe ecran urmtoarele: 289 541 27 4 121 16
16
121
4
289

Subiectul nr. 16
Fiierul date.in conine pe prima linie un numr natural nenul n, 1n100, iar pe
cea de-a doua linie n numere naturale de cel mult 9 cifre fiecare, separate prin
cte un spaiu.
Se consider subprogramele:
S1, care primete prin intermediul parametrului x, un numr natural de cel mult
9 cifre i returneaz numrul de divizori primi ai lui x.
S2, care primete prin intermediul parametrilor:
- a, un tablou unidimensional cu cel mult 100 de componente care
memoreaz fiecare cte un numr natural de cel mult 9 cifre;
- n, numrul efectiv de componente ale tabloului a, n<101.
Subprogramul S2 afieaz pe ecran, pe linii separate, valorile memorate de
componentele vectorului a.

Cerine:
a) Scriei definiia complet a subprogramului S1.
b) Scriei definiia complet a subprogramului S2.
c) Scriei un program principal Pasca/C/C++ care, folosind apeluri utile ale
subprogramelor S1 i S2, s citeasc datele din fiierul date.in i care s scrie pe
ecran, pe linii separate, numerele aflate pe cea de-a doua linie a fiierului date.in
care au numr maxim de divizori primi n ordinea n care au fost citite.

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
12
Exemplu. Dac fiierul date.in are coninutul 6
alturat, programul va scrie pe ecran 12 9 5 27 4 10
urmtoarele:
12
10

Subiectul nr. 17
Fiierul date.in conine pe prima linie dou numere naturale nenule m (1m100)
i n, (1n100), iar pe urmtoarele m linii cte n numere ntregi, cu cel mult patru
cifre fiecare, separate prin cte un spaiu, reprezentnd elementele unei matrice
cu m linii i n coloane.
Se consider subprogramele:
S1, cu parametrii:
- a, un tablou bidimensional cu cel mult 100 de linii i cel mult 100 de
coloane de tip integer/int;
- m, numrul efectiv de linii ale matricei a;
- n, numrul efectiv de coloane ale matricei a.
Subprogramul S1 citete din fiierul date.in i furnizeaz prin intermediul
parametrilor si numrul de linii i respectiv coloane, precum i elementele
unei matrice.
S2, care primete prin intermediul parametrilor:
- a, un tablou bidimensional cu cel mult 100 de linii i cel mult 100 de
coloane
- m, numrul efectiv de linii ale matricei a
- c, indicele unei coloane a matricei a.
Subprogramul S2 returneaz numrul de elementele pare ale coloanei c a
matricei a.

Cerine:
a) Scriei definiia complet a subprogramului S1.
b) Scriei definiia complet a subprogramului S2.
c) Scriei un program Pasca/C/C++ care, folosind apeluri utile ale
subprogramelor S1 i S2, s citeasc datele din fiierul date.in i care s scrie pe
ecran, cel mai mare indice al unei coloane cu numr minim de elemente pare.
Liniile i coloanele matricei vor fi numerotate ncepnd cu 1.

Exemplu. Dac fiierul date.in are coninutul alturat, 2 3


programul va scrie pe ecran: 12 9 8
27 4 100
2

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
13
Subiectul nr. 18
Fiierul date.in conine pe prima linie dou numere naturale nenule m (1m100)
i n, (1n100), iar pe urmtoarele m linii cte n numere ntregi, cu cel mult 4
cifre fiecare, separate prin cte un spaiu, reprezentnd elementele unei matrice
cu m linii i n coloane.
Se consider subprogramele:
S1, cu parametrii:
- a, un tablou bidimensional cu cel mult 100 de linii i cel mult 100 de
coloane, de tip integer/int;
- m, numrul efectiv de linii ale matricei a, 1m100;
- n, numrul efectiv de coloane ale matricei a, 1n100.
Subprogramul S1 citete numerele din fiierul date.in i furnizeaz prin
intermediul parametrilor si numrul de linii i respectiv coloane, precum i
elementele unei matrice.
S2, care primete prin intermediul parametrilor:
- a, un tablou bidimensional cu cel mult 100 de linii i cel mult 100 de
coloane de tip integer/int;
- m, numrul efectiv de linii ale matricei a, 1m100;
- c, indicele unei coloane a matricei a, 1c100.
Subprogramul S2 returneaz ultima cifr a produsului elementelor coloanei c
din matricea a.

Cerine:
a) Scriei definiia complet a subprogramului S1.
b) Scriei definiia complet a subprogramului S2.
c) Scriei un program principal Pasca/C/C++ care, folosind apeluri utile ale
subprogramelor S1 i S2, s citeasc datele din fiierul date.in i care s scrie pe
ecran, cel mai mic indice al unei coloane cu ultima cifr a produsului elementelor
maxim. Liniile i coloanele matricei vor fi numerotate ncepnd cu 1.
Exemplu. Dac fiierul date.in are coninutul alturat, 2 4
programul va scrie pe ecran: 12 95 8 158
27 4 101 3181
3

Subiectul nr. 19
Se consider un arbore cu rdcin i n vrfuri (nN, 2<n<100), dat prin vectorul
de tai. Vrfurile arborelui sunt etichetate cu numerele distincte: 1,2,...,n.
Fiierul date.in conine dou linii. Pe prima linie a fiierului este scris
numrul natural n, reprezentnd numrul de vrfuri ale arborelui dat, iar pe a doua
linie sunt scrise n numere naturale, separate prin cte un spaiu, reprezentnd
valorile componentelor vectorului de tai.
Se consider subprogramele:

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
14
S1 cu doi parametri n i t, care determin, n urma apelului, citirea numerelor
din fiierul date.in i returnarea prin intermediul parametrului n a numrului
de vrfuri ale arborelui din enun, iar prin intermediul parametrului t,
returnarea unui tablou unidimensional cu n componente numere naturale
reprezentnd vectorul de tai al arborelui din enun;
S2 cu trei parametri n, t i k, care primete prin intermediul parametrilor:
- n numrul de vrfuri ale arborelui din enun;
- t vectorul de tai al arborelui din enun;
- k un numr natural (1kn) reprezentnd eticheta unui vrf al arborelui din
enun.
Subprogramul returneaz TRUE/1 dac vrful cu eticheta k este frunz, sau
FALSE/0 altfel.

Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care determin i afieaz pe ecran
etichetele tuturor nodurilor arborelui din enunul problemei care sunt frunze,
folosind apeluri utile ale subprogramelor S1 i S2.
Exemplu. Dac fiierul date.inare coninutul alturat 8
atunci programul va afia pe ecran numerele urmtoare: 6 5 5 2 0 3 3 3
1 4 7 8

Subiectul nr. 20
Fiierul date.in conine dou linii. Pe prima linie a fiierului este scris un numr
natural n (1n10), iar pe a doua linie sunt scrise n numere naturale, formate
fiecare din cel mult 4 cifre, separate prin cte un spaiu.
Se consider subprogramele:
S1 care primete prin intermediul singurului su parametru x un numr natural
de maximum 4 cifre; subprogramul returneaz TRUE/1 dac cifrele numrului
primit prin parametrul x sunt n ordine strict cresctoare, altfel va returna
FALSE/0;
S2 care primete prin intermediul singurului su parametru x un numr natural
cu cel mult 4 cifre; subprogramul returneaz prima cifr a numrului primit prin
parametrul x. De exemplu, pentru x=1234, subprogramul va returna cifra 1.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ care s citeasc din fiierul
date.in de pe prima linie numrul n i apoi de pe a doua linie cele n numere
naturale formate fiecare din cel mult 4 cifre. Folosind apeluri utile ale

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
15
subprogramelor S1 i S2, programul va determina i va afia pe ecran, numrul de
valori din ir care au cifrele n ordine cresctoare iar prima cifr a lor este par .
Dac nu exist astfel de numere se va afia mesajul NU.

Exemplu. Dac fiierul date.in are 8


coninutul alturat, programul va afia pe 13 101 19 11 28 3 17 24
ecran:
2 (28 i 24)

Subiectul nr. 21
Se consider un graf neorientat G cu n vrfuri (nN, 2<n<30) etichetate cu
numerele distincte: 1,2,...,n.
Fiierul date.in conine dou linii. Pe prima linie a fiierului este scris
numrul n de vrfuri ale grafului G, iar pe urmtoarea linie, n numere naturale,
separate prin cte un spaiu, reprezentnd gradele nodurilor grafului G.
Se consider subprogramele:
S1 cu doi parametri n i d, care determin, n urma apelului, citirea numerelor
din fiierul date.in i returnarea prin intermediul parametrului n a numrului
de vrfuri ale grafului G, iar prin intermediul parametrului d returnarea
vectorului gradelor nodurilor grafului G, cu n elemente;
S2 cu doi parametri n i v, care primete prin intermediul parametrilor:
- n un numr natural nenul (2<n<30);
- v un tablou unidimensional cu n componente care memoreaz numere
naturale de cel mult 2 cifre.
Subprogramul returneaz TRUE/1, dac toate numerele memorate n vectorul v
sunt egale, sau FALSE/0 altfel.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care determin i afieaz pe ecran
mesajul COMPLET, dac graful G este graf complet i mesajul OARECARE n
orice alt situaie, folosind apeluri utile ale subprogramelor S1 i S2.
Exemplu. Dac fiierul date.in are coninutul alturat, 6
programul va afia pe ecran: OARECARE 5 5 5 4 5 4

Subiectul nr. 22
Fiierul date.in conine un text format din cel mult 255 de caractere, scris pe o
singur linie. Cuvintele din text sunt separate prin unul sau mai multe spaii, iar
fiecare cuvnt este format din cel puin 3 i cel mult 50 caractere, doar litere mici
ale alfabetului englez.
Se consider subprogramele:

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
16
S1 care primete prin intermediul singurului su parametru s, un ir de
caractere format din maximum 50 de caractere doar litere mici, i care
modific irul s prin eliminarea primului caracter din ir;
S2 care primete prin intermediul singurului su parametru s, un ir de
caractere format din maximum 50 de caractere i, care, modific irul prin
eliminarea ultimului caracter din acesta.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++, care citete textul fiierul date.in i
apoi, folosind apeluri utile ale subprogramelor S1 i S2, modific fiecare cuvnt
care ncepe i se termin cu o aceeai vocal prin eliminarea acestei vocale de la
nceputul i sfritul cuvntului. Cuvintele astfel modificate se vor scrie n fiierul
date.out cte unul pe linie, n ordinea apariiei lor n text. Dac textul nu conine
niciun cuvnt cu proprietatea cerut, atunci n fiier se va scrie pe prima linie
mesajul NU EXIST. Se consider vocale literele: a, e, i,o, u.
Exemplu. Dac fiierul date.inconine textul urmtor: n
level
ana atestat colac elevele fereastra
atunci fiierul date.outva avea coninutul alturat:

Subiectul nr. 23
Se consider declarrile urmtoare utilizate pentru a defini o list simplu nlnuit
alocat dinamic prin intermediul creia se reprezint un ir de numere complexe:
type lista=^nod; struct nod
nod=record { float re;
re,im:float; float im;
urm:lista nod* urm;};
end;

Cerine:
a) Scriei definiia complet a subprogramului S1 cu trei parametri care
primete prin intermediul parametrilor:
- p adresa primului nod din lista definit mai sus;
- r un numr real cel mult trei cifre;
- i un numr real.
Subprogramul determin adugarea la nceputul listei, naintea nodului cu adresa
p (primul), a unui nou nod care s memoreze partea real re i partea imaginar
im. Subprogramul returneaz prin intermediul parametrului p adresa primului nod
din lista modificat prin adugare.

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
17
b) Scriei definiia complet a subprogramului S2 care primete, prin
intermediul singurului parametru l, adresa unui nod din lista definit mai sus i
care returneaz modulul numrului complex reprezentat prin intermediul nodului l.
c) Scriei un program Pascal/C/C++, care citete din fiierul date.in, de
pe prima linie a acestuia, un numr natural n (n<10) i apoi, de pe urmtoarele n
linii, cte dou numere reale ce reprezint partea real i partea imaginar a unui
numr complex, separate prin cte un spaiu. Prin apeluri utile ale subprogramelor
S1 i S2, programul va construi o list simplu nlnuit alocat dinamic care va
reprezenta un ir de n numere complexe i va afia pe ecran modulul fiecrui
numr complex din aceast list pe aceeai linie, separate prin cte un spaiu.

Exemplu. Dac fiierul date.in are coninutul alturat, 6


programul va afia pe ecran: 1 5
1 4
180 84.006 69.029 29.1548 4.12311 5.09902 -29 3
-69 2
-84 1
180 0

Subiectul nr. 24
Fiierul numere.in conine pe prima linie un numr natural nenul n, n<100, iar
pe linia a doua, desprite prin cte un spatiu, n numere naturale avnd cel mult 9
cifre fiecare.
Se consider subprogramele:
S1, care prin intermediul parametrului p primete un numr natural cu cel mult
9 cifre i returneaz rsturnatul (oglinditul) acestui numr.
Exemplu: pentru p=617032 subprogramul va returna valoarea 230716.
S2, cu doi parametri, prin intermediul crora primete:
- un vector v, cu cel mult 100 de componente numere naturale avnd cel
mult 9 cifre fiecare;
- un numr natural nenul n reprezentnd numrul efectiv de componente
ale vectorului v, n<101.
Subprogramul determin afiarea pe ecran, n linie, a valorilor memorate n
vector, separate prin cte un spaiu.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) Scriei un program Pascal/C/C++ care folosind apeluri utile ale
subprogramelor S1 i S2, citete din fiierul numere.in cele n numere de pe linia
a doua i afieaz pe ecran, n linie, n ordinea invers citirii, rsturnatele
numerelor din fiier, separate prin cte un spaiu.

Exemplu. Dac fiierul numere.in are coninutul 5


alturat atunci pe ecran se va afia: 21 326 43 59 7315
5137 95 34 623 12

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
18
Subiectul nr. 25
Se consider subprogramele:
S1, care prin intermediul parametrului s primete un ir cu cel mult 30 de
caractere i transform toate vocalele litere mici n majuscule.
Exemplu: pentru irul s cu coninutul atestat, apelul subprogramului va
determin transformarea coninutului irului n AtEstAt.
S2 care prin intermediul parametrului s primete un ir cu cel mult 30 de
caractere i returneaz numrul de vocale (a,e,i,o,u,A,E,I,O,U) din ir.
Exemplu: pentru irul s cu coninutul AtEstAt, subprogramul returneaz
valoarea 3 (numrul de vocale din s).
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ prin care se citete de la tastatur
un text, format din cel mult 255 de caractere, n care cuvintele sunt separate prin
cte un spaiu. Folosind apeluri utile ale subprogramelor S1 i S2, programul va
determina transformarea tuturor vocalelor litere mici din textul citit n majuscule i
apoi afiarea pe ecran a numrului de cuvinte din text care au mai mult de dou
vocale.
Exemplu. Dac textul citit de la tastatur este:
Ana are mere gutui pere si caise
atunci programul va afia pe ecran:
AnA ArE mErE gUtUI pErE sI cAIsE
numar de cuvinte cu minimum 2 vocale: 6

Colectivul de autori:
prof. Carmen-Nicoleta Minc - Colegiul Naional de Informatic
Tudor Vianu
prof. Doina - Luminia Dru - Liceul Teoretic Dante Alighieri
prof. Simona - Mihaela Popa - Colegiul Naional Gh. Lazr
prof. Gilda - Graiela Gebil - Colegiul Naional Mihai Viteazul
prof. Victor - Claudiu Manz - Colegiul Naional de Informatic
Tudor Vianu
prof. Dan Rdulescu - Colegiul Naional Octav Onicescu

Coordonator:
prof.tefania Penea inspector colar de specialitate Informatic i
Tehnologia Informatiei i a Comunicaiilor, Inspectoratul colar al
Municipiului Bucureti

INSPECTORATUL COLAR AL MUNICIPIULUI BUCURETI


Inspector colar de specialitate - prof. tefania Penea
Subiecte atestat 2012 Programare; specializarea matematic-informatic, intensiv informatic
19

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