Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Foto:

[Resolvido] Algoritmo visualg vetor,função

  • Por favor, faça o login para responder
2 respostas neste tópico

#1 Aprendiz de programação

Aprendiz de programação
  • Membros
  • 6 posts

Postado 04 junho 2010 - 21:24

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, 07 junho 2010 - 11:11 .
Retirada da Descrição por ser igual ao Titulo | Inclusão da tag [code]

  • 0

#2 Rodrigo7777

Rodrigo7777

    Aprendiz

  • Membros
  • 50 posts

Postado 05 junho 2010 - 16:15

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

#3 Aprendiz de programação

Aprendiz de programação
  • Membros
  • 6 posts

Postado 05 junho 2010 - 17:28

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




Publicidade

/ins>