Academos
  1. Subiecte
  2. Bacalaureat
  3. Informatică mate-info, C
  4. Subiectul al III-lea, 2.

Subiectul al III-lea, 2., toate variantele

Bacalaureat, Informatică mate-info, C, 2021-2026. Rezolvă-le pe rând, cu baremul la îndemână.

Sesiuni de examen

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,50], m și n, și elementele unui tablou bidimensional cu m linii și n coloane, numere naturale din intervalul [0,10²]. Programul transformă tabloul în memorie, interschimbând, pentru fiecare coloană, elementul său de valoare minimă cu primul element al coloanei, dacă acest minim este par, sau cu ultimul element al coloanei, dacă acest minim este impar. Dacă pe o coloană sunt mai multe elemente de valoare minimă, se alege doar unul dintre acestea. Tabloul obținut este afișat pe ecran, linie cu linie, de sus în jos, fiecare linie a tabloului pe câte o linie a ecranului, cu elementele parcurse de la stânga la dreapta, separate prin câte un spațiu. Exemplu: pentru m=4, n=5 și tabloul alăturat 7 5 3 0 9 1 2 1 9 7 2 2 0 1 5 5 6 1 2 8 se poate obține tabloul 7 2 0 0 9 5 5 1 9 7 2 2 3 1 8 1 6 1 2 5 (10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional, conform cerinței - 1p. -citire a datelor, conform cerinței - 1p. -determinare a tabloului cerut (*) - 6p. -afișare a datelor, conform cerinței - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect specific (algoritm de bază pentru determinarea unui minim într-o serie de valori, determinare a poziției minimului, identificare a primului/ultimului element al unei coloane, interschimbare a două elemente, elemente suport interschimbate/păstrate, obținere a tabloului în memorie) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură un cuvânt format din cel puțin două și cel mult 100 de caractere, numai litere mici ale alfabetului englez, și afișează pe ecran mesajul alterneaza, dacă în text nu există două vocale sau două consoane pe poziții consecutive, sau mesajul nu alterneaza, în caz contrar. Exemplu: pentru cuvintele imunopolizaharide sau pas se afișează mesajul alterneaza iar pentru cuvântul aer se afișează mesajul nu alterneaza (10p.)

Arată baremul

2. Pentru program corect - 10p. - variabilă care să permită memorarea unui șir de caractere, declarată conform cerinței - 1p. - date citite, conform cerinței - 1p. - proprietate verificată conform cerinței (*) - 6p. - mesaj afișat, conform cerinței - 1p. - variabile simple declarate conform cerinței, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (algoritm de bază pentru verificarea unei proprietăți, identificare a unei vocale/consoane, accesare a unor caractere aflate pe poziții consecutive, identificare a unei perechi de vocale pe poziții consecutive, identificare a unei perechi de consoane pe poziții consecutive, caractere suport verificate) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Într-un text de cel mult 100 de caractere cuvintele sunt formate doar din litere mici ale alfabetului englez și sunt separate prin unul sau mai multe spații. Textul are cel puțin două cuvinte. Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat mai sus și îl transformă în memorie prin eliminarea sau inserarea unor spații și a unor cratime (simbolul –), astfel încât între oricare două cuvinte consecutive în text să fie câte o cratimă, încadrată la stânga și la dreapta de câte un spațiu, ca în exemplu. Programul afișează pe ecran textul obținut. Exemplu: pentru textul anul acesta devin student se obține anul – acesta – devin – student (10p.)

Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un șir de caractere, conform cerinței - 1p. -citire a unui șir conform cerinței - 1p. -transformare a șirului conform cerinței (*) - 6p. -afișare a datelor, conform cerinței - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui cuvânt, inserare a unor caractere într-un șir, utilizarea unor secvențe spațiu-cratimă-spațiu, inserare a unei secvențe indicate între două cuvinte, caractere suport inserate /eliminate / nemodificate, transformare în memorie) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Un cuvânt semioglindit se obține dintr-un cuvânt cu 2·k (k∈[1,10²]) litere, prin interschimbarea în acesta a secvenței formate din primele k litere cu secvența formată din ultimele k litere. Exemplu: din cuvântul platim se obține cuvântul semioglindit timpla. Într-un text de cel mult 200 de caractere, cuvintele sunt formate din litere mici ale alfabetului englez și sunt separate prin câte un spațiu. Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat, pe care îl transformă în memorie, prin înlocuirea fiecărui cuvânt cu număr par de litere, cu cel semioglindit obținut din acesta, ca în exemplu. Programul afișează pe ecran textul obținut, sau mesajul nu exista, dacă toate cuvintele au număr impar de litere. Exemplu: pentru textul am facut fotografii unei flori mari se afișează pe ecran textul ma facut rafiifotog eiun flori rima (10p.)

Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un șir de caractere, conform cerinței - 1p. -citire a datelor, conform cerinței - 1p. -transformare a șirului conform cerinței (*) - 6p. -afișare a datelor, conform cerinței - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui cuvânt cu număr par/impar de litere, caractere suport obținute în prima jumătate a unui cuvânt, caractere suport obținute în a doua jumătate a unui cuvânt, cuvinte suport înlocuite/păstrate, transformare în memorie, tratare a cazului nu exista) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,10²], m și n, și elementele unui tablou bidimensional cu m linii și n coloane, numere naturale distincte din intervalul [0,10⁹]. Programul modifică tabloul în memorie, înlocuind valorile tuturor elementelor aflate pe coloana care conține numărul minim memorat în tablou cu valoarea elementului aflat pe ultima linie și ultima coloană. Tabloul obținut este afișat pe ecran, câte o linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spațiu.

Exemplu: pentru m=3, n=4 și tabloul 17 12 5 19 10 16 2 4 11 21 8 9 se obține tabloul 17 12 9 19 10 16 9 4 11 21 9 9 (10p.)

