Considere que uma empresa tem registrado numa tabela os consumos mensais de energia elétrica ao longo de 20 anos. Faça um algoritmo que, cadastre estes dados e depois os percorra para determinar:
a. O consumo médio de cada ano registrado;
b. Qual mês que, historicamente, a empresa gasta mais energia; e
c. Qual o mês e ano de maior consumo dos últimos 20 anos.

Passo 1

A questão pede para armazenar consumos mensais de energia em uma estrutura de dados e depois percorrê-los para obter: (a) consumo médio anual, (b) mês com maior gasto histórico e © mês e ano de maior consumo absoluto nos 20 anos. O conteúdo envolve vetores/matrizes e loops para inserção e processamento de dados.

Passo 2

Para guardar os dados vamos usar uma matriz de dimensão 20×12 chamada consumo, onde cada linha é um ano e cada coluna um mês.

Passo 3

Primeiro passo do algoritmo: ler os dados. Vamos iterar sobre cada ano (índice 1 a 20) e, dentro dele, sobre cada mês (1 a 12), pedindo ao usuário o valor do consumo e armazenando em consumo[ano][mês].

Passo 4

Para calcular o consumo médio de cada ano, fazemos um loop em cada ano, somamos os 12 meses e dividimos por 12. Guardamos isso em um vetor médiaAnual[1…20] e exibimos.

Passo 5

Para descobrir qual mês historicamente gasta mais, percorremos cada mês de 1 a 12, somamos os consumos dos 20 anos e dividimos por 20 para obter médiaMensal[1…12]. Depois encontramos o índice do maior valor desse vetor e exibimos o mês correspondente.

Passo 6

Para achar o mês e ano de maior consumo absoluto, percorremos toda a matriz consumo procurando o maior valor. Toda vez que encontramos um consumo maior que o atual máximo, atualizamos máximo, anoMax e mesMax. No fim exibimos esses valores.

Passo 7

Pronto! Com esses passos temos a solução completa e podemos traduzir para um pseudocódigo bem claro.

Resposta

// Declaração da matriz de consumos
Real consumo[20][12]
// Leitura dos dados
Para ano de 1 até 20 faça
Para mes de 1 até 12 faça
Escreva("Informe o consumo do ano ", ano, " mês ", mes, ": ")
Leia(consumo[ano][mes])
FimPara
FimPara
// (a) Cálculo do consumo médio anual
Real médiaAnual[20]
Para ano de 1 até 20 faça
Real soma ← 0
Para mes de 1 até 12 faça
soma ← soma + consumo[ano][mes]
FimPara
médiaAnual[ano] ← soma / 12
Escreva("Média anual do ano ", ano, ": ", médiaAnual[ano])
FimPara
// (b) Mês com maior gasto histórico (média mensal)
Real médiaMensal[12]
Para mes de 1 até 12 faça
Real soma ← 0
Para ano de 1 até 20 faça
soma ← soma + consumo[ano][mes]
FimPara
médiaMensal[mes] ← soma / 20
FimPara
Inteiro mesMaisGast ← 1
Para mes de 2 até 12 faça
Se médiaMensal[mes] > médiaMensal[mesMaisGast] então
mesMaisGast ← mes
FimSe
FimPara
Escreva("Mês com maior consumo histórico: ", mesMaisGast)
// © Mês e ano de maior consumo absoluto
Real maximo ← consumo[1][1]
Inteiro anoMax ← 1, mesMax ← 1
Para ano de 1 até 20 faça
Para mes de 1 até 12 faça
Se consumo[ano][mes] > maximo então
maximo ← consumo[ano][mes]
anoMax ← ano
mesMax ← mes
FimSe
FimPara
FimPara
Escreva("Maior consumo foi no ano ", anoMax, " mês ", mesMax, ": ", maximo)

Exercícios relacionados