Tablouri și parcurgerea datelor: Informatică la Bacalaureat

38 de cerințe oficiale din subiectele de Bac; aici sunt cele mai noi 20. Rezolvi pe loc sau pe caiet, apoi te verifici pe barem.

Profilul tău:

Tabloul cu 8 linii, fiecare linie fiind 2 2 0 0 2 2 7 7.

II.36 p

Variabilele i și j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 8 linii și 8 coloane, numerotate de la 0, având inițial toate elementele egale cu -1. Scrieți secvența de instrucțiuni C/C++ de mai jos, înlocuind punctele de suspensie cu instrucțiuni adecvate, dintre care cel mult trei de atribuire, astfel încât, în urma executării secvenței obținute, variabila a să memoreze tabloul alăturat.

for(i=0;i<8;i++)

for(j=0;j<8;j++)

. . . . . . . . . . . . . . . .

Verifică-te pe barem

Un exemplu de răspuns

for(i=0;i<8;i++)
  for(j=0;j<8;j++)
    if(j==2 || j==3) a[i][j]=0;
    else if(j<6) a[i][j]=2;
    else a[i][j]=7;

Exemplu scris de Zece, nu singurul răspuns bun.

Barem oficial

  1. expresie de accesare a unui element al tabloului1 p
  2. valori ale elementelor tabloului atribuite conform cerinței (pentru algoritm care conduce la o rezolvare parțială, se acordă numai 2p. pentru următorul aspect conform cerinței: identificare a cel puțin unei relații între valoarea elementului și poziția acestuia în tablou)4 p
  3. secvență completă, corectitudine globală a secvenței1 p

III.210 p

Scrieți un program C/C++ care citește de la tastatură un număr natural n (n∈[2,10²]), apoi un șir de n numere naturale din intervalul [1,10⁴], elemente ale unui tablou unidimensional. Programul afișează pe ecran numărul termenilor care sunt pătrate perfecte impare și sunt strict mai mici decât ultimul număr citit.

Exemplu: pentru n=11 și tabloul 9 27 81 25 49 100 101 25 77 16 49 se afișează pe ecran 3

Verifică-te pe barem

Un exemplu de răspuns

#include <iostream>
using namespace std;
int main()
{
    int n, v[100], i, r, nr = 0;
    cin >> n;
    for (i = 0; i < n; i++) cin >> v[i];
    for (i = 0; i < n; i++)
    {
        r = 1;
        while (r * r < v[i]) r++;
        if (r * r == v[i] && v[i] % 2 == 1 && v[i] < v[n - 1]) nr++;
    }
    cout << nr;
    return 0;
}

Exemplu scris de Zece, nu singurul răspuns bun.

Barem oficial

  1. declarare a unei variabile care să permită memorarea unui tablou unidimensional, conform cerinței1 p
  2. citire a datelor, conform cerinței1 p
  3. determinare a numărului cerut (pentru algoritm care conduce la o rezolvare parțială se acordă numai câte 1p. pentru fiecare dintre următoarele patru aspecte specifice: algoritm de bază pentru numărarea unei serii de valori cu inițializarea și actualizarea rezultatului, identificare a unui pătrat perfect, identificare a unui număr par/impar, identificare a ultimului element)6 p
  4. afișare a datelor, conform cerinței1 p
  5. declarare a variabilelor simple, corectitudine globală a algoritmului1 p
Textul 10

Fragment original al subiectului de informatică III-2-p2

III.210 p

textul 10

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];
 for(int i=0;i<n;i++)for(int j=n-1-i;j<n-1;j++)a[i][j]=a[i][j+1];
 for(int i=0;i<n;i++){for(int j=0;j<n-1;j++)cout<<a[i][j]<<' ';cout<<'\n';}
 return 0;}

Exemplu scris de Zece, nu singurul răspuns bun.

Criterii (după barem)

  1. care să -declarare a unei variabile memoreze un tablou bidimensional conform cerinței1 p
  2. citire a datelor1 p
  3. conform cerinței -modificare a tabloului, (*)6 p
  4. a unui tablou în formatul cerut -afișare1 p
  5. declarare a variabilelor de tip simplu, corectitudine globală a programului 1)1 p
Textul 10

Fragment original al subiectului de informatică III-2-p2

III.210 p

textul 10

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];cin>>n;for(int i=0;i<n;i++)cin>>a[i];int k=0;
 for(int i=0;i<n;i++)if(i!=1 && i!=n-2)a[k++]=a[i];
 n=k;for(int i=0;i<n;i++)cout<<a[i]<<' ';return 0;}

Exemplu scris de Zece, nu singurul răspuns bun.

Criterii (după barem)

  1. a unei variabile care să -declarare memoreze un tablou unidimensional conform cerinței1 p
  2. citire a datelor1 p
  3. conform cerinței -modificare a tabloului, (*) a unui tablou în formatul cerut -afișare6 p
  4. declarare a variabilelor de tip simplu,1 p
  5. corectitudine globală a programului 1)1 p
Textul 2

Fragment original al subiectului de informatică I-2-p1

I.24 p

textul 2

Cerința e în imaginea de mai sus, exact ca în subiectul oficial.

Vezi rezolvarea

Răspuns: d) Varianta d

Alte teme

Toate temele →