Figura din subiect
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional, conform cerinței - 1p. -citire a datelor, conform cerinței - 1p. -modificare a tabloului conform cerinței (*) - 6p. -afișare a datelor, conform cerinței - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect (algoritm de bază pentru determinarea unei valori minime, valori suport verificate pentru determinarea minimului, identificare coloană suport a minimului, identificare element aflat pe ultima linie și ultima coloană, elemente suport înlocuite/nemodificate, modificare în memorie) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Fiind date două numere naturale a și b, numim valoare generată de a și b un număr obținut din a prin alipirea la stânga sau la dreapta sa a cifrelor lui b, în ordinea în care apar în acesta. Exemplu: dacă a=123 și b=45, se pot obține două numere generate de acestea: 12345 și 45123.

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,50], m și n, și construiește în memorie un tablou bidimensional cu m linii, numerotate de la 1 la m, și n coloane, numerotate de la 1 la n, în care fiecare element este egal cu cea mai mică valoare generată de numerele de ordine ale liniei, respectiv coloanei pe care se află. Programul afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spațiu. Exemplu: pentru m=5 și n=4 se obține tabloul alăturat.

11 12 13 14 12 22 23 24 13 23 33 34 14 24 34 44 15 25 35 45

(10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. - declarare a unei variabile care să permită memorarea unui tablou bidimensional, conform cerinței - 1p. - citire a datelor - 1p. - construire a tabloului cerut (*) - 6p. - afișare a datelor în formatul cerut - 1p. - declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (acces la un element al tabloului, construire a unui număr generat prin alipirea unui număr de o cifră la o altă valoare, construire a unui număr generat prin alipirea unui număr de două cifre la o altă valoare, număr minim generat, elemente suport, construire în memorie) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Într-un text, de cel mult 100 de caractere, cuvintele sunt formate din litere ale alfabetului englez și sunt separate prin câte un spațiu. Textul are cel puțin două cuvinte.

Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat mai sus și afișează pe ecran mesajul DA și un număr natural n, separate printr-un spațiu, dacă toate cuvintele din text au câte n litere, sau mesajul NU în cazul în care nu toate cuvintele au același număr de litere. Exemplu: dacă textul citit este Ana are cel mai bun mar se afișează pe ecran DA 3 iar dacă textul citit este Ana are cel mai dulce mar se afișează pe ecran NU (10p.)

Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect: 10p. - declarare a unei variabile care să permită memorarea unui text, conform cerinței: 1p. - citire a datelor: 1p. - verificare a proprietății cerute (*): 6p. - afișare a datelor în formatul cerut: 1p. - declarare a variabilelor simple, corectitudine globală a programului¹): 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (algoritm principial corect de verificare a unei proprietăți, determinare a lungimii unui cuvânt, cuvinte suport verificate) conform cerinței. ¹) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

O grădină este împărțită în parcele pătrate identice, dispuse pe rânduri succesive. Toate parcelele de pe un rând conțin același tip de plante (doar flori sau doar gazon) și oricare două rânduri alăturate conțin tipuri diferite de plante, pe primul rând 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, fiecare parcelă cu flori trebuie să fie mai înaltă cu cel puțin un decimetru decât oricare dintre parcelele cu gazon de pe rândul vecin anterior. S-a hotărât tunderea parcelelor cu gazon prea înalte, astfel încât ele să fie aduse la înălțimea maximă permisă.

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ă.

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,10²], m și n, apoi elementele unui tablou bidimensional cu m linii și n coloane, numere naturale din intervalul [2,10], reprezentând înălțimile parcelelor, în ordinea dispunerii acestora în grădină, rând după rând, și pe fiecare rând de la stânga la dreapta. Programul modifică apoi tabloul în memorie corespunzător situației terenului după tunderea gazonului și afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu. Exemplu: pentru m=4, n=6 și tabloul 6 2 3 7 9 4 7 8 5 9 8 5 8 7 2 6 2 9 7 2 5 9 3 8 se obține tabloul 4 2 3 4 4 4 7 8 5 9 8 5 1 1 1 1 1 1 7 2 5 9 3 8 (10p.)

Figura din subiect
Arată baremul

SUBIECTUL al III-lea / 2. Pentru program corect - 10p. -declarare a unei variabile care să permită memorarea unui tablou bidimensional - 1p. -citire a datelor - 1p. -modificare a tabloului conform cerinței (*) - 6p. -afișare a datelor în formatul cerut - 1p. -declarare a variabilelor de tipuri simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui rând/a unei parcele cu flori/gazon, algoritm de bază pentru determinarea unei valori minime/maxime pentru o parcelă cu gazon dintr-o serie de valori, parcele suport parcurse pe un rând pentru determinarea valorii minime/maxime, identificare a unui rând cu gazon vecin anterior unui rând cu flori, înălțimi suport păstrate/actualizate pe un rând cu gazon, perechi de rânduri suport verificate/actualizate) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

2. La o expoziție sunt prezentate mai multe tipuri de flori, fiecare având un anumit cod. Zona de expunere este organizată pe n rânduri, fiecare având câte n parcele de dimensiune egală. Pe primul rând sunt expuse n tipuri de flori distincte, fiecare parcelă conținând flori de un anumit tip. Celelalte parcele sunt ocupate astfel: • toate parcelele aflate în dreapta diagonalei secundare a zonei de expunere sunt ocupate de gazon; • fiecare parcelă, aflată pe diagonala secundară a zonei de expunere sau în stânga acestei diagonale, conține flori cu un cod de cel mult două cifre, obținut din ultimele două cifre ale sumei codurilor florilor aflate în două parcele de pe rândul anterior, și anume cea de pe aceeași coloană, respectiv cea de pe coloana din dreapta sa; dacă prima dintre cifrele codului obținut este 0, ea este ignorată, ca în exemplu.

Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n∈[2,20]), apoi n numere naturale distincte din intervalul [0,10²), reprezentând, în această ordine, de la stânga la dreapta, codurile florilor din parcelele aflate pe primul rând al zonei de expunere; gazonul are codul -1. Programul construiește în memorie un tablou bidimensional cu n linii și n coloane, în care fiecare linie corespunde unui rând de parcele și fiecare element al liniei corespunde unei parcele, în ordinea acestora, și memorează codul plantelor (flori sau gazon) plasate în acea parcelă. Programul afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu. Exemplu: dacă se citesc numerele n=5, apoi 90, 10, 4, 27, 30 se obține tabloul alăturat. (10p.)

