2807 - Matrice 10
Sursă: [1]
Cerinţa
Scrieți un program care citește de la tastatură două numere naturale din intervalul [2,50], n și m, și elementele unui tablou bidimensional cu n linii și m coloane, numere naturale distincte din intervalul [0,104]. Programul interschimbă valoarea minimă din ultima coloană a tabloului cu valoarea minimă din prima coloană a tabloului, apoi afișează pe ecran tabloul modificat, câte o linie a tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spațiu.
Date de intrare
Programul citește de la tastatură numerele n m, iar apoi cele n • m elemente ale tabloului.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.". Programul va afișa pe ecran elementele tabloului modificat, conform cerinței. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricții și precizări
- 2 ≤ n,m ≤ 50
- elementele tabloului aparțin intervalului[0,104]
Exemple
Exemplu 1
- Intrare
- 4 3
- 7 5 19
- 3 8 4
- 23 6 1
- 10 2 9
- Ieșire
- 7 5 19
- 1 8 4
- 23 6 3
- 10 2 9
Rezolvare
def citire_matrice():
try:
n = int(input("Introduceti numarul de linii: "))
m = int(input("Introduceti numarul de coloane: "))
if 2 <= n <= 50 and 2 <= m <= 50:
print("Datele sunt corecte.")
else:
print("Datele nu sunt conform restrictiilor impuse.")
exit()
except ValueError:
print("Trebuie introduse doar numere intregi.")
exit()
matrice = []
for linie in range(n):
matrice.append([])
for coloana in range(m):
for i in range(3):
try:
valoare = int(input(f"Introduceti un numar pentru linia {linie+1}, coloana {coloana+1}: "))
if 0<= valoare <= 10**4:
print("Datele sunt corecte.")
matrice[linie].append(valoare)
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 Matrice10(matrice):
n, m = len(matrice), len(matrice[0])
a = matrice
i1, j1, i2, j2, min1, min2 = 0, 0, 0, 0, 10000, 10000
for i in range(n):
if a[i][0] < min1:
min1 = a[i][0]
i1, j1 = i, 0
if a[i][m - 1] < min2:
min2 = a[i][m - 1]
i2, j2 = i, m - 1
a[i1][j1], a[i2][j2] = a[i2][j2], a[i1][j1]
for i in range(n):
print(*a[i])
if _name_ == "_main_":
matrice = citire_matrice()
print("Matricea initiala:")
for linie in matrice:
print(linie)
print("Matricea transformata:")
Matrice10(matrice)
Explicații
Acest cod este scris in limbajul Python si contine doua functii: "citire_matrice" si "Matrice10".
Functia "citire_matrice" citeste de la tastatura numarul de linii si coloane ale matricei, verifica daca acestea se incadreaza in intervalul [2,50], apoi citeste elementele matricei, verificand daca acestea sunt numere intregi in intervalul [0,104]. Daca valorile introduse nu respecta cerintele, programul se va opri.
Functia "Matrice10" citeste de la tastatura dimensiunile matricei si elementele acesteia, apoi interschimba valorile minime din prima si ultima coloana a matricei. La final, afiseaza matricea modificata.
In program, functia "citire_matrice" este apelata la inceput pentru a citi matricea initiala, iar apoi functia "Matrice10" este apelata pentru a modifica si afisa matricea finala.