#552 · Subiectul II · Programare
Valorile impare de pe cele două diagonale ale unei matrice (subprogramele nrpare_p și nrpare_s)
✓ Rezolvare explicatăBucurești 2020 · nr. 5
Enunț
a) Subprogramul nrpare_p are doi parametri, prin care primește: n, un număr natural din intervalul [5, 100], și v, un tablou bidimensional cu n linii și n coloane de numere naturale din intervalul [0, 10³]. Subprogramul returnează numărul elementelor pare situate pe diagonala principală a tabloului v sau valoarea -1 dacă diagonala nu conține valori pare. Subprogramul nrpare_s are aceiași doi parametri și returnează numărul elementelor pare situate pe diagonala secundară a tabloului v sau -1 dacă diagonala nu conține valori pare. Scrieți la calculator definițiile complete ale celor două subprograme.
b) Fișierul matrice.in conține pe prima linie un număr natural par n (2 ≤ n ≤ 100), iar pe următoarele n linii câte n numere naturale din intervalul [0, 10³], separate prin câte un spațiu. Se cere scrierea și executarea la calculator a unui program care să citească din fișier n, apoi cele n·n elemente ale tabloului și să afișeze pe ecran numărul valorilor impare situate pe cele două diagonale ale tabloului. Pentru afișarea valorii cerute se folosesc apeluri utile ale subprogramelor nrpare_p și nrpare_s. Dacă nu există nicio valoare impară pe diagonale, atunci pe ecran se afișează mesajul nu exista.
⚠️ Subprogramele cer
n ≥ 5, iar fișierul permiten = 2saun = 4. Rezolvarea de mai jos funcționează pentru oricen.
Exemple
Date de intrare (matrice.in) |
Date de ieșire | Explicații |
|---|---|---|
61 2 3 4 5 67 8 9 0 1 23 4 5 6 7 89 0 1 2 3 45 6 7 8 9 01 2 3 4 5 6 |
6 |
Diagonala principală 1 8 5 2 9 6 are 3 valori impare; cea secundară 6 1 6 1 6 1, tot 3 |
Rezolvare
Exersează mai departe