Documente Academic
Documente Profesional
Documente Cultură
INFORMATICA
Chişinău, 2021
1
Aprobată la şedinţa Comisiei Naţionale de Examene,
Proces verbal nr.1 din 04 noiembrie 2021,
Ordinul Ministerului Educației și Cercetării nr.1499 din 04 noiembrie 2021
Autori:
- Anatol Gremalschi, profesor universitar, doctor habilitat, Universitatea Tehnică a
Moldovei;
- Laura Dicusar, grad didactic Superior, Instituția Publică Liceul Teoretic „Gaudeamus”,
mun. Chișinău
- Lilia Ivanov, grad didactic Superior, master în științe ale educației, Agenția Națională
pentru Curriculum și Evaluare;
- Lilia Mihălache, doctor în științe pedagogice, grad didactic Superior, Instituția Publică
Liceul Teoretic ”Ion Creangă”, mun. Chișinău.
Structura programei
Programa conţine:
1. Preliminarii.
2. Competenţele specifice ale disciplinei, evaluate în cadrul examenului național de
bacalaureat.
3. Unitățile de competență, unitățile de conținut, rezultatele învățării, evaluate în cadrul
examenului național de bacalaureat.
4. Exemple de itemi.
5. Exemplu de test și de barem de corectare.
1. Preliminarii
2
2. Competenţe specifice ale disciplinei evaluate în cadrul examenului național de
bacalaureat
• Prelucrarea datelor experimentelor din domeniul științelor reale și al celor socio-umane,
manifestând gândire critică, claritate și corectitudine.
• Algoritmizarea metodelor de analiză, de sinteză și de soluționare a situațiilor-problemă,
demonstrând creativitate și perseverență.
• Implementarea algoritmilor în medii de programare, dând dovadă de concentrare și
perspicacitate.
• Explorarea situațiilor-problemă prin modelare, prin planificare și prin efectuarea experimentelor
virtuale în medii digitale, dovedind spirit analitic, claritate și concizie.
4
Bazele aritmetice ale tehnicii de calcul*
• Aplicarea aritmeticii de Sisteme de numerație. • identificarea tipului sistemului de
calculator pentru Sisteme poziționale și numerație;
soluționarea problemelor sisteme nepoziționale de • reprezentarea numerelor în
de prelucrare a informației. numerație. diferite sisteme de numerație;
• Aplicarea operațiilor de Sistemele poziționale de • conversia numerelor dintr-un
bază ale aritmeticii de numerație: sistem de numerație în altul:
calculator la soluționarea - binar; - din sistemul binar, octal,
problemelor informatice. - octal; hexazecimal în sistemul zecimal
- hexazecimal. şi invers;
Conversia numerelor dintr- - din binar în octal, hexazecimal și
un sistem în altul: invers;
- din baza 2, 8, 16 în
sistemul zecimal și invers;
- din binar în octal,
hexazecimal și invers.
Algebra booleană*
• Utilizarea algebrei Variabile și expresii logice: • identificarea operatorilor logici,
booleene pentru - constante și variabile constantelor și variabilelor logice;
prelucrarea digitală a logice; • reprezentarea expresiilor logice
informației. - operatorii logici NU, ȘI, și a funcțiilor logice prin tabele
SAU; de adevăr;
- expresii logice; • calcularea valorilor funcțiilor
- tabelele de adevăr ale logice în corespundere cu valorile
expresiilor logice. argumentelor acestora;
Funcții logice:
- metode de definire a
funcțiilor logice;
- funcțiile logice frecvent
utilizate;
- setul complet de funcții
logice.
Circuite logice*
• Materializarea funcțiilor Circuite logice elementare. • identificarea porților logice
logice. • Clasificarea circuitelor frecvent utilizate;
logice. • precizarea valorilor de ieșire ale
• Porți logice frecvent porților logice frecvent utilizare;
utilizate. • distingerea circuitelor
• Circuite combinaționale combinaționale frecvent utilizate
frecvent utilizate: și a circuitelor secvențiale
- sumatorul; frecvent utilizate;
- comparatorul; • explicarea modului de
- decodificatorul; funcționare a circuitelor
- multiplexorul; combinaționale frecvent utilizate
- demultiplexorul. și a circuitelor secvențiale
• Circuite secvențiale frecvent frecvent utilizate;
utilizate: • materializarea funcțiilor logice
- bistabilul; prin reuniunea porților logice;
- registrul;
- numărătorul;
- generatoare de impulsuri.
5
Subprograme
• Prelucrarea datelor cu Subprograme: • utilizarea termenilor: program
ajutorul subprogramelor – programul principal și principal, subprogram, funcție,
predefinite şi a programul apelat; procedură;
subprogramelor elaborate – subprograme și apeluri de • interpretarea modului de
de către utilizator. subprograme; execuție a apelului de funcții și
• Organizarea comunicării – tipuri de subprograme. proceduri;
între programul / Comunicarea dintre progra- • clasificarea variabilelor (globale
subprogramul apelant şi mul/subprogramul apelant și și locale) și a parametrilor;
subprogramul apelat. subprogramul apelat: • identificarea legăturilor
• Proiectarea structurală a - modul de transfer al informaționale (date) și de
algoritmului şi a controlului în cazul control (apeluri) dintre
programului. apelului de subprograme; programul principal și
• Utilizarea recursiei - modul de transmitere a subprogramele apelate;
pentru rezolvarea argumentelor și de • identificarea funcțiilor
problemelor. returnare a rezultatelor. predefinite;
• recunoașterea subprogramelor
Domenii de vizibilitate:
(funcțiilor și procedurilor)
- structura de bloc a
recursive*;
programelor;
• calcularea rezultatului execuției
- variabile globale și
unui program (subprogram);
variabile locale.
Recursia*: • elaborarea programelor care
- modul de transmitere a utilizează funcții predefinite;
controlului la execuția • elaborarea programelor care
algoritmilor recursivi; utilizează subprograme (funcții
- modul de alocare a și proceduri) definite de
memoriei la execuția utilizator;
algoritmilor recursivi; • transcrierea subprogramelor
- elaborarea subprogramelor recursive în subprograme
recursive. iterative și invers*;
Sintaxa declarațiilor și
apelurilor de subprogram.
Modelare și calcul numeric*
• Elaborarea modelelor Modelare matematică. • elaborarea modelelor
matematice. matematice pentru fenomenele și
situațiile de natură fizică,
biologică, chimică, socială;
• transpunerea modelelor
elaborate într-un limbaj de
programare de nivel înalt;
• interpretarea rezultatelor
modelării în funcție de valorile
datelor inițiale;
• Determinarea erorii Erori în calcule numerice: • identificarea soluțiilor exacte și
absolute și a erorii - eroare absolută; a soluțiilor calculate;
relative. - eroare relativă. • calcularea erorii absolute și a
erorii relative;
• Identificarea condițiilor Rezolvarea pe calculator a • formularea algoritmilor de
de aplicare a metodei ecuațiilor algebrice și realizare a metodei bisecției, a
bisecției, a coardelor. transcendente: coardelor;
– soluția ecuației;
6
• Elaborarea într-un limbaj – separarea soluțiilor; • determinarea extremității fixe în
de programare de nivel – metoda bisecției; metoda coardelor;
înalt a programelor de – metoda coardelor; • verificarea condițiilor de
calcul iterativ al soluției – formule recurente; aplicare a metodelor bisecției, a
ecuației algebrice și – extremități fixe; coardelor pentru ecuațiile
transcendente prin – aproximare inițială. propuse;
metoda bisecției, a • elaborarea programelor care
coardelor. realizează calculul iterativ al
soluțiilor ecuațiilor algebrice și
transcendente prin metodele
bisecției, a coardelor;
• Elaborarea programelor Calculul numeric al • formularea metodei
(subprogramelor) pentru integralelor. dreptunghiurilor și a variațiilor
calculul numeric al Metoda dreptunghiurilor: ei pentru calculul integralei
integralelor prin metoda - dreptunghiuri de mijloc; definite;
dreptunghiurilor în - dreptunghiuri de stânga; • programarea algoritmilor pentru
funcție de un număr de - dreptunghiuri de dreapta. calculul numeric al integralelor
divizări, stabilit apriori. prin metoda dreptunghiurilor și a
variațiilor ei;
• calculul numeric al ariilor
figurilor curbilinii plane prin
metoda dreptunghiurilor și a
variațiilor ei;
Baze de date
• Proiectarea structurii Tabele: • diferențierea tipurilor de date din
tabelelor bazelor de date. – destinația și structura câmpurile unui tabel;
• Crearea și editarea tabelelor; • definirea proprietăților
tabelelor pentru – crearea tabelelor; câmpurilor;
problemele frecvent – sortarea înregistrărilor; • alegerea cheii primare;
întâlnite în matematică, – căutarea și înlocuirea • identificarea corelației între
fizică, biologie, chimie, valorilor; tabele;
geografie, etc. – crearea și folosirea unui • crearea tabelelor;
• Stabilirea corelațiilor filtru; • stabilirea corelațiilor dintre
între tabele. – stabilirea corelațiilor între tabele;
• Utilizarea operațiilor tabele.
destinate sortării
înregistrărilor, căutării și
înlocuirii valorilor.
• Elaborarea filtrelor
pentru selectarea
înregistrărilor.
• Alegerea tipurilor de Interogări: • recunoașterea componentelor
interogări adecvate – destinația și structura unei interogări;
pentru prelucrarea interogărilor; • crearea interogărilor predefinite
datelor. – crearea interogărilor cu cu ajutorul sistemului de
• Elaborarea interogărilor ajutorul asistenților; asistență;
cu ajutorul sistemului de – proiectarea interogărilor*; • crearea interogărilor simple și
asistență sau prin – sortarea și gruparea complexe (în baza unui tabel sau
proiectare independentă. înregistrărilor*. a mai multor tabele);
• Elaborarea interogărilor
pentru selectarea datelor.
7
• Identificarea Expresii*: • scrierea și evaluarea expresiilor;
componentelor unei – construirea expresiilor; • crearea interogărilor de acțiune;
expresii și aplicarea – interogări pentru adăugare, • crearea interogărilor de grupare
regulilor de formare a actualizare și eliminare; și totalizare a datelor;
expresiilor. – gruparea și totalizarea
• Elaborarea interogărilor datelor într-o interogare.
de acțiune.
• Utilizarea tehnicilor de
grupare și totalizare a
datelor.
• Identificarea elementelor Formulare: • recunoașterea componentelor
care alcătuiesc – destinația și structura unui formular;
formularele. formularelor; • explicarea modului de
• Elaborarea formularelor – crearea formularelor cu funcționare a formularelor pe
cu ajutorul sistemului de ajutorul asistenților; baza tabelelor corelate;
asistență sau prin – crearea formularelor pe • crearea formularelor predefinite
proiectare independentă. baza tabelelor corelate*. cu ajutorul sistemului de
• Elaborarea formularelor asistență sau prin proiectare
pe baza tabelelor independentă*;
corelate. • crearea formularelor;
• Identificarea Rapoarte: • recunoașterea componentelor
componentelor care – destinația și structura unui raport;
alcătuiesc rapoartele. rapoartelor; • elaborarea rapoartelor
• Elaborarea rapoartelor și – crearea rapoartelor cu predefinite cu ajutorul sistemului
subrapoartelor cu ajutorul asistenților; de asistență sau prin proiectare
ajutorul sistemului de – crearea rapoartelor pe baza independentă;
asistență sau prin tabelelor corelate*; • analiza structurală și de
proiectare independentă. – gruparea și totalizarea particularizare a raportului;
• Utilizarea tehnicilor de datelor într-un raport*. • crearea rapoartelor;
modificare a rapoartelor. • gruparea și totalizarea datelor în
• Utilizarea tehnicilor de rapoarte.
grupare a datelor într-un
raport.
4. Exemple de itemi
Exemplele de itemi sunt destinate pentru a familiariza candidații la examenul național de
bacalaureat, profesorii, autorii de teste cu structura și tipologia itemilor. Aceste exemple nu acoperă
întreaga varietate de formulări posibile de itemi/sarcini, care pot fi utilizate la elaborarea testelor ce
vor fi propuse candidaților.
1. a) Pe un panou publicitar digital sunt reprezentate imagini cu dimensiunea 2048x1024 pixeli și cu 256
niveluri de luminanță pentru fiecare dintre cele 3 culori primare. Calculaţi şi scrieţi în spaţiul rezervat pentru
răspuns cantitatea de informație în MegaOcteți (MB), care se conține într-o imagine cu caracteristicile
date. Răspuns: ________ MB
Scrieți formulele utilizate și calculele efectuate:
b) Calculați și scrieți în spațiul rezervat pentru răspuns cea mai mică lungime a cuvintelor binare de
lungime egală, suficientă pentru codificarea și decodificarea univocă a elementelor mulțimii cifrelor
zecimale: {0, 1, 2,…, 9}.
8
Răspuns: ________ biți
Scrieți formulele utilizate și calculele efectuate:
2. Fie date declarațiile în limbajul C/C++/Pascal:
int z, s, q, r; var z, s, q, r: integer;
Bifați valoarea care se va afișa urmare execuției schemei din Imaginea 1:
❑ 15
❑ 20
❑ 46
❑ 10
❑ 28
Imaginea 1
3. Analizați fiecare program dintre cele ce urmează în unul din limbajele propuse C/C++/Pascal. Bifați
valoarea corectă a valorii variabilei m obținută după execuția programului.
C++
#include <iostream> ❑ 12 ❑4 ❑ 16 ❑ 8
int m, a = 8, b = 16, c = 12;
int main()
{
if (a >= b && a >= c ) m = a;
if (b >= a && b >= c ) m = b;
if (c >= a && c >= b ) m = c;
return 0;
}
#include <iostream> ❑2 ❑ 3 ❑9 ❑4
int m, a, b, c;
int main()
{
a = 3; b = 2; c = 9;
if (a * a == b || a * a == c) m = a;
if (b * b == c || b * b == a) m = b;
if (c * c == a || c * c == b) m = c;
return 0;
}
Pascal
Program p1; ❑ 12 ❑4 ❑ 16 ❑ 8
Var a, b, c, m: integer;
Begin
a:= 8, b:= 16, c:= 12;
if (a >= b) and (a >= c ) then m = a;
if (b >= a) and (b >= c ) then m = b;
if (c >= a) and (c >= b ) then m = c;
End.
Program p2; ❑2 ❑ 3 ❑9 ❑4
Var a, b, c, m: integer;
Begin
a:= 3; b:= 2; c:= 9;
if (a * a = b) or (a * a = c) then m = a;
if (b * b = c) or (b * b = a) then m = b;
if (c * c = a) or (c * c = b) then m = c;
End.
9
4. Analizați programul în unul din limbajele propuse C/C++/Pascal din tabelul de mai jos. Bifați răspunsul
care corespunde valorii variabilei z obținute la sfârșitul îndeplinirii programului.
C++ Pascal
#include <iostream> Program p6;
int a = -2, b = -4, c; Var a, b, c: integer;
char z; z: char;
int main() Begin
{ a := -2; b := -4;
if (a * b > 0 ) if (a * b > 0 ) then
{ begin
c = (a + b) / 2; c := (a + b) div 2;
if (c > 0) z = 'R'; else z = 'L'; if (c > 0) then z := 'R' else
} z := 'L';
else end
{ else
c = -(a * b); begin
if (c < 10) z = 'S'; else z = 'B'; c := -(a * b);
} if (c < 10) then z := 'S'
return 0; else z := 'B';
} end;
End.
❑R ❑L ❑S ❑B
5. Analizați programul în unul din limbajele propuse C/C++/Pascal prezentat în următorul tabel. Bifați
varianta corectă a informației care se va afișa în rezultatul execuției programului.
C++ Pascal
#include <iostream> Program P1;
using namespace std; Var i, n : integer;
int i = 0; Begin
int main() i:= 0;
{ n:= 10;
int n = 10; while (i < n)do
while (i < n) begin
{ Write(i + n, ' ');
cout<< i + n<< ' '; i:= i+1;
i++; n:= n-1;
n--; end;
} End.
return 0;
}
❑ 10 10 10 10 10 10 10 10 10 10
❑ 123456
❑ 10 10 10 10 10
❑ 123456
❑ 10 11 12 13 14 15
7. La construirea unei clădiri au participat N investitori. Fiecare investitor a contribuit cu o sumă, a cărei
valoare este cunoscută.
Sarcină: Scrieți un program, care afișează la ecran cea mai mică sumă investită și numărul de investitori care
au contribuit cu o astfel de sumă.
Intrare: Fișierul text Invest.txt conține în prima linie un număr întreg N (1<N≤50) – numărul de investitori.
Fiecare din următoarele N linii conțin câte un număr întreg - suma investită de un investitor distinct.
Ieșire: La ecran se vor afișa două numere întregi separate prin spațiu - cea mai mică sumă investită și numărul
de investitori care au contribuit cu o astfel de sumă.
Exemplu: Invest.txt Ecran: Explicație:
4 1200 2 Se determină cea mai mică suma
1200 1200.
4800 Numărul de investitori cu suma
1200 cea mai mică 2.
3000
Rezolvarea va fi apreciată pentru: definirea tipurilor de date și
declararea variabilelor; operarea cu fișierul text; citirea și scrierea
datelor; implementarea algoritmului.
8. Următorul program scris în unul din limbajele propuse C++/Pascal calculează produsul a două numere
întregi. Modificaţi programul în aşa mod, încât aceste numere să fie citite din fişierul text NUMERE.IN.
C++ Pascal
//Program fisier; Program fisier;
#include <iostream> Var x, y, p : integer;
using namespace std;
int main() Begin
{ Read(x, y);
int x, y, p; p := x*y;
writeln (’produs=’,p);
cin>>x>>y;
p = x*y; End.
cout<<”produs=”<<p;
return 0;
}
10. Elaborați un subprogram cu numele Temperatura, care primește în calitate de parametru un număr real
- temperatura în grade Kelvin, și returnează un număr real - temperatura exprimată în grade Celsius.
Relația dintre temperatura Celsius și temperatura Kelvin este dată de formula:
t 0 Celsius = t 0 Kelvin − 273 ,15 .
11.Știind că a este aproximare a numărului exact A≠0, uniți prin segmente tipul erorilor din coloana din
stânga cu formula corespunzătoare de calculare a lor din coloana din dreapta:
12
δ = |A| / Δ
Eroare absolută Δ = |A + a|
Eroare relativă Δ = |A - a|
δ= Δ / |A|
3
12. Fie dată integrala definită (e )
+ 3 dx și programul care calculează această integrală pentru 30 de
x
1
divizări ale segmentului de integrare. În programul propus sunt omise unele fragmente. Completați spațiile
libere din textul programulului dat astfel, ca să se calculeze valoarea integralei prin metoda
dreptunghiurilor de dreapta.
Program Pascal Program C++
program PP; //program PP;
var a,b,h,s:_____________; #include <iostream>
i,n:integer; #include <cmath>
function f(x:real):real; using namespace std;
begin float f(float x);
f:= exp(x)+3; {
end; F = exp(x)+3;
begin }
a:=1; b:=3; n:=_______; int main()
s:=0; h:=______________/n; {
for i:=______ to n do __________ a = 1,b = 3,h,s = 0;
s:=s+h*f(_______________); int i,n =________;
write(s:0:0); h=_____________/n;
end. for (i=______; i <= n; i++)
{
s = s+h*f(___________);
}
cout<<s;
}
13
14. În sistemul MS Access a fost creată baza de date. Conţinutul tabelelor acestei baze de date este prezentat
în imaginea următoare:
14
5. Exemple de test și de barem de corectare
Acest exemplu de test permite oricărui candidat la examenul național de bacalaureat și publicului
larg să-și formeze o idee despre structura testului de bacalaureat, numărul de sarcini/itemi, formatul
și nivelul de complexitate ale acestora. Baremul de corectare, care corespunde exemplului de test,
oferă o idee despre cerințele pentru completitudinea și corectitudinea prezentării unui răspuns
detaliat și asigură unificarea la nivel național a corectării şi notării lucrărilor candidaților.
------------------------------------------------
Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 180 de minute.
Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț, iar în lipsa unor precizări
explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în formă
prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
Pentru rezolvarea problemelor propuse în Subiectele 2 și 3 poate fi utilizat unul din limbajele de
programare, Pascal sau C/C++, la alegerea candidatului.
Profilul real
Nr Item Punctaj
Subiectul I. (25 puncte)
1 a) Secția carte rară a Bibliotecii Naționale conține 91 de ediții. La digitalizarea acestora fiecărei L L
copii digitale i se atribuie un cod distinct care reprezintă un cuvânt binar. Codurile atribuite 0 0
copiilor digitale au lungimi egale. Calculați și scrieți în spațiul rezervat pentru răspuns 1 1
lungimea minimă a cuvintelor binare, suficientă pentru codificarea univocă a cărților rare. 2 2
3 3
Scrieți formula utilizată și calculele efectuate: Răspuns: ____________
4 4
5 5
b) O pagină a ediției digitale reprezintă o imagine color cu dimensiunile de 16x16 cm. 6 6
Imaginea este redată cu ajutorul unui rastru de 64 puncte/cm. Numărul nivelelor de 7 7
luminanță pentru fiecare din cele 3 culori de bază este 256. Calculați și scrieți în locul 8 8
rezervat pentru răspuns cantitatea de informație (în MB) a imaginii digitale. 9 9
Scrieți formula utilizată și calculele efectuate: Răspuns:____________ MB 10 10
15
Subiectul II. (32 de puncte)
1. Fie dată secvența de program în limbajul Pascal: L L
0 0
Var a, b: integer; 1 1
c: real; 2 2
q, z: char; 3 3
Begin 4 4
a := 2; b := 4; 5 5
c := 2.0; 6 6
q := ’a’; z := ’q’; 7 7
... 8 8
End.
Determinați și scrieți tipul și valoarea fiecărei expresii:
Limbajul C++:
//Program p1;
#include <iostream>
int main()
{ int ___, ___;
x = 0;
for (i = 5; ______________ ; i--} x = x + 3;
...
}
16
b) Analizați următorul program. Bifați răspunsul care corespunde valorilor variabilelor afișate
la ecran.
Limbajul Pascal:
Program p3; ❑ 3 12 true
Var x, y :integer; ❑ 6 15 false
Begin ❑ 6 15 true
x:=3; ❑ 3 12 false
y:=15;
if y mod x = 1 then y := y-x
else x := x*2;
writeln( x, ’ ’, y, ’ ’‚ x > y );
end.
Limbajul C++:
//Program p3; ❑ 3 12 1
#include <iostream> ❑ 6 15 0
using namespace std; ❑ 3 15 1
int main() ❑ 6 12 0
{
int x = 3, y = 15;
if (y % x == 1)y = y-x;
else x = x*2;
cout<<x<<’ ’<<y<<’ ’<<(x > y)<< endl;
}
3 Un robot se află în punctul cu coordonatele x, y, numere întregi. La primirea instrucțiunii N L L
robotul se mișcă în sus cu o unitate de distanță (un pas), la primirea instrucțiunii S – în jos cu 0 0
1 1
un pas, la primirea instrucțiunii W – spre dreapta, la primirea instrucțiunii E – spre stânga, de
2 2
asemenea cu un pas. 3 3
Formați din instrucțiunile și fragmentele de instrucțiuni prezentate în coloana din stânga un 4 4
5 5
program care va controla deplasarea robotului la primirea uneia din instrucțiunile N, S, W, E,
6 6
calculând noile lui coordonate. 7 7
Scrieți programul în spațiul rezervat din coloana din dreapta a tabelului. 8 8
9 9
Instrucțiunile și fragmentele de instrucțiuni Programul 10 10
Pascal:
readln(dir);
dir: char;
'N':
'S':
'W':
'E':
writeln(x, ' ', y);
y := y + 1;
x := x - 1;
y := y - 1;
x := x + 1;
case dir of
var x, y: integer;
x := 5; y := 6;
Program p7;
Begin
End.
end;
17
cin>>dir;
char dir;
case 'N':
case 'S':
case 'W':
case 'E':
cout<<x << y;
return 0;
y = y + 1; break;
x = x - 1; break;
y = y - 1; break;
x = x + 1; break;
switch(dir)
#include <iostream>
using namespace std;
int x = 5, y = 6;
int main()
{
{
}
}
4 Un număr perfect este numărul pentru care suma divizorilor proprii coincide cu valoarea L L
numărului. Scrieți un program care va determina dacă un număr dat N este perfect sau nu. 0 0
1 1
Exemplu: numărul 6 este perfect: 6=1+2+3 2 2
Intrare. Numărul întreg N se citește de la tastatură. 3 3
Ieșire. La ecran se va afișa cuvântul PERFECT, dacă N este un număr perfect, în caz contrar 4 4
se va afișa cuvântul NU. 5 5
6 6
7 7
8 8
Subiectul III. (30 de puncte)
1 Fie dat programul PASCAL: Pentru programul P15 îndepliniți L L
Program P15; 0 0
următoarele sarcini:
Type t=record 1 1
s: string;
a) Scrieți numele parametrilor formali 2 2
n: integer; utilizați în programul P15: 3 3
end; ____________________________ 4 4
var A,B: t; 5 5
b) Scrieți numele funcției predefinite 6 6
z: string;
function max(Q,W:integer): utilizate în programul P15: 7 7
integer; _________________________.
var M: integer; c) Subliniați în textul programului P15
begin
if Q < W then M:=W apelul subprogramului sir.
else M:=Q; d) Scrieți numele tipului de date definit în
max:= M; textul programului P15:
end;
procedure sir; ____________________________
begin e) Bifați valoarea de adevăr a afirmației
if length(A.s)>length(B.s) “În programul P15 are loc
then z:=A.s
else z:=B.s; comunicarea prin variabile globale ”:
end; ❑ Adevărat ❑ Fals
begin f) Scrieți ce se va afișa în rezultatul
A.s:=’SPORT’; A.n:=10; execuției programului P15:
B.s:=’INFORMATICA’; B.n:=4;
sir; ___________________________
Writeln(z); ____________________________
Writeln(max(A.n, B.n));
end.
18
Fie dat programul C++: Pentru programul P15 îndepliniți
// Programul P15 următoarele sarcini:
#include <iostream>
#include <cstring>
using namespace std; a) Scrieți numele parametrilor formali
struct t utilizați în programul P15:
{ ____________________________
char s[100];
int n;
}; b) Scrieți numele unei funcții predefinite
struct t A, B; utilizate în programul P15:
char z[100]; ___________________________
int max(int Q, int W)
{
int M; c) Subliniați în textul programului P15
if (Q < W) M = W; apelul subprogramului sir.
else M = Q;
return M;
d) Scrieți numele tipului de date definit în
} textul programului P15:
int sir() ____________________________
{
if (strlen(A.s)> strlen(B.s))
strcpy(z, A.s); e) Bifați valoarea de adevăr a afirmației
else strcpy(z, B.s); “În programul P15 are loc
return 0; comunicarea prin variabile globale ”:
} ❑ Adevărat ❑ Fals
int main() f) Scrieți ce se va afișa în rezultatul
{
strcpy(A.s, "SPORT"); A.n = 10;
execuției programului P15:
strcpy(B.s, "INFORMATICA");
B.n = 4; _____________________________
sir();
cout << z << "\n"; ______________________________
cout << max(A.n, B.n)<< "\n";
return 0;
}
L L
O agenție de turism gestionează N trasee turistice, numerotate de la 1 la N. Pentru a determina 0 0
2
cel mai popular traseu au fost analizate ultimele K excursii de pe fiecare traseu. Cel mai popular 1 1
este considerat traseul, pentru care numărul total de turiști în aceste K excursii este maximal. 2 2
Datele despre turiști sunt stocate în tabloul T cu N linii și K coloane. Elementul T[i,j] 3 3
reprezintă numărul de turiști de pe traseul i și excursia j. 4 4
5 5
Sarcină: Elaborați un program care determină cel mai popular traseu turistic. Programul va 6 6
conține un subprogram cu numele NT, care va primi în calitate de parametru un număr întreg i 7 7
– indicele traseului și va întoarce numărul total de turiști în K excursii pe traseul i. 8 8
9 9
Intrare: Fișierul text turist.in conține în prima linie două numere întregi - numărul de 10 10
trasee turistice N(1≤N≤8) și numărul de excursii K(1≤K≤10). Fiecare din 11 11
următoarele N linii conțin câte K numere întregi separate prin spațiu – elementele 12 12
13 13
tabloului T. Numărul cu indicile j din linia i+1 este valoare elementului T[i,j].
14 14
Ieșire: Fișierul text turist.out conține într-o linie două numere întregi separate prin spațiu– 15 15
indicele celui mai popular traseu turistic și numărul total de turiști în K excursii pe traseul 16 16
dat.
Notă. Nu sunt două trasee turistice cu același număr total de turiști în ultimele K excursii.
Exemplu: turist.in turist.out Rezolvarea va fi apreciată pentru:
3 4 2 103 descrierea tipurilor de date și declararea
25 21 15 30 variabilelor; operarea cu fișierele text;
18 35 22 28 citirea și scrierea datelor; organizarea
14 19 24 20 algoritmilor.
19
3 Pentru însămânțarea cu grâu a unui hectar de pământ L L
sunt necesare 250 kg de semințe. Conturul terenului 0 0
care urmează a fi însămânțat cu grâu este determinat 1 1
de: 2 2
• dreptele x = 0 și 𝑥 = 3; 3 3
• graficul funcției 𝑓(𝑥) = 𝑒 𝑥 − 𝑥 + 100; 4 4
• axa OX. 5 5
6 6
Elaborați un program care calculează cantitatea de 7 7
grâu necesară pentru însămânțarea terenului dat.
b
Aria terenului se determină calculând (în hectare) integrala f ( x)dx
a
prin metoda
Imaginea 1
20
a) Reieșind din conținutul tabelelor bazei de date înscrieți proprietățile câmpului Plata_pe_zi de
tip Number în caseta de proprietăţi din Imaginea 2, astfel încât:
Imaginea 2
b) Rezultatul execuţiei unei interogări, create în baza de date (Imaginea 1), este prezentat în
Imaginea 3.
Înscrieţi în fereastra interogării în modul
Design View (Imaginea 4) toate
elementele, inclusiv relațiile dintre tabele,
necesare pentru crearea interogării cu
ajutorul căreia se vor afişa datele
prezentate.
Imaginea 3
Notă:
- Înregistrările sunt sortate crescător după câmpul Nume.
- Câmpul Salariul tarifar reprezintă un câmp rezultant (calculat), obținut în rezultatul calculării
produsului câmpurilor Ore_lucrate şi Plata_pe_ora.
Imaginea 4
21
Barem de corectare
Nr. Pun Tota
Motivarea punctelor
Item cte l
Subiectul I. (25 de puncte)
a) Scrierea corectă a răspunsului: m = 7 1
Formula corectă: m>=log2n 1
Inlocuire corectă : m>=log291 1
Calcule corecte m = 7 1
b) Răspuns corect: 3 MB 1
1 Formula corectă: 1 10
I = 3 x mx x my x log2n;
Rasrtu corect: 16 x 64 x 16 x 64 1
Inlocuire corectă: 1
I = 3 x 16 x 64 x16 x 64 x log2 256 (biţi);
Transformarea corectă în B și MB 2
I=3x210x210x 23 biţi =3x220 byte=3 MB
a) Răspuns corect: 1
- Poziţional
b) Răspuns corect: (167,5)8 1
Conversiunile corecte:
(76,C)16 =(1110110,11)2 1x2
(118,75)10=(1110110,11)2 1x2
(167,5)8 =(1110111,101)2 1x2
2 Notă. 10
1. Se admit oricare alte conversiuni corecte.
2. Pentru fiecare conversiune corectă se acordă câte două puncte: pentru partea întreagă
– un punct, pentru partea fracționară – un punct
c) Pentru fiecare bifare corectă câte un punct: 1
(1243,67)8 ❑ Corect 1
(257,84)8 Incorect
d) Răspuns corect: t 1
e) Răspuns corect: Adevărat 1
(În subprogramul sir se utilizează variabile globale )
f) Răspuns corect: INFORMATICA 1x2
10
1
Definirea corectă a tipurilor de date
1
Declararea corectă a variabilelor globale
Definirea corectă a antetului subprogramului:
- denumire, parametri formali – un punct 1
- tipul rezultatului – un punct 1
Declararea corectă a variabilelor locale 1
Organizarea corectă a repetării pentru determinarea numărul total de turiști în K excursii de pe 1
traseul i
Instrucţiunea de sumare corectă pentru determinarea numărul total de turiști în K excursii de 1
pe traseul i
2 Returnarea corectă a rezultatului 1 16
Citirea corectă din fișier a variabilelor N și K 1
Citirea corectă din fișier a elementelor tabloului T 1
Scrierea corectă a instrucțiunii repetitive pentru determinarea rutei cu cel mai mare număr total 1
de turiști
Scrierea corectă a instrucțiunii condiționale pentru determinarea rutei cu cel mai mare număr
total de turiști
- sintaxa corectă a instrucțiunii condiționale – un punct 1
- atribuirea corectă a valorii mai mari – un punct 1
Operații corecte cu fișierele pentru scriere 1
Scrierea corectă în fișier a indicelui celui mai popular traseu turistic 1
Scrierea corectă în fișier a numărului total de turiști de pe cel mai popular traseu 1
Se va aprecia:
Definirea corectă a variabilelor 1
Atribuirile corecte ale datelor de intrare 1
Scrierea corectă a funcției în program 1
3 7
Descrierea corectă a formulelor de calcul 1
Organizarea corectă a repetării 1
Calcularea corectă a cantității de grâu necesară pentru însămânțarea terenului dat. 1
Afișarea corectă a rezultatului. 1
Subiectul IV. (13 puncte)
24
a) Pentru completarea corectă a fiecărei proprietăţi câte un punct: 1x3
b) Exemplu:
1
13
- scrierea corectă a câmpurilor Nume, Prenume, Luna (Field, Table) (câte un punct
1x3
pentru fiecare câmp corect)
- afișarea corectă a câmpurilor Nume, Prenume, Salariu tarifar, Luna (Show) 1
- scrierea corectă a expresiei din câmpul Salariu_tarifar:
• denumirea câmpului: Salariu_tarifar 1
25
Profilul umanist
Nr Item Punctaj
Subiectul I. (13 puncte)
1 Pachetul standard google apps conține 9 aplicații, pictogramele cărora sunt prezentate în L L
Imaginea 1. Imaginile sunt codificate cu cuvinte binare de lungime 0 0
1 1
egală. Pachetul de aplicații este considerat sursă de mesaje, iar 2 2
pictogramele aplicațiilor – mulțimea de mesaje distincte. 3 3
4 4
a) Calculaţi şi scrieţi în spaţiul rezervat pentru răspuns lungimea 5 5
minimă, în biți, a cuvintelor binare care permit codificarea și 6 6
decodificarea univocă a mesajelor sursei. 7 7
8 8
Scrieți formula utilizată și calculele efectuate: 9 9
10 10
Imaginea 1 11 11
Răspuns: ________biți 12 12
13 13
b) O pictogramă de aplicație din Imaginea 1 este o imagine color cu dimensiunile de 32x32
pixeli și cu 256 nivele de luminanță pentru fiecare dintre cele 3 culori primare. Calculaţi şi
scrieţi în spaţiul rezervat pentru răspuns cantitatea de informație în KiloBaiți (KB), care se
conține într-o imagine cu caracteristicile date.
Răspuns: ________ KB
Scrieți formulele utilizate și calculele efectuate:
26
2 Fie date declarațiile: L L
0 0
Limbajul Pascal Limbajul C/C++ 1 1
type T1=real; typedef float T1; 2 2
3 3
T2=T1; typedef T1 T2;
4 4
T3=char; typedef char T3; 5 5
T4=(A, B, C, D); enum T4 (A, B, C, D); 6 6
T5=char; typedef char T5; 7 7
var a: T1; T1 a;
b: T4; T4 b;
c: (X1, X2, X3, X4); enum (X1, X2, X3, X4) c;
• Scrieți numele a două perechi de tipuri identice:
________________________________________________
_______________________________________________
• Scrieți numele unei variabile de tip anonim: ______________________________
• Analizați tipul de date T4. Scrieți numărul de ordine al identificatorului A : _______
și numărul de ordine al identificatorului D: _______
3 Fie dată o secvență de program: L L
Limbajul Pascal 0 0
1 1
writeln(3.14:8:2); 2 2
write(’abc’:6); 3 3
writeln(’x’:3, ’y’:5); 4 4
5 5
Limbajul C++ 6 6
7 7
cout<<setw(8)<<3.14<<"\n";
cout<<setw(6)<<"abc";
cout<<setw(3)<<'x'<<setw(5)<<'y'<<"\n";
În imaginea de mai jos sunt numerotate pozițiile de afișare pe ecran. Scrieți în locurile rezervate
din imagine ce se va afișa după execuția secvenței de program date:
27
4 Fie date valorile variabilelor a=15, b=5, q=true. Scrieți în coloana din dreapta ce se va afișa după L L
execuția fiecărei din următoarele instrucțiuni: 0 0
2 2
Limbajul Pascal Răspuns 4 4
a) if a<b then write(2*a) else write(2*b); 6 6
b) if q and (a=b)then write(20) else 8 8
write(100); 10 10
c) if(not q) or (a>0) write(45) else 12 12
write(70);
d) for i:= 3 to 3 do write(i,’ ’);
e) for i:= 5 downto 4 do write(i,’ ’);
________________________________
29
Fie dat programul C++: Analizaţi programul P16 şi îndepliniţi
următoarele sarcini:
// Program P16
a) Scrieţi identificatorul variabilei locale
#include <iostream> utilizate în funcția Q a programului P16:
using namespace std; _______________
int x, s, k;
int Q (int a)
{ b) Scrieți tipul rezultatului returnat de funcția
int b; Q: ___________________________
2 Pompele digitale din stația PECO înregistrează cantitatea de combustibil, în litri, solicitată pentru L L
alimentarea automobilului. In decurs de o zi au fost efectuate N alimentări, iar datele au fost 0 0
1 1
stocate în fișierul PETROL.TXT. 2 2
3 3
Sarcină: Scrieți un program care determină de câte ori a fost solicitat un volum de combustibil 4 4
mai mare sau egal ca 50 l. Programul va conține o funcție, care va primi în calitate de 5 5
parametru volumul solicitat la o alimentare. Funcția va returna valoarea 1, dacă 6 6
volumul de combustibil solicitat este mai mare sau egal ca 50 l, în caz contrar funcția 7 7
8 8
va returna valoarea 0. 9 9
Intrare: Fișierul text PETROL.TXT conține în prima linie un număr întreg N(0<N≤100) – 10 10
11 11
numărul de alimentări efectuate. Următoarea linie conține N numere întregi, separate 12 12
prin spațiu – cantitățile solicitate de combustibil. 13 13
Imaginea 2
Reieșind din conținutul tabelelor bazei de date din Imaginea 2, realizați următoarele sarcini:
a) Bifați regimul în care sunt prezentate tabelele din Imaginea 2:
e) Uniţi prin segmente denumirile de câmpuri (coloana din stânga) cu tipul de date care ar
corespunde acestora (coloana din dreapta), astfel ca tipurile să nu se repete:
Id_carte Autonumber
Numarul pag Number
Pret Currency
Text (Short Text)
f) În Imaginea 3 este prezentat un formular, care a fost creat utilizând baza de date din
Imaginea 2.
31
Imaginea 3
Scrieţi în pătrăţele de pe formular numerele care corespund la patru elemente din lista de mai
jos:
1. Subformular
2. Bara de defilare
3. Element de control legat
4. Element de control independent
Imaginea 4
32
Barem de corectare
Nr. Punc
Motivarea punctelor Total
item te
Subiectul I. (13 puncte)
a) Răspuns corect: 4 biți 1
Formulă corectă: m log 2 n 1
Înlocuire corectă m log 2 9 1
Calcule corecte: m = 4 1
b) Răspuns corect: 3KB 1
Formule corecte: I=3mxmylog2n 1
1 Calcule corecte: I=3 x 32 x 32 x log2256 =3 x 32 x 32 x 8=3 x 1 13
2 5 x 2 5 x 8=3 x 210 x 8 biți
Transformarea corectă în B și KB: 3 x 210 x 8 biți= 3 KB 2
c) Răspuns corect: 27 KB 1
Formulă corectă: V=NI 1
Înlocuire corectă I= 3KB; N=9; V = 9*3 KB 1
Calcule corecte: V = 27 KB 1
Subiectul II. (40 puncte)
Pentru fiecare bifare corectă câte un punct: 1x5
Limbajul Pascal Corect Incorect
const S = ’ABCDE’; ❑
const X = 10 : integer; ❑
var a, b: integer; ❑
var 5ab: char; ❑
var a?b: real; ❑
1 5
Limbajul C++ Corect Incorect
const string S= ”ABCDE”; ❑
const X = 10 : int; ❑
int a, b; ❑
char 5ab; ❑
float a?b; ❑
33
Răspuns corect:
1x4
1x3
3 7
Pentru amplasarea corectă a fiecărei din cei patru paramentri câte un punct
Pentru interpretarea corectă a fiecărui subprogram write/writeln/cout câte un punct
a) Limbajul Pascal
s: String; 1
f: text; 1
i: integer; 1
k: integer; 1
b) s, f 1x2
c) Close(f); 1
d) 6 2
5 9
a) Limbajul C++
string s; 1
int i 1
int k; 1
ofstream f("Text.txt"); 1
b) s, f 1x2
c) f.close(); 1
d) 6 2
Subiectul III. (22 puncte)
Se va aprecia:
a) Răspuns corect: b 1
b) integer / int 1
1 c) mod / % 1 9
d) Subliniere corectă: Q(x) 2
e) Răspuns corect: 12 2
f) ❑ Adevărat (În funcția Q se modifică valoarea variabilei globale k) 2
Definirea corectă a tipurilor și declararea corectă a variabilelor 1
Antetul corect:
- parametrul formal corect – un punct 1
- tipul returnat de funcție corect – un punct 1
Scrierea corectă a instrucțiunii condiționale de determinare dacă volumul solicitat de
combustibil este mai mare sau egal cu 50
2 - sintaxa corectă a instrucțiunii condiționale – un punct 1 13
- atibuirea corectă a valorii 0 sau 1 – un punct 1
Returnarea corectă a rezultatului 1
Operații corecte de lucru cu fișierele pentru citire 1
Citirea corectă din fișier a variabilei N 1
Citirea corectă din fișier a N numere – cantitățile solicitate de combustibil 1
Instrucțiunea repetitivă corectă pentru determinarea volumului total al combustibilului 1
34
Scrierea corectă a instrucțiunii condiționale care determină numărul de solicitări mai mari sau
egale cu 50 l
- sintaxa corectă a instrucțiunii condiționale – un punct 1
- instrucțiunea corectă de numărare – un punct 1
Afișarea corectă la ecran a rezultatului 1
Subiectul IV. (25 de puncte)
a) Răspuns corect: Datasheet View 1
b) Răspuns corect: 1 → ∞ 1
c) Răspuns corect: ∞ → ∞ 1
1 12
f) Pentru fiecare element corect câte un punct 1x4
Completare corectă:
a) Exemplu:
2 13
35
Notă: Se admit oricare alte variante corecte.
Total 100
36