DauExamen
Bacalaureat 2023 Sesiunea iunie–iulie Mi 3h

Informatică 2023

Informatică – Mi – Bacalaureat 2023, sesiunea iunie–iulie (varianta 05)

Textul subiectului
Ministerul Educației Centrul Național de Politici și Evaluare în Educație Examenul național de bacalaureat 2023 Proba E. d) Informatică Limbajul C/C++ Varianta 5 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică • Toate subiectele sunt obligatorii. Se acordă zece puncte din oficiu. • Timpul de lucru efectiv este de trei 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ă. • În grafurile din cerințe oricare arc/muchie are extremități distincte și oricare două arce/muchii diferă prin cel puțin una dintre extremități. 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 expresia C/C++ care are cea mai mare valoare, comparativ cu celelalte trei expresii. a. 20*23/(2*2) b. 20/2*23/2 c. (20*23)/2 d. (20*23)/2*2 2. Subprogramul f este definit alăturat. Indicați ce se void f (int n) afișează în urma apelului de mai jos. { if(n!=0) f(n/2); cout<<n%2; | printf("%d",n%2); f(23); } a. 100111 b. 111010 c. 010111 d. 01251123 3. Variabila k este de tip întreg, iar variabila s permite memorarea unui șir strcpy(s,"bac2023"); de maximum 50 de caractere. Indicați valoarea variabilei k în urma s[s[2]-'a']='\0'; executării secvenței alăturate. k=strlen(s); a. 7 b. 6 c. 2 d. 1 4. Indicați un vector de „tați” corespunzător unui arbore cu 7 noduri, în care cel puțin unul dintre noduri are trei ascendenți. a. 0,1,2,1,1,1,2 b. 3,0,2,1,3,2,1 c. 4,3,0,3,4,4,3 d. 5,4,3,0,2,3,4 5. O companie de colectare a fructelor are 6 depozite, numerotate de la 1 la 6: depozitele 1, 3 și 5 conțin mere, depozitele 2 și 4 conțin pere, iar depozitul 6 conține piersici. Compania a construit 4 benzi de transport unidirecțional: de la depozitul 1 la depozitul 5, de la depozitul 5 la depozitul 2, de la depozitul 5 la depozitul 4 și de la depozitul 6 la depozitul 1. Dacă depozitele reprezintă vârfurile unui graf orientat, iar benzile de transport reprezintă arcele acestuia, indicați numărul minim de benzi de transport care pot fi adăugate, astfel încât graful obținut să aibă trei componente tare conexe, fiecare dintre acestea având vârfuri care corespund depozitelor cu același tip de fructe. a. 4 b. 3 c. 2 d. 1 SUBIECTUL al II-lea (40 de puncte) 1. Algoritmul alăturat este reprezentat în pseudocod. citeşte x (număr natural) S-a notat cu a%b restul împărţirii numărului natural a la numărul natural p1; m -1 nenul b, și cu [c] partea întreagă a numărului real c. ┌cât timp p≤x execută │ c[x/p]%10 a. Scrieţi valoarea afişată dacă se citește numărul 6907512. (6p.) │┌dacă c>m atunci b. Scrieţi două valori distincte din intervalul [100,999] care pot fi ││ mc; pp*10 citite astfel încât, în urma executării algoritmului, pentru fiecare ││altfel dintre acestea, să se afișeze o valoare identică cu cea citită. (6p.) ││ x[x/(p*10)]*p+x%p │└■ c. Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.) └■ d. Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind ┌dacă m≥0 atunci scrie x structura cât timp...execută cu o structură repetitivă cu test │ altfel scrie "nul" final. (6p.) └■ Probă scrisă la informatică Varianta 5 Limbajul C/C++ Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocaţională, profil militar, specializare matematică-informatică Pagina 1 din 2 Ministerul Educației Centrul Național de Politici și Evaluare în Educație 2. Utilizând metoda backtracking, se generează toate amestecurile de apă provenită din surse distincte din mulțimea {lac, mare, ocean, ploaie, râu}, astfel încât o sursă să fie de apă sărată și una sau două surse să fie de apă dulce. Marea și oceanul sunt surse de apă sărată, iar lacul, ploaia și râul sunt surse de apă dulce. Două amestecuri sunt distincte dacă diferă prin cel puțin o sursă a apei. Primele patru soluţii obţinute sunt, în această ordine: (lac, mare), (lac, mare, ploaie), (lac, mare, râu) şi (lac, ocean). Scrieți soluția generată imediat înainte și soluția generată imediat după (ocean, ploaie). (6p.) 3. Variabila f memorează, pentru fiecare dintre cele 10 soiuri de lalele care se vând într-o florărie, caracteristicile acestora: denumirea (șir de maximum 20 de caractere) și stocul, exprimat prin numărul de fire și prețul unui fir, în lei (numere naturale). Știind că expresiile de mai jos au ca valori denumirea primului soi de lalele, respectiv suma, în lei, necesară pentru a cumpăra toate lalelele din acest soi, scrieți în limbajul C/C++ definiția unei structuri cu eticheta lalea, care să permită memorarea informațiilor menționate pentru un soi de lalea, și declarați corespunzător variabila f. f[0].denumire f[0].stoc.nrFire*f[0].stoc.pretFir (6p.) SUBIECTUL al III-lea (30 de puncte) 1. Un număr natural nenul, n, se numește număr abundent dacă S(n)/n>S(k)/k, pentru orice număr natural nenul k (k≤n-1), unde s-a notat cu S(i) suma divizorilor pozitivi ai numărului natural nenul i. Subprogramul abundent are un singur parametru, n, prin care primește un număr natural (n∈[2,106]). Subprogramul returnează valoarea 1, dacă n este un număr abundent, sau valoarea 0, în caz contrar. Scrieți definiția completă a subprogramului. Exemplu: pentru n=6, subprogramul returnează valoarea 1 (S(6)/6=2, iar cel mai mare raport obținut pentru valori strict mai mici decât 6 este S(4)/4=1.75), iar pentru n=7 sau n=8, subprogramul returnează valoarea 0 (S(7)/7=1.14, S(8)/8=1.87). (10p.) 2. 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. Scrieți un program C/C++ care citește de la tastatură două numere naturale, ns și np (ns∈[1,103], np∈[1,50]), și cele ns∙np elemente ale unui tablou bidimensional, valori naturale din intervalul [0,102]. 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 2 4 5 3 secțiune, în ordinea numerotării lor. Programul afișează pe ecran, pentru fiecare secțiune, o 2 6 6 3 pereche formată din numărul de ordine al secțiunii și numărul de ordine al punctului său care 1 5 2 5 s-a inclus în talveg. Numerele din fiecare pereche sunt afișate separate prin câte un 1 3 3 3 caracter : (două puncte), iar fiecare pereche este urmată de un spațiu. 3 4 3 5 Exemplu: pentru ns=6, np=4 și tabloul alăturat, se afișează pe ecran valorile: 0 1 2 1 1:3 2:2 3:2 4:2 5:4 6:3 (10p.) 3. Un număr natural x este numit prefix al unui număr natural y dacă se obține din acesta prin eliminarea a cel puțin unei cifre de la dreapta sa, și este numit sufix al lui y dacă se obține din acesta prin eliminarea a cel puțin unei cifre de la stânga sa. Exemplu: 15 este prefix pentru 154 sau 1521, este sufix pentru 3415 sau 5115, dar nu este nici prefix, nici sufix pentru 15. Fișierul bac.txt conține maximum 106 numere naturale din intervalul [10,104), separate prin câte un spațiu. Se cere să se afișeze pe ecran numărul valorilor de două cifre care apar de același număr de ori ca sufix, respectiv ca prefix al numerelor din șirul aflat în fișier. Proiectați un algoritm eficient din punctul de vedere al timpului de executare. Exemplu: dacă fișierul are conținutul 342 1684 2134 5434 111 98 98 3405 3412 7016 8634 1010 102 310 se afișează pe ecran: 4 (pentru valorile 10, 11, 16, 34). a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.) b. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.) Probă scrisă la informatică Varianta 5 Limbajul C/C++ Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocaţională, profil militar, specializare matematică-informatică Pagina 2 din 2

Alte subiecte la Informatică – Mi