90 10 4 27 30 0 14 31 57 -1 14 45 88 -1 -1 59 33 -1 -1 -1 92 -1 -1 -1 -1

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. - variabilă de tip tablou bidimensional, declarată conform cerinței - 1p. - date citite, conform cerinței - 1p. - memorare a valorilor elementelor, conform cerinței (*) - 6p. - date afișate în formatul indicat, conform cerinței - 1p. - variabile simple, declarate conform cerinței, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (acces la cel puțin un element vecin pe linia anterioară, acces la cel puțin un element vecin pe coloana din dreapta, încadrare a elementelor în dimensiunile tabelei, valori și elemente suport pe prima linie, valori și elemente suport aflate pe diagonala secundară sau în stânga acesteia, valori și elemente suport aflate în dreapta diagonalei secundare), conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Pentru a identifica punctele în care se concentrează apa în albia unui râu în cazul secetei, se determină talvegul acesteia – linia care unește punctele cele mai adânci ale albiei. În acest scop s-au stabilit ns secțiuni transversale pe cursul apei, numerotate începând de la 1, și în cadrul fiecărei secțiuni s-a măsurat adâncimea apei în np puncte, numerotate începând de la 1. Din fiecare secțiune, în ordine, se include în talveg cel mai adânc punct al acesteia, iar dacă în secțiune sunt mai multe puncte aflate la aceeași adâncime, maximă, se va lua în considerare doar primul dintre ele, ca în exemplu.

Exemplu: pentru ns=6, np=4 și tabloul alăturat, se afișează pe ecran valorile: 1:3 2:2 3:2 4:2 5:4 6:3

Tabloul alăturat: 2 4 5 3 2 6 6 3 1 5 2 5 1 3 3 3 3 4 3 5 0 1 2 1

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ă.

Scrieți un program C/C++ care citește de la tastatură două numere naturale, ns și np (ns∈[1,10³], np∈[1,50]), și cele ns∙np elemente ale unui tablou bidimensional, valori naturale din intervalul [0,10²]. Fiecare linie a tabloului corespunde câte unei secțiuni, în ordinea numerotării acestora, iar valorile memorate pe linie reprezintă adâncimile celor np puncte stabilite pentru acea secțiune, în ordinea numerotării lor. Programul afișează pe ecran, pentru fiecare secțiune, o pereche formată din numărul de ordine al secțiunii și numărul de ordine al punctului său care s-a inclus în talveg. Numerele din fiecare pereche sunt afișate separate prin câte un caracter : (două puncte), iar fiecare pereche este urmată de un spațiu. (10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. - variabilă de tip tablou bidimensional, declarată conform cerinței - 1p. - date citite conform cerinței - 1p. - valori cu proprietatea cerută determinate (*) - 6p. - date afișate în format conform cerinței - 1p. - variabile simple declarate conform cerinței, corectitudine globală a programului¹⁾ - 1p.

(*) Se acordă câte 2p. pentru fiecare aspect specific (algoritm de bază pentru determinare a valorii maxime dintr-o serie de valori, determinare a poziției unui maxim într-o serie de valori, valori suport verificate pentru determinarea unui maxim pentru fiecare secțiune) conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Tabloul din exemplu: 1 1 2 30 3 10 1 2 1 13 12 1 1 2 3 1 7 1 20 1

În figura originală sunt evidențiate celulele de pe liniile 2 și 3 și coloanele 2 și 3, cu valorile: 10 1 13 12

Un joc folosește o tablă dreptunghiulară, pe care sunt reprezentate celule de dimensiune egală, dispuse pe m linii și pe n coloane. În fiecare celulă este înscris un număr natural. Numim pătrat de valoare p patru celule ale tablei, situate pe două linii consecutive și pe două coloane consecutive, cu proprietatea că suma valorilor înscrise în aceste celule este egală cu p. Scopul jocului este determinarea unui pătrat de valoare maximă.

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,20], m și n, apoi elementele unui tablou bidimensional cu m linii și n coloane, numere naturale din intervalul [0,10⁴], reprezentând numerele înscrise pe tabla de joc, în ordinea dispunerii celulelor corespunzătoare. Programul determină un pătrat de valoare maximă al tablei și afișează pe ecran această valoare.

