Examenul de bacalaureat naional 2016 Proba E. d) Informatică MODEL Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu. Timpul de lucru efectiv este de 3 ore. În rezolvările cerute, identificatorii utilizai trebuie să respecte precizările din enun (bold), iar în lipsa unor precizări explicite, notaiile trebuie să corespundă cu semnificaiile asociate acestora (eventual în formă prescurtată). În programele cerute, datele de intrare se consideră corecte, validarea acestora nefiind necesară. I. TÉTEL (30 pont) Az 12es item esetén írja a vizsgalapra a helyes válasznak megfelelő betűt. 1. A mellékelt C/C++ kifejezés értéke: () 3+5%10/2 a. 3 b. 4 c. 5 d. 5.5 2. Adott a mellékelt algoritmus pszeudokódban. Az a%b az a természetes számnak, b nullától különböző természetes számmal való osztási maradékát jelöli, valamint [c] a c valós szám egész részét. a) Írja le a kiírt értéket, ha a 48 és 6 számokat olvassuk be a megadott sorrendben. (6p.) b) Ha a k változóba beolvasott szám 5, írja le az összes olyan számot, amelyeket beolvashatunk az n változóba, úgy hogy minden egyes esetben az algoritmus elvégzése után a kiírt érék 1 legyen. () olvas n,k (nem nulla természetes számok, k>1) pn0 amíg pn=0 végezd el xn amíg x%k=0 végezd el x[x/k] ha x=1 akkor pnn nn)1 kiír pn c) Írjon az algoritmussal egyenértékű pszeudokód algoritmust, amelyben az első amíg...végezd el szerkezetet egy más ismétlő szerkezettel helyettesít. (6p.) d) Írja meg az adott algoritmusnak megfelelő C/C++ programot. (10p.) Pagina 1 din 3
II. TÉTEL (30 pont) Az 12es és a 22es itemek esetén írja a vizsgalapra a helyes válasznak megfelelő betűt. 1. Az x változó valós típusú. Az a C/C++ utasítás, amely szintaktikailag helytelen: () a. x=fabs(x); b. x=fabs()fabs()2016)); c. cin>>fabs(x); scanf( %f,&fabs(x)); d. cout<<fabs()2016)+1; printf( %f,fabs()2016)+1); 2. Az a C/C++ utasítássorozat, amely felcseréli az x és y egész típusú változók értékeit: () a. x=x+y; y=x)y; x=y)x; b. x=x+y; y=y)x; x=x)y; c. x=x)y; y=y)x; x=x+y; d. x=x)y; y=x+y; x=y)x; Írja a vizsgalapra a következő feladatok megoldásait. 3. A pret_vechi és pret_majorat egész típusú változók, amelyek egy könyv régi illetve a drágítás utáni árait tárolják. Írjon egy C/C++ utasítássorozat, amely az elvégzése után kiírja a képernyőre a dublu üzenetet, ha a könyv drágítás utáni ára pontosan a régi ár kétszerese ellenkező esetben azt az összeget, amennyivel módosult a könyv ára.. (6p.) 4. Olvasson be egy n természetes számot és határozzuk meg azon számjegyek számát, amelyek egyszer szerepelnek az n szám leírásában. Példa: ha n=9272017, a kiírt szám 3. a) Írjon pszeudokód algoritmust, a fenti feladat megoldására. (10p.) b) Magyarázza meg az a) pontban leírt algoritmusban előforduló összes változó szerepét, és sorolja fel a leírt feladat bemeneti, illetve kimeneti adatait. (6p.) Pagina 2 din 3
III. TÉTEL Az 12es item esetén írja a vizsgalapra a helyes válasznak megfelelő betűt. (30 pont) 1. Az i és j változók egész típusúak. Adja meg azt a kifejezést, amellyel a pontozott rész helyettesítve a kapott utasítássorozat elvégzése után az alábbi számok jelennek meg a képernyőn. for(i=1;i<=5;i++) { for(j=1;j<=5;j++) if(...) cout<<i+j<< ; printf( %d,i+j); else cout<< 0 ; printf( 0 ); cout<<endl; printf( \n ); } () 0 3 0 5 0 3 0 5 0 7 0 5 0 7 0 5 0 7 0 9 0 7 0 9 0 a. i%2<j%2 b. i%2!=j%2 c. i%2==j%2 d. i%2>j%2 Írja a vizsgalapra a következő feladatok megoldásait. 2. Annak érdekében, hogy leellenőrizzük, hogy a (0,1,8,9,12,21,63) egydimenziós tömbnek eleme>e az x=8 érték a bináris keresés módszerét alkalmazzuk. Írja le a tömb azon elemeinek sorozatát, amelyekkel a fent említett algoritmus rendre összehasonlítja az x értékét. (6p.) 3. Írjon egy C/C++ programot, amely beolvas a billentyűzetről egy n (n [2,20]), természetes számot, majd n darab természetes számot az [0,10 9 ] intervallumból, amelyek egy egydimenziós tömb elemei. A program átalakítja a memóriában az egydimenziós tömböt, úgy hogy csak páratlan számokat és esetleg a 2016)os számot tartalmazza. Az átalakítás során a lehető legkevesebb számú elemet törülje a tömbből. A program írja ki a képernyőre a kapott tömb elemeit egy>egy szóközzel elválasztva, vagy a nu exista üzenetet, ha nem kapható egy ilyen tömb. Példa: ha n=7 és a tömb (2016,1,12,7,2016,2017,20) vagy ha n=5 és a tömb (2016,1,7,2016,2017) a képernyőn megjelenik: 2016 1 7 2016 2017 de ha n=3 és a tömb (2016,12,20) a kiírt üzenet nu exista (10p.) 4. A date.in állomány tartalmaz egy sorozatot legtöbb egymillió természetes számmal a [0,10 9 ] intervallumból egy>egy szóközzel elválasztva. A sorozatnak van legkevesebb két páratlan tagja. Írassa ki a képernyőre a DA üzenetet, ha az állományban található sorozatnak van egy szigorúan növekvő részsorozata, amely az összes páratlan elemet tartalmazza. Abban az esetben, ha a sorozatnak nincs egy ilyen részsorozata a képernyőn jelenjen meg a NU üzenet. Használjon hatékony algoritmust a futási idő és a felhasznált memória szempontjából a kért tulajdonság leellenőrzésére. Példa: ha az állomány a következő számokat tartalmazza 2 1 6 3 5 4 7 akkor a képernyőn megjelenő üzenet DA a) Írja le saját szavaival a használt algoritmust és indokolja annak hatékonyságát. () b) Írja meg az előbb leírt algoritmusnak megfelelő C/C++ programot. (6p.) Pagina 3 din 3
Ministerul Educaiei Naționale Examenul de bacalaureat naional 2016 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ %i Pascal) MODEL Se punctează oricare alte modalităi de rezolvare corectă a cerinelor. Nu se acordă punctaje intermediare, altele decât cele precizate explicit prin barem. Nu se acordă fraciuni de punct. Se acordă 10 puncte din oficiu. Nota finală se calculează prin împărirea 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 funcionarea programului. Se vor lua în considerare atât implementările concepute pentru compilatoare pe 16 bii, cât %i cele pentru compilatoare pe 32 de bii. SUBIECTUL I 1. c 2. a) Răspuns corect: 36 6p. b) Răspuns corect: 1,2,3,4 Se acordă câte pentru fiecare număr menionat conform cerinței. c) Pentru algoritm pseudocod corect 6p. (*) Se acordă numai dacă algoritmul are 'echivalenă a prelucrării realizate, o structură repetitivă conform cerinei, conform cerinei (*) 5p. principial corectă, dar nu este echivalent cu 'corectitudine globală a algoritmului1) cel dat. Se va puncta orice formă corectă de d) Pentru program corect 'declarare variabile 'citire date 'afiare date 'instruciuni repetitive corecte (*) 'atribuiri corecte 'corectitudine globală a programului 1) 10p. structură repetitivă conform cerinței. (*) Se acordă numai dacă doar una dintre instrucțiunile repetitive este corectă. SUBIECTUL al II 8 lea 1. c 2. d 3. Pentru rezolvare corectă 6p. Se acordă câte pentru fiecare aspect al cerinței (expresie de verificare a prețului majorat prin dublare, afișare mesaj, afișare valoare cu care s'a modificat prețul). 4. a) Pentru rezolvare corectă 10p. (*) Se acordă câte pentru fiecare aspect 'citire a datelor al cerinței (algoritm de numărare principial 'determinare a unui număr cu corect, acces la o cifră a numărului, proprietatea cerută (*) 6p. numărare a tuturor cifrelor suport inclusiv 'scriere principial corectă a structurilor cazul în care n=0). de control (**) (**) Se va puncta orice formă corectă de 'scriere a rezultatului structură repetitivă sau decizională. Barem de evaluare i de notare 1
b) Pentru răspuns corect 'precizare a rolului variabilelor utilizate (*) 'indicare a datelor de intrare 'indicare a datelor de ieșire Ministerul Educaiei Naționale 6p. (*) Se acordă numai dacă s'au indicat doar o parte din variabilele utilizate sau dacă nu pentru toate variabilele este corect precizat rolul acestora. SUBIECTUL al III 8 lea 1. b 2. Răspuns corect: 9,1,8 6p. 3. Pentru program corect 10p. 'declarare corectă a variabilei de tip tablou 'citire a elementelor tabloului 'accesare corectă a unui element al tabloului 'transformare a tabloului conform cerinței (*) 'tratare a cazului 'afișare a elementelor tabloului 'declarare a tuturor variabilelor simple, citire a datelor simple, corectitudine globală a programului 1) 4. a) Pentru răspuns corect 'coerenă a explicării metodei (*) 'justificare a unor elemente de eficienă b) Pentru program corect 'operaii cu fiiere: declarare, pregătire în vederea citirii, citire din fiier 'verificare a proprietății indicate pentru subșir (*,**) 'utilizare a unui algoritm eficient (***) 'afișare a mesajului conform cerinței, declarare variabile, corectitudine globală a programului 1) 2x 6p. 3p. (*) Se acordă câte pentru fiecare aspect al cerinței (identificare a unui număr par/impar, eliminare a unui element din șir, elemente suport eliminate, construire în memorie). (*) Se acordă punctajul chiar dacă metoda aleasă nu este eficientă. (*) Se acordă punctajul chiar dacă soluia propusă nu prezintă elemente de eficienă. (**) Se acordă numai dacă algoritmul este principial corect, dar nu conduce la rezultatul cerut pentru orice set de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar (de complexitate O(n)), care utilizează eficient memoria. O soluie posibilă parcurge cel mult o dată fiierul memorând valoarea ultimului termen impar, comparând'o cu valoarea termenului curent. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem. Barem de evaluare i de notare 2