Bacalaureat 2023 la informatică: modelul oficial, mate-info
Subiectul oficial din 2023, cu baremul, pe 90 de puncte. Grilele și răspunsurile scurte le verifici pe loc; restul le scrii aici sau pe caiet, apoi te verifici pe barem.
Arată cum va arăta subiectul de la Bac.
Pe timp, ca la examen
Ceasul merge și dacă închizi pagina. Poți lua o singură pauză. La final, nota estimată după barem.
Subiectul ISubiectul al II-leaSubiectul al III-lea
Subiectul I 20 p
Textul 1

I.14 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: b) Varianta b
Textul 2

I.24 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: d) Varianta d
Textul 3

I.34 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: a) Varianta a
Textul 4

I.44 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: c) Varianta c
Textul 5

I.54 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: d) Varianta d
Subiectul al II-lea 40 p
Textul 6

II.1.a6 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: 90
II.1.b6 p
Construiește datele de intrare cerute în fragment.
Verifică-te pe barem
Un exemplu de răspuns
Două valori sunt q=70 și q=71. Valorile adunate până la 70 sunt 10,15,20,40,45,50,70, cu suma 250. Următoarea valoare care ar modifica suma este 75, deci orice q din [70,74] este potrivit.
Exemplu scris de Zece, nu singurul răspuns bun.
II.1.c10 p
Scrie programul C/C++ corespunzător algoritmului din fragment.
Verifică-te pe barem
Un exemplu de răspuns
#include <iostream>
using namespace std;
int main(){int m,n,p,q;long long s=0;cin>>m>>n>>p>>q;
for(int x=p;x<=q;x++){if(x%m==0 || x%n==0)s+=x;if(x%m==0 && x%n==0)s-=x;}
cout<<s;return 0;}Exemplu scris de Zece, nu singurul răspuns bun.
II.1.d6 p
Rescrie algoritmul folosind structura repetitivă cerută.
Verifică-te pe barem
Un exemplu de răspuns
citește m,n,p,q
s <- 0; x <- p
cât timp x<=q execută
dacă x%m=0 sau x%n=0 atunci s <- s+x
dacă x%m=0 și x%n=0 atunci s <- s-x
x <- x+1
scrie sExemplu scris de Zece, nu singurul răspuns bun.
Textul 7

II.26 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
for(int i=0;i<2;i++)for(int j=i+1;j<3;j++)
if(c[i].rezultat<c[j].rezultat){echipa aux=c[i];c[i]=c[j];c[j]=aux;}
cout<<c[0].nume<<' '<<c[1].nume<<' '<<c[2].nume;Exemplu scris de Zece, nu singurul răspuns bun.
Textul 8

II.36 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: 7fantastic
Subiectul al III-lea 30 p
Textul 9

III.110 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
int DoiTrei(int n){do{int c=n%10;if(c!=2 && c!=3)return 0;n/=10;}while(n);return 1;}Exemplu scris de Zece, nu singurul răspuns bun.
Textul 10

III.210 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
#include <iostream>
using namespace std;
int main(){int n,a[100][100];cin>>n;for(int i=0;i<n;i++)for(int j=0;j<n;j++)cin>>a[i][j];bool exista=false;
for(int i=0;i<n;i++)for(int j=0;j<n;j++)if(a[i][j]==3){bool ok=true;
if(i>0 && a[i-1][j]==0)ok=false;if(i+1<n && a[i+1][j]==0)ok=false;
if(j>0 && a[i][j-1]==0)ok=false;if(j+1<n && a[i][j+1]==0)ok=false;
if(ok){cout<<i+1<<' ';exista=true;}}
if(!exista)cout<<"nu exista";return 0;}Exemplu scris de Zece, nu singurul răspuns bun.
Textul 11

III.3.a2 p
Descrie algoritmul și justifică eficiența lui.
Verifică-te pe barem
Un exemplu de răspuns
Din prima jumătate păstrez separat minimul valorilor pare și minimul celor impare. Pentru fiecare y din a doua jumătate, numai valorile x de paritate opusă cer x>y; este suficient să verific cel mai mic astfel de x. Dacă acesta este <=y, răspunsul este NU. Absența parității opuse nu impune restricții. Timp O(n), memorie O(1).
Exemplu scris de Zece, nu singurul răspuns bun.
III.3.b8 p
Scrie programul C/C++ pentru problema din fragment.
Verifică-te pe barem
Un exemplu de răspuns
#include <iostream>
#include <fstream>
using namespace std;
int main(){ifstream f("bac.txt");int n,v,mn[2]={1000001,1000001};f>>n;
for(int i=0;i<n;i++){f>>v;if(v<mn[v%2])mn[v%2]=v;}
bool ok=true;for(int i=0;i<n;i++){f>>v;if(mn[1-v%2]<=v)ok=false;}
cout<<(ok?"DA":"NU");return 0;}Exemplu scris de Zece, nu singurul răspuns bun.
Vrei să-ți scriem când apare ceva nou pentru Bacalaureat?
Îți scriem când punem subiecte oficiale noi explicate, în ziua examenului cu grila și rezultatele și, rar, când avem nevoie de ajutorul tău. Cel mult 2 emailuri pe lună, plus zilele de examen. Doar despre Bacalaureat.
Gata! Ți-am trimis un email de confirmare. Dacă nu-l vezi, uită-te și în Promoții sau Spam.