Exemplu: pentru m=5, n=4 și tabloul alăturat, se afișează pe ecran valoarea 36, corespunzătoare pătratului evidențiat în figură. (10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. - variabilă de tip tablou bidimensional, declarată conform cerinței - 1p. - date citite conform cerinței - 1p. - valoare determinată conform cerinței (*) - 6p. - date afișate, conform cerinței - 1p. - variabile simple declarate conform cerinței, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (identificare a unui pătrat situat în interiorul tabloului, identificare a unui pătrat cu o latură pe prima linie/coloană a tabloului, identificare a unui pătrat cu o latură pe ultima linie/coloană a tabloului, determinare a valorii unui pătrat, algoritm principial corect de determinare a unei valori maxime, pătrate suport verificate pentru determinarea valorii maxime) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Suprafața unei scene a fost împărțită în zone dispuse ca elementele unui tablou bidimensional cu număr egal de linii și coloane. Fiecare instrument are alocată o zonă și este identificat printr-un număr natural. Dirijorul hotărăște eliminarea tuturor instrumentelor plasate pe diagonala principală a tabloului și rearanjarea celor păstrate, prin deplasarea unora dintre acestea cu câte o poziție spre stânga, astfel încât să nu existe zone intermediare libere, ca în exemplu. Scrieți un program C/C++ care citește de la tastatură numere naturale din intervalul [2,10²], și anume n și elementele unui tablou bidimensional cu n linii și n coloane, reprezentând numerele de identificare ale instrumentelor, în ordinea plasării lor inițiale pe scenă. Programul modifică apoi tabloul în memorie corespunzător hotărârii dirijorului și afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu. Exemplu: pentru n=4 și tabloul 20 30 80 52 71 93 64 51 62 81 55 49 90 65 32 22 se obține tabloul 30 80 52 71 64 51 62 81 49 90 65 32 (10p.)

Figura din subiect
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional - 1p. -citire a datelor - 1p. -modificare a tabloului (*) - 6p. -afișare a unui tablou în formatul cerut - 1p. -declarare a variabilelor de tip simplu, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (algoritm de bază de deplasare spre stânga, în memorie, a unor elemente de pe o linie, identificare a unui element aflat pe diagonala principală, elemente suport eliminate/păstrate) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Tabloul din exemplul original: 5 3 4 6 7 5 9 3 6 8 3 9 4 5 2 3 3 1 4 4

În imaginea originală sunt marcate prin umbrire parcelele de pe linia 1, coloana 2; linia 2, coloana 4; linia 4, coloana 3; linia 5, coloana 2. Marcajele și contururile exemplului sunt păstrate în pagina vizuală 2.

Pentru prevenirea eroziunii la Marea Neagră, autoritățile au hotărât înnisiparea unei plaje. Plaja a fost împărțită în parcele de formă pătrată cu latura de 1 metru, dispuse ca elementele unui tablou bidimensional, reținându-se nivelul fiecărei parcele, măsurat în metri, de la nivelul mării. Înnisiparea se realizează doar pe acele parcele care au nivelul strict mai mic decât al celei mai joase dintre parcelele vecine cu ea, adăugând nisip, astfel încât cele două să aibă același nivel. Două parcele sunt vecine dacă au o latură comună. Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,10²], m și n, apoi elementele unui tablou bidimensional cu m linii și n coloane, numere naturale din intervalul [1,10], reprezentând nivelurile parcelelor, în ordinea dispunerii acestora pe plajă. Programul afișează pe ecran cantitatea totală de nisip adăugată, măsurată în metri cubi. Exemplu: pentru m=5, n=4 și tabloul alăturat, se vor înnisipa parcelele marcate, pentru a fi aduse la nivelul parcelelor vecine corespunzătoare, și se va afișa valoarea 7 (1+3+1+2). (10p.)

Figura din subiect
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional - 1p. -citire a elementelor tabloului - 1p. -determinare a valorii cerute (*) - 6p. -afișare a datelor - 1p. -declarare a variabilelor simple, citire a datelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a două parcele vecine pentru cel puțin unul dintre cazurile de plasare a acestora, algoritm de bază pentru determinarea unei valori minime dintr-o serie de maximum patru, parcele vecine suport pentru determinarea minimului - pentru toate cazurile particulare, identificare a unei parcele care se înnisipează, algoritm de bază pentru însumarea unei serii de valori, valori suport însumate) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Se consideră o vocală oarecare a alfabetului englez, notată cu v, și o consoană oarecare a alfabetului englez, notată cu c. Litera v se numește vocală prietenă a lui c dacă în șirul literelor alfabetului englez, ordonat lexicografic, v îl precede pe c, iar între v și c nu există nicio vocală. Se consideră vocale literele a, e, i, o, u. Exemplu: e este vocală prietenă pentru consoanele f, g și h, dar nu este vocală prietenă pentru consoanele d și j. Un elev vrea să transmită unui prieten o parolă, codificată. Parola este formată dintr-un singur cuvânt de cel mult 50 de caractere, litere mici ale alfabetului englez, cel puțin una fiind consoană. Codificarea se face prin înlocuirea fiecărei consoane cu vocala sa prietenă, ca în exemplu. Scrieți un program C/C++ care citește de la tastatură un cuvânt, reprezentând o parolă de tipul precizat și determină, în memorie, forma codificată a acesteia. Programul afișează pe ecran parola codificată obținută. Exemplu: pentru parola rame se afișează oaie, iar pentru parola sport se afișează ooooo (10p.)

Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un șir de caractere - 1p. -citire a datelor - 1p. -determinare a șirului conform formei codificate (*) - 6p. -afișare a datelor - 1p. -declarare a variabilelor de tip simplu, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (acces la un caracter al unui șir, identificare a unei vocale/consoane, algoritm de bază pentru determinarea primei valori cu o anumită proprietate dintr-o serie/a unei vocale prietene, înlocuire a unui caracter într-un șir, caractere suport înlocuite/păstrate, transformare în memorie) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură numere naturale: n (n∈[2,20]), k (k∈[2,n]) și n·n numere din intervalul [0,10⁹], elemente ale unui tablou bidimensional cu n linii și n coloane. Programul transformă tabloul în memorie, interschimbând șirul elementelor situate pe linia a k-a, în stânga diagonalei principale, parcurse de la stânga la dreapta, cu șirul elementelor situate pe coloana a k-a, deasupra diagonalei principale, parcurse de sus în jos, ca în exemplu. Elementele tabloului obținut sunt afișate pe ecran, fiecare linie pe câte o linie a ecranului, cu elementele fiecărei linii separate prin câte un spațiu.

Exemplu: pentru n=5, k=4 și tabloul 2 4 3 5 6 8 0 9 8 7 2 6 9 0 5 6 1 3 6 9 7 3 9 4 2

