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ă.