Șiruri de caractere: Informatică la Bacalaureat

18 cerințe oficiale din subiectele de Bac. Rezolvi pe loc sau pe caiet, apoi te verifici pe barem.

Profilul tău:

III.210 p

Într-un text de cel mult 200 de caractere, cuvintele sunt separate prin câte un spațiu și sunt formate din litere mici ale alfabetului englez, cifre și simboluri din mulțimea parantezelor: (, ), [, ], {, }.

Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat și afișează pe ecran numărul cuvintelor care conțin atât paranteze, cât și litere, în număr egal.

Exemplu: pentru textul a(b5) xyz [x1]y2 (x) {a6bc} 27 pq {ba}a) se afișează pe ecran 3

Verifică-te pe barem

Un exemplu de răspuns

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    char s[201], *p;
    int nr = 0;
    cin.getline(s, 201);
    p = strtok(s, " ");
    while (p != NULL)
    {
        int lit = 0, par = 0;
        for (int i = 0; p[i] != 0; i++)
            if (p[i] >= 'a' && p[i] <= 'z') lit++;
            else if (strchr("()[]{}", p[i]) != NULL) par++;
        if (lit > 0 && lit == par) nr++;
        p = strtok(NULL, " ");
    }
    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 șir de caractere, 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 unei litere/cel puțin unui tip de paranteze, litere/paranteze suport numărate într-un cuvânt, cuvinte suport numărate)6 p
  4. afișare a datelor, conform cerinței1 p
  5. declarare a variabilelor simple, corectitudine globală a programului1 p
Textul 8

Fragment original al subiectului de informatică II-3-p2

II.36 p

textul 8

Rezolvă cerința din fragmentul original.

Verifică-te pe barem

Un exemplu de răspuns

int i=0;while(tI[i]!=')')i++;
strcpy(tL,pN);
strcat(tL,tI+i+1);

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

Criterii (după barem)

  1. Pentru răspuns6 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>
#include <cstring>
#include <limits>
using namespace std;
int main(){int cod[3];for(int i=0;i<3;i++)cin>>cod[i];
 cin.ignore(numeric_limits<streamsize>::max(),'\n');char s[101];cin.getline(s,101);
 int k=0;for(int i=0;s[i];i++)if(s[i]!=' '){s[k]=char('A'+(s[i]-'A'+cod[k%3])%26);k++;}
 s[k]='\0';cout<<s;return 0;}

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

Criterii (după barem)

  1. declarare a unei variabile care să memoreze un șir de caractere conform cerinței1 p
  2. citire a datelor, conform cerinței1 p
  3. codificare a șirului cerut (*)6 p
  4. afișare a datelor1 p
  5. declarare a variabilelor simple, 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>
#include <cstring>
using namespace std;
int main(){char s[101];cin>>s;bool ok=true;
 for(int i=1;s[i];i++){
  bool a=strchr("aeiou",s[i-1])!=nullptr;
  bool b=strchr("aeiou",s[i])!=nullptr;
  if(a==b)ok=false;
 }
 cout<<(ok?"alterneaza":"nu alterneaza");return 0;}

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

Criterii (după barem)

  1. variabilă care să permită memorarea unui șir de caractere, declarată conform cerinței1 p
  2. date citite, conform cerinței1 p
  3. proprietate verificată conform cerinței (*)6 p
  4. mesaj afișat, conform cerinței1 p
  5. variabile simple declarate conform cerinței, corectitudine globală a programului 1)1 p

Alte teme

Toate temele →