IDNLearner.com, seu guia para respostas precisas e rápidas. Faça suas perguntas e receba respostas detalhadas de nossa comunidade de especialistas, sempre prontos para ajudá-lo no que for necessário.

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.

Agradecemos sua participação constante. Não se esqueça de voltar para compartilhar suas perguntas e respostas. Seu conhecimento é inestimável para nós. IDNLearner.com está comprometido em fornecer respostas precisas. Obrigado pela visita e até a próxima vez para mais soluções.