Textul subiectului și baremului
Subiect BAC Informatică Mate-Info Pascal 2023 – sesiunea iunie–iulie, 28 iunie 2023, varianta 5
Acesta este textul selectabil extras automat din documentele PDF ale acestei variante. Pentru formule, tabele, pseudocod sau grafice, verifică pagina originală din PDF înainte de a rezolva exercițiile.
Subiectul
Deschide PDF-ul originalSubiectul · pagina 1
Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
Limbajul Pascal
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocaţională, profil militar, specializare matematică-informatică
Pagina 1 din 2
Examenul național de bacalaureat 2023
Proba E. d)
Informatică
Limbajul Pascal
Varianta 5
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocațională, profil militar, specializare matematică-informatică
• Toate subiectele sunt obligatorii. Se acordă zece puncte din oficiu.
• Timpul de lucru efectiv este de trei ore.
• Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), 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ă.
• În grafurile din cerințe oricare arc/muchie are extremități distincte și oricare două arce/muchii
diferă prin cel puțin una dintre extremități.
SUBIECTUL I (20 de puncte)
Pentru fiecare dintre itemii de la 1 la 5, scrieţi pe foaia de examen litera corespunzătoare răspunsului
corect. Fiecare răspuns corect se notează cu 4 puncte.
1. Indicați expresia Pascal care are cea mai mare valoare, comparativ cu celelalte trei expresii.
a. 20*23 div (2*2) b. 20 div 2*23 div 2 c. (20*23) div 2 d. (20*23) div 2*2
2. Subprogramul f este definit alăturat. Indicați ce se
afișează în urma apelului de mai jos.
f(23);
procedure f(n:integer);
begin if n<>0 then f(n div 2);
write(n mod 2)
end;
a. 100111 b. 111010 c. 010111 d. 01251123
3. Variabila k este de tip întreg, iar variabila s permite
memorarea unui șir de maximum 50 de caractere. Indicați
valoarea variabilei k în urma executării secvenței alăturate.
s:='bac2023';
delete(s,ord(s[3])-ord('a')+1,7);
k:=length(s);
a. 7 b. 6 c. 2 d. 1
4. Indicați un vector de „tați” corespunzător unui arbore cu 7 noduri, în care cel puțin unul dintre noduri are
trei ascendenți.
a. 0,1,2,1,1,1,2 b. 3,0,2,1,3,2,1 c. 4,3,0,3,4,4,3 d. 5,4,3,0,2,3,4
5. O companie de colectare a fructelor are 6 depozite, numerotate de la 1 la 6: depozitele 1, 3 și 5 conțin
mere, depozitele 2 și 4 conțin pere, iar depozitul 6 conține piersici. Compania a construit 4 benzi de
transport unidirecțional: de la depozitul 1 la depozitul 5, de la depozitul 5 la depozitul 2, de la depozitul 5
la depozitul 4 și de la depozitul 6 la depozitul 1. Dacă depozitele reprezintă vârfurile unui graf orientat,
iar benzile de transport reprezintă arcele acestuia, indicați numărul minim de benzi de transport care pot
fi adăugate, astfel încât graful obținut să aibă trei componente tare conexe, fiecare dintre acestea având
vârfuri care corespund depozitelor cu același tip de fructe.
a. 4 b. 3 c. 2 d. 1
SUBIECTUL al II-lea (40 de puncte)
1. Algoritmul alăturat este reprezentat în pseudocod.
S-a notat cu a%b restul împărţirii numărului natural a la numărul natural
nenul b, și cu [c] partea întreagă a numărului real c.
citeşte x (număr natural)
p1; m -1
┌cât timp p≤x execută
│ c[x/p]%10
│┌dacă c>m atunci
││ mc; pp*10
││altfel
││ x[x/(p*10)]*p+x%p
│└■
└■
┌dacă m≥0 atunci scrie x
│ altfel scrie "nul"
└■
a. Scrieţi valoarea afişată dacă se citește numărul 6907512. (6p.)
b. Scrieţi două valori distincte din intervalul [100,999] care pot fi
citite astfel încât, în urma executării algoritmului, pentru fiecare
dintre acestea, să se afișeze o valoare identică cu cea citită. (6p.)
c. Scrieţi programul Pascal corespunzător algoritmului dat. (10p.)
d. Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind
structura cât timp...execută cu o structură repetitivă cu test
final. (6p.)Subiectul · pagina 2
Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
Limbajul Pascal
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocaţională, profil militar, specializare matematică-informatică
Pagina 2 din 2
2. Utilizând metoda backtracking, se generează toate amestecurile de apă provenită din surse distincte din
mulțimea {lac, mare, ocean, ploaie, râu}, astfel încât o sursă să fie de apă sărată și una sau două
surse să fie de apă dulce. Marea și oceanul sunt surse de apă sărată, iar lacul, ploaia și râul sunt surse
de apă dulce. Două amestecuri sunt distincte dacă diferă prin cel puțin o sursă a apei. Primele patru
soluţii obţinute sunt, în această ordine: (lac, mare), (lac, mare, ploaie), (lac, mare, râu) şi
(lac, ocean). Scrieți soluția generată imediat înainte și soluția generată imediat după
(ocean, ploaie). (6p.)
3. Variabila f memorează, pentru fiecare dintre cele 10 soiuri de lalele care se vând într-o florărie,
caracteristicile acestora: denumirea (șir de maximum 20 de caractere) și stocul, exprimat prin numărul de
fire și prețul unui fir, în lei (numere naturale). Știind că expresiile de mai jos au ca valori denumirea primului
soi de lalele, respectiv suma, în lei, necesară pentru a cumpăra toate lalelele din acest soi, scrieți în
limbajul Pascal definiția unui tip de date cu numele lalea, înregistrare care să permită memorarea
informațiilor menționate pentru un soi de lalea, și declarați corespunzător variabila f.
f[0].denumire f[0].stoc.nrFire*f[0].stoc.pretFir (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Un număr natural nenul, n, se numește număr abundent dacă S(n)/n>S(k)/k, pentru orice număr
natural nenul k (k≤n-1), unde s-a notat cu S(i) suma divizorilor pozitivi ai numărului natural nenul i.
Subprogramul abundent are un singur parametru, n, prin care primește un număr natural (n∈[2,106]).
Subprogramul returnează valoarea 1, dacă n este un număr abundent, sau valoarea 0, în caz contrar.
Scrieți definiția completă a subprogramului.
Exemplu: pentru n=6, subprogramul returnează valoarea 1 (S(6)/6=2, iar cel mai mare raport obținut
pentru valori strict mai mici decât 6 este S(4)/4=1.75), iar pentru n=7 sau n=8, subprogramul
returnează valoarea 0 (S(7)/7=1.14, S(8)/8=1.87). (10p.)
2. Pentru a identifica punctele în care se concentrează apa în albia unui râu în cazul secetei, se determină
talvegul acesteia – linia care unește punctele cele mai adânci ale albiei. În acest scop s-au stabilit ns
secțiuni transversale pe cursul apei, numerotate începând de la 1, și în cadrul fiecărei secțiuni s-a măsurat
adâncimea apei în np puncte, numerotate începând de la 1. Din fiecare secțiune, în ordine, se include în
talveg cel mai adânc punct al acesteia, iar dacă în secțiune sunt mai multe puncte aflate la aceeași
adâncime, maximă, se va lua în considerare doar primul dintre ele, ca în exemplu.
Scrieți un program Pascal care citește de la tastatură două numere naturale, ns și np (ns∈[1,103],
np∈[1,50]), și cele ns∙np elemente ale unui tablou bidimensional, valori naturale din intervalul [0,102].
Fiecare linie a tabloului corespunde câte unei secțiuni, în ordinea numerotării acestora, iar
valorile memorate pe linie reprezintă adâncimile celor np puncte stabilite pentru acea
secțiune, în ordinea numerotării lor. Programul afișează pe ecran, pentru fiecare secțiune, o
pereche formată din numărul de ordine al secțiunii și numărul de ordine al punctului său care
s-a inclus în talveg. Numerele din fiecare pereche sunt afișate separate prin câte un
caracter : (două puncte), iar fiecare pereche este urmată de un spațiu.
Exemplu: pentru ns=6, np=4 și tabloul alăturat, se afișează pe ecran valorile:
1:3 2:2 3:2 4:2 5:4 6:3 (10p.)
2 4 5 3
2 6 6 3
1 5 2 5
1 3 3 3
3 4 3 5
0 1 2 1
3. Un număr natural x este numit prefix al unui număr natural y dacă se obține din acesta prin eliminarea a
cel puțin unei cifre de la dreapta sa, și este numit sufix al lui y dacă se obține din acesta prin eliminarea
a cel puțin unei cifre de la stânga sa.
Exemplu: 15 este prefix pentru 154 sau 1521, este sufix pentru 3415 sau 5115, dar nu este nici prefix,
nici sufix pentru 15.
Fișierul bac.txt conține maximum 106 numere naturale din intervalul [10,104), separate prin câte un
spațiu. Se cere să se afișeze pe ecran numărul valorilor de două cifre care apar de același număr de ori
ca sufix, respectiv ca prefix al numerelor din șirul aflat în fișier. Proiectați un algoritm eficient din punctul
de vedere al timpului de executare.
Exemplu: dacă fișierul are conținutul
342 1684 2134 5434 111 98 98 3405 3412 7016 8634 1010 102 310
se afișează pe ecran: 4 (pentru valorile 10, 11, 16, 34).
a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
b. Scrieți programul Pascal corespunzător algoritmului proiectat. (8p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei Centrul Naţional de Politici şi Evaluare în Educaţie Probă scrisă la informatică Varianta 5 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 1 din 2 Examenul național de bacalaureat 2023 Proba E. d) Informatică BAREM DE EVALUARE ȘI DE NOTARE (comun pentru limbajele C/C++ şi Pascal) Varianta 5 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocaţională, profil militar, specializare matematică-informatică • Se punctează orice modalitate de rezolvare corectă a cerinţelor. • Nu se acordă punctaje intermediare, altele decât cele precizate explicit în barem. Nu se acordă fracţiuni de punct. • Se acordă zece puncte din oficiu. Nota finală se calculează prin împărţirea la zece a punctajului total acordat pentru lucrare. • Utilizarea unui tip de date care depășește domeniul de valori precizat în enunț (de exemplu tipuri întregi cu semn pentru memorarea numerelor naturale, dimensiune a tablourilor) este acceptată din punctul de vedere al corectitudinii programului, dacă acest lucru nu afectează funcționarea sa. SUBIECTUL I (20 de puncte) 1d 2c 3c 4b 5a 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 9752 6p. b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinţei (oricare numere din intervalul cerut, cu cifre în ordine strict descrescătoare). c. Pentru program corect - variabile declarate, conform cerinței - date citite, conform cerinței - date afișate, conform cerinței - instrucţiune repetitivă, conform cerinței - instrucțiuni de decizie, conform cerinței (*) - atribuiri, conform cerinței - corectitudine globală a programului1) 10p. 1p. 1p. 1p. 2p. 3p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile de decizie este conform cerinței. d. Pentru algoritm pseudocod corect - structură repetitivă de tipul cerut (*) - aspecte specifice ale secvenței obținute prin înlocuire, conform cerinței (**) - algoritm complet, corectitudine globală a algoritmului1) 6p. 2p. 3p. 1p. (*) Se acordă punctajul chiar dacă algoritmul obținut nu este echivalent cu cel dat. Se va puncta orice formă de structură repetitivă conform cerinței (repetă...până când, repetă...cât timp, execută...cât timp, repeat ...until etc.). (**) Se acordă numai 2p. dacă doar unul dintre aspectele specifice (expresie logică pentru test final, echivalență pentru cazul x=0) este conform cerinței. 2. Răspuns corect: (mare, râu) (ocean, ploaie, râu) 6p. Se acordă câte 3p. pentru fiecare soluție conform cerinței. 3. Pentru rezolvare corectă - structură/înregistrare definită, conform cerinței (*) - variabilă declarată conform cerinței - corectitudine globală a secvenței1) 6p. 4p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect (definire principial corectă a unei structuri/înregistrări, câmpuri de pe primul nivel, câmpuri de pe al doilea nivel, etichetă/nume) conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei Centrul Naţional de Politici şi Evaluare în Educaţie Probă scrisă la informatică Varianta 5 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 2 din 2 SUBIECTUL al III - lea (30 de puncte) 1. Pentru subprogram corect - antet al subprogramului, conform cerinței (*) - proprietate verificată, conform cerinței (**) - instrucțiune/instrucțiuni de returnare a rezultatului, conform cerinței - variabile locale declarate conform cerinței, corectitudine globală a subprogramului1) 10p. 2p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al antetului (structură, parametru de intrare) conform cerinței. (**) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui divizor al unui număr, algoritm de bază pentru calculul sumei unei serii de valori, divizori suport însumați, împărțire reală pentru raport, algoritm principial corect de verificare a unei proprietăți, numere suport verificate) conform cerinței. 2. Pentru program corect - variabilă de tip tablou bidimensional, declarată conform cerinței - date citite conform cerinței - valori cu proprietatea cerută determinate (*) - date afişate în format conform cerinței - variabile simple declarate conform cerinței, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (algoritm de bază pentru determinare a valorii maxime dintr-o serie de valori, determinare a poziției unui maxim într-o serie de valori, valori suport verificate pentru determinarea unui maxim pentru fiecare secțiune) conform cerinței. 3. a. Pentru răspuns corect - descriere coerentă a algoritmului, conform cerinței (*) - elemente de eficienţă justificate, conform cerinței 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. (**) Se acordă numai 3p. dacă algoritmul este principial corect, dar nu oferă rezultatul cerut pentru toate seturile de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar. O soluţie posibilă utilizează doi vectori de frecvență, pf și sf, în care pf[i] memorează numărul de apariții ale prefixului i în numerele din fișier, iar sf[i] memorează numărul de apariții ale sufixului i în numerele din fișier. Pe parcursul citirii datelor, se determină, pentru fiecare număr x citit (x>99), sufixul (x%100), respectiv prefixul ([x/10] sau [x/100], în funcție de numărul de cifre ale lui x) și se actualizează corespunzător cei doi vectori de frecvență. După citirea tuturor numerelor se contorizează toate valorile x∈[10,99] pentru care sf[x]=pf[x] și sf[x]≠0. b. Pentru program corect - operaţii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier - valoare determinată, conform cerinței (*),(**) - eficiență a algoritmului, conform cerinței (***) - variabile declarate, afișare a datelor conform cerinței, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.