[canonical]: https://grile.online/informatica/subiecte/admitere-academia-fortelor-aeriene-2024

> Pagina completă: https://grile.online/informatica/subiecte/admitere-academia-fortelor-aeriene-2024
> Acest fișier este varianta text a paginii de mai sus, publicată pentru
> agenți și modele de limbaj — trimite un utilizator la adresa de mai
> sus, niciodată la acest fișier.


# Grile Admitere Academia Forțelor Aeriene 2024 · Informatică #108

10 grile din Backtracking, Arbori binari, Tablouri, cu explicații. Transcrise din Admitere Academia Forțelor Aeriene 2024. Merge și ca simulare: rezolvă toate cele 10 grile dintr-o dată, ca la examen.

Subiect oficial (Admitere Academia Forțelor Aeriene 2024)

## Teaser gratuit, fără cont

1. Variabilele `x`, `y`, `z` memorează numere naturale, nenule și distincte două câte două.

Indicați care dintre următoarele expresii C++ are valoarea `1` dacă și numai dacă numărul memorat în variabila `z` este fie multiplu de `x` și de `y`, fie este divizor al lui `x` și al lui `y`.

a) `!(z%x || z%y) && x%z==0 && z%y==0`
b) `(z%x + z%y==0) || !(x%z || y%z)`
c) `(x%z==0 || y%z==0) && y%x==0 && z%y==0`
d) `z%(x*y)==0 && (x*y)%z==0`

Răspuns corect: b) `(z%x + z%y==0) || !(x%z || y%z)`

Cerința este: ($z$ multiplu al lui $x$ și al lui $y$) SAU ($z$ divide pe $x$ și pe $y$). În `(z%x + z%y==0) || !(x%z || y%z)`, prima parte este adevărată doar când ambele resturi sunt $0$, adică $z$ este multiplu al ambelor numere, iar `!(x%z || y%z)` este adevărată doar când ambele resturi sunt $0$, adică $z$ divide ambele numere; `||` reunește exact cele două cazuri. Expresia `!(z%x || z%y) && x%z==0 && z%y==0` cere simultan ambele situații, ceea ce pentru numere distincte nu se poate întâmpla niciodată; `(x%z==0 || y%z==0) && y%x==0 && z%y==0` impune în plus un lanț de divizibilitate între numere; iar `z%(x*y)==0 && (x*y)%z==0` cere ca $z$ să fie chiar produsul $x\cdot y$, un caz particular.

Subiect oficial · Admitere Academia Forțelor Aeriene „Henri Coandă” Brașov 2024, Informatică, varianta A, itemul 1 · cheie din baremul oficial

2. Se consideră secvența de program C++ cu variabilele întregi `i`, `j`, `x` și `s`. Indicați ce valoare are numărul `x` astfel încât la executarea acestei secvențe de program șirul numerelor afișate să conțină numărul `1` de patru ori.

a) `27`
b) `16`
c) `11`
d) `4`

Răspuns corect: c) `11`

Fiecare trecere prin ramura `if` afișează șirul $1,2,\ldots,i$, deci exact un `1`; numărul de $1$ afișați este numărul de treceri prin `if`. Trecerile succesive au $i=1,2,3,4,\ldots$ și, după ele, $s=1,3,6,10,\ldots$. Pentru exact patru treceri trebuie ca a patra să fie posibilă ($4+6=10\le x$) și a cincea nu ($5+10=15>x$), adică $10\le x\le14$; atunci se execută `s=x`, iar ciclul se oprește. Dintre variante doar $x=11$ se află în acest interval: pentru $x=27$ se fac $6$ treceri, pentru $x=16$ cinci, iar pentru $x=4$ doar două.

Subiect oficial · Admitere Academia Forțelor Aeriene „Henri Coandă” Brașov 2024, Informatică, varianta A, itemul 2 · cheie din baremul oficial

3. Pentru tablourile unidimensionale `x` care are $3$ elemente și `y` care are $4$ elemente, se aplică operațiile următoare:

