0768 - Suma Pare 3
De la Universitas MediaWiki
Sursă: [1]
Cerință
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Determinați suma valorilor pare distincte din matrice. Dacă o valoare pară apare în matrice de mai multe ori, se va aduna o singură dată.
Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m' 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 corecte.", Programul afișează pe ecran suma căutată S. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricții și precizări
- 1 ≤ n ≤ 100
- elementele matricei vor fi mai mici sau egale cu 10000
Exemple
Exemplu 1
- Date de intrare
- 4 6
- 4 20 15 23 18 9
- 1 8 23 22 14 18
- 17 15 13 18 12 15
- 3 18 8 20 12 5
- Date de ieșire
- 98
Exemplu 2
- Date de intrare
- a v
- Date de ieșire
- Datele nu sunt comform restrictiilor impuse
Rezolvare
def citire_lin_col():
try:
n = int(input("Introduceti numarul de linii: "))
m = int(input("Introduceti numarul de coloane: "))
if 1 <= n <= 100 and 1 <= m <= 100:
print("Datele sunt corecte.")
return n, m
else:
print("Datele nu sunt conform restrictiilor impuse.")
exit()
except ValueError:
print("Trebuie introduse doar numere intregi.")
exit()
def citeste_valori_matrice(lin, col):
matrice = []
for linie in range(lin):
matrice.append([])
for coloana in range(col):
for i in range(3):
try:
n = int(input(f"Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: "))
if n <= 10000:
print("Datele sunt corecte.")
matrice[linie].append(n)
break
else:
print("Datele nu sunt conform restrictiilor impuse.")
except ValueError:
print("Trebuie introduse doar numere intregi.")
else:
print("Prea multe incercari esuate.")
exit()
return matrice
def elemente_pare(matrice, n, m):
numere_pare= set()
for i in range(n):
for j in range(m):
if matrice[i][j] % 2 == 0:
numere_pare.add(matrice[i][j])
print(sum(numere_pare))
if _name_ == "_main_":
n, m = citire_lin_col()
matrice = citeste_valori_matrice(n, m)
s=elemente_pare(matrice, n, m)
print(s)
Explicatii
Acest cod definește trei funcții:
citire_lin_col(): Această funcție primește de la utilizator numărul de linii și de coloane pentru o matrice și verifică dacă acestea se încadrează în limitele impuse. Dacă valorile introduse sunt valide, funcția returnează aceste valori.
citeste_valori_matrice(lin, col): Această funcție primește numărul de linii și de coloane pentru o matrice și primește de la utilizator valorile matricei. Pentru fiecare element al matricei, utilizatorul este rugat să introducă un număr. Se vor face trei încercări de a introduce un număr valid. Dacă utilizatorul introduce un număr valid, valoarea este adăugată la matrice și se trece la următorul element. Dacă după trei încercări utilizatorul nu a introdus un număr valid, programul se oprește.
elemente_pare(matrice, n, m): Această funcție primește o matrice și numărul de linii și de coloane ale acesteia. Funcția calculează suma tuturor numerelor pare din matrice și o returnează.
În main(), se folosesc aceste funcții pentru a citi matricea și a calcula suma numerelor pare din matrice, care este apoi afișată.