Lukinh4s Postado Junho 15, 2020 Denunciar Share Postado Junho 15, 2020 Empaquei nessa questão eu gostaria de saber se alguém pode me ajudar a termina-la. Conteúdo do exercício Faça um programa que lê 6 números reais em uma matriz 3x2, calcula e exibe: A média dos números positivos (0,5 pontos); A soma dos números negativos (0,5 pontos); O maior número positivo (0,5 pontos); O maior número positivo da 2ª linha (0,5 pontos); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArteEN Postado Junho 15, 2020 Denunciar Share Postado Junho 15, 2020 tem que postar seu codigo toda vez que for pedir ajuda Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lukinh4s Postado Junho 15, 2020 Autor Denunciar Share Postado Junho 15, 2020 7 minutos atrás, ArteEN disse: tem que postar seu codigo toda vez que for pedir ajuda Aqui está: nums = [ [0, 0, 0], [0, 0, 0] ] mai = 0 neg = 0 media = 0 for linha in range(0,2): for coluna in range(0,2): nums[linha][coluna] = int(input(f"Digite um valor para [{linha}, {coluna}]:")) for linha in range(0,2): for coluna in range(0,2): print(f"[{nums[linha][coluna]:^5}]", end=" ") if nums[linha][coluna] > 0: media = nums[linha][coluna]/4 print() print(f"A média dos números positivos é {media}") for linha in range(0,2): for coluna in range(0,2): if nums[linha][coluna] < 0: neg += 1 print(f"A soma dos números negativos é {som}.") for linha in range(0,1): for coluna in range(0,2): if nums[1][coluna] > 0: if nums[1][coluna]: mai = nums[1][coluna] elif nums[1][coluna] > mai: mai = nums[1][coluna] print(f"O maior número da 2ª linha é: {mai}.") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArteEN Postado Junho 15, 2020 Denunciar Share Postado Junho 15, 2020 (editado) 1 nums = [ 2 [0, 0, 0], 3 [0, 0, 0] 4 ] 5 mai = 0 6 neg = 0 7 media = 0 8 soma = 0 9 10 for linha in range(0,2): 11 for coluna in range(0,2): 12 nums[linha][coluna] = int(input(f"Digite um valor para [{linha}, {coluna}]:")) 13 14 contador = 0 15 for linha in range(0,2): 16 for coluna in range(0,2): 17 18 print(f"[{nums[linha][coluna]:^5}]", end=" ") 19 if nums[linha][coluna] > 0: 20 #media = nums[linha][coluna]/4 21 soma += nums[linha][coluna] 22 contador += 1 23 print() 24 media = soma/contador 25 print(f"A média dos números positivos é {media}") 26 27 for linha in range(0,2): 28 for coluna in range(0,2): 29 if nums[linha][coluna] < 0: 30 neg += nums[linha][coluna] 31 print(f"A soma dos números negativos é {neg}.") 32 33 for linha in range(0,1): 34 for coluna in range(0,2): 35 if nums[1][coluna] > 0: 36 if nums[1][coluna]: 37 mai = nums[1][coluna] 38 elif nums[1][coluna] > mai: 39 mai = nums[1][coluna] 40 print(f"O maior número da 2ª linha é: {mai}.") achei dois erros que eram o calculo da media e o print da variavel neg recomendo você ver como usar compreessão de lista para filtrar, isso vai diminuir muitas linhas no seu codigo Editado Junho 15, 2020 por ArteEN Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lukinh4s Postado Junho 15, 2020 Autor Denunciar Share Postado Junho 15, 2020 Valeu brother! Muito obrigado. 2 horas atrás, ArteEN disse: recomendo você ver como usar compreessão de lista para filtrar, isso vai diminuir muitas linhas no seu codigo você que dizer o uso do append, n é mesmo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArteEN Postado Junho 15, 2020 Denunciar Share Postado Junho 15, 2020 não, compreensão de lista é para criar lista, append é para acrescentar na lista existente vou dar um exemplo lista = [] for i in range(10): lista.append(i) lista2 = [i for i in range(10)] 1 #defino o valores já na matriz para não perder tempo com input 2 #se o input for nessessario eu deixo para fazer por ultimo 3 matriz = [[1, 5, -6], 4 [0, -3, 9]] 5 6 7 #esse é um macete que fica bem nesse problema 8 #usa soma para criar uma nova lista 9 #assim não precisa repetir linha/coluna 10 nums = matriz[0] + matriz[1] 11 12 13 #uma coisa que pode ajudar muito é compreessão de lista 14 #é uma forma de empacotar o loop for para filtrar uma lista 15 #faço o print para conferir se foi filtrado corretamente 16 positivos = [x for x in nums if x >= 0] 17 negativos = [x for x in nums if x < 0] 18 positivos_linha_2 = [x for x in matriz[1] if x >= 0] 19 20 21 #agora que esta filtrado basta fazer as operaçoes 22 media_positivos = sum(positivos)/len(positivos) 23 soma_negativos = sum(negativos) 24 maior_positvo = max(positivos) 25 maior_positvo_linha_2 = max(positivos_linha_2) 26 27 #finaliza com a exibição 28 print(media_positivos) 29 print(soma_negativos) 30 print(maior_positvo) 31 print(maior_positvo_linha_2) vou deixar uma versão do seu codigo usando compreensão de lista, você pode apagar os comentarios para comparar Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lukinh4s Postado Junho 16, 2020 Autor Denunciar Share Postado Junho 16, 2020 Muito obrigado. Ajudou muito, de verdade! 🤜🤛 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Lukinh4s
Empaquei nessa questão eu gostaria de saber se alguém pode me ajudar a termina-la.
Conteúdo do exercício
Faça um programa que lê 6 números reais em uma matriz 3x2, calcula e exibe:
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.