Ir ao conteúdo

Posts recomendados

Postado

Ok vamos lá, me inscrevi neste clube porque me falaram q vocês poderiam me ajudar, estou fazendo um trabalho na Faculdade, na matéria de algoritmos estamos usando o VisualG e a fessora mandou um trabalho pra gente fazer, o assunto escolhido pelo meu grupo foi IMC.... Mas o porém do trabalho é que tem q usar toda a matéria, gostaria da ajuda então dos mais experientes para que me ajudasse..... Mandei o arquivo até aonde já foi feito, se alguém poder me ajudar agradeço....

 

Preciso de ajuda neste programa ele não funciona 100%, ele não grava todos os dados e apaga outros, na parte de monitoramento(eu acho q o erro esta ocorrendo ai, mas não acho)... Alguém pode me ajudar?

 

Algoritmo "calculo_de_imc"

Var
   // Seção de Declarações das variáveis

   nome:vetor [1..100] de caractere
   m,n,t,x,y,op:inteiro
   alt: vetor [1..100] de real
   imc: vetor [1..5,1..5] de real
procedimento "cadastro"
var
   imc: real
   p:  real

inicio

   escreval ("               CADASTRO")
   escreval ("___________________________________")
   escreval ("digite o nome do paciente: ")
   leia (nome[t])
   escreval ("digite a altura do paciente: ")
   leia (alt[t])
   escreval ("digite o peso do paciente: ")
   leia (p)
   imc<- p/(alt[t]*alt[t])
   escreval ("IMC: ", imc)
   se (imc<17) então
      escreval (" MUITO ABAIXO DO PESO.")
   fimse
   se (imc>17) e (imc< 18.49) então
      escreval ("ABAIXO DO PESO")
   fimse
   se (imc>18.50) e (imc<24.99) então
      escreval ("PESO NORMAL")
   fimse
   se (imc>25) e (imc<29.99)então
      escreval ("ACIMA DO PESO")
   fimse
   se (imc>30) e (imc<34.99)então
      escreval ("OBESIDADE 1")
   fimse
   se (imc>35) e (imc<39.99)então
      escreval ("OBESIDADE 2 (SEVERA)")
   fimse
   se (imc>40)então
      escreval ("OBESIDADE 3 (MÓRBIDA)")
   fimse
   escreval
   t<-t + 1
fimprocedimento
procedimento "monitoramento"
var
   p: real


inicio
   escreval ("          MONITORAMENTO")

   para n de 1 ate t-1 faca
      escreval ("_____________________________________")
      escreval ("NOME:  ", nome[n])
      escreval ("ALTURA:  ", alt[n])
      para m de 1 ate t-1 faca
         escreval ("O peso atual do paciente é:  ")
         leia (p)
         escreval ("O imc atual é:  ")
         imc[n,m]<- p/(alt[n]*alt[n])
         escreval ("IMC: ", imc[n,m])
         se (imc[n,m]<17) então
            escreval (" MUITO ABAIXO DO PESO.")
         fimse
         se (imc[n,m]>17) e (imc[n,m]< 18.49) então
            escreval ("ABAIXO DO PESO")
         fimse
         se (imc[n,m]>18.50) e (imc[n,m]<24.99) então
            escreval ("PESO NORMAL")
         fimse
         se (imc[n,m]>25) e (imc[n,m]<29.99)então
            escreval ("ACIMA DO PESO")
         fimse
         se (imc[n,m]>30) e (imc[n,m]<34.99)então
            escreval ("OBESIDADE 1")
         fimse
         se (imc[n,m]>35) e (imc[n,m]<39.99)então
            escreval ("OBESIDADE 2 (SEVERA)")
         fimse
         se (imc[n,m]>40)então
            escreval ("OBESIDADE 3 (MÓRBIDA)")
         fimse

      fimpara
   fimpara

fimprocedimento
procedimento "relatorio"
inicio
   escreval ("      RELATÒRIO")
   escreval ("_________________________")
   escreval ("     TABELA DE MONITORAMENTO")
   para x de 1 ate 1 faca
      escreval ("         ")
      para y de 1 ate t-1 faca
         escreva (imc[n,m]:5:2)
      fimpara
      escreval
   fimpara
fimprocedimento
procedimento "menu"
inicio
   escreval ("___________________________")
   escreval ("1.CADASTRO DO PACIENTE")
   escreval ("2.MONITORAMENTO DO PACIENTE")
   escreval ("3.RELATÒRIO")
   escreval ("4.SAIR")
   escreval("____________________________")
   leia (op)
   se (op=1) então
      cadastro
   fimse
   se (op=2) então
      monitoramento
   fimse
   se (op=3) então
      relatorio
   fimse
fimprocedimento
Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   m<-1
   t<-1
   n<-1
   enquanto (op<>4) faca
      menu
   fimenquanto


   se(op=4)  então
      escreval ("FIM")
   fimse


Fimalgoritmo

 

  • Curtir 1
  • Moderador
