0617 - Piese

From Bitnami MediaWiki

Cerința

Într-un tărâm îndepărtat, un inginer auto trebuie să organizeze piese de schimb într-o fabrică. Piesele sunt aranjate într-o matrice pătratică, iar fiecare celulă a matricei reprezintă un tip de piesă. Inginerul trebuie să genereze această matrice și să afișeze piesele în ordinea dorită.

Date de intrare

Programul citește de la tastatură:

Un număr întreg n reprezentând dimensiunea matricei pătratice (n x n).

Date de ieșire

Pe ecran se va afișa matricea generată, fiecare rând al matricei fiind pe o linie separată.

Restricții și precizări

  • 1 ⩽ n ⩽ 10

Valorile din matrice sunt numere întregi generate automat în intervalul [0, 10]

Exemplu 1

Intrare

3

Iesire

8 3 4
1 5 4
3 1 0

Exemplu 2

Intrare

0

Iesire

Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

<syntaxhighlight lang="python" line> import random

def citeste_dimensiune():

   try:
       n = int(input("Introduceți dimensiunea matricii pătratice (n): "))
       return n
   except ValueError:
       return None

def valideaza_dimensiune(n):

   return 1 <= n <= 10

def genereaza_matrice(n):

   matrice = []
   for i in range(n):
       rand = [random.randint(0, 10) for _ in range(n)]
       matrice.append(rand)
   return matrice

def afiseaza_matrice(matrice):

   for rand in matrice:
       print(" ".join(map(str, rand)))

def main():

   n = citeste_dimensiune()
   
   if n is None or not valideaza_dimensiune(n):
       print("Datele de intrare nu corespund restricțiilor impuse.")
       return
   
   print("Datele de intrare corespund restricțiilor impuse.")
   matrice = genereaza_matrice(n)
   afiseaza_matrice(matrice)

if __name__ == "__main__":

   main()

</syntaxhighlight>