Sunteți pe pagina 1din 33

Subiecte propuse pentru obținerea atestatului profesional în informatică - 2022

Programare

Atestat 2022
Subiecte propuse pentru proba practică - Programare.

B) programare: presupune rezolvarea de către candidat a unei probleme de programare folosind


unul dintre limbajele cunoscute (C/C++ sau Pascal). Candidatul va trebui să prezinte un fișier
executabil care rezolvă problema primită.

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

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. 2

Fișierul date.in conține maximum 1000 de numere naturale.


a. Să se scrie definiția completă a unui subprogram FactorPutereMax cu un singur
parametru n, număr natural. Subprogramul returnează factorul prim cu puterea cea mai
mare din descompunerea în factori primi a lui n. În cazul în care există factori primi cu
puteri egale, atunci se va returna factorul cel mai mare. De exemplu, pentru n = 90 = 2 1 * 32
* 51, cea mai mare putere este 2, deci se va returna factorul 3. Pentru n = 36 = 2 2 * 32,
puterile fiind egale, se va returna factorul 3.
b. Scrieți un program C++ care citește cel mult 1000 de numerele naturale din fișierul
date.in și, folosind apeluri utile ale subprogramului FactorPutereMax, scrie în fișierul
date.out: pe prima linie, pentru fiecare număr citit, factorul prim la puterea cea mai mare,
apoi pe linia următoare cel mai mare dintre acești factori.
Exemplu:
date.in date.out
90 24 15 7 36 3 2 5 7 3
7

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

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. 3

Fișierul atestat.in conține maximum 100000 de numere naturale.


a. Să se scrie definiția completă a unui subprogram CifraMax, cu un singur parametru n, număr
natural. Subprogramul returnează cea mai mare cifră a numărului n. De exemplu, pentru n =
65706, se va returna 7.
b. Scrieți un program C++ care citește numerele din atestat.in și, folosind apeluri utile ale
subprogramului CifraMax, scrie în fișierul atestat.out cifra care este maximă pentru cele
mai multe numere din fișier. Dacă există mai multe astfel de cifre, se vor afișa toate cu această
proprietate, în ordine crescătoare. Proiectați un algoritm eficient din punctul de vedere al
memoriei folosite și al timpului de executare.
Exemplu:

atestat.in atestat.out Explicație


458 188 956 659 88 8 8 este cifra maximă pentru 3 din
numere, 9 este cifra maximă pentru
doua numere
125 54 125 65 126 5 6 5 este cifra maximă pentru 3 din
62 numere, 6 este cifra maximă tot
pentru 3 numere

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

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. 4

a. Să se scrie definiția completă a unui subprogram Inversez cu trei paramentrii: v – tablou


