Elabore um programa que preencha uma matriz 12 x 4 com os valores das vendas
de uma loja, em que cada linha representa um mês do ano e cada coluna representa
uma semana do mês. O programa deverá calcular e mostrar:
a) o total vendido em cada mês do ano, mostrando o nome do mês por extenso;
b) o total vendido em cada semana durante todo o ano.
c) o total vendido pela loja no ano.
preciso em python
Soluções para a tarefa
O programa abaixo, que também pode ser conferido na figura anexada, não conta com validação de dados ou tratamento de exceções/erros, portanto espera-se que o usuário entre com os dados de forma correta.
Como o programa tem bastantes detalhes, deixo possíveis dúvidas para serem explicadas nos comentários.
Obs.: Os pontos que precedem as linhas de programação não fazem parte do programa e não devem ser copiados, foram utilizados apenas para garantir a indentação do código aqui no site.
meses = ('Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro')
ano=list()
venda_mes = list()
total = 0
# Preenchimento da matriz
for mes in range(12):
.....for semana in range(4):
..........venda_mes.append(float(input(f'Vendas da {semana+1}ª semana do mês de {meses[mes]}: ')))
.....ano.append(venda_mes.copy())
.....total += sum(venda_mes)
.....venda_mes.clear()
# Apresentação dos dados informados
print(f'\n{"Vendas no Ano".center(67)}')
print(f'{"Mes".center(10)} {"1ª semana".center(10)} {"2ª semana".center(10)} {"3ª semana".center(10)} {"4ª semana".center(10)} {"Total no mês".center(12)}')
for mes in range(12):
.....print(f'{meses[mes].center(10)}', end=' ')
..........for semana in range(4):
..........print(f'{ano[mes][semana]:.2f}'.rjust(8).center(10), end=' ')
.....print(f'{sum(ano[mes]):.2f}'.rjust(10).center(12))
print(f'\nTotal anual: R${total:.2f}')
Como dica para testagem do código, podemos utilizar um randomizador para que não seja necessário preencher todos 48 valores solicitados no programa.
ex.: Adicione (sem aspas) "from random import uniform" no topo do código e substitua a linha "venda_mes.append(float(input(f'Vendas da {semana+1}ª semana do mês de {meses[mes]}: ')))" por "venda_mes.append(uniform(0, 10000))". Neste caso a matriz será preenchida por valores em ponto flutuante de 0 a 10000.