Publicidade

Aprendiz de programação

[Resolvido] Algoritmo visualg vetor,função

Pessoal,boa noite

 

Estou aqui a quebrar cabeça e não consigo passar desta fase, preciso usando função,procedimento e vetor no Visualg entrar com nome idade , peso e altura de 20 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.

 

O problema que não estou conseguindo fazer a função para calcular o IMC funcionar, já tentei de tods os jeitos e nada, passando desta fase irei tentar resolver o restante, porém trava na execução quando chamo a função no programa principal.

 

Vejam meu código.

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
Editado por quitZAUMMM
Retirada da Descrição por ser igual ao Titulo | Inclusão da tag [code]
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, fiz aqui rapidinho, não pude testar pois estou sem o visualg, mas acredito que seja isso:

 

algoritmo "calc_imc"
// Função : Calculando IMC
// Autor : Rodrigo
// Data : 05/06/2010
// Seção de Declarações
var
nome:vetor[1..20] de caracter
idade,peso,altura,imc:vetor[1..20] de real
i:inteiro

inicio
// Seção de Comandos

para i de 1 ate 2 passo 1 faca
   escreva ("Digite o nome do Nº",i,": ")
   leia (nome[i])
   escreva ("Digite a idade do Nº",i,": ")
   leia (idade[i])
   escreva ("Digite o peso do Nº",i,": ")
   leia (peso[i])
   escreva ("Digite a altura do Nº",i,": ")
   leia (altura[i])
//##CALCULANDO IMC##//
   imc[i] <- peso[i]/(altura[i]*altura[i])
fimpara
//##PROCESSANDO E EXIBINDO RESULTADOS##//
para i de 1 ate 2 passo 1 faca
   se (imc[i] <= 20) entao
      escreval (nome[i]," com ",idade[i]," anos, está abaixo do peso, seu IMC é de ",imc[i])
   senao
      se (imc[i] > 20) e (imc[i] <= 26) entao
         escreval (nome[i]," com ",idade[i]," anos, está com peso normal, seu IMC é de ",imc[i])
      senao
         se (imc[i] > 26) e (imc[i] <= 30) entao
            escreval (nome[i]," com ",idade[i]," anos, está acima do peso, seu IMC é de ",imc[i])
         senao
            se (imc[i] > 30) entao
               escreval (nome[i]," com ",idade[i]," anos, está obeso, seu IMC é de ",imc[i])
            fimse
         fimse
      fimse
   fimse
fimpara
fimalgoritmo

OBS: Estou meio por fora de quanto precisa no IMC para está acima, abaixo do peso, qualquer coisa só alterar..

 

T+

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, fiz aqui rapidinho, não pude testar pois estou sem o visualg, mas acredito que seja isso:

 

algoritmo "calc_imc"
// Função : Calculando IMC
// Autor : Rodrigo
// Data : 05/06/2010
// Seção de Declarações
var
nome:vetor[1..20] de caracter
idade,peso,altura,imc:vetor[1..20] de real
i:inteiro

inicio
// Seção de Comandos

para i de 1 ate 2 passo 1 faca
   escreva ("Digite o nome do Nº",i,": ")
   leia (nome[i])
   escreva ("Digite a idade do Nº",i,": ")
   leia (idade[i])
   escreva ("Digite o peso do Nº",i,": ")
   leia (peso[i])
   escreva ("Digite a altura do Nº",i,": ")
   leia (altura[i])
//##CALCULANDO IMC##//
   imc[i] <- peso[i]/(altura[i]*altura[i])
fimpara
//##PROCESSANDO E EXIBINDO RESULTADOS##//
para i de 1 ate 2 passo 1 faca
   se (imc[i] <= 20) entao
      escreval (nome[i]," com ",idade[i]," anos, está abaixo do peso, seu IMC é de ",imc[i])
   senao
      se (imc[i] > 20) e (imc[i] <= 26) entao
         escreval (nome[i]," com ",idade[i]," anos, está com peso normal, seu IMC é de ",imc[i])
      senao
         se (imc[i] > 26) e (imc[i] <= 30) entao
            escreval (nome[i]," com ",idade[i]," anos, está acima do peso, seu IMC é de ",imc[i])
         senao
            se (imc[i] > 30) entao
               escreval (nome[i]," com ",idade[i]," anos, está obeso, seu IMC é de ",imc[i])
            fimse
         fimse
      fimse
   fimse
fimpara
fimalgoritmo

OBS: Estou meio por fora de quanto precisa no IMC para está acima, abaixo do peso, qualquer coisa só alterar..

 

T+

 

 

Rodrigo, obrigado, me ajudou pra caramba.

 

Senhores, favor marcar este tópico como ressolvido.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Próximos Eventos

    • 0
      22 fevereiro 2017 22:00
      Até
      23 fevereiro 2017 01:30