unidimensional cu maximum 100 de elemente, numere reale, si doi parametrii întregi: p, q -
două poziții din tabloul v, p < q < 100 . Subprogramul modifică tabloul prin inversarea
elementelor între poziția p și poziția q și returnează prin același parametru tabloul modificat.
(Dacă v ={1.2, 2, 3.1 ,4.25, 5, 6.3), p = 2, q = 5, după inversare tabloul va
avea conținutul: v ={1.2, 5, 4.25 ,3.1, 2, 6.3).
b. Să se scrie definiția completă a unui subprogram Stergp cu trei paramentrii: v – tablou
unidimensional cu maximum 100 de elemente, numere reale, si doi parametrii întregi: n, p –
numărul de elemente din vector și p < 100 . Subprogramul modifică tabloul prin ștergerea
elementului de pe poziția p și returnează prin același parametru tabloul modificat.
c. Scrieți un program C++ care citește din fișierul numere.in de pe prima linie număr natural, n
(n < 100) și de pe a doua linie un șir cu maxim 100 de numere reale. Folosind apeluri utile
ale subprogramului Stergp, șterge elementul din mijlocul șirului, în cazul în care acesta are un
număr impar de elemente. Folosind apeluri utile ale subprogramului Inversez, se vor inversa
fiecare din cele două jumătăți ale șirului, apoi afișează, în fișierul numere.out, conținutul
șirului modificat.
Exemplu:
numere.in numere.out
7 4.3 8.2 4.1 7.9 3.1 2.1
4.1 8.2 4.3 8.1 2.1 3.1 7.9

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

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. 5

a. Să se scrie definiția completă a unui subprogram CifrePare cu un paramentru n, număr


natural, care returnează numărul format doar din cifrele pare ale lui n, având cifrele în ordinea
inițială. (Ex: pentru n = 12245, se returnează 224)
b. Să se scrie definiția completă a unui subprogram CifreCresc cu un paramentru n, număr
natural, care returnează 1 dacă cifrele lui n sunt în ordine crescătoare și 0 altfel. (Ex: pentru n =
12245, se returnează 1, iar pentru 12436, returnează 0)
c. Fișierul date.in conține maximum 1000000 de numere naturale, fiecare din ele conținând cel
puțin o cifră pară. Scrieți un program C++ care citește numerele din date.in și, folosind apeluri
utile ale celor două subprograme, scrie în fișierul date.out suma formată prin adunarea
numerelor obținute din cifrele pare ale numerelor citite, dacă numerele astfel obtinute au cifrele
în ordine crescătoare.

date.in date.out Explicație


1546 65423 26 623 100 46+26+28=100
2318

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

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. 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

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. 7

a. Să se scrie definiția completă a unui subprogram InserezP cu patru paramentrii: n – numărul


de elemente al vectorului v, v – vector cu maximum 100 de elemente, numere întregi, p,
p <=100 reprezentând o poziție în vector și val – o valoare întreagă. Subprogramul modifică
vectorul prin inserarea, pe poziția p a unui element de valoare val și returnează prin parametrul
v vectorul modificat. (Ex: pentru n=4, v={2, 5, 6, 9}, p = 2, val = 100 , vectorul
modificat este: {2, 100, 5, 6, 9}, considerând că indexarea s-a făcut de la 1)
b. Să se scrie definiția completă a unui subprogram SumaCifre, cu un singur parametru x, număr
natural. Subprogramul returnează suma cifrelor lui x. De exemplu, pentru n = 27, se va returna 9.
c. Fișierul numere.in conține pe prima linie n, număr natural, n<100, și pe a doua linie maximum
100 de numere naturale. Scrieți un program C++ care citește datele din numere.in și, folosind
apeluri utile ale subprogramelor InserezP și SumaCifre, inserează în vector, după fiecare
element, suma cifrelor sale, apoi afișează în numere.out vectorul modificat.
numere.in numere.out
5 48 12 13 4 6 6 91 10 30
48 13 6 91 30 3

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

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. 8

a. Să se scrie definiția completă a unui subprogram EPrim, cu un singur parametru x, număr


natural, care returnează 1 dacă numărul este prim și 0 în caz contrar. De exemplu, pentru n =
27, se va returna 0, iar pentru 13 se returnează 1.
b. Fișierul numere.in conține cel mult 100000 de numere naturale, fiecare având cel mult doua
cifre. Scrieți un program C++ care citește datele din numere.in și, utilizând apeluri ale
subprogramului EPrim, determina numărul prim din fișier care apare de cele mai multe ori in
fișier. Programul afișează în fișierul numere.out, numărul prim determinat și numărul său de
apariții, sau mesajul „Nu exista”, daca în fișier nu se găsește niciun număr prim.
numere.in numere.out
48 11 5 13 6 11 11 30 11 3
44 98 22 14 852 Nu exista

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

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. 9

a. Să se scrie definiția completă a unui subprogram CifreDistincte cu un paramentru n,


număr natural, care returnează 1 dacă numărul n are toate cifrele distincte, și 0 în caz contrar.
(Ex: pentru n = 12245, se returnează 0, iar pentru n = 2659 se returnează 1.)
b. Fișierul date.in conține maximum 1000 de numere naturale. Scrieți un program C++ care
citește toate numerele din date.in și, folosind apeluri utile ale subprogramului
CifreDistincte, scrie în fișierul date.out pe prima linie, toate numerele citite care au cifre
distincte, urmate de numărul lor (câte au fost găsite), iar pe a doua linie a fișierului numerele
citite care nu au cifre distincte, urmate de numărul lor. Dacă una din cele două categorii de
numere nu există, se va afișa un mesajul “Nu exista” pe linia corespunzătoare.

date.in date.out
1546 65423 6526 623 1546 65423 623 3
2311 3263 6526 2311 3263 3

12345 6598 458 12345 6598 458 3


Nu există
25454 6988 7877 Nu există
25454 6988 7877 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

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. 10

a. Să se scrie definiția completă a unui subprogram PozitiiPare, cu 4 parametrii: n – numărul


de elemente ale unui tablou unidimensional, v – tablou unidimensional cu elemente numere
întregi, prim, ultim – doi parametri de ieșire prin care subprogramul furnizează pozițiile
primului respectiv al ultimului element par din tabloul v. (Ex v={1, 3, 4, 3, 8, 10, 6,
5, 3}, se va calcula prim = 3, ultim = 7)
b. Scrieți un subprogram Sortpq care, primind ca parametrii: n, numărul de elemente ale unui
vector, v - vectorul si doua poziții întregi, p si q, sortează crescător elementele vectorul între
pozițiile p si q. ( p < q < n)
c. Fișierul numere.in conține pe prima linie n, număr natural, n<100, și pe a doua linie maximum
100 de numere întregi, dintre care cel puțin două sunt pare. Scrieți un program C++ care citește
din fișierul numere.in un număr natural n (n < 100), apoi un șir cu n numere întregi având cel
mult 9 cifre fiecare, și utilizând apeluri ale celor doua subprograme, sortează crescător
elementele cuprinse între primul și ultimul număr par. Programul afișează în numere.out
vectorul modificat.
numere.in numere.out
7 47 6 10 13 52 91
47 52 13 6 91 10 301 301

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

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. 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.

Date de intrare: Se citeşte de la tastatură un şir S cu cel mult 20 de caractere şi minimum un


caracter, format doar din litere mici ale alfabetului englez.

Date de ieșire: Programul va afișa în fișierul sufixe.out, pe prima linie, în ordine


descrescătoare a lungimii, separate prin câte un spaţiu, toate sufixele şirului memorat în variabila S, iar
pe a doua linie numărul de sufixe afișate, ca în exemplu.

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

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. 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

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. 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

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. 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

Notă: Se acordă 1 punct din oficiu.

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

 -corectitudinea sintactică a programului 1p

Notă: Se acordă 1 punct din oficiu.

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.

Date de ieșire: Programul va scrie în fișierul atestat.out, pe prima linie, numărul de


modificări realizate conform cerinței, iar pe următoarea linie, textul modificat în memorie. Dacă litera
corespunzătoare caracterului c, nu se gasește în text, acesta va fi afișat nemodificat.

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

 -afişare corectă a datelor în fişier 1p


 -corectitudinea sintactică a programului 1p

Notă: Se acordă 1 punct din oficiu.

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

 -corectitudinea sintactică a programului 1p

Notă: Se acordă 1 punct din oficiu.

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

Notă: Se acordă 1 punct din oficiu.

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

Notă: Se acordă 1 punct din oficiu.

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

Notă: Se acordă 1 punct din oficiu.

Biletul nr. 21

În fișierul atestat.in, pe prima linie se află un număr n (2 ≤ n ≤ 20), reprezentând


numărul de linii și de coloane ale unui tablou bidimensional si un număr natural k (1 ≤ k ≤ n), iar
pe următoarele n linii se află câte n numere naturale de maxim 6 cifre, ce reprezintă elementele
tabloului.
Scrieți un program care citește din fișierul atestat.in numerele n si k, tabloul bidimensional
cu n*n elemente și afișează în fișierul atestat.out indicii liniilor (diferite de k) care au cel puțin un
element comun cu linia k a tabloului. Liniile și coloanele tabloului au indicii de la 1 la n. Valorile se
vor afișa pe prima linie a fișierului de ieșire, separate prin exact un spațiu.
Exemplu:
atestat.in atestat.out
5 3 1 2 5
1 2 3 8 6
0 3 7 3 1
3 6 5 2 3
7 1 9 7 1
8 0 6 4 9

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

Notă: Se acordă 1 punct din oficiu.


.

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

 definiția corectă a subprogramul interschimbL 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.

Biletul nr. 23

a. Scrieți definițiile complete ale următoarelor două subprograme:


 Subprogramul nrpare_p are 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 de numere naturale din
intervalul [0, 10 3]; Subprogramul returnează numărul elementelor pare situate pe
diagonala principală a tabloului a sau valoarea -1 dacă diagonala nu conține valori pare.
 Subprogramul nrpare_s are 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 de numere naturale din
intervalul [0, 103 ]; Subprogramul returnează numărul elementelor pare situate pe diagonala
secundară a tabloului a sau -1 dacă diagonala nu conține valori pare.
b. Fișierul matrice.in conține pe prima linie un număr natural n (2 ≤ n ≤ 100), iar pe
următoarele n linii câte n numere naturale din intervalul [0,103], separate prin câte un spațiu.
Scrieți un program care să citească din fișier n apoi cele n*n elemente ale unui tablou
bidimensional și să afișeze pe ecran numărul valorilor impare situate pe cele două diagonale ale
tabloului. Pentru afișarea valorii cerute se folosesc apeluri utile ale subprogramelor nrpare_p și
nrpare_s. Dacă nu există nicio valoare impară pe diagonale atunci pe ecran se afișează mesajul
nu exista.
Exemplu:
matrice.in ecran
7 8

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

Notă: Se acordă 1 punct din oficiu.

Biletul nr. 24

a. Scrieți definiția completă pentru subprogramul suma 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 suma elementelor aflate pe linia p a matricei.

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

 declarări corecte de date – 1 punct


 citirea corectă a datelor din fișier – 1 punct
 subprogramul suma – 3 puncte
 cele n apeluri ale subprogramului – 1 punct
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

 determinarea valorii maxime – 2 punct


 scrierea rezultatelor cerute în fișier – 1 punct

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 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

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

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

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. 27

a. Scrieți definiția completă a subprogramului interschimbC, cu patru parametri:


- a, reprezentând un tablou bidimensional cu cel mult 200 de linii și 200 de coloane;
- n, reprezentând numărul de linii;
- k1 și k2, două numere naturale, reprezentând numărul de ordine a două coloane din tablou.
Subprogramul interschimbă elementele de pe coloana k1 cu elementele de pe coloana 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
tabloului.
Scrieț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 interschimbC,
schimbă între ele elementele coloanei pe care apare prima dată valoarea minimă din tablou cu
elementele coloanei 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 3 2 1 8 6
1 2 3 8 6 7 3 0 3 1
0 3 7 3 1 5 6 3 2 3
3 6 5 2 3 9 1 7 7 1
7 1 9 7 1 6 0 8 4 9
8 0 6 4 9

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ă.

b. Fișierul matrice.in conține pe prima linie un număr natural n (2 ≤ n ≤ 100), iar pe


următoarele n linii câte n numere naturale din intervalul [0,106], separate prin câte un spațiu.
Scrieți un program care să citească din fișier n, apoi cele n*n elemente ale unui tablou
bidimensional și utilizând apeluri utile ale subprogramului maxim_d, să modifice în memorie
tabloul citit astfel: toate elementele impare, cu excepția celor de pe diagonale, se vor înlocui cu
valoarea maximă pară de pe diagonala principală sau secundară a tabloului. Tabloul astfel
modificat va fi afișat în fișierul matrice.out. Dacă pe diagonalele tabloului nu există nicio valoare
pară, în fișier se afișează mesajul tablou nemodificat.
Exemplu:
matrice.in ecran
4 1 2 4 4
1 2 3 4 6 1 1 2
6 1 1 2 2 2 4 4
2 2 4 1 4 4 4 2
4 3 1 2

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

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. 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

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. 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

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

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