Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2024 – 21 august 2024, varianta 8
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 8
Limbajul C/C++
Filieră teoretică, profil real, specializare științe ale naturii
Pagina 1 din 2
Examenul național de bacalaureat 2024
Proba E. d)
INFORMATICĂ
Limbajul C/C++
Varianta 8
Filieră teoretică, profil real, specializare științe ale naturii
• 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ă.
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. Variabilele x și y memorează câte un număr natural (x≤y). Indicați expresia C/C++ cu valoarea 1 dacă și
numai dacă intervalul [x,y] NU conține niciun număr de două cifre.
a. !(x>=10 || y>99) b. !(x<=99 && y>=10)
c. x>=10 || y<=99 d. x>99 && y<10
2. Un șir se obţine prin interclasarea crescătoare a elementelor din tablourile unidimensionale
A=(3,5,14,16,25,27) şi B=(4,7,8,20,29), parcurse de la stânga la dreapta, avându-se în vedere
pentru comparare câte o pereche de valori (x,y), unde x este un element din A, iar y un element din B.
Indicați un element din A care apare într-o singură pereche, în vederea comparării.
a. 25 b. 16 c. 14 d. 5
3. Indicați o valoare naturală pe care o poate memora variabila x,
astfel încât expresia C/C++ alăturată să aibă valoarea 1.
sqrt(4+x)==2+floor(x/4.0)
a. 2 b. 4 c. 5 d. 12
4. În secvența C/C++ alăturată toate variabilele sunt
întregi. Indicați expresia care poate înlocui punctele de
suspensie astfel încât, în urma executării secvenţei
obţinute, variabila r să memoreze valoarea 18,
reprezentând diferenţa 2024-2006.
r=0; x=2006; y=2024;
while(x<y)
{ x=x+1; y=y-1; r=..........;}
if(x!=y)r=r-1;
a. r-2 b. r-1 c. r+1 d. r+2
5. În secvența C/C++ alăturată toate variabilele sunt întregi. Indicați
expresia care poate înlocui punctele de suspensie astfel încât, în
urma executării secvenţei obţinute, variabila ok să memoreze
valoarea 1, dacă șirul numerelor citite este ordonat crescător și
fiecare valoare apare în acesta de două ori, sau valoarea 0 în caz
contrar.
ok=1;
cin>>x; | scanf("%d",&x);
for(i=2;i<=10;i++)
{ cin>>y; | scanf("%d",&y);
if(..................)
ok=0;
x=y;
}
a. x!=y && i%2==0 || x>=y && i%2==1
b. x==y && i%2==0 || x<y && i%2==1
c. (x!=y || i%2==0) && (x>=y || i%2==1)
d. (x==y || i%2==0) && (x<y || i%2==1)Subiectul · pagina 2
Ministerul Educației Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Varianta 8 Limbajul C/C++ Filieră teoretică, profil real, specializare științe ale naturii Pagina 2 din 2 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 n (număr natural nenul) x -1; y -1 ┌cât timp n>9 execută │┌dacă x=-1 atunci xn%100 ││altfel yn%100 │└■ │ n[n/10] └■ ┌dacă x<y atunci n(n*100+x)*100+y │altfel n(n*100+y)*100+x └■ scrie n a. Scrieți valoarea afișată în urma executării algoritmului dacă se citește numărul 412531. (6p.) b. Scrieți două numere din intervalul [1,11110] care pot fi citite pentru variabila n, astfel încât, pentru fiecare dintre acestea, în urma executării algoritmului, să se afişeze valoarea 11111. (6p.) c. Scrieți programul C/C++ corespunzător algoritmului dat. (10p.) d. Scrieți în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat structura cât timp...execută cu o structură repetitivă cu test final. (6p.) 2. Într-un tablou unidimensional cu 7 elemente, trei dintre acestea au valorile 2, 10 respectiv 24. Pentru a verifica dacă în tablou există elementul cu valoarea x=16, se aplică metoda căutării binare. Scrieți un exemplu de valori naturale pe care le pot avea elementele tabloului, în ordinea în care acestea apar în tablou, astfel încât x să se compare cu exact două elemente pe parcursul aplicării metodei indicate. (6p.) 3. Gama muzicală conține, în această ordine, notele do, re, mi, fa, sol, la, si. Două note formează un interval muzical, iar acesta este numit terță dacă, în ordinea din gamă, între cele două note există o singură altă notă muzicală. În notația englezească se folosesc unele litere mari ale alfabetului pentru notele muzicale, astfel: litera A pentru nota la, litera B pentru nota si, apoi, în ordine, litera C pentru nota do, litera D pentru nota re, litera E pentru nota mi, litera F pentru nota fa și litera G pentru nota sol. Variabilele nota1 și nota2 memorează literele corespunzătoare notației englezești pentru două note care formează un interval muzical, date în ordinea din gamă, nota1 memorând una dintre literele C, D, E, F sau G. Declarați variabilele nota1 și nota2 și scrieți o secvență de instrucțiuni C/C++ în urma executării căreia să se afișeze pe ecran mesajul TERTA, dacă intervalul respectiv formează o terță, sau mesajul NU, în caz contrar. Exemplu: dacă în variabila nota1 se memorează litera G (pentru nota sol), iar în variabila nota2 se memorează litera B (pentru nota si), se afișează mesajul TERTA. (6p.) SUBIECTUL al III-lea (30 de puncte) 1. Un număr natural nenul, n, se numește moderat dacă este egal cu produsul a două numere prime, iar acestea sunt consecutive în șirul numerelor prime (2, 3, 5, 7, 11, 13, 17...). Se citește un număr natural nenul, n, și se cere să se scrie valoarea 1, dacă n este un număr moderat, sau valoarea 0, în caz contrar. Scrieți în pseudocod algoritmul corespunzător. Exemplu: dacă n=35, se scrie 1 (35=5·7), iar dacă n=18 sau n=55 sau n=4, se scrie 0. (10p.) 2. O grădină este împărţită în parcele pătrate identice, dispuse succesiv, pe un rând. O parcelă conține același tip de plante (doar flori sau doar gazon) și oricare două parcele alăturate conțin tipuri diferite de plante, pe prima parcelă fiind gazon. Pentru fiecare parcelă se memorează înălţimea acesteia, egală cu înălțimea medie a plantelor conținute, exprimată în decimetri. Pentru a pune în valoare florile, orice parcelă cu flori trebuie să fie mai înaltă cu cel puțin un decimetru decât parcela cu gazon vecină anterioară. S-a hotărât tunderea parcelelor cu gazon prea înalte, astfel încât ele să fie aduse la înălțimea maximă permisă. Scrieți un program C/C++ care citește de la tastatură un număr natural din intervalul [2,102], n, apoi cele n elemente ale unui tablou unidimensional, numere naturale din intervalul [2,10], reprezentând înălţimile parcelelor, în ordinea dispunerii acestora în grădină. Programul modifică apoi tabloul în memorie corespunzător situației terenului după tunderea gazonului și afişează pe ecran tabloul obținut, cu elementele separate prin câte un spațiu. Exemplu: pentru n=6 și tabloul 6 2 3 7 9 4 se obține tabloul 1 2 3 7 3 4 (10p.) 3. Șirul 2, 3, 5, 9, 17, 33, 65, 129 .... este definit astfel: f1=2, f2=3, fn=3∙fn-1-2∙fn-2 (unde n este un număr natural n≥3). Se citesc de la tastatură două numere naturale x și y (x<y≤109), valorile a doi termeni aflați pe poziții consecutive în șirul dat, și se cere să se scrie în fișierul bac.txt, în ordine strict descrescătoare, separați prin câte un spațiu, toți termenii șirului care sunt mai mici sau egali cu y. Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al spațiului de memorie utilizat. Exemplu: dacă se citesc numerele 33 65, fișierul conține numerele 65 33 17 9 5 3 2 a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.) b. Scrieți programul C/C++ 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 8
Filieră teoretică, profil real, specializare științe ale naturii
Barem de evaluare și de notare
Pagina 1 din 2
Examenul național de bacalaureat 2024
Proba E. d)
INFORMATICĂ
BAREM DE EVALUARE ȘI DE NOTARE
(comun pentru limbajele C/C++ și Pascal)
Varianta 8
Filieră teoretică, profil real, specializare științe ale naturii
• 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)
1b 2b 3c 4d 5a 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a. Răspuns corect: 43141 6p.
b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două
numere conform cerinței (oricare dintre numerele 111,
1111, 11011) și se acordă numai câte 2p. pentru fiecare
dintre cele două numere care conduce la rezultatul cerut,
dar care nu aparține intervalului indicat.
c. Pentru program corect
-declarare a variabilelor
-citire a datelor
-afișare a datelor
-instrucțiuni de decizie (*)
-instrucțiune repetitivă
-atribuiri
-corectitudine globală a programului1)
10p.
1p.
1p.
1p.
3p.
2p.
1p.
1p.
(*) Se acordă numai 2p. dacă doar una dintre
instrucțiunile de decizie este conform cerinței.
d. Pentru algoritm pseudocod corect
-utilizare a unei structuri repetitive de
tipul indicat (*)
-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 pentru orice formă de structură
repetitivă de tipul cerut (repetă…până când,
repetă…cât timp, execută…până când,
execută…cât timp, do ... while etc.).
(**) Se acordă numai 2p. dacă doar un aspect specific
(expresie de continuare, echivalență pentru cazul
n≤9) este conform cerinței.
2. Pentru rezolvare corectă 6p. Se acordă câte 2p. pentru fiecare aspect specific
(tablou cu 7 elemente ordonate
crescător/descrescător, poziționare a celor trei valori
pentru elementele date, poziționare a valorii 16)
conform cerinței.
3. Pentru rezolvare corectă
-declarare a variabilelor
-afișare a datelor conform cerinței (*)
-corectitudine globală a secvenței1)
6p.
1p.
4p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect specific
(tratare a cazului în care câmpul nota1 corespunde unei
note din mulțimea {do, re, mi}, tratare a cazului în care
câmpul nota1 corespunde unei note din mulțimea
{fa, sol}, utilizarea unor notații englezești ale notelor pe
baza unor constante de tip caracter, corelare mesaje-
note) conform cerinței.Baremul · pagina 2
Ministerul Educației Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Varianta 8 Filieră teoretică, profil real, specializare științe ale naturii Barem de evaluare și de notare Pagina 2 din 2 SUBIECTUL al III - lea (30 de puncte) 1. Pentru algoritm corect -citire a datelor -verificare a proprietății cerute (*) -scriere a datelor -scriere principial corectă a structurilor de control, corectitudine globală a algoritmului1) (**) 10p. 1p. 6p. 1p. 2p. (*) Se acordă câte 1p. pentru fiecare aspect specific (algoritm de bază pentru verificare a unei proprietăți/numărare pentru o serie de valori, identificare a unui divizor al unui număr, divizori suport parcurși pentru determinarea unui număr prim, identificare a unor divizori primi ai unui număr, identificare a unor divizori primi consecutivi ai unui număr, număr de divizori primi suport în cadrul produsului) conform cerinței. (**) Se punctează orice formă principial corectă de structură repetitivă sau decizională. 2. Pentru program corect -declarare a unei variabile care să permită memorarea unui tablou unidimensional -citire a datelor -modificare a tabloului conform cerinței (*) -afișare a datelor în formatul cerut -declarare a variabilelor de tipuri simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (identificare a unei parcele cu flori/gazon, identificare a unei parcele cu gazon vecină anterioară unei parcele cu flori, înălțimi suport păstrate/actualizate pe parcele cu gazon) conform cerinței. 3. a. Pentru răspuns corect -descriere coerentă a algoritmului (*) -justificare a elementelor de eficiență 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 (de complexitate O(n)), care utilizează eficient memoria. O soluție posibilă memorează ultimii doi termeni afișați pe poziții consecutive, în ordine descrescătoare, y și x (y>x) și determină termenul curent (crt) pe baza celor doi termeni afișați anterior, cu formula crt=[(3⋅x-y)/2]; inițial se afișează, în ordine descrescătoare, cei doi termeni citiți, apoi, la fiecare pas, se determină și se afișează termenul curent și se actualizează cei doi termeni y și x; algoritmul se încheie după afișarea valorii 2. O altă soluție posibilă memorează ultimul termen afișat (crt) și determină termenul curent pe baza acestuia, cu formula crt=[(crt+1)/2]; inițial se afișează, în ordine descrescătoare, cei doi termeni citiți, apoi, la fiecare pas, se determină și se afișează termenul curent, care se actualizează; algoritmul se încheie după afișarea valorii 2. b. Pentru program corect -operații cu fișiere: declarare, pregătire în vederea scrierii, scriere în fișier -determinare a valorilor cerute (*),(**) -utilizare a unui algoritm eficient (***) -declarare a variabilelor, afișare a datelor, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.