0783 - Diagonale 1
Cerinţa[edit | edit source]
Se dă o matrice cu n linii şi n coloane şi elemente numere naturale. Să se determine suma elementelor de pe cele două diagonale vecine cu diagonala principală.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi n*n numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.
Date de ieşire[edit | edit source]
Dacă datele sunt introduse corect,pe ecran se va afișa :"Datele sunt introduse corect.",apoi pe un rând nou numărul S, reprezentând valoarea calculată.În cazul contrar,se va afișa pe ecran "Datele nu corespund restricțiilor impuse.".
Restricții și precizări[edit | edit source]
- 1 ⩽ n ⩽ 100
- elementele matricei vor fi mai mici decât 1.000.000
Exemplu[edit | edit source]
- Date de intrare
- 5
- 3 1 8 5 4
- 7 8 5 1 2
- 2 2 6 7 3
- 9 8 1 3 6
- 7 5 3 1 7
- Date de ieșire
- Datele sunt introduse corect.
- 30
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
def validare_date(n, a):
# Verifică valoarea lui n if not (1 <= n <= 100): print("Datele nu corespund restricțiilor impuse.") return False
# Verifică valorile elementelor matricei for i in range(n): for j in range(n): if not (0 <= a[i][j] < 1000000): print("Datele nu corespund restricțiilor impuse.") return False
# Datele sunt introduse corect return True
- Funcția care calculează suma diagonalelor
def calculeaza_suma_diagonalelor(n, a):
s = 0 for i in range(1, n): s += a[i][i-1] + a[i-1][i] return s
if __name__ == '__main__':
# Citire date de intrare n = int(input()) a = [[int(x) for x in input().split()] for i in range(n)]
# Verificare date de intrare if validare_date(n, a): print("\nDatele sunt introduse corect.\n") # Calculare si afișare rezultat S = calculeaza_suma_diagonalelor(n, a) print(S) else: print("Datele nu corespund restricțiilor impuse.")
</syntaxhighlight>