Documente Academic
Documente Profesional
Documente Cultură
Programare
Atestat 2022
Subiecte propuse pentru proba practică - Programare.
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 1
Fișierul numere.in conține pe prima linie un număr natural, n (1<n<100) și pe a doua linie n
numere naturale, cu cel mult 4 cifre fiecare.
a. Să se scrie definiția completă a unui subprogram Concatenare, cu doi parametrii, numere
naturale, a și b (de maxim 4 cifre fiecare) care returnează numărul obținut prin concatenarea
lui a cu b. (ex: dacă subprogramul primește a=154, b=45, va returna 15445.)
b. Scrieți un program care citește datele din fișierul numere.in și afișează în fișierul
numere.out, n-1 numere naturale, folosind apeluri utile ale subprogramului
Concatenare. Pentru fiecare pereche de numere citite consecutiv, se va afișa cel mai mare
număr obținut prin concatenerea celor două.
De exemplu, dacă numerele citite consecutiv sunt 123 și 95, se va alege cel mai mare dintre
cele două numere obținute prin concatenare: dintre 12395 și 95123, se va alege 95123.
Proiectați un algoritm eficient din punctul de vedere al memoriei folosite și al timpului de
executare.
Exemplu:
numere.in numere.out
5 312 3128 36128 7836
12 3 128 36 78
Barem de corectare
subprogramul Concatenare 2p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 4p
algoritm eficient 1p
afişare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 2
Barem de corectare
subprogramul FactorPutereMax 3p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 4p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 3
Barem de corectare
subprogramul CifraMax 1p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 5p
algoritm eficient 1p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 4
Barem de corectare
subprogramul Inversez 2p
subprogramul Stergp 2p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 2p
algoritm eficient 1p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 5
Barem de corectare
subprogramul CifrePare 2p
subprogramul CifreCresc 2p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 3p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 6
a. Să se scrie definiția completă a unui subprogram Cmmdc cu doi parametrii, numere naturale a și
b, care returnează cel mai mare divizor comun al numerelor a și b (Pentru 20 și 8,
returnrază 4)
b. Să se scrie definiția completă a unui subprogram Cmmmc cu doi parametrii, numere naturale a și
b, care returnează cel mai mic multiplu comun al numerelor a și b (Pentru 20 și 8,
returnează 40)
c. Fișierul atestat.in conține maximum 1000000 de numere naturale. Scrieți un program C++
care citește numerele din atestat.in și, folosind apeluri utile al subprogramelor Cmmdc si
Cmmmc, scrie pe prima linie a fișierului atestat.out cel mai mare divizor comun al numerelor
citite din fișier, iar pe a doua, cel mai mic multiplu comun al numerelor citite din fișier.
atestat.in atestat.out
16 32 8 4 18 2
288
Barem de corectare
subprogramul Cmmdc 1.5p
subprogramul Cmmmc 1.5p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 4p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 7
Barem de corectare
subprogramul Inversez 2p
subprogramul SumaCifre 1p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 4p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 8
Barem de corectare
subprogramul Eprim 2p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 5p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 9
date.in date.out
1546 65423 6526 623 1546 65423 623 3
2311 3263 6526 2311 3263 3
Barem de corectare
subprogramul CifreDistincte 3p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 4p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 10
Barem de corectare
subprogramul PozitiiPare 3p
subprogramul Sortpq 2p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 2p
afișare corectă a datelor, corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 11
Se consideră două şiruri de caractere a, de lungime na şi b, de lungime nb. Şirul a este numit
sufix al şirului b dacă na≤nb şi este un subşir al lui b determinat de ultimele sale na caractere.
Scrieți un program C/C++ care pentru un cuvânt S citit, afișează toate sufixele lui în ordine
descrescătoare a lungimii, precum și numărul de sufixe corespunzătoare cuvântului dat.
Exemplu:
intrare sufixe.out
elevi elevi levi evi vi i
5
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor 1p
-determinarea numărului de sufixe 1p
-determinarea sufixelor 4p
-afişare corectă a datelor în fişier 1p
-corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 12
Se consideră două şiruri de caractere a, de lungime na şi b, de lungime nb. Şirul a este numit
centru al şirului b dacă na≤nb şi este un subşir al lui b determinat prin eliminarea primelor, respectiv
ultimelor x litere ale șirului b(1≤x≤nb).
Pentru un cuvânt dat se cere să se afișeze toate subșirurile centru care se pot obține, precum și
numărul acestora.
Date de intrare: Programul citeşte din fișierul cuvinte.in un şir de caractere s cu cel mult 20
de caractere şi minim un caracter, format doar din litere mici ale alfabetului englez.
Date de ieșire: Programul va scrie în fișierul cuvinte.out, pe prima linie numărul de subșiruri
centru corespunzătoare șirului s citit, iar pe a doua linie toate aceste subșiruri, în ordinea
descrescătoare a lungimii, separate prin câte un spaţiu, ca în exemplu.
Exemplu:
cuvinte.in cuvinte.out
informatica 6
informatica nformatic formati ormat rma m
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-determinarea numărului de subșiruri centru 1p
-determinarea subșirurilor centru 4p
-afişare corectă a datelor în fişier 1p
-corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 13
Un număr natural x se numește număr vocal asociat unui șir de caractere a, dacă este format
din cifrele corespunzătoare numerelor de ordine ale vocalelor din șirul a. Numerele de ordine ale
caracterelor din șirul a se consideră numerotate de la stânga la dreapta, începând cu valoarea 1. Dacă
numărul de ordine al unei vocale este mai mare decât 9, cifra se obține scăzând din valoarea acestuia,
valoarea 10.
Scrieţi un program C/C++ care pentru un cuvânt dat, determină și afișează numărul vocal
asociat.
Date de intrare: Programul va citi din fișierul cuvant.in un şir de caractere a cu cel mult 30
caractere şi minim un caracter, format doar din litere mici ale alfabetului englez.
Date de ieșire: Programul va scrie în fișierul numar.out, numărul vocal asociat şirului
memorat în variabila a, ca în exemplu. Dacă șirul a are mai mult de 17 caractere, sau este format doar
din consoane, se va afișa mesajul Imposibil.
Exemplu:
cuvant.in numar.out
Exp.1 matematica 24680
Exp.2 electroencefalografie Imposibil
Exp.3 ksprc Imposibil
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea unei vocale 1p
-determinarea numărului cerut 3p
-identificarea cazului particular 1p
-afişare corectă a datelor în fişier 1p
-corectitudinea sintactică a programului 1p
Biletul nr. 14
Un număr natural x se numește număr cons asociat unui șir de caractere a, dacă este format din
cifrele corespunzătoare numerelor de ordine ale consoanelor din șirul a. Numerele de ordine ale
caracterelor din șirul a se consideră numerotate de la stânga la dreapta, începând cu valoarea 1. Dacă
numărul de ordine al unei consoane este mai mare decât 9, cifra se obține scăzând din valoarea acestuia,
valoarea 10.
Scrieţi un program C/C++ care, pentru un cuvânt dat, determină și afișează numărul cons
asociat.
Date de intrare: Programul va citi din fișierul cuvant.in un şir a cu cel mult 30 caractere şi
minim un caracter, format doar din litere mici ale alfabetului englez.
Date de ieșire: Programul va scrie în fișierul numar.out, numărul cons asociat şirului
memorat în variabila a, ca în exemplu. Dacă șirul a are mai mult de 17 caractere, sau este format doar
din vocale, se va afișa mesajul Imposibil.
Exemplu:
cuvant.in numar.out
Exp.1 matematica 13579
Exp.2 electroencefalografie Imposibil
Exp.3 oaia Imposibil
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea unei consoane 1p
-determinarea numărului cerut 3p
-identificarea cazului particular 1p
-afişare corectă a datelor în fişier 1p
-corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 15
Se consideră un text cu cel mult 255 de caractere (litere mici ale alfabetului englez și spații), în
care cuvintele sunt separate printr-un singur spațiu. Înaintea primului cuvânt și după ultimul cuvânt nu
există spații.
Scrieți un program C/C++ care citește un număr natural x și un text de tipul menționat mai sus
și afișează numărul de cuvinte din textul dat în care litera o apare cel puțin o dată și de cel mult x ori, iar
apoi, cuvintele ce îndeplinesc această condiție.
Date de intrare: Programul va citi din fișierul atestat.in, de pe prima linie, un număr
natural x (x≤10), apoi de pe linia următoare un text t cu cel mult 255 de caractere şi minim un
caracter, scris pe o singură linie, format doar din litere mici ale alfabetului englez și spații.
Date de ieșire: Programul va scrie în fișierul atestat.out, pe prima linie, numărul de cuvinte
determinat corespunzător cerinței, iar pe următoarele linii, cuvintele care îndeplinesc condițiile cerute.
Exemplu:
atestat.in atestat.out
2 3
antropomorfoza este totalitatea modificarilor morfologice la om totalitatea
modificarilor
om
2 0
abilitate reprezinta indemanare iscusinta pricepere dibacie
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea literei o în textul t 1p
-determinarea cuvintelor cerute 3p
-determinarea numărului de cuvinte 1p
-afişare corectă a datelor în fişier 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 16
Se consideră un text cu cel mult 100 de caractere (litere mici ale alfabetului englez și spații), în
care cuvintele sunt separate printr-un singur spațiu. Înaintea primului cuvânt și după ultimul cuvânt nu
există spații.
Scrieți un program C/C++ care citește un text t de tipul menționat mai sus și o literă mică c.
Programul determină dublarea fiecărei litere c în șirul t și afișează pe ecran numărul de modificari
realizate și textul modificat în memorie.
Date de intrare: Programul va citi din fișierul atestat.in, de pe prima linie, un text t cu cel
mult 100 de caractere şi minim un caracter, scris pe o singură linie, format doar din litere mici ale
alfabetului englez și spații. De pe linia următoare se va citi un singur caracter c.
Exemplu:
atestat.in atestat.out
abilitate indemanare iscusinta pricepere 6
i abiiliitate iindemanare
iiscusiinta priicepere
abilitate indemanare iscusinta pricepere 0
v abilitate indemanare iscusinta
pricepere
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea literei c în textul t 1p
-dublarea fiecărei litere c și transformarea în memorie a șirului t 3p
-determinarea numărului de modificări realizate în textul t 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 17
Se consideră un text cu cel mult 255 de caractere (litere mici ale alfabetului englez și spații), în
care cuvintele sunt separate printr-un singur spațiu. Înaintea primului cuvânt și după ultimul cuvânt nu
există spații. Fiecare cuvânt are cel puțin o consoană.
Scrieți un program C/C++ care citește un număr natural x, un text de tipul menționat mai sus
și apoi modifică textul astfel: se vor șterge primele x vocale din fiecare cuvânt al textului. Dacă într-un
cuvânt nu există cel puțin x vocale atunci cuvântul din text va rămâne nemodificat.
Date de intrare: Programul va citi din fișierul atestat.in, de pe prima linie, un număr
natural x (x≤10), apoi de pe linia următoare un text t cu cel mult 255 de caractere şi minim un
caracter, scris pe o singură linie, format doar din litere mici ale alfabetului englez și spații.
Date de ieșire: Programul va scrie în fișierul atestat.out textul modificat conform cerinței.
Exemplu:
atestat.in atestat.out
2 mne v sstne xmenul la nfrmatica
maine voi sustine examenul la informatica
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea unei vocale 1p
-identificarea unui cuvânt cu cel puțin x vocale 1p
-ștergerea primelor x vocale dintr-un cuvânt și modificarea textului 3p
-afişare corectă a datelor în fişier 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 18
Se consideră un text cu cel mult 255 de caractere (litere mici ale alfabetului englez și spații), în
care cuvintele sunt separate printr-un singur spațiu. Înaintea primului cuvânt și după ultimul cuvânt nu
există spații. Fiecare cuvânt are cel puțin o vocală.
Scrieți un program C/C++ care citește un număr natural x, un text de tipul menționat mai sus
și apoi modifică textul astfel: se vor șterge ultimele x consoane din fiecare cuvânt al textului. Dacă într-
un cuvânt nu există cel puțin x consoane atunci cuvântul din text va rămâne nemodificat.
Date de intrare: Programul va citi din fișierul atestat.in, de pe prima linie, un număr
natural x (x≤10), apoi de pe linia următoare un text t cu cel mult 255 de caractere şi minim un
caracter, scris pe o singură linie, format doar din litere mici ale alfabetului englez și spații.
Date de ieșire: Programul va scrie în fișierul atestat.out textul modificat conform cerinței.
Exemplu:
atestat.in atestat.out
2 aie voi susie exameu la informaia
maine voi sustine examenul la informatica
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea unei consoane 1p
-identificarea unui cuvânt cu cel puțin x vocale 1p
-ștergerea ultimelor x consoane dintr-un cuvânt și modificarea textului 3p
-afişare corectă a datelor în fişier 1p
-corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 19
Se consideră un text cu cel mult 50 de caractere (litere mici ale alfabetului englez și spații), în
care cuvintele sunt separate prin câte un singur spațiu. Înaintea primului cuvânt și după ultimul cuvânt
nu există spații. Textul are cel puțin o vocală.
Scrieți un program C/C++ care citește un text t de tipul menționat mai sus. Programul determină
modificarea în memorie a textului prin inserarea după fiecare vocală a unui grup de două litere format
din cele două litere ce succed (urmează) vocala în alfabetul englez.
Date de intrare: Programul va citi din fișierul atestat.in, de pe prima linie un text t cu cel
mult 50 de caractere şi minim un caracter, scris pe o singură linie, format doar din litere mici ale
alfabetului englez și spații.
Date de ieșire: Programul va scrie în fișierul atestat.out textul modificat conform cerinței.
Exemplu:
atestat.in atestat.out
voi sustine examenul vopqijk suvwstijknefg efgxabcmefgnuvwl
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea unei vocale 1p
-inserarea grupului de litere și transformarea în memorie a șirului t 4p
-afişare corectă a datelor în fişier 1p
-corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 20
Se consideră un text codificat cu cel mult 255 de caractere (litere mici ale alfabetului englez și
spații), în care cuvintele sunt separate prin câte un singur spațiu. Înaintea primului cuvânt și după ultimul
cuvânt nu există spații. Codificarea acestui text s-a realizat prin inserarea după fiecare vocală a unui
grup de două litere format din cele două litere ce succed (urmează) vocala în alfabetul englez.
Scrieți un program C/C++ care citește un text de tipul menționat mai sus. Programul decodifică
textul prin ștergerea grupului de două litere inserate inițial după fiecare vocală și afișează pe ecran
textul astfel modificat.
Date de intrare: Programul va citi din fișierul atestat.in, de pe prima linie un text t cu cel
mult 255 de caractere şi minim un caracter, scris pe o singură linie, format doar din litere mici ale
alfabetului englez și spații.
Date de ieșire: Programul va scrie în fișierul atestat.out textul modificat conform cerinței.
Exemplu:
atestat.in atestat.out
vopqijk suvwstijknefg efgxabcmefgnuvwl voi sustine examenul
Barem de corectare
-declaraţii corecte 1p
-citirea corectă a datelor din fișier 1p
-identificarea unei vocale 1p
-stergerea grupului de litere și transformarea în memorie a șirului t 4p
-afişare corectă a datelor în fişier 1p
-corectitudinea sintactică a programului 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 21
Barem de corectare
declarare corectă a datelor 1p
utilizarea fișierelor text 1p
citirea datelor de intrare si afișarea datelor de ieșire 1p
parcurgerea corecta a tabloului in vederea verificării liniilor 2p
identificarea existentei elementelor comune între o linie i și linia k 3p
identificarea corecta a tuturor indicilor ceruți 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 22
.
a. Scrieți definiția completă a subprogramului interschimbL cu patru parametri:
a, reprezentând un tablou bidimensional cu cel mult 200 de linii și 200 de coloane;
m, reprezentând numărul de coloane;
k1 și k2, două numere naturale, reprezentând numărul de ordine a două linii din tablou.
Subprogramul interschimbă elementele de pe linia k1 cu elementele de pe linia k2.
b. În fișierul atestat.in, pe prima linie se află două numere n și m (2 ≤ n, m ≤ 200)
reprezentând numărul de linii, respectiv de coloane ale unui tablou bidimensional, iar pe
următoarele n linii se află câte m numere naturale de maxim 9 cifre, ce reprezintă elementele
tablouluiScrieți un program care citește din fișierul atestat.in numerele n și m, apoi tabloul
bidimensional cu n*m elemente și, folosind apeluri utile ale subprogramului interschimbL,
schimbă între ele elementele liniei pe care apare prima dată valoarea minimă din tablou cu
elementele liniei pe care apare prima data valoarea maximă. Tabloul modificat se va scrie în
fișierul atestat.out, fiecare linie a tabloului se va scrie pe o linie din fișier, iar elementele de
pe aceeași linie vor fi separate printr-un spațiu. Dacă cele două valori apar pentru prima data pe
aceeași linie, tabloul nu va fi modificat.
Exemplu:
atestat.in atestat.out
5 5 1 2 3 8 6
1 2 3 8 6 7 1 9 7 1
0 3 7 3 1 3 6 5 2 3
3 6 5 2 3 0 3 7 3 1
7 1 9 7 1 8 0 6 4 9
8 0 6 4 9
Barem de corectare
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 23
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Barem de corectare
definiția corectă a subprogramul nrpare_p 2p
definiția corectă a subprogramul nrpare_s 2p
declarații corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 3p
afișare corectă 1p
Biletul nr. 24
b. Scrieți un program care citește din fișierul matrice.in un număr natural n și o matrice cu n
linii ți n coloane și afișează în fișierul matrice.out indicii liniilor din matrice pentru care suma
elementelor are valoare maximă. Se va folosi subprogramul definit la punctul a. Liniile și
coloanele tabloului au indicii de la 1 la n.
Exemplu:
matrice.in matrice.out
4 1 2 4
1 2 3 4
6 1 1 2
2 2 4 1
4 3 1 2
Barem de corectare
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul 25
a. Scrieți definiția completă pentru subprogramul numarare cu trei parametri: x, matrice pătratică
cu elemente întregi;n, număr natural ce reprezintă numărul efectiv de linii și coloane ale matricei x,
2≤n≤10; p, număr natural, 1≤p≤n. Subprogramul va returna numărul elementelor nenule aflate
pe coloana p a matricei. Scrieți definiția completă pentru subprogramul toateNule cu trei
parametri:x, matrice pătratică cu elemente întregi;n, număr natural ce reprezintă numărul efectiv de
linii și coloane ale matricei x, 2≤n≤10; p, număr natural, 1≤p≤n.Subprogramul va returna
true (sau 1) dacă toate elementele liniei p din matricea x au valoare 0, altfel va returna false
(sau 0) .
b. Scrieți un program care citește din fișierul atestat.in un număr natural n (2≤n≤100) și
elementele unui tablou bidimensional cu cifre binare dispuse pe n linii și n coloane. Utilizând
apeluri utile ale subprogramelor de la punctul a, programul modifică tabloul în memorie astfel:
fiecare linie formată doar din valori 0 va fi înlocuită cu valorile reprezentând numărul de 1 de pe
coloana corespunzătoare din tabloul inițial. Tabloul modificat va fi afișat pe ecran.
Exemplu:
atestat.in ecran
5 1 0 0 1 1
1 0 0 1 1 1 1 1 0 1
1 1 1 0 1 3 2 1 2 3
0 0 0 0 0 1 1 0 1 1
1 1 0 1 1 3 2 1 2 3
0 0 0 0 0
Barem de corectare
subprogramul numarare 2p
subprogramul toateNule 2p
declaraţii corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 3p
afşare corectă a datelor 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 26
Într-un tablou bidimensional, cu elemente având valori numai din mulțimea {0,1}, numim coloane
”complementare” două coloane cu proprietatea că oricare două elemente ale acestora, aflate pe aceeași
linie, sunt diferite.
a. Scrieți definiția completă a subprogramului complementare cu următorii parametri: a,
reprezentând un tablou bidimensional cu cel mult 200 de linii și 200 de coloane; n, reprezentând
numărul de linii ale tabloului a, k1 și k2, două numere naturale, reprezentând numărul de ordine a
două coloane din tablou. Subprogramul returnează true (sau valoarea 1) dacă coloanele k1 și k2
sunt complementare, în caz contrar returnează false (sau valoarea 0).
b. Scrieți un program care citește din fișierul atestat.in două numere naturale din intervalul
[2,200], n și m și elementele unui tablou bidimensional cu n linii și m coloane, numere din
mulțimea {0,1}. Programul afișează pe ecran, utilizând apeluri utile ale subprogramului
complementare, numărul de coloane ale tabloului care sunt complementare cu prima coloană a
acestuia.
Exemplu:
atestat.in ecran
3 6
2
1 1 0 0 1 0
0 1 1 1 1 1
1 0 0 0 0 1
Barem de corectare
subprogramul complementare 3p
declaraţii corecte, citirea corectă a datelor din fișier 2p
algoritm de rezolvare corect 3p
afşare corectă a datelor 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 27
Barem de corectare
definiția corectă a subprogramul interschimbC 3p
declarații corecte, citirea corectă a datelor 1p
algoritm de rezolvare corect 3p
afișare corectă a datelor 1p
utilizarea fișierelor text 1p
Notă: Se acordă 1 punct din oficiu.
.
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 28
a. Scrieți definiția completă a subprogramului maxim_d, cu doi parametri, prin care primește: n,
un număr natural din intervalul [2, 100]; a, un tablou bidimensional cu n linii și n coloane cu
elemente numere naturale din intervalul [0, 106] și returnează valoarea maximă dintre
elementele pare situate pe diagonala principală sau pe diagonala secundară a tabloului a, respectiv
valoarea -1 dacă cele două diagonale nu conțin nici o valoare pară.
Barem de corectare
definiția corectă a subprogramul maxim_d 3p
declarații corecte, citirea corectă a datelor din fișier 2p
identificarea elementelor care trebuie înlocuite 2p
utilizarea corectă a subprogramului 1p
afișare corectă 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 29
La un magazin au fost aduse mai multe sortimente de produse, pentru fiecare cunoscându-se
cantitatea (exprimată în bucăţi), preţul de achiziţie şi adaosul comercial (exprimat în procent din
valoarea de achiziţie). În decursul uneisăptămâni s-a contorizat, cantitatea vândută din fiecare produs.
Realizați un program care citește din fișierul vanzari.in numărul natural n (reprezentând
numărul de produse vândute, numerotate de la 1 la n), apoi de pe următoarele n linii cate trei numere
reale reprezentând cantitatea, prețul și adaosul comercial pentru fiecare din cele n produse vândute.
Programul afișează pe ecran valoarea totală a vânzărilor obținute pe întreaga săptămână precum și
numărul de ordine (din fișier) al celui mai vândut produs (produsul care a fost vândut în cantitatea cea
mai mare). Dacă există mai multe produse vândute în aceeași cantitate maximă se va lua în considerare
cel cu adaosul comercial mai mare.
Exemplu:
vanzari.in ecran indicație
6 157.88 Prețul de vânzare se
4 2.5 10.0 4 calculează din prețul de
5 10 2.0 achiziție adunat cu adaosul
4 5 5.0 comercial.
5 6 3.0 pv = pa + pa*adaos_com/100
4 3 4.0
3 10 5.0
Barem de corectare
definiția corectă a tipului de date produs 2p
declarații corecte, citirea corectă a datelor din fișier 2p
calculul corect a valorii totale 2p
identificarea produsului vândut în cantitate maximă 2p
afișare corectă 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud
Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022
Programare
Biletul nr. 30
Pentru elevii clasei a XII-a, profesorul diriginte are nevoie de următoarele informații, pentru a
calcula nota la purtare a unui elev: numele, prenumele, numărul total de absențe și numărul de absențe
motivate. Pentru fiecare 10 absențe nemotivate, elevul pierde un punct la nota de la purtare. Dacă
numărul absențelor nemotivate este mai mare de 50, elevul primește media 4.
Realizați un program care citește din fișierul elevi.in de pe prima linie, numărul natural n
(reprezentând numărul elevilor din clasă), apoi de pe următoarele n linii ale fișierului datele fiecărui
elev: numele (șir de caractere fără spații), prenumele (șir de caractere fără spații), număr_total de
absențe (nr. natural) și numărul de absențe motivate (nr. natural). Programul calculează notele
la purtare ale elevilor și afișează în fișierul elevi.out, o listă a elevilor (numele, prenumele, nota
la purtare) ordonată descrescător după nota de la purtare.
Precizări: toate numerele din fișierul de intrare sunt mai mici decât 200,
iar lungimea șirurilor de caractere nu depășește valoarea 50.
Exemplu:
elevi.in elevi.out
5 Avram Teodor 10
Avram Teodor 20 15 Marcu Alin 10
Barbu Anda 45 20 Valea Sebastian 10
Flore Marius 30 15 Flore Marius 9
Marcu Alin 10 10 Barbu Anda 8
Valea Sebastian 25 16
Barem de corectare
definiția corectă a tipului de date elev 2p
declarații corecte, citirea corectă a datelor din fișier 2p
calculul corect a valorilor cerute 2p
ordonarea descrescătoare 2p
afișare corectă 1p
Subiectele au fost propuse și aprobate de către Consiliul Consultativ al profesorilor de informatică din
județul Bistrița-Năsăud