Bacalaureat 2023 la informatică: examenul din vară, 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.
Subiectul pe care l-au primit elevii la Bac, în sesiunea din vară.
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: d) Varianta d
Textul 2

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

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

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

I.54 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: a) Varianta a
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: 9752
II.1.b6 p
Construiește datele de intrare cerute în fragment.
Verifică-te pe barem
Un exemplu de răspuns
Două exemple sunt 321 și 987. Citite de la dreapta, cifrele lor sunt strict crescătoare, astfel fiecare satisface c>m și nicio cifră nu este eliminată.
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(){long long x,p=1;int m=-1,c;cin>>x;while(p<=x){c=x/p%10;if(c>m){m=c;p*=10;}else x=x/(p*10)*p+x%p;}
if(m>=0)cout<<x;else cout<<"nul";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 x
p <- 1; m <- -1
dacă p<=x atunci
repetă
c <- [x/p]%10
dacă c>m atunci
m <- c; p <- p*10
altfel x <- [x/(p*10)]*p+x%p
până când p>x
dacă m>=0 atunci scrie x
altfel scrie 'nul'Exemplu scris de Zece, nu singurul răspuns bun.
Textul 7

II.26 p
Cerința e în imaginea de mai sus, exact ca în subiectul oficial.
Vezi rezolvarea
Răspuns: (mare, râu); (ocean, ploaie, râu)
Textul 8

II.36 p
Rezolvă cerința din fragmentul original.
Verifică-te pe barem
Un exemplu de răspuns
struct lalea{char denumire[21];struct{int nrFire;int pretFir;}stoc;};
lalea f[10];Exemplu scris de Zece, nu singurul răspuns bun.
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
#include <vector>
int abundent(int n){std::vector<int> s(n+1,0);
for(int d=1;d<=n;d++)for(int k=d;k<=n;k+=d)s[k]+=d;
for(int k=1;k<n;k++)if(1LL*s[n]*k<=1LL*s[k]*n)return 0;
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 ns,np,a[1000][50];cin>>ns>>np;for(int i=0;i<ns;i++)for(int j=0;j<np;j++)cin>>a[i][j];
for(int i=0;i<ns;i++){int p=0;for(int j=1;j<np;j++)if(a[i][j]>a[i][p])p=j;cout<<i+1<<':'<<p+1<<' ';}
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
Număr separat prefixele și sufixele de două cifre, numai pentru numere cu cel puțin trei cifre. Prefixul se obține împărțind repetat la 10 până rămân două cifre, iar sufixul prin modulo 100. Număr valorile v din 10..99 cu frecvențe egale și nenule. Timp O(m+100), deoarece fiecare număr are cel mult patru cifre; memorie O(100).
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 pre[100]={0},suf[100]={0},v;while(f>>v)if(v>=100){suf[v%100]++;while(v>=100)v/=10;pre[v]++;}
int nr=0;for(int x=10;x<=99;x++)if(pre[x]>0 && pre[x]==suf[x])nr++;cout<<nr;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.