se obține tabloul 2 4 3 6 6 8 0 9 1 7 2 6 9 3 5 5 8 0 6 9 7 3 9 4 2 (10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional - 1p. -citire a datelor - 1p. -transformare a tabloului conform cerinței (*) - 6p. -afișare a datelor - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui element situat pe linia cerută în stânga diagonalei principale, identificare a unui element situat pe coloana cerută deasupra diagonalei principale, plasare a unor elemente de pe linia sursă pe coloana destinație, plasare a unor elemente de pe coloana sursă pe linia destinație, valori suport deplasate/nemodificate, transformare în memorie) conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură două numere naturale n și k, apoi n cuvinte, separate prin Enter. Fiecare cuvânt este format din cel mult 10 caractere, numai litere mici ale alfabetului englez, iar numerele citite sunt din intervalul [1,20]. Programul afișează pe ecran, pe linii separate, primele k cuvinte dintre cele citite pentru care ultima literă este o vocală, sau doar mesajul nu exista dacă nu există k astfel de cuvinte. Se consideră vocale literele a, e, i, o, u. Exemplu: dacă se citesc datele alăturate, se afișează pe ecran: norii pluteau

Datele citite: 5 2 norii cumulus pluteau pe cer (10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un șir de caractere - 1p. -citire a tuturor datelor - 1p. -determinare a cuvintelor cerute (*) - 5p. -afișare a datelor și tratare a cazului nu exista (**) - 2p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (parcurgere a unei serii de cuvinte, acces la ultima literă a unui cuvânt, identificare a unei vocale/consoane, algoritm de bază pentru numărarea unei serii de valori, cuvinte suport numărate) conform cerinței. (**) Se acordă numai 1p. dacă s-au afișat atât unele cuvinte, cât și mesajul indicat. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,10²], k și n, și construiește în memorie un tablou bidimensional cu n linii și n coloane, astfel încât parcurgând diagonala principală, de sus în jos, să se obțină un șir strict crescător format din primii n multipli naturali nenuli ai lui k și parcurgând fiecare linie a sa, de la stânga la dreapta, să se obțină câte un șir strict crescător de numere naturale consecutive. Programul afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu. Exemplu: pentru k=3 și n=4 se obține tabloul de mai jos

3 4 5 6 5 6 7 8 7 8 9 10 9 10 11 12

(10p.)

Figura din subiect
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional - 1p. -citire a datelor - 1p. -construire a tabloului conform cerinței (*) - 6p. -afișare a datelor - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a poziției elementelor situate pe diagonala principală, plasare pe linii a unor valori consecutive la stânga diagonalei principale, plasare pe linii a unor valori consecutive la dreapta diagonalei principale, multipli ai lui k suport pe diagonala principală, valori suport plasate în afara diagonalei principale, construire în memorie) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Simulări, modele de subiect și subiecte de rezervă

Terenul alocat unui târg de jucării artizanale a fost împărțit în zone dispuse ca elementele unui tablou bidimensional cu număr egal de linii și coloane. Pentru a putea fi testate de copii, fiecare jucărie are alocată o zonă și este identificată printr-un număr natural. Organizatorii au hotărât eliminarea tuturor jucăriilor plasate pe diagonala secundară a tabloului și rearanjarea celor păstrate, prin deplasarea unora dintre acestea cu câte o poziție spre stânga, astfel încât să nu existe zone intermediare libere, ca în exemplu. Scrieți un program C/C++ care citește de la tastatură numere naturale din intervalul [2,10²], și anume n și elementele unui tablou bidimensional cu n linii și n coloane, reprezentând numerele de identificare ale jucăriilor, în ordinea plasării lor inițiale pe teren. Programul modifică apoi tabloul în memorie corespunzător hotărârii organizatorilor și afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu. Exemplu: pentru n=4 și tabloul 20 25 20 26 36 16 48 52 64 72 35 90 85 36 12 25 se obține tabloul 20 25 20 36 16 52 64 35 90 36 12 25 (10p.)

Figura din subiect
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional conform cerinței - 1p. -citire a datelor - 1p. -modificare a tabloului, conform cerinței (*) - 6p. -afișare a unui tablou în formatul cerut - 1p. -declarare a variabilelor de tip simplu, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (algoritm de bază de deplasare spre stânga, în memorie, a unor elemente de pe o linie, identificare a unui element aflat pe diagonala secundară, elemente suport eliminate/păstrate) conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

O metodă de criptare a unui text se bazează pe un cifru format din mai multe coduri, numere naturale. Prin criptare se elimină spațiile, apoi la fiecare pas se ia în considerare o pereche formată dintr-o literă a textului și un cod al cifrului, iar această literă se înlocuiește cu cea obținută prin deplasarea circulară, spre dreapta, în alfabetul limbii engleze, cu un număr de poziții egal cu codul din pereche. Prima pereche este formată din prima literă a textului și primul cod al cifrului, iar după fiecare pereche urmează cea formată din litera următoare a textului, parcurs de la stânga la dreapta, respectiv din codul următor din cifru, parcurs circular, spre dreapta, ca în exemplu. Într-un text de cel mult 100 de caractere cuvintele sunt formate din litere mari ale alfabetului limbii engleze și sunt separate prin unul sau mai multe spații. Alfabetul limbii engleze are 26 de litere. Scrieți un program C/C++ care citește de la tastatură trei numere naturale din intervalul [0,25], reprezentând, în această ordine, codurile unui cifru, apoi un text de tipul precizat. Programul modifică textul în memorie, criptându-l cu cifrul dat, apoi afișează pe ecran textul obținut. Exemplu: pentru cifrul cu codurile 3, 1, 6 și textul PIXEL BINE MAPAT se obține textul SJDHMHLOKPBVDU (primele patru perechi sunt P-3, I-1, X-6, E-3). (10p.)

Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect: 10p. -declarare a unei variabile care să memoreze un șir de caractere conform cerinței: 1p. -citire a datelor, conform cerinței: 1p. -codificare a șirului cerut (*): 6p. -afișare a datelor: 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾: 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unei litere/caracter spațiu, tratare a cel puțin unei perechi literă-cod cu deplasare la dreapta în alfabet, tratare a cel puțin unei perechi literă-cod cu deplasare circulară în alfabet, deplasare circulară în cadrul codurilor, caractere suport modificate/eliminate, modificare în memorie) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Într-un tablou bidimensional, două coloane sunt numite stabile dacă suma valorilor de pe una dintre ele este egală cu suma valorilor de pe cealaltă, iar cele două coloane sunt consecutive în tablou.

