Descubra respostas para suas perguntas de forma fácil no Sistersinspirit.ca, a plataforma de Q&A de confiança. Descubra soluções confiáveis para suas perguntas de uma vasta rede de especialistas em nossa abrangente plataforma de perguntas e respostas. Conecte-se com profissionais prontos para fornecer respostas precisas para suas perguntas em nossa abrangente plataforma de perguntas e respostas.

Faça um programa em Python que imprime a diagonal principal e secundária em uma matriz 10 x 10

Sagot :

Resposta:

from random import randint

class Matriz(object):

 def __init__(self, len:int=10):

   self.len = len

 def gerar_lista(self) -> list:

   lista = [str(randint(0, 99)).zfill(2) for _ in range(self.len)]

   self.lista = lista

   return lista

 def gerar_matriz(self) -> list:

   matriz = [self.gerar_lista() for _ in range(self.len)]

   for i in matriz:

     print(i)

   self.matriz = matriz

   return matriz

 def diagonal_principal(self) -> list:

   principal = []

   posic = 0

   for i in self.matriz:

     principal.append(i[posic])

     posic += 1

   return principal

 def diagonal_secundaria(self) -> list:

   secundaria = []

   posic = -1

   for i in self.matriz:

     secundaria.append(i[posic])

     posic -= 1

   return secundaria

# Declarando objeto

matriz = Matriz()

print('=== MATRIZ ===')

matriz.gerar_matriz()

print('\nDIAGONAL PRINCIPAL ->', matriz.diagonal_principal())

print('\nDIAGONAL SECUNDÁRIA ->', matriz.diagonal_secundaria())

Explicação:

Primeiro importei o módulo randint da biblioteca random para gerar números aleatório entre 0 a 99, depois criei um método pra gerar uma lista, em seguida criei um método para gerar a matriz na qual gera utilizando o método gerar_lista e em seguida criei os métdodos que pegam a diagonal principal e a secundária. Usei orientação à objeto pra poder utilizar a mesma matriz em todos os métodos e é uma boa prática usar classe ao invés de métodos soltos.