Ir ao conteúdo

Posts recomendados

Postado

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
  • Membro VIP
Postado

@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

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!