Informática, perguntado por hausofalaiane, 1 ano atrás

URGENTE!

Preciso, usando função,procedimento e vetor no Visualg entrar com nome idade , peso e altura de 5 pessoas, calcular o IMC e depois dizer quem está acima do peso,normal , magro e abaixo do peso bem como mostrar o imc médio e quem está acima desta média.

Fiz até aqui, mas tá dando erro. Alguém poderia ajudar?

algoritmo "imc de 20 pessoas usando subprograma"
var
pesos,imc,alturas:vetor[1..20]de real
nomes:vetor[1..20]de caracter
x:inteiro
procedimento lernomes
Var
i:inteiro
Inicio
Para i de 1 ate 20 faca
Escreva("Digite o nome da pessoa", i , ": ")
Leia(nomes[i])

fimpara

fimprocedimento

procedimento lerpesoealtura
Var
i:inteiro
Inicio
Para i de 1 ate 20 faca

Escreva("Digite o peso da pessoa", i , ": ")
Leia(pesos[i])
Escreva("Digite a altura da pessoa", i , ": ")
Leia(alturas[i])

fimpara

fimprocedimento

funcao calcularimc (im:real):real
para i de 1 ate 20 faca
lerpesos

fimpara
retorne (pesos[i]/(alturas[i]*alturas[i]))
fimfuncao
inicio

lernomes
lerpesoealtura
calcularimc(im)
fimalgoritmo


rodrigogf16: algoritmo "semnome"
// Função :
// Autor :Rodrigo_S
// Data : 10/5/2015
// Seção de Declarações
var
nome: vetor[1..5] de caractere
idade: vetor[1..5] de inteiro
peso: vetor[1..5] de real
altura: vetor[1..5] de real
cont:inteiro
imc:real
inicio
// Seção de Comandos
para cont de 1 ate 5 faca
escreva("Informe o ",cont,"º nome de 5 pessoas: ")
leia(nome[cont])
limpatela
escreva("Informe a idade de ",nome[cont],":")
leia(idade[cont])
limpatela
escreva("Informe o peso de ",nome[co

Soluções para a tarefa

Respondido por Index
1
Eu não sou muito bom para reparar códigos já feitos - não me interprete mal.

Então eu refiz esse algoritmo fazendo etapa por etapa:
1) Ler os dados
2) Calcular o IMC
3) Armazenar o valor obtido
4) Efetuar a soma do IMC
5) Após ler todos os valores, calcular a média
6) Escrever o que é pedido no problema
7) Mostrar a média
8) Mostrar as pessoas que possuem IMC acima desse valor

Eu não inseri o procedimento, pois quero que você mesma o adicione. Eu te aconselho a colocar todo o código que imprime os resultados finais dentro do procedimento. Depois colocar o procedimento embaixo do código da função e depois colocar a chamada do procedimento a baixo da variável "media". Blz?

Segue abaixo o algoritmo
Anexos:

Index: Eu não achei o valor do IMC para saber se a pessoa está magra. Isso é outra coisa que você terá que acrescentar no programa. A linha que verifica isso é aquela que tá comentada como "escreve resultados"
hausofalaiane: Okay. Muito Obrigada!
rodrigogf16: algoritmo "semnome"
// Função :
// Autor :Rodrigo_S
// Data : 10/5/2015
// Seção de Declarações
var
nome: vetor[1..5] de caractere
idade: vetor[1..5] de inteiro
peso: vetor[1..5] de real
altura: vetor[1..5] de real
cont:inteiro
imc:real
inicio
// Seção de Comandos
para cont de 1 ate 5 faca
escreva("Informe o ",cont,"º nome de 5 pessoas: ")
leia(nome[cont])
limpatela
escreva("Informe a idade de ",nome[cont],":")
leia(idade[cont])
limpatela
escreva("Informe o peso de ",nome[co
Perguntas interessantes