Exemplu: pentru m=6, n=7 și tabloul alăturat, se afișează pe ecran perechile de mai jos, nu neapărat în această ordine 0 1 1 2 5 6

Tabloul alăturat: 2 6 1 0 4 0 0 0 3 5 2 3 1 0 2 0 0 0 1 0 1 6 0 5 0 6 0 1 1 3 0 0 0 1 0 1 0 1 0 2 0 0

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [1,20], m și n, și m·n numere naturale din intervalul [0,10), elemente ale unui tablou bidimensional cu m linii și n coloane, numerotate începând de la 0. Programul afișează pe ecran toate perechile de numere x și y (x<y), pentru care coloanele x și y sunt stabile în tabloul dat, sau mesajul nu exista, dacă nu există astfel de coloane. Fiecare pereche se afișează pe câte o linie a ecranului, cu cele două valori în ordine strict crescătoare, separate prin câte un spațiu. (10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să permită memorarea unui tablou bidimensional, conform cerinței - 1p. -citire a datelor - 1p. -determinare a valorilor cerute (*) - 6p. -afișare a datelor în formatul cerut și tratare a cazului nu exista - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (algoritm de bază pentru determinarea sumei unei serii de valori, elemente suport pentru calculul sumei elementelor unei coloane, perechi suport determinate) conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,10²], k și n (k≥n), și construiește în memorie un tablou bidimensional cu n linii și n coloane, astfel încât parcurgând diagonala principală, de sus în jos, să se obțină un șir strict crescător format din primii n multipli naturali nenuli ai lui k, și parcurgând fiecare linie a sa, de la stânga la dreapta, să se obțină câte un șir strict descrescător de numere naturale consecutive. Programul afișează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu. Exemplu: pentru k=5 și n=4 se obține tabloul alăturat. (10p.) 5 4 3 2 11 10 9 8 17 16 15 14 23 22 21 20

Figura din subiect
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional - 1p. -citire a datelor - 1p. -construire a tabloului conform cerinței (*) - 6p. -afișare a datelor - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a poziției elementelor situate pe diagonala principală, plasare pe linii a unor valori consecutive ordonate descrescător la stânga diagonalei principale, plasare pe linii a unor valori consecutive ordonate descrescător la dreapta diagonalei principale, multipli ai lui k suport pe diagonala principală, valori suport plasate în afara diagonalei principale, construire în memorie) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Două cuvinte se numesc asemenea dacă sunt distincte și au același număr de vocale. Se consideră vocale literele a, e, i, o, u.

Scrieți un program C/C++ care citește de la tastatură un număr natural n (n∈[1,10²]), apoi n cuvinte, separate prin Enter. Fiecare cuvânt este format din cel mult 20 de caractere, numai litere mici ale alfabetului englez. Programul afișează pe ecran, separate prin câte un spațiu, toate cuvintele asemenea cu ultimul cuvânt citit, sau mesajul nu exista dacă nu există astfel de cuvinte.

Exemplu: dacă se citesc datele alăturate, se afișează pe ecran, nu neapărat în această ordine, cuvintele: lalelele brandusele

Datele citite: 9 mereu primavara infloresc ghioceii lalelele si brandusele de primavara

(10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să permită memorarea cuvintelor, conform cerinței - 1p. -citire a datelor - 1p. -determinare a cuvintelor conform cerinței (*) - 6p. -afișare a cuvintelor în formatul cerut și tratare a cazului nu exista - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (algoritm de bază pentru numărare a unei serii de valori, identificare a unei vocale/consoane, vocale suport numărate pentru un cuvânt, identificare cuvinte identice/distincte, identificare a două cuvinte cu același număr de vocale, cuvinte suport asemenea identificate) conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Parcarea unui mall are locuri de parcare dispuse pe nr rânduri, câte np pe fiecare rând, unul lângă altul. Trei prieteni vin cu câte o mașină la mall și caută un triplet de locuri libere alăturate, plasate toate trei doar pe primul sau toate trei doar pe ultimul rând al parcării. Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [3,50], nr și np, reprezentând numărul de rânduri din parcare, respectiv numărul de locuri de pe fiecare rând, apoi nr∙np valori din mulțimea {0,1}, elemente ale unui tablou bidimensional cu nr linii și np coloane, reprezentând, în ordinea dispunerii lor pe rânduri, starea locurilor de parcare (0, pentru loc liber, sau 1, pentru loc ocupat). Programul afișează pe ecran numărul de triplete de locuri libere pe care le pot găsi prietenii. Exemplu: pentru nr=4, np=5 și tabloul alăturat, se afișează pe ecran valoarea 3 (pe prima linie pot găsi tripletul format din al doilea, al treilea și al patrulea loc, iar pe ultima linie pot găsi tripletul format din primul, al doilea și al treilea loc sau tripletul format din al doilea, al treilea, și al patrulea loc). (10p.)

1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1

Figura din subiect
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional, conform cerinței - 1p. -citire a datelor, conform cerinței - 1p. -determinare a valorii cerute (*) - 6p. -afișare a datelor, conform cerinței - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui loc liber/ocupat, identificare a cel puțin două elemente plasate pe coloane consecutive, algoritm de bază pentru numărarea unei serii de valori, identificare a cel puțin unui triplet de locuri libere, identificare a unui triplet de locuri libere plasate pe primul/ultimul rând, triplete suport numărate) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Un text are cel mult 100 de caractere, iar cuvintele sale sunt formate numai din litere mici ale alfabetului englez, sunt distincte și sunt separate prin câte un spațiu. Scrieți un program C/C++ care citește de la tastatură un număr natural n (n∈[1,10²]), apoi un text de tipul precizat mai sus, și afișează pe ecran cuvinte ale acestuia, pe două linii separate, astfel încât prima linie să conțină mulțimea cuvintelor care au mai puțin de n litere, iar a doua linie să conțină mulțimea cuvintelor care au mai mult de n litere. Cuvintele de pe fiecare linie sunt afișate într-o ordine oarecare, iar dacă una dintre cele două mulțimi este vidă, se afișează pe ecran doar mesajul nu exista. Exemplu: pentru n=3 și textul era o apa rece si cu gust bun se poate afișa pe ecran textul alăturat. (10p.)