Postado

@RafaelLittleo Na verdade o melhor  é você postar seu código aqui  usando o botão CODE <>  Porque muitos usam a internet no trabalho e é bloqueado para downloads.

Forçando os usuários a baixarem um arquivo, fará com tenha menos respostas.

Basicamente, explique qual é a sua dúvida exatamente em relação ao seu Código feito.

 

Devo lembra-lo que os professores fazem uma pesquisa aqui e no google para saber se os alunos não copiaram ou pediram ajuda para resolver a questão. Então para evitar problemas a você mesmo, recomendo que poste aqui o andamento do seu trabalho usando o botão CODE <>  que fica entre a citação e o spoiler e informando onde que está com a dúvida... assim os demais podem lhe ajudar com mais facilidade, prova ao professor que não estava atras de respostas mas sim de conhecimento para poder terminar o seu trabalho.

 

Espero que entenda.

  • Curtir 3
Postado

@DiF Entre tirar duvidas  a professora disse q não havia problemas em tirar dúvidas, a minha questão é a seguinte... o programa roda bacaninha lê os dados, e não sei se você o abriu, ele calcula o IMC, e dps faz como posso dizer um acompanhamento do paciente ou de uma pessoa qualquer ao longo de um período, só que eu não consegui fazer q ele armazena-se todos os IMC's ele não guarda, ele acaba apagando.... agradeço se puder me ajudar... obg

 

  • Curtir 1
  • Moderador
Postado

@RafaelLittleo Com certeza não abri e nem fiz o download. Por isso recomendei que postasse o código aqui. É disso que estou falando. Você acaba recebendo menos respostas ou até mesmo tendo seu tópico ignorado por dois motivos:

 

1)O título do seu tópico é ruim.  Não descreve o problema de forma objetiva. Isso espanta os usuários que nem sabem do que se trata.

 

2) Forçar os usuários a baixar o tal arquivo. Não é todos que podem baixar. Então poste aqui e use o botão CODE <>

 

  • Curtir 2
Postado

@RafaelLittleo Pelo que entendi, você quer guardar os dados desse "monitoramento"? Com visualg não tem como até porque ele foi feito apenas para fins didáticos na aprendizagem da lógica da programação. Se você quiser guardar dados para consultas posteriores, terá que implementar um banco de dados e levar isso a outro nível de programação usando alguma linguagem de programação. O visualg basicamente processo os dados passados pelo usuário, na próxima execução, todas variáveis estão zeradas prontas para nova consulta.

  • Curtir 1
Postado

@RafaelLittleo    coloque um repita no procedimento cadastro para poder fazer vários cadastro sem que fique voltando ao menu toda hora.
  No monitoramento retire o loop 

para m de 1 ate t-1 faca

e o

fimpara

desse mesmo loop.

E no procedimento relatório no começo  coloque essa variável

var
linha : inteiro

e dentro do loop

para y de 1 ate t-1 faca

coloque essas linhas.

         escreval("PacienTe ",nome[y]," Com IMC = ",imc[y,1]:5:2)
         linha:=linha+1
         se linha>25 então
           escreval("Tecle Para Continuar")
           leia(g)
           linha:=0
           limpatela
         fimse
       escreval
    se t=1 então
     escreval("Não Tem Nenhum Paciente Cadastrado")
   fimse
   escreval("Tecle Enter Para ContinuaR")
   leia(g)

assim enquanto estiver rodando ele armazena todos os dados, mas se sair, os dados serão perdidos. 

  • Curtir 1
Postado

@RafaelLittleo     É para retirar apenas o loop para m de 1 ate t-1 faca que está no
procedimento monitoramento.
  E no procedimento CADASTRO, toda vez que faz um cadastro ele volta para o menu
e isso é ruim porque é preciso digitar 1 e teclar enter novamente para fazer outro
cadastro, então se colocar um repita lá no inicio do procedimento cadastro, pode se
cadastrar quantas vezes quiser e quando terminar aí sim sair. 
  essas linhas é para colocar no procedimento RELATÓRIO, dentro do loop 
para y de 1 ate t-1 faca
este aqui:

procedimento "relatorio"
var
 linha : inteiro
  g    : caractere
inicio
   escreval ("      RELATÒRIO")
   escreval ("_________________________")
   escreval ("     TABELA DE MONITORAMENTO")
   para x de 1 ate 1 faca
      escreval ("         ")
      para y de 1 ate t-1 faca
         escreval("PacienTe ",nome[y]," Com IMC = ",imc[y,1]:5:2)
         linha:=linha+1
         se linha>25 então
           escreval("Tecle Para Continuar")
           leia(g)
           linha:=0
           limpatela
         fimse
      fimpara
      escreval
   fimpara
   se t=1 então
     escreval("Não Tem Nenhum Paciente Cadastrado")
   fimse
   escreval("Tecle Enter Para ContinuaR")
   leia(g)
fimprocedimento

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

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!