Textul subiectului și baremului
Test de antrenament BAC Informatică Științe ale Naturii C/C++ 2020 – testul 2
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 2
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 2
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. Indicați o expresie care are valoarea 1 dacă şi numai dacă numărul memorat în variabila întreagă x
aparţine intervalului închis [-20,20].
a. !(x<-20) || (x>20) b. x>-20 || x<20
c. !(x+20<0 && x-20>0) d. x+20>=0 && x-20<=0
2. Pentru a verifica dacă în tabloul unidimensional (4,5,7,9,10,18,27) 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. 3 și 5 b. 4 și 18 c. 9 și 10 d. 27 și 30
3. Variabilele i și j sunt de tip întreg. Indicați expresia care poate înlocui zona punctată astfel încât, în
urma executării secvenței obținute, să se afișeze pe ecran valorile alăturate.
for(i=0;i<5;i++)
{ for(j=0;j<7;j++)
cout<<.........<<" "; | printf("%d ",.........);
cout<<endl; | printf("\n");
}
0 1 2 3 4 5 6
1 2 3 4 5 6 0
2 3 4 5 6 0 1
3 4 5 6 0 1 2
4 5 6 0 1 2 3
a. i/10+j/10 b. i%10+j%10 c. (i+j)%7 d. (i+j)/7
4. Variabilele E, x şi y sunt de tip float şi au valori nenule. Instrucţiunea prin care i se
atribuie variabilei E rezultatul evaluării expresiei alăturate este: 𝟐𝟎 + 𝐲
𝐱𝟐
𝟏𝟎
a. E=20+(y/pow(x,2)/10); b. E=(20+y/pow(x,2))/10;
c. E=(20+y)/pow(x,2)/10; d. E=20+y/pow(x,2)/10;
5. O secvenţă de instrucţiuni care realizează corect interschimbarea valorilor variabilelor reale x şi y este:
a. x=y-x; y=y-x; x=x+y; b. x=y-x; y=y-x; x=x-y;
c. x=x-y; y=x-y; x=x+y; d. x=x-y; y=x-y; x=y-x;Subiectul · pagina 2
Ministerul Educaţiei și Cercetării Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Testul 2 Limbajul C/C++ Filieră teoretică, profil real, specializare științe ale naturii Pagina 2 din 2 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) m0 ┌repetă │ cn%10; n[n/10] │┌dacă c=0 atunci c2 ││altfel ││┌dacă c%2=0 atunci │││c0 ││└■ │└■ │ mm*10+c └până când n=0 scrie m a. Scrieţi valoarea afişată dacă se citeşte numărul 25940464. (6p.) b. Scrieţi trei numere de cinci cifre care pot fi citite astfel încât, pentru fiecare dintre acestea, în urma executării algoritmului să se afișeze 2020. (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ă cu test inițial. (6p.) 2. Pentru fiecare dintre cele trei animale dintr-o rezervație se memorează date specifice: un cod, reprezentând specia, și vârsta. Variabilele cod1 și v1 memorează datele specifice pentru primul animal, variabilele cod2 și v2 datele specifice pentru cel de al doilea animal, iar variabilele cod3 și v3 datele specifice ale celui de al treilea animal. Scrieți o secvență de instrucțiuni în urma executării căreia să se afișeze pe ecran codul celui mai în vârstă animal. (6p.) 3. Tablourile unidimensionale A şi B au valorile: A=(2,5,7,8,10) și B=(23,17,10,9,4). Scrieți elementele tabloului obținut în urma interclasării tablourilor A și B în ordine descrescătoare, în ordinea apariției lor în acesta. (6p.) SUBIECTUL al III-lea (30 de puncte) 1. Două numere distincte a și b sunt numite d-fii ai unui număr natural n dacă a∙b=n. Se citește un număr natural nenul, n, și se cere să se scrie toate perechile distincte de numere naturale cu proprietatea că sunt d-fii ai lui n. Fiecare pereche este afișată încadrată între paranteze rotunde, numerele din pereche fiind afișate în ordine strict descrescătoare, separate printr-un spațiu. Scrieţi, în pseudocod, algoritmul de rezolvare a problemei enunțate. Exemplu: dacă n=12 se scrie, nu neapărat în această ordine, (12 1)(6 2)(4 3) iar dacă n=16 se scrie (16 1)(8 2) (10p.) 2. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural, n (n[2,102]), apoi cele n elemente ale unui tablou unidimensional, numere întregi din intervalul [-102,102], dintre care cel puțin unul este pozitiv și cel puțin unul este negativ. Programul transformă în memorie tabloul, eliminând din componenţa sa toate numerele negative, apoi afişează pe ecran elementele tabloului obţinut. Exemplu: pentru n=10 și taboul (2,5,2,4,-3,4,-2,-7,-2,9) se obține taboul (2,5,2,4,4,9) (10p.) 3. Fişierul bac.in conţine un şir de numere naturale distincte, din intervalul [1,109]. Numerele din şir sunt separate prin câte un spaţiu şi cel puţin două dintre ele au penultima cifră 2 și ultima cifră 0. Se cere să se afișeze pe ecran cele mai mari două numere din şir cu proprietatea că au penultima cifră 2 și ultima cifră 0. Numerele determinate sunt afişate în ordine crescătoare, separate prin câte un spaţiu. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate şi al timpului de executare. Exemplu: dacă fişierul conţine numerele 9731 50 112 20 8 16 8520 3 2520 1520 pe ecran se vor afişa, în această ordine, numerele: 2520 8520 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 2 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 2 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 2d 3c 4b 5a 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a) Răspuns corect: 20950 6p. b) Pentru răspuns corect 6p. Se acordă câte 2p. pentru fiecare dintre cele trei numere conform cerinţei (oricare număr de forma x0y0z, unde x, y și z sunt cifre pare nenule). 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 valorii cerute - afișare a datelor -corectitudine globală a secvenței1) 6p. 2p. 2p. 1p. 1p. 3. Răspuns corect: 23,17,10,10,9,8,7,5,4,2 6p. (*) Se acordă câte 2p. pentru fiecare aspect specific (număr de elemente, ordine, valori suport) conform cerinței. SUBIECTUL al III - lea (30 de puncte) 1. Pentru algoritm corect -citire a datelor -determinare a valorilor cerute (*) -scriere a datelor în formatul cerut (**) -scriere principial corectă a structurilor de control, corectitudine globală a algoritmului1) (***) 10p. 1p. 4p. 3p. 2p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui d-fiu, identificare a unei perechi, numere distincte în pereche) conform cerinței. (**) Se acordă câte 1p. pentru fiecare aspect specific (paranteze, spațiere, ordine) conform cerinței. (***) Se va puncta orice formă corectă de structură repetitivă sau decizională. 2. Pentru program corect -declarare a unei variabile care să memoreze un tablou unidimensional -citire a datelor -transformare a tabloului (*) -afişare a datelor -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (eliminare a unui element, elemente suport eliminate, transformare în memorie) conform cerinţei.
Baremul · pagina 2
Ministerul Educaţiei și Cercetării Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Testul 2 Filieră teoretică, profil real, specializare științe ale naturii Barem de evaluare şi de notare Pagina 2 din 2 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 și memorează cele mai mari două numere cu proprietatea cerută în două variabile, fie acestea max1, max2 (max1<max2); fiecare termen curent citit se compară cu valorile maxime memorate, pe rând (max2, max1), iar acestea se actualizează după caz.. 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.