o si cu rece gust

Arată baremul

2. Pentru program corect - 10p. - declarare a unei variabile care să memoreze un șir de caractere - 1p. - citire a datelor - 1p. - afișare a cuvintelor conform cerinței (*) - 6p. - tratare a cazului nu exista - 1p. - declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (obținere a unui cuvânt, determinare a lungimii unui cuvânt, cuvinte suport analizate, afișare consecutivă a cuvintelor din aceeași mulțime, ordine a mulțimilor de cuvinte, afișare pe două linii separate) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Un șablon este un text în care cuvintele sunt separate prin câte un spațiu și sunt formate fie numai din litere mici și mari ale alfabetului englez, fie numai din caractere *, în ultimul caz numindu-se cuvinte generice. Lungimea unui cuvânt este egală cu numărul de caractere care îl compun. Un computer generează o frază pe baza unui astfel de șablon, prin înlocuirea fiecărui cuvânt generic cu unul dintre cuvintele de aceeași lungime, preluat dintr-o listă dată.

Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n∈[1,100]), și o listă de n cuvinte, urmată de un șablon de tipul precizat. Fiecare cuvânt din listă este format din maximum 10 litere mici și mari ale alfabetului englez și la citire este introdus singur pe linie. Șablonul conține maximum 100 de caractere. Programul obține în memorie și apoi afișează pe ecran una dintre frazele care pot fi generate pe baza șablonului și a listei citite sau mesajul imposibil dacă nu se poate genera o astfel de frază.

Exemplu: dacă n=6, iar lista de cuvinte este cea alăturată, rece placuta acasa calduta innorata soare

pentru șablonul Era o vreme ******* si ***** din belsug ***** se generează fraza Era o vreme placuta si soare din belsug soare sau fraza Era o vreme calduta si soare din belsug acasa etc., iar pentru șablonul *** o vreme ******* si ************ se afișează mesajul imposibil. (10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. - declarare a unor variabile care să permită memorarea unei liste de cuvinte și a unui șablon/fraze, conform cerinței - 1p. - citire a datelor, conform cerinței - 1p. - determinare a unei fraze conform cerinței (*) - 6p. - afișare a frazei și tratare a cazului imposibil - 1p. - declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (cuvinte suport analizate în șablon, identificare a unui cuvânt generic, algoritm de bază de căutare, identificare a unui cuvânt adecvat pe baza lungimii acestuia, adăugare/înlocuire în memorie a unui cuvânt într-un șir, caractere suport înlocuite/adăugate/păstrate – inclusiv spații între cuvinte) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Suprafața unui loc de joacă pentru copii este împărțită în n·n zone de formă pătrată dispuse pe n rânduri și n coloane, numerotate de la 1 la n, în fiecare zonă fiind plasat un tobogan, un leagăn, un balansoar sau un carusel. Zonelor li se atribuie câte un cod, în funcție de destinație: codul 0 pentru tobogan, codul 1 pentru leagăn, codul 2 pentru balansoar și codul 3 pentru carusel. Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n∈[1,10²]), și cele n·n elemente ale unui tablou bidimensional, reprezentând codurile corespunzătoare zonelor din locul de joacă, în ordinea parcurgerii lor rând după rând, și a fiecărui rând de la stânga la dreapta. Programul determină zonele destinate plasării câte unui carusel, care NU au nicio latură comună cu o zonă cu tobogan și, pentru fiecare dintre acestea, afișează pe ecran numărul de ordine al rândului pe care se află. Numerele afișate sunt separate prin câte un spațiu, iar dacă nu există nicio astfel de zonă, se afișează pe ecran mesajul nu exista. Exemplu: pentru n=6 și tabloul alăturat se afișează pe ecran, nu neapărat în această ordine, numerele: 2 3 3 6. (10p.)

2 0 0 2 1 3 3 1 3 1 2 0 2 1 3 3 2 0 0 2 1 3 1 1 3 1 2 0 0 2 0 0 0 2 1 3

Figura din subiect
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze codurile - 1p. -citire a datelor - 1p. -determinare a zonelor cu proprietatea cerută (*) - 6p. -afișare a datelor și tratare a cazului nu exista - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect al cerinței (identificare a unei zone destinate unui carusel/tobogan, zone vecine suport pentru un carusel din interiorul suprafeței, zone vecine suport pentru un carusel de pe rândul 1/n al suprafeței, zone vecine suport pentru un carusel de pe coloana 1/n a suprafeței, zone vecine suport pentru un carusel din colțurile suprafeței, nicio latură comună cu o zonă cu tobogan). ¹ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Într-un text de cel mult 100 de caractere cuvintele sunt separate prin câte un spațiu și sunt formate din litere mari ale alfabetului englez, iar dacă sunt scrise prescurtat sunt urmate de caracterul . (punct). Textul reprezintă denumirea științifică a unei păsări și doar cuvintele din mulțimea {FAMILIA, GENUL, SPECIA}, specifice sistemului de clasificare a organismelor, sunt mereu prescurtate, prin eliminarea ultimelor lor litere. Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat și construiește în memorie, apoi afișează pe ecran denumirea științifică, în care pentru cuvintele specifice sistemului de clasificare a organismelor se păstrează doar primele trei litere, scrise cu litere mici, și urmate de punct, ca în exemplu. Exemplu: pentru textul FAMIL. PHASIANIDAE GEN. MELEAGRIS SP. GALLOPAVO sau pentru textul FAM. PHASIANIDAE G. MELEAGRIS SPECI. GALLOPAVO se obține fam. PHASIANIDAE gen. MELEAGRIS spe. GALLOPAVO (10p.)

Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un șir de caractere - 1p. -citire a datelor - 1p. -determinare a șirului cerut (*) - 6p. -afișare a datelor - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (identificare a unui cuvânt, identificare a unui cuvânt complet/prescurtat, identificare a cuvântului corespunzător celui prescurtat, înlocuire a unui subșir cu un alt subșir, cuvinte suport înlocuite/păstrate, construire în memorie ca șir de caractere) conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Un text are cel mult 100 de caractere și este format din cuvinte, numere naturale și spații. Textul conține cel puțin un număr, iar cuvintele sunt formate numai din litere mici ale alfabetului englez. Cuvintele și numerele sunt separate prin câte un spațiu, ca în exemplu.

Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat și afișează pe ecran un număr natural k, dacă toate numerele care intră în componența sa au câte k cifre, sau mesajul NU, în caz contrar.

