![]() XHost |
Servere virtuale de la 20 eur / luna. Servere dedicate de la 100 eur / luna - servicii de administrare si monitorizare incluse. Colocare servere si echipamente de la 75 eur / luna. Pentru detalii accesati site-ul BluePink. |
INSPECTORATUL ŞCOLAR AL
MUNICIPIULUI BUCUREŞTI,
Str.
Icoanei Nr.19, sector 2, telefon: 2118841, 2118485; fax: 2107531
SUBIECTELE PROBEI PRACTICE PENTRU
EXAMENUL DE ATESTAT PROFESIONAL LA
INFORMATICĂ, 2006
PROGRAMARE
CLASELE DE MATEMATICA-INFORMATICĂ INTENSIV INFORMATICĂ
Subiectul nr.1
Se citeşte de la tastatură
un număr natural n (1 Ł n Ł 1000). Se cere:
a.
Să se creeze o listă simplu
înlănţuită care să conţină primele n numere
prime; elementele listei astfel obţinute se vor afişa pe ecran.
b.
Să se elimine din listă numerele din intervalul
format de numerele naturale a, b citite de la tastatură; elementele listei
obţinute după eliminare se vor scrie pe prima linie a fişierului
date.out.
Exemplu:
a) Pentru n=7, se va afişa pe ecran
lista:
2 3 5
7 11 13 17
b) Pentru a=15, b=4 introduse de la tastatură, fişierul date.out va conţine:
2 3 17
Subiectul nr.2
Se dă un tablou unidimensional
cu n (1 Ł n Ł 100) componente numere
naturale.
a.
Să se afişeze cifrele numărului celui mai
mare care se poate obţine din cifrele elementului minim şi ale celui
maxim din vector.
b.
Să se afişeze câte numere din tablou sunt
pătrate perfecte.
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găseşte n
-
pe linia a doua se găsesc elementele tabloului.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe prima linie, numărul obţinut la punctul a
-
pe linia a doua, un mesaj în care să fie inclus
numărul cerut la punctul b.
Exemplu:
Fişierul de intrare date.in:
6
271 109 28
713 14 36
Se afişează:
74311
Tabloul are 1
patrat perfect
Subiectul nr. 3
Fie citeşte de la
tastatură un număr n (0<n<100) şi apoi un şir de n numere întregi.
a.
Să se construiască o listă simplu
înlănţuită care să conţină doar numerele naturale
ale şirului, în ordinea în care au fost introduse.
b.
Să se insereze în faţa fiecărui număr de
tip palindrom succesorul său. Un număr este palindrom dacă citit
de la stânga la dreapta este egal cu numărul citit de la dreapta la stânga.
Datele de ieşire se vor scrie
în fişierul date.out, astfel:
-
pe prima linie, elementele listei obţinute la punctul
a)
-
pe linia a doua, elementele listei obţinute după
inserare.
Exemplu:
Pentru n=7 şi elementele 343 -73 12 34
767 454 -101 introduse de la tastatură, fişierul date.out
va conţine:
343 12 34 767
454
344 343 12
34 768 767 455 454
Subiectul nr. 4
Se consideră un şir de n numere întregi distincte (1 Ł n Ł 20) şi două numere intregi
a şi b.
a.
Să se afişeze pe ecran toate elementele
şirului care nu sunt în intervalul închis ce se poate forma cu numerele a şi b;
b.
Să se ordoneze crescător numai elementele situate
între elementul minim şi elementul maxim din şirul dat şi
să se afişeze pe ecran şirul obţinut după ordonare.
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găseşte n
-
pe linia a doua se găsesc cele n elemente ale şirului
-
pe linia a treia se găsesc valorile lui a, respctiv b.
Exemplu:
Pentru fişierul date.in:
6
3 1 8
7 2 4 -1
5 3
Se vor afişa pe ecran şirurile
1 8 7
2 -1
3 1 8
2 4 7 -1
Subiectul nr. 5
Fie un şir de n (0<n<1000) numere întregi. Se cere:
a.
Să se verifice dacă numerele din şirul dat
pot forma o mulţime;
b.
Să se scrie în ordine crescătoare factorii
primi.din descompunerea elementului maxim din şirul dat
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găseşte n
-
pe linia a doua se găsesc elementele şirului
Datele de ieşire se vor scrie
pe ecran astfel:
-
pe primul rând un mesaj
-
pe rândul următor factorii primi separaţi prin
spaţii
Exemplu:
Fisierul de intrare date.in:
5
80 64 50
96 45
Se afişează pe ecran:
Elementele din fişier pot forma o multime
2 3
Subiectul nr. 6
Se citeşte de la tastatură
un număr natural n (0<n<1000). Se cere:
a.
Să se verifice daca n este număr perfect. Un
număr este perfect dacă este egal cu suma tuturor divizorilor lui,
afară de numărul însuşi.
b.
Să se creeze o listă simplu
înlănţuită care să conţină n numere naturale mai mici decât 1000, numere generate aleatoriu.
Datele de ieşire se vor scrie
în fişierul date.out astfel:
-
pe prima linie, un mesaj: n este/nu este numar perfect
-
pe linia a doua elementele listei.
Exemplu:
Pentru n=6
Fişierul date.out poate să
conţină:
6
este numar perfect
3 86 6
12 3 9
Subiectul nr. 7
Se dă un tablou bidimensional
cu n linii şi m coloane ce conţine numere naturale nenule distincte.
a.
Să se determine, dacă există, un număr
superprim în matrice şi să se afişeze linia pe care se
găseşte acesta. Un număr este superprim dacă atât el, cât
şi răsturnatul lui sunt numere prime. Dacă există mai multe
astfel de numere, se va afişa unul singur, oricare dintre ele.
b.
Să se determine şi să se afişeze toate
elementele vecine elementului maxim din matrice.
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găsesc n şi m
-
pe următoarele n linii se găsesc câte m numere ce reprezintă elementele matricei.
Datele de ieşire se vor scrie
pe ecran astfel:
-
pe prima linie, numărul superprim şi indicele de
linie sau un mesaj corespunzător, în cazul în care nu există nici un
număr superprim
-
pe linia a doua elementele cerute la punctul b separate
printr-un spaţiu.
Exemplu:
Fişierul date.in:
4 3
33 65 105
44 32 22
62 76 41
31 1 12
Se afişează pe
ecran:
31 4
65 32 22
Subiectul nr. 8
Pe prima linie a fişierului date.in se găsesc numere naturale nenule. Se cere:
a.
pentru fiecare număr impar din fişier să se
afişeze cel mai mare număr care se poate forma din cifrele lui.
b.
să se verifice dacă numerele din fişierul de intrare
reprezintă o progresie aritmetică; în caz afirmativ să se
afişeze primul element şi raţia, altfel să se afişeze
un mesaj corespunzător.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe prima linie, elementele determinate la punctul a
-
pe a doua linie, raspunsul cerintei b.
Exemplu:
Fişierul date.in:
31 38
45 52 59
66
Se afişează pe ecran:
31 38
54 52 95
66
primul
termen este: 31 si raţia: 7
Subiectul nr. 9
Fie un tablou bidimensional
(matrice) cu n linii şi n coloane. Se cere:
a. să se afişeze transpusa matricei;
b. să se afişeze câte perechi de numere
prime între ele sunt pe diagonala secundară a matricei iniţiale.
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găseşte n
-
pe următoarele n linii se găsesc câte n numere ce reprezintă elementele matricei.
Exemplu:
Fişierul de intrare:
4
1
2 3 4
5
6 7 8
9
10 11 12
13 14
15 16
Se afişează:
a)
1 5
9 13
2
6 10 14
3
7 11 15
4 8 12 16
b) 5
Subiectul nr. 10
Fie un tablou bidimensional cu n linii şi m coloane. Se cere:
a.
să se elimine elementele de pe coloana x, cu x citit de la tastatură;
b.
să se determine elementul maxim din matricea modificată şi
să se afişeze câte cifre distincte are acesta.
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găsesc n şi m separate printr-un spaţiu;
-
pe următoarele n linii se găsesc câte m numere ce reprezintă elementele matricei.
Datele de ieşire se vor scrie pe
ecran astfel:
-
pe n linii, matricea
transformată
-
pe linia următoare, elementul maxim şi
numărul de cifre distincte ale lui.
Exemplu:
Fişierul date.in:
3 5
1 2
32 4 5
61 14 282
9 10
11 12 13
14 15
Dacă se citeşte de la
tastatură x=2, atunci pe ecran se afişează
Se afişează pe ecran:
a) 1 32
4 5
61 282 9 10
11 13 14 15
b) 282 2
Subiectul nr. 11
În fişierul date.in se găsesc, pe o singură linie, prenumele
unor elevi separate prin câte un spaţiu.
a.
Să se ordoneze alfabetic (fără să se
facă distincţie între litere mari şi mici) şi să se
afişeze şirul de nume astfel obţinut.
b.
Să se afişeze numarul de fete din fişier,
ştiind că numai prenumele fetelor se termină cu litera „a”.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe prima linie, prenumele ordonate
-
pe a doua linie, numărul de fete.
Exemplu:
Fişierul date.in:
IOANA
Marius Ciprian maria Silvia Gabriel Vlad
Se afişează pe ecran:
Ciprian
Gabriel IOANA maria Marius Silvia Vlad
3
Subiectul nr. 12
În fişierul date.in se găsesc, pe o singură linie, numere
strict pozitive separate prin câte un spaţiu.
a.
Să se afişeze elementele autopomorfice ale
şirului. Numim număr autopomorfic o valoare care este sufix al
pătratului său.
b.
Să se ordoneze crescător elementele
fişierului, în funcţie de numărul de cifre pare ale
fiecărui număr.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe o linie, numerele determinate la punctul a, separate prin
câte un spaţiu
-
pe linia următoare, numerele ordonate, separate prin
câte un spaţiu.
Exemplu:
Fişierul date.in:
16 6
832 25 11
514
Se afişează pe ecran:
6 25
11 16
6 25 514
832
Subiectul nr. 13
În fişierul date.in se găsesc, pe o linie, numere naturale de cel
mult 9 cifre, separate prin câte un spaţiu. Se cere:
a.
să se determine numerele care reprezintă un
factorial, adică sunt de forma k!; pentru fiecare astfel de număr se
va afişa valoarea lui k
b.
să se scrie, în ordine descrescătoare după
prima cifră, toate numerele din fişier.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe prima linie, numerele k determinate, separate prin
spaţii;
-
pe a doua linie numerele sortate descrescător după
prima cifră, separate prin spaţii.
Exemplu:
Fişierul date.in:
233 24
210 6 17
720
Se afişează:
4 3
6
720 6 233
24 210 17
Subiectul nr. 14
În fişierul date.in se găsesc, pe o linie, numere naturale de cel
mult 9 cifre, separate prin câte un spaţiu. Se cere:
a.
să se determine şi să se afişeze
numerele care reprezintă termeni ai şirului Fibonacci
b.
să se afişeze, în ordine crescătoare
după ultima cifră, toate numerele din fişier.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe prima linie, numerele Fibonacci determinate, separate
prin spaţii;
-
pe a doua linie numerele sortate crescător după
ultima cifră, separate prin spaţii.
Exemplu:
Fişierul date.in:
233 24
210 8 17
55
Se afişează:
233 8
55
210 233
24 55 17
8
Subiectul nr. 15
În fişierul date.in se găsesc pe o singură linie numere
întregi nenule separate prin spaţii.
a. să se afişeze media
aritmetică a valorilor din fişier;
b. să se creeze o listă
circulară care va conţine toate elementele, în ordinea în care apar
în fişier; se vor afişa elementele listei, pornind de la cea mai
mică valoare.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe prima linie, media aritmetica, cu doua zecimale
-
pe linia a doua, elementele listei, separate prin
spaţii
Exemplu:
Fişierul date.in:
-6 18 26
-56 71 -24
13 -27 14
15
Pe ecran se vor afişa valorile:
a) 4.40
b) -56 71 -24
13 -27 14
15 -6 18 26
Subiectul nr. 16
Se dă un tablou bidimensional
cu n linii şi m coloane şi componente numere reale.
a. Să se afişeze pe ecran elementele de
pe marginile tabloului, plecând de la poziţia [1,1].
b.
Să se verifice dacă matricea conţine cel puţin un punct de
tip şa. Un punct este de tip şa dacă îndeplineşte
următoarele doua condiţii: - este cea mai mare valoare de pe linia sa
- este cea mai mică valoare de pe
coloana sa.
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găsesc n şi m
-
pe următoarele n linii câte m numere ce vor reprezenta elementele matricei.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe prima linie, elementele listei separate prin spaţii
-
pe linia a doua, mesajul „Nu exista punct şa” sau
„Punct şa” (linie, coloana).
Exemplu:
Fişierul date.in:
3 4
0.1 1.2 2.7 3.5
7.2 9.0
6.1 8.0
23.5 0.75
18.6 9.9
Pe ecran se vor afişa rezultatele:
0.1 1.2 2.7 3.5
8.0 9.9 18.6
0.75 23.5 7.2
Punct sa (1,4)
Subiectul nr. 17
În fişierul date.in se găsesc, pe aceeaşi linie, numere
întregi separate prin spaţii.
a.
Să se afişeze elementele din fişier situate
pe poziţii pare (al doilea, al patrulea etc.).
b.
Să se construiască o listă simplu
înlănţuită care să conţină toate elementele
şirului, în ordine inversă celei în care apar în fişier.
Datele de ieşire se vor scrie
pe ecran, astfel:
-
pe o linie, elementele, din fişier, situate pe
poziţiile pare
-
pe linia a doua, elementele listei.
Exemplu:
Fişierul
date.in:
18 20
17 34 15
29 16 14
15 34
Se
afişează pe ecran:
20 34
29 14 34
34 15
14 16 29
15 34 17
20 18
Subiectul nr. 18
Se citesc de la tastatură numere naturale
până la introducerea numărului 0.
a.
Să se memoreze într-un vector, toate numerele citite care
au minim 3 cifre, în ordine inversă
citirii;
b.
Să se elimine din fiecare număr cifra sau cifrele
din mijloc după cum numărul are un număr impar sau par de cifre.
Datele de ieşire se vor scrie
în fişierul date.out, astfel:
-
pe prima linie, elementele vectorului construit la
cerinţa a
-
pe linia a doua, elementele vectorului obţinut prin
modificările realizate la cerinţa b.
î
Exemplu:
Pentru 1572 2351
1 519 73402
36 0 introduse de la tastatură
Fişierul de ieşire date.out va conţine:
73402
519 2351 1572
7302
59 21 12
Subiectul nr. 19
În fişierul date.in se găsesc cuvinte separate prin câte un
spaţiu, cuvinte care sunt scrise cu litere mari şi mici. Se cere:
a.
Să se afişeze cuvintele din fişier, în ordinea
crescătoare a lungimii fiecărui cuvânt.
b.
Să se memoreze fiecare cuvânt din fişier
transformat în litere mari precum şi numărul de vocale ce apar în
cuvântul respectiv; se vor lua în calcul doar vocalele a e i o şi u;
Datele de ieşire se vor scrie
pe ecran astfel:
-
pe un rând cuvintele în ordinea cerută la punctul a,
separate prin spaţii
-
pe rândul al doilea cuvintele şi numărul de vocale
în formatul (cuvânt, nr_de_vocale);
Exemplu:
Pentru fişierul date.in:
InformatICa
eLEV sCOalA CARTE
se vor afişa pe ecran liniile:
eLEV
CARTE sCOalA InformatICa
(INFORMATICA,5)
(ELEV,2) (SCOALA,3) (CARTE,2)
Subiectul nr. 20
Se consideră n intervale date. Se cere:
a. Să se determine
intersecţia lor;
b. Să se afle câte
intervale disjuncte se obţin prin reuniunea lor.
Datele de intrare se vor citi din
fişierul date.in astfel:
-
pe prima linie se găseşte n
-
pe următoarele n linii, câte 2 numere
naturale ce vor reprezenta limita inferioară şi respectiv cea
superioară a fiecărui interval.
Datele de ieşire se vor scrie
pe ecran astfel:
-
pe prima linie două numere separate prin spaţiu ce
vor reprezenta intersecţia intervalelor sau un mesaj, în cazul în care se
obţine mulţimea vidă.
-
pe linia a doua, numărul de intervale disjuncte
obţinute prin reuniune
Exemplu:
Fişierul date.in:
5
2 5
3 7
10 13
4 9
12 18
Se afişează pe ecran:
Intervalele nu se intersectează
2
Explicaţie: Cele două
intervale formate prin reuniune sunt (2,9) şi (10,18)
Subiectul nr. 21
În fişierul date.in se găsesc, pe o singură linie, numere
naturale nenule separate prin spaţii.
a.
Să se memoreze într-un vector numerele din fişier
şi, pentru fiecare, numărul de cifre impare ce apar în scrierea sa;
b.
Să se afişeze cel mai mare dintre numerele care au
un număr minim de cifre impare.
Datele de ieşire se vor scrie
pe ecran astfel:
-
pe un rând componentele vectorului în formatul (nr, nr_de_cifre_impare);
-
pe rândul al doilea numărul determinat conform cerinţei de la punctul b.
Exemplu:
Fişierul date.in:
72946
14 339 180
1027
Se afişează pe
ecran:
(72946,2)
(14,1) (339,1) (180,1)
(1027,2)
339
Subiectul nr. 22
Un graf neorientat cu n noduri şi m muchii este descris în
fişierul graf.in cu următoarea
structură :
- pe prima linie valorile
pentru n şi m separate printr-un
spaţiu ;
- pe
următoarele m linii, perechi de numere i j reprezentând noduri ce formează o muchie.
Să se realizeze un program care
să răspundă următoarelor cerinţe:
a.
Să se afişeze matricea de adiacenţă
asociată grafului descris în fişierul graf.in.
b.
Să se afişeze nodurile grafului în ordinea
descrescătoare a gradelor.
Subiectul nr. 23
Un graf neorientat cu n noduri este descris în fişierul
graf.in cu următoarea structură:
- pe
prima linie, valoarea lui n;
- pe
următoarele n linii, câte n valori 0 şi 1 reprezentând matricea de
adiacenţă a grafului.
Să se realizeze un program care
să raspundă următoarelor cerinte :
a.
Să se afişeze numărul de muchii ale grafului
descris în fişierul graf.in şi apoi perechile de numere reprezentând muchiile
acestuia, în ordine lexicografică.
b. Să se afişeze nodurile grafului prin
oricare dintre metodele de parcurgere cunoscute.
Subiectul nr. 24
Un graf neorientat cu n noduri este descris în fişierul
graf.in cu următoarea structură:
-
pe prima linie valoarea lui n;
- pe următoarele linii, până
la sfârşit de fişier, perechi de numere i j reprezentând noduri ce
formează o muchie.
Să se realizeze un program care
să răspundă următoarelor cerinţe:
a. Să se afişeze, de la 1 la n, gradele nodurilor grafului
descris în fişierul graf.in.
b. Să se determine dacă două
noduri x şi y fac parte din aceeaşi
componentă conexă. Valorile corespunzatoare celor două noduri x şi y se citesc de la
tastatură. Se afişează un mesaj corespunzător: nodurile x şi y aparţin/nu aparţin
aceleaşi componente conexe.
Subiectul nr. 25
Un graf orientat cu n noduri şi m arce este descris în fişierul graf.in cu următoarea structură:
-
pe prima linie, valorile pentru n şi m separate printr-un spaţiu;
- pe următoarele m linii, perechi de valori i j reprezentând noduri ce
formează un arc.
Să se realizeze un program care
să raspundă următoarelor cerinţe:
a. Să se afişeze pe ecran perechile de
noduri i j din graful descris în
fişierul graf.in cu proprietatea că există arc atât de la i la j, cât şi de la j la i.
b. Să se afiseze matricea varfuri-arce.
OBSERVAŢIE:
Cele două cerinţe ale
fiecărui subiect vor fi tratate independent (în secţiuni separate ale
programului), candidaţii fiind obligaţi să structureze
prelucrările astfel încât să-şi definească şi să
utilizeze cel puţin un subprogram în rezolvarea cerinţelor.
Colectivul
de autori:
-
Prof. Mioara Gheorghe –
Colegiul Naţional „Mihai Viteazul”, sector 2
-
Prof. Gilda
Gebăilă – Colegiul Naţional „Mihai Viteazul”, sector 2
-
Prof. Doina Druţă
– Grup Şcolar „Nichita Stănescu”, sector 3
-
Prof. Simona Popa – Colegiul
Naţional „Gheorghe Lazăr”, sector 5
-
Prof. Rodica Pintea – Liceul
Teoretic „Grigore Moisil”, sector 6
Coordonator:
Prof. Brânduşa Bogdan –
Inspector de specialitate informatică, Inspectoratul Şcolar al
Municipiului Bucureşti