Ir ao conteúdo
  • Cadastre-se

VisualG Como ler o maior consumo de água


Posts recomendados

Boa noite, tudo bem?
Não estou conseguindo ler o maior consumo de água em condomínios.

Ao final do programa preciso saber qual o maior consumo, mas não sei qual vai ser a quantidade inserida pelo usuário...  

Alguém poderia me explicar por favor 😥?

 

 

image.png.07f45e0de47320408b9a97516464525f.png
 

algoritmo "contole_de_gastos_com_aguas_em_Condominios"
var
 y, x : inteiro
 n : inteiro
inicio

escreva ("Qual é a quantidade de apartamentos ?",y)
leia(y)
   para x de 1 até y faça
      escreval(" O apartamento:",x)
      escreval("consumiu quantos litros?",n)
      leia (n)
      escreva (" O valor gastado em litros cubicos é," ,n/1000)
      leia(n)
      fimpara
fimalgoritmo
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Ronald011208, algumas sugestões:

1. NOMENCLATURAS DE VARIÁVEIS

Utilize nomenclatura de variáveis mais sugestivas. Ex:

Em vez de:

9 horas atrás, Ronald011208 disse:
var
 y, x : inteiro
 n : inteiro


Utilizar algo como:

var
   qtdApartamentos : inteiro
   qtdLitrosApartamento : inteiro
   qtdMedicoesPorApartamento : inteiro
   i : inteiro

 

Etc.


 

2. RELAÇÃO ENTRE SAÍDA E ENTRADA DE DADOS

Não existe relação técnica (sintaxe) entre a exibição de valores na tela com a leitura de valores do teclado, ou seja, você não precisa (não deve) colocar a variável que vai ser lida lá no escreval(). Ex.:

Em vez de:

10 horas atrás, Ronald011208 disse:
escreva ("Qual é a quantidade de apartamentos? ", y)
leia(y)

 

Seria algo como:

escreva ("Qual é a quantidade de apartamentos ? ")
leia(y)

 


Perceba que esse "texto" acima só está apenas para "interagir com o usuário", mas ele não tem nenhuma relação técnica com a leitura abaixo. Poderia só ler a variável. "Mas como o usuário saberia o que digitar?". Exatamente. Você está COMBINANDO comandos DISTINTOS para 
 

 

3. COERENCIA COM O ENUNCIADO
Resumidamente é precisa fazer aquilo que foi pedido. Por exemplo, se um cliente pede um cachorro-quente com apenas salsicha e pão, um garçom não pode entregar um hambúrguer com batata fritas. Como assim? É isso: se pediu xpto, entregue xpto. Nada mais, nada menos... (Obs.: claro que existe uma flexibilidade de interpretação, mas basicamente é se restringir a fazer aquilo que foi solicitado.)

 

4. SOBRE ESCOPO DO PROBLEMA E USO DE ABSTRAÇÃO
Sobre o escopo, é relacionado ao item [3]. Basicamente é preciso entender o problema. É fundamental entender aquilo que foi pedido. Daí seria precisa exercitar a abstração... tentar entender quais são as partes do todo.

 

Por exemplo.

10 horas atrás, Ronald011208 disse:

image.png

 

Veja que são "N" leituras para cada apartamento, e não apenas uma como inicialmente você postou.

 

Como poderíamos abstrair essa etapa?

 

Primeiro poderia só fazer uma leitura por apartamento mesmo... Para testar o código... após, inserir para ler "N" leituras para cada apartamento:, ou seja, dessa forma, faz algo "mais simples" antes, para depois "evoluir para um mais complexo". Não precisa tentar correr antes de aprender a andar..


Algo como:

algoritmo "Controle de gastos com água em Condomínios"
var
   qtdApartamentos : inteiro
   qtdLitrosApartamento : inteiro
   i : inteiro
   continuar : caractere
   
inicio
   escreva ("Qual é a quantidade de apartamentos?")
   leia(qtdApartamentos)

   para i de 1 ate qtdApartamentos faca
      escreval("O apartamento: ", i:1)
      escreval("Consumiu quantos litros?")
      ALEATORIO ON
      leia(qtdLitrosApartamento)
      ALEATORIO OFF
      escreval("")
   fimPara
fimAlgoritmo

image.png

 

 

Depois, faz ler N consumos por apartamento. Ex.:
image.png

 

 

 

Fica encontrar o maior consumo:

image.png

 

Tá, mas esse valor mais alto é por apartamento ou por leitura?

Se for por leitura, pega a maior leitura.

Se for por apartamento, pega a maior soma de leitura por apartamento.

 

Sugiro tentar a primeira opção antes...

 

 

Mais como pego o maior valor? (Que é o foco dá dúvida, rs)

É simples... tem milhares de exemplos na internet... vai lá e "copia um". Entenda a lógica! É trivial.. basta ter contato...

 

Sugiro o seguinte: faça um novo programa apenas para aprender e testar pegar o maior valor. Ex.:
"Faça um programa que leia 10 números inteiros e informa qual foi o maior valor lido"

 

Faça o exercício acima e posta o código aqui. Após, você insere a lógica no teu algoritmo.

"NÃO TENTE PEGAR O MENOR DIRETO NO TEU ALGORITMO. FAÇA UM PROGRAMA SEPARADO ANTES."

 

 

RESUMO
- Ajuste teu código para fazer N leituras por apartamento;

- Estude como pegar o maior valor de uma sequência de números. Faça um programa separado para testar pegar o maior valor;

- Adapte uma lógica para pegar o maior no teu código.

  • Curtir 1
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...