Exemplu: pentru textul la zoo sunt 100 de cocori si 120 de pasari flamingo sau pentru textul la zoo sunt 100 de cocori se afișează 3

iar pentru textul la zoo sunt 100 de cocori si 10 pasari flamingo se afișează NU

(10p.)

Arată baremul

SUBIECTUL al III-lea, 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un șir de caractere - 1p. -citire a datelor - 1p. -determinare a valorii cerute (*) - 6p. -tratare a cazului NU și afișare fie a numărului cerut, fie a mesajului indicat - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect specific (parcurgere a unei serii de cuvinte, identificare a unei litere/cifre, identificare a unui număr, identificare a numărului de caractere ale unui subșir, algoritm de bază pentru verificarea unei proprietăți, cuvinte/numere suport verificate) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Un text, de cel mult 250 de caractere, reprezintă o listă cu date de identificare ale invitaților la o petrecere; fiecare invitat are un prenume și un nume, care apar în listă în această ordine, urmate de simbolul ; (punct și virgulă), ca în exemplu. Numele și prenumele sunt formate din câte un singur cuvânt, compus din litere mari ale alfabetului englez, și sunt separate printr-un spațiu. Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat mai sus apoi, de pe rândul următor, un cuvânt, x, și afișează pe ecran, separate prin câte un spațiu, numele tuturor invitaților care au prenumele x, ca în exemplu, sau mesajul NU dacă nu există astfel de invitați. Exemplu: dacă lista este DAN MARIS; DANILA PREPELEAC; DAN POPA; EDANA DAN; și cuvântul x este DAN se afișează pe ecran MARIS POPA (10p.)

Arată baremul

2. Pentru program corect: 10p. -declarare a unei variabile care să memoreze un șir de caractere: 1p. -citire a datelor în ordinea indicată: 1p. -determinare a cuvintelor/numelor cerute (*): 6p. -tratare a cazului NU și afișare fie a numelor în formatul cerut, fie a mesajului indicat: 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾: 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui cuvânt în cadrul unui șir, identificare a unui cuvânt egal cu un cuvânt dat x, identificare a unui nume corespunzător unui prenume, tratare a cazului în care cuvântul x dat corespunde unui nume, caractere utile într-un nume, cuvinte suport identificate) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,10²], m și n, și construiește în memorie un tablou bidimensional cu m linii și n coloane, cu proprietatea că parcurgându-l linie cu linie de sus în jos și fiecare linie de la stânga la dreapta, se obține șirul primelor m*n pătrate perfecte pare, ordonat strict descrescător, ca în exemplu.

Elementele tabloului obținut se afișează pe ecran, fiecare linie a tabloului pe câte o linie a ecranului, valorile de pe aceeași linie fiind separate prin câte un spațiu.

Exemplu: pentru m=2, n=3 se obține tabloul alăturat. (10p.) 100 64 36 16 4 0

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional - 1p. -citire a datelor - 1p. -construire a tabloului cerut (*) - 6p. -afișare a datelor în formatul cerut - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (numere pare, numere pătrate perfecte, ordonare valori pe linii, ordonare valori pe coloane, valori suport, construire în memorie) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Scrieți un program C/C++ care citește de la tastatură numere naturale, în această ordine: n (n∈[2,20]), apoi n∙n numere din intervalul [0,10²], elemente ale unui tablou bidimensional cu n linii și n coloane, iar la final valoarea k (k∈[2,n]); programul transformă tabloul în memorie, prin deplasarea circulară spre dreapta, cu câte o poziție, a tuturor valorilor aflate pe linia a k-a, în stânga diagonalei principale, ca în exemplu. Elementele tabloului obținut sunt afișate pe ecran, linie cu linie, fiecare linie pe câte o linie a ecranului, cu elementele fiecărei linii separate prin câte un spațiu.

Exemplu: pentru n=6, k=5 și tabloul 0 1 4 5 3 2 0 6 0 7 5 0 4 0 0 6 0 6 2 0 0 5 0 0 3 0 6 4 0 8 0 6 9 0 0 0

se obține tabloul 0 1 4 5 3 2 0 6 0 7 5 0 4 0 0 6 0 6 2 0 0 5 0 0 4 3 0 6 0 8 0 6 9 0 0 0

(10p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al III-lea / 2. Pentru program corect - 10p. -declarare a unei variabile care să memoreze un tablou bidimensional - 1p. -citire a datelor conform cerinței - 1p. -transformare a tabloului conform cerinței (*) - 6p. -afișare a datelor cerute - 1p. -declarare a variabilelor simple, corectitudine globală a programului¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect specific (acces la un element al tabloului, identificare a unui element situat în stânga diagonalei principale, deplasare spre dreapta a unor elemente, deplasare circulară a unui element, valori suport deplasate/nemodificate, transformare în memorie) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Exersează zilnic cu Academos

Aplicația pentru Evaluarea Națională și Bac. În curând pe:

  • App Store
  • Google Play