0785 - Elim Min Max
Rezolvare
def citire_matrice():
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.")
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 valoare <= 1000000:
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 eliminare_linie(matrice):
# gasirea pozitiei elementului maxim
max_val = matrice[0][0]
max_i, max_j = 0, 0
for i in range(len(matrice)):
for j in range(len(matrice[0])):
if matrice[i][j] > max_val:
max_val = matrice[i][j]
max_i, max_j = i, j
# gasirea pozitiei elementului minim
min_val = matrice[0][0]
min_i, min_j = 0, 0
for i in range(len(matrice)):
for j in range(len(matrice[0])):
if matrice[i][j] < min_val:
min_val = matrice[i][j]
min_i, min_j = i, j
# eliminarea liniilor si coloanelor
new_matrice = []
for i in range(len(matrice)):
if i == max_i or i == min_i:
continue
new_row = []
for j in range(len(matrice[0])):
if j == max_j or j == min_j:
continue
new_row.append(matrice[i][j])
new_matrice.append(new_row)
# afisarea matricei transformate
for row in new_matrice:
print(*row)
if _name_ == "_main_":
matrice = citire_matrice()
print("Matricea initiala:")
for linie in matrice:
print(linie)
print("Matricea transformata:")
eliminare_linie(matrice)
Explicati
citire_matrice() - această funcție primește de la utilizator numărul de linii și coloane ale matricei și apoi îl solicită să introducă valorile matricei. Dacă valorile introduse sunt în intervalul [1, 100] și sunt numere întregi, atunci funcția returnează matricea creată.
eliminare_linie(matrice) - această funcție primește o matrice și urmărește două obiective: să găsească pozițiile elementului maxim și minim din matrice și să elimine liniile și coloanele care conțin aceste elemente. Apoi, funcția afișează matricea modificată.
main() - această funcție este punctul de intrare în program. Ea inițializează matricea cu ajutorul funcției citire_matrice(), afișează matricea inițială și apoi aplică funcția eliminare_linie() pentru a obține matricea modificată.