Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
admitere-informatica-2021 [2021/05/05 19:58]
pdmatei
admitere-informatica-2021 [2021/05/18 12:43] (current)
pdmatei
Line 1: Line 1:
 +====== Lectie filmata online =====
 +
 +==== Varianta 2. Problema 3 ====
 +Un tablou bidimensional ''​a''​ cu n linii si n coloane numerotate de la 1 la n, este simetric fata de diagonala secundara, daca pentru orice pereche de indici (i,j) este adevarata expresia: ​
 +
 +  - ''​a[i][j] = a[j][i]''​
 +  - ''​a[i][j] = a[n+1-j][n+1+i]''​
 +  - ''​a[i][j] = a[n+1-i][n+1-j]''​
 +  - ''​a[i][j] = a[n-j][n-i]''​
 +  - ''​a[i][j] = a[n+1-j][n+1-i]''​
 +  - ''​a[i][j] = a[n+j][n-i]''​
 +==== Solutie ====
 +
 +Intr-o matrice, numerotam cu ''​i''​ liniile, si cu ''​j''​ coloanele. Diagonala secundara poate fi gasita la pozitiile: ''​a[n-i+1,​i]''​ cu i de la 1 la n. Pentru ca matricea sa fie simetrica in raport cu diagonala secundara, in particular, prima linie: ''​a[1,​1] ... a[1,​n]''​ trebuie sa aibe aceleasi valori, element cu element, cu ultima coloana, **transpusa**:​ ''​a[n,​n] ... a[1,​n]''​. Asadar: ''​a[1,​j] = a[n-j+1,​n]'',​ cu j de la 1 la n. Conditia trebuie sa fie adevarata, in continuare, pentru linia 2 si coloana n-1 **transpusa**,​ deci generalizand:​ ''​a[i,​j]=a[n-j+1,​n-i+1]''​. Raspuns corect e).  ​
 +
 +==== Varianta 2. Problema 3 ====
 +Precizati ce valoare are variabila ''​b''​ de tip sir de caractere dupa executarea secventei:
 +
 +<code C>
 +char b[] = "​toc2019"​
 +b[3] = b[3]-1;
 +strcpy(b+5,​b+7);​
 +strcpy(b,​b+3);​
 +</​code>​
 +
 +  - ''​b20''​
 +  - ''​19''​
 +  - ''​20''​
 +  - ''​10''​
 +  - ''​toc''​
 +  - ''​2019''​
 +
 +==== Solutie ====
 +
 +  * Instructiunea ''​b[3]=b[3]-1;''​ modifica sirul in ''​toc1019'';​
 +  * ''​strcpy(b+5,​b+7)''​ modifica sirul in ''​toc10''​ (sirul ''​b+7''​este sirul vid codificat ca ''​\0''​)
 +  * ''​strcpy(b,​b+3)''​ modifica sirul in ''​10''​
 +
 +Raspuns corect ''​10''​ (varianta d).
 +
 +
 +==== Varianta 4. Problema 7 ====
 +
 +Tabloul bidimensional ''​b''​ (cu liniile si coloanele numerotate de la ''​1''​ la ''​n''​) se obtine din tabloul bidimensional ''​a''​ prin rotire cu 90deg la dreapta. Pentru obtinerea unei transformari corecte, secventa:
 +
 +<code C>
 +for (i=1; i<=n; i++)
 +   for (j=1; j<=n; j++)
 +     ...
 +</​code>​
 +trebuie completata cu atribuirea:
 +  - ''​b[i][j]=a[j][i]''​
 +  - ''​b[i][j]=a[j][n-i+1]''​
 +  - ''​b[i][j]=a[n-j+1][n-i+1]''​
 +  - ''​b[i][j]=a[n-i+1][n-j+1]''​
 +  - ''​b[i][j]=a[n-j+1][i]''​
 +  - ''​b[i][j]=a[n-i+1][j]''​
 +
 +==== Solutie ====
 +
 +In rotatia cu 90deg dreapta, linia 1 a matricii devine coloana n, asadar ''​b[i,​n] = a[1,​i]'',​ pentru i de la 1 la n. A doua linie a matricii a devine coloana n-1, deci ''​b[i,​n-1]=a[2,​i]'',​ iar ''​b[i,​1] = a[n,​i]''​. Asadar: ''​b[i,​j]=a[n-j+1,​i]''​. Raspuns corect ''​e)''​.
 +
 +
 +
 +==== Varianta 5. Problema 3 ====
 +
 +Precizati ce valoare se va afisa pe ecran in urma executarii secventei de program urmatoare, stiind ca ''​s''​ este o variabila care memoreaza un sir de caractere, iar ''​i''​ este o variabila de tip intreg.
 +
 +<code C>
 +strcpy(s,"​admitere"​);​
 +for(i=0; i<​strlen(s);​ i++)
 +  if (strchr("​politehnica",​ s[i]))
 +    strcpy(s+i,​s+i+1);​
 +</​code>​
 +
 + - ''​dmt''​
 + - ''​dm''​
 + - ''​dmtr''​
 + - ''​dmr''​
 + - ''​mt''​
 + - ''​mrt''​
 +
 +==== Solutie ====
 +
 +Nu stim capacitatea lui ''​s'',​ insa din faptul ca printre variante nu avem un caz de eroare, prespunem ca este suficienta.
 + - ''​i=0''​. ''​strchr''​ va cauta prima aparitie a lui ''​s[i]'',​ si va intoarce un pointer la ea. Instructiunea din ''​if''​ se va executa doar daca gasim o aparitie. In acest caz ''​a''​ exista si rezultatul va fi: ''​s="​dmitere"''​
 + - ''​i=1''​. String-ul este ''​dmitere''​ -> ''​m''​ nu apare in ''​politehnica'',​ continuam cautarea;
 + - ''​i=2''​. ''​i''​ apare in politehnica:​ ''​*(s+2)="​itere"''​ si noul ''​s''​ va fi ''​dmtere'';​
 + - ''​i=3''​. ''​e''​ apare in politehnica:​ ''​*(s+3)="​ere"''​ si noul ''​s''​ va fi ''​dmtre'';​
 + - ''​i=4''​. ''​e''​ apare in politehnica:​ ''​*(s+4)="​e"''​ si noul ''​s''​ va fi ''​dmtr'';​
 + - ''​i=5''​. Conditia din ''​for''​ nu mai este satisfacuta.
 +
 +Raspuns corect: **c)** (''​dmtr''​)
 +
 +
 +
 +==== Varianta 5. Problema 9 ====
 +
 +Se considera secventa alaturata in care ''​A''​ este un tablou bidimensional cu cinci linii si cinci coloane, numerotate de la ''​1''​ la ''​5'',​ iar ''​x''​ si ''​i''​ sunt variabile de tip intreb. Stiind ca orice element al tabloului este initial egal cu numarul de ordine al liniei pe care se afla, precizati care este valoarea variabilei ''​x''​ dupa executarea secventei de mai jos:
 +
 +<code C>
 +x=0;
 +for (i=1; i<=5; i++)
 +   if (i%2==0) x=x+A[i-1][i];​
 +</​code>​
 +
 +==== Solutie ====
 +
 +Matricea arata in felul urmator:
 +<​code>​
 + 1 1 1 1 1
 + 2 2 2 2 2
 + 3 3 3 3 3
 + 4 4 4 4 4
 + 5 5 5 5 5
 +</​code>​
 +
 +Elementele ''​A[i-1][i]''​ (atentie, cu i de la **2** la **5**), sunt cele **deasupra** diagonalei principale:
 +<​code>​
 + ​1>​1 1 1 1
 + 2 2>2 2 2
 + 3 3 3>3 3
 + 4 4 4 4>4
 + 5 5 5 5 5
 +</​code>​
 +
 +Conditia ''​i%2==0''​ verifica daca ''​i''​ este par (prin urmare, ea nu va fi satisfacuta pentru ''​i=1''​),​ asadar adunam valorile pentru ''​i=2''​ si ''​i=4'',​ deci a doua si a patra valoare de **deasupra diagonalei principale**,​ adica ''​1+3=4''​.
 +
 +==== Varianta 7. Problema 3 ====
 +
 +Se considera doua tablouri unidimensionala ''​A''​ si ''​B''​. Stiind ca ''​A=(7,​10,​12,​18,​20)'',​ iar in urma interclasarii tablourilor ''​A''​ si ''​B'',​ in ordine descrescatoare,​ se obtine tabloul cu elementele ''​(46,​20,​18,​17,​12,​10,​10,​7,​4,​3)''​. Atunci tabloul ''​B''​ poate fi:
 +  - ''​(3,​4,​17,​46)''​
 +  - ''​(3,​4,​10,​46)''​
 +  - ''​(3,​4,​10,​17)''​
 +  - ''​(3,​4,​10,​17,​46)''​
 +  - ''​(46,​17,​4,​3)''​
 +  - ''​(46,​10,​4,​3)''​
 +
 +==== Solutie ====
 +
 +Daca eliminam din rezultat elementele din ''​A'',​ obtinem: ''​(46,​17,​10,​4,​3)'',​ nu neaparat in aceasta ordine. Informatia e suficienta pentru a identifica raspunsul corect, insa putem anticipa si ordinea. Interclasarea se face (conform enuntului) de la ultimul element al fiecarei liste. Observam ca lista rezultat este sortata, ''​A''​ este sortata, deci elementele din ''​B''​ sunt in mod necesar (in acest exemplu) sortate, deci ordinea este ''​(3,​4,​10,​17,​46)''​.
 +
 +
 +
 ====== Rezolvare subiecte admitere - varianta 41 ====== ====== Rezolvare subiecte admitere - varianta 41 ======