Textul subiectului și baremului
Test de antrenament BAC Informatică Științe ale Naturii C/C++ 2020 – testul 3
Acesta este textul selectabil extras automat din documentele PDF ale acestei variante. Pentru formule, tabele, pseudocod sau grafice, verifică pagina originală din PDF înainte de a rezolva exercițiile.
Subiectul
Deschide PDF-ul originalSubiectul · pagina 1
Ministerul Educaţiei și Cercetării Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Testul 3 Limbajul C/C++ Filieră teoretică, profil real, specializare științe ale naturii Pagina 1 din 2 Examenul de bacalaureat naţional 2020 Proba E. d) Informatică Limbajul C/C++ Testul 3 Filieră teoretică, profil real, specializare științe ale naturii • Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu. • Timpul de lucru efectiv este de 3 ore. • 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ă. SUBIECTUL I (20 de puncte) Pentru fiecare dintre itemii de la 1 la 5, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect. Fiecare răspuns corect se notează cu 4 puncte. 1. Variabilele x și y sunt de tip întreg și memorează numere naturale nenule. Indicaţi o expresie C/C++ care are valoarea 1 dacă şi numai dacă numărul memorat în x are cifra unităţilor egală cu 2 şi este un multiplu al numărului memorat în y. a. x%2==10 || y%x==0 b. x%10==2 || y%x==0 c. x%2==10 && x%y==0 d. x%10==2 && x%y==0 2. Pentru a verifica dacă în tabloul unidimensional (49,38,20,18,16,8,4) există elementul cu valoarea x se aplică metoda căutării binare. Știind că valoarea x a fost comparată cu trei elemente ale tabloului pe parcursul aplicării metodei, două valori ale lui x ar putea fi: a. 70 și 18 b. 49 și 16 c. 38 și 2 d. 20 și 8 3. Se consideră două tablouri unidimensionale A şi B: A=(2,3,7,12,16), iar B=(1,4,10,21,25). În urma interclasării lor în ordine crescătoare se obţine tabloul cu elementele: a. (1,4,10,21,25,2,3,7,12,16) b. (1,2,3,4,7,10,12,16,21,25) c. (1,2,3,4,7,10,12,21,16,25) d. (1,3,7,12,16) 4. O expresie C/C++ care are valoarea 1 este: a. floor(20)+1==ceil(20) b. floor(20.19)==ceil(20.19) c. floor(20.19)==floor(20.91) d. floor(20.91)==ceil(20.19) 5. Variabilele x, y, z şi w memorează câte un număr real, astfel încât expresia C/C++ alăturată are valoarea 1. Variabila care are ca valoare cel mai mare dintre numerele menţionate mai sus este: y<w && z<x && w<z a. x b. y c. z d. w SUBIECTUL al II-lea (40 de puncte) 1. Algoritmul alăturat este reprezentat în pseudocod. S-a notat cu a%b restul împărţirii numărului natural a la numărul natural nenul b şi cu [c] partea întreagă a numărului real c. citeşte n (număr natural, n>9) c1n%10; n[n/10]; c2n%10 ┌dacă c1=c2 atunci s0 │altfel │┌dacă c1>c2 atunci s1 ││altfel s-1 │└■ └■ ┌repetă │ c1n%10; n[n/10]; c2n%10 └până când (c1-c2)*s≤0 scrie s,' ',n a. Scrieţi ce se afișează dacă se citeşte valoarea 2754578. (6p.) b. Scrieţi două numere care pot fi citite astfel încât, în urma executării algoritmului pentru primul dintre ele să se afișeze 1 0, iar pentru al doilea să se afișeze -1 0. (6p.) c. Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.) d. Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind adecvat structura repetă...până când cu o structură repetitivă de alt tip. (6p.)
Subiectul · pagina 2
Ministerul Educaţiei și Cercetării
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Testul 3
Limbajul C/C++
Filieră teoretică, profil real, specializare științe ale naturii
Pagina 2 din 2
2. Pentru un cerc se memorează coordonatele reale (abscisa și ordonata), în planul xOy, ale centrului
cercului. Variabilele c1x și c1y memorează coordonatele centrului unui cerc, iar variabilele c2x și c2y
memorează coordonatele centrului unui alt cerc Declarați corespunzător cele patru variabile și scrieți o
secvență de instrucțiuni în urma executării căreia să se afișeze pe ecran, separate printr-un spațiu,
coordonatele cercului care are centrul mai aproape de originea sistemului de coordonate. (6p.)
3. Variabilele a și aux memorează câte un caracter, iar variabilele i şi k sunt de tip întreg. De la tastatură
se citesc numai litere mari ale alfabetului englez. Fără a utiliza alte variabile, scrieţi secvența înlocuind
punctele de suspensie astfel încât, în urma executării secvenţei obținute, variabila k să memoreze
numărul de litere mari citite, cu excepţia vocalei A, dacă în șirul inițial aceasta este alături de vocala I.
Exemplu: dacă se citesc literele A L I A N T A
sau literele A L A I N T A
variabila k va memora 6 (pentru literele A L I N T A).
(10p.)
...........
for(i=1;i<=7;i++)
{ cin>>a; | scanf(“%c”,&a);
.................
}
SUBIECTUL al III-lea (30 de puncte)
1. Se citesc două numere naturale nenule, n şi m, și se cere să se scrie numărul valorilor prime care se
regăsesc atât în descompunerea în factori primi a lui n, cât și în descompunerea în factori primi a lui m.
Scrieţi, în pseudocod, algoritmul de rezolvare a problemei enunțate.
Exemplu: dacă n=750 şi m=490, atunci se scrie 2 (750=2353, 490=2572). (10p.)
2. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale, n și k, (n∈[2,20],
k∈[1,n]), şi construieşte în memorie un tablou unidimensional cu n elemente, având proprietăţile:
• al k-lea element are valoarea 0;
• conţine, începând cu al k-lea element, de la dreapta la stânga, un şir strict crescător de numere
consecutive, iar începând cu al k-lea element, de la stânga la dreapta, tot un şir strict crescător de
numere consecutive.
Programul afişează pe ecran tabloul construit, cu elementele separate prin câte un spaţiu.
Exemplu: dacă n=10 și k=3 se afişează pe ecran tabloul 2 1 0 1 2 3 4 5 6 7 (10p.)
3. Fişierul bac.in conţine un şir de cel mult 106 numere întregi din intervalul [-109,109], separate prin
câte un spaţiu. Cel puţin două numere din șir sunt negative.
Se cere să se afişeze pe ecran lungimea maximă a unei secvenţe a şirului care începe şi se încheie cu
câte un număr negativ. O secvenţă este formată din termeni aflaţi pe poziţii consecutive în şir, iar
lungimea secvenței este egală cu numărul de termeni ai acesteia. Proiectați un algoritm eficient din
punctul de vedere al memoriei utilizate şi al timpului de executare.
Exemplu: dacă fişierul conţine numerele 12 25 -6 7 80 -75 101 -6 52 -124 87 99 210
pe ecran se afişează 8 (corespunzător secvenţei -6 7 80 -75 101 -6 52 -124).
a. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)
b. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei și Cercetării Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Testul 3 Filieră teoretică, profil real, specializare științe ale naturii Barem de evaluare şi de notare Pagina 1 din 2 Examenul de bacalaureat naţional 2020 Proba E. d) Informatică BAREM DE EVALUARE ȘI DE NOTARE (comun pentru limbajele C/C++ şi Pascal) Testul 3 Filieră teoretică, profil real, specializare științe ale naturii • Se punctează oricare alte modalităţi de rezolvare corectă a cerinţelor. • Nu se acordă punctaje intermediare, altele decât cele precizate explicit prin barem. Nu se acordă fracţiuni de punct. Se acordă 10 puncte din oficiu. Nota finală se calculează prin împărţirea punctajului total acordat pentru lucrare la 10. • Utilizarea unui tip de date care depăşeşte domeniul de valori precizat în enunţ este acceptată dacă acest lucru nu afectează corectitudinea în funcţionarea programului. SUBIECTUL I (20 de puncte) 1d 2b 3b 4c 5a 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a) Răspuns corect: 1 275 6p. Se acordă câte 3p. pentru fiecare dintre cele două valori conform cerinței. b) Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinţei (orice număr cu cifre în ordine strict crescătoare, respectiv orice număr cu cifre în ordine strict descrescătoare). c) Pentru program corect -declarare variabile -citire date -afişare date -instrucţiuni de decizie (*) -instrucţiune repetitivă -atribuiri -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 3p. 2p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile de decizie este conform cerinței. d) Pentru algoritm pseudocod corect -echivalenţă a prelucrării realizate, conform cerinţei (*) -corectitudine globală a algoritmului1) 6p. 5p. 1p. (*) Se acordă numai 2p. dacă algoritmul are o structură repetitivă conform cerinţei, principial corectă, dar nu este echivalent cu cel dat. Se va puncta orice formă corectă de structură repetitivă conform cerinței. 2. Pentru rezolvare corectă -definire a variabilelor conform cerinței -determinare a centrului cerut - afișare a datelor -corectitudine globală a secvenței1) 6p. 2p. 2p. 1p. 1p. 3. Pentru rezolvare corectă -inițializare a variabilelor -afișare a valorilor conform cerinței (*) -corectitudine globală a secvenței1) 6p. 1p. 4p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a literelor A și I, identificare a succesiunii de litere A I, identificare a succesiunii de litere I A, algoritm de numărare principial corect) conform cerinței. SUBIECTUL al III - lea (30 de puncte) 1. Pentru algoritm corect -citire a datelor -determinare a valorilor cerute (*) -afișare a datelor -scriere principial corectă a structurilor de control, corectitudine globală a algoritmului1) (**) 10p. 1p. 6p. 1p. 2p. (*) Se acordă câte 2p. pentru fiecare aspect al cerinței (identificare a unui divizor, divizori primi comuni, algoritm principial corect de numărare). (**) Se va puncta orice formă corectă de structură repetitivă sau decizională.
Baremul · pagina 2
Ministerul Educaţiei și Cercetării Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Testul 3 Filieră teoretică, profil real, specializare științe ale naturii Barem de evaluare şi de notare Pagina 2 din 2 2. Pentru program corect -declarare a unei variabile care să memoreze un tablou unidimensional -citire a datelor -construire a tabloului conform cerinței (*) -afişare a datelor -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui element situat pe o anumită poziție, atribuire valori pe poziția k, construire a unui șir crescător, construire a unui șir descrescător, valori suport, construire în memorie) conform cerinţei. 3. a) Pentru răspuns corect -coerenţă a descrierii algoritmului (*) -justificare a elementelor de eficienţă 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. (**) Se acordă numai 3p. dacă algoritmul este principial corect, dar nu oferă rezultatul cerut pentru toate seturile de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar care utilizează eficient memoria. O soluţie posibilă parcurge șirul din fișier, memorează poziția primului număr negativ, p1, precum și poziția ultimului număr negativ, p2. Valoarea cerută este p2-p1+1. b) Pentru program corect -operaţii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier -determinare a valorilor cerute (*),(**) -utilizare a unui algoritm eficient (***) -declarare a variabilelor, citire a datelor, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.