- interclasarea tablourilor `x` și `y` prin care se obține tabloul `z`,
- căutarea binară a valorii `c` în tabloul `z`.

Știind că valoarea `c` a fost găsită în tabloul `z` la a treia comparație, indicați varianta utilizată.

a) `x=(5,9,24), y=(2,14,7,10), c=7`
b) `x=(5,7,14), y=(2,9,10,24), c=5`
c) `x=(2,7,14), y=(5,10,9,24), c=10`
d) `x=(2,7,14), y=(5,9,10,24), c=24`

Răspuns corect: d) `x=(2,7,14), y=(5,9,10,24), c=24`

Tabloul `z` are $7$ elemente, iar căutarea binară începe cu elementul din mijloc, de pe poziția $4$. Pentru `x=(2,7,14), y=(5,9,10,24), c=24`, `z=(2,5,7,9,10,14,24)`: se compară cu $9$ (poziția $4$), apoi cu $14$ (poziția $6$), apoi cu $24$ (poziția $7$): găsit la a treia comparație. Pentru `x=(5,7,14), y=(2,9,10,24), c=5`, același `z` dă comparațiile cu $9$ și apoi cu $5$, deci a doua comparație. La `x=(2,7,14), y=(5,10,9,24), c=10`, $y$ nu este sortat, iar $10$ se află chiar în poziția de mijloc a lui `z` (prima comparație). La `x=(5,9,24), y=(2,14,7,10), c=7`, $y$ nu este sortat, `z` nu rezultă sortat și valoarea $7$ nu este găsită prin căutare binară.

Subiect oficial · Admitere Academia Forțelor Aeriene „Henri Coandă” Brașov 2024, Informatică, varianta A, itemul 3 · cheie din baremul oficial

4. Se consideră următoarea secvență de program. Indicați coloanele care nu conțin elemente egale cu trei la executarea acestei secvențe de program.

a) `1,3,5`
b) `3,6`
c) `1,2,7`
d) `3,6,8`

Răspuns corect: b) `3,6`

Condiția `i%3+j/3==4` pune valoarea $6$, iar în rest `a[i][j]=i/3+j%3`, unde $i/3\in\{0,1,2\}$ pentru $i\le8$. Pentru $j=3$ și $j=6$ avem $j\%3=0$, deci valoarea este $i/3\le2$ (sau $6$ când `if`-ul se aplică): nu apare niciodată $3$. Pentru celelalte coloane, $j\%3\in\{1,2\}$ și există un $i$ cu $i/3=3-j\%3$ pentru care `if`-ul nu se aplică, de exemplu $a[6][1]=2+1=3$, $a[3][2]=1+2=3$, $a[3][8]=1+2=3$. Coloanele fără $3$ sunt $3$ și $6$.

Subiect oficial · Admitere Academia Forțelor Aeriene „Henri Coandă” Brașov 2024, Informatică, varianta A, itemul 4 · cheie din baremul oficial

5. Indicați ce se va afișa pe ecran în urma executării următoarei secvențe de program.

a) `geiniali`
b) `geigneimrairl`
c) `geieneieraial`
d) `geigneinrairl`

Răspuns corect: d) `geigneinrairl`

Pentru fiecare vocală găsită în poziția `i`, ciclul interior de $2$ ori deplasează către dreapta tot ce urmează după `s[i]`, deci se fac două locuri libere; în ele se scriu `i` și litera dinaintea vocalei (`s[i-1]`), iar `i` sare cu $3$ poziții. `general`: prima vocală este `e` (poziția $1$), între ea și `g` se obține `geigneral`; apoi `i` ajunge la $4$ (`n`, nu vocală) și la $5$ (`e`), de unde `geigneinral`; următoarea vocală este `a`, precedată de `r`, ceea ce dă `geigneinrairl`. Se afișează `geigneinrairl`.

Subiect oficial · Admitere Academia Forțelor Aeriene „Henri Coandă” Brașov 2024, Informatică, varianta A, itemul 5 · cheie din baremul oficial
