0783 - Diagonale 1
Cerinţa
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
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
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
- 1 ⩽ n ⩽ 100
- elementele matricei vor fi mai mici decât 1.000.000
Exemplu
- 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
<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>