Ir ao conteúdo
  • Cadastre-se

VisualG Pessoal, problema com o ENTAO no VisualG


Posts recomendados

Fala galera, to tentando milhares de vezes um jeito de acertar esse pseudocódigo pra calcular a média de estudo de 3 estudantes, mas o viauslg não para de acusar aquela mensagem de "esperava encontrar ENTAO" e não sei mais o que fazer.

Segue o meu pseudocódigo:

algoritmo "Média de Estudo"
// Função : Calcular a média de tempo estudado
// Autor : Danrley Vinícius Siqueira
// Data : 13/08/2019
// Seção de Declarações
var
t1, t2, t3, med : real
inicio
// Seção de Comandos
Escreval("Informe o tempo de estudo do aluno 1:")
Leia(t1)
Escreval("Informe o tempo de estudo do aluno 2:")
Leia(t2)
Escreval("Informe o tempo de estudo do aluno 3:")
Leia(t3)
Se(t1<=24 e t2<=24 e t3<=24)
   Entao med<-(t1+t2+t3))/3
   Se(med<=0,9)
      Entao escreva("Turma pouco aplicada.")
      Se(med<=2,9)
         Entao escreva("Turma aplicada.")
         Se(med>=3)
            Entao escreva("Turma excepcional.")
         fimse
      fimse
   fimse
fimse
fimalgoritmo

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@vinesiqueira32     para postar seu código é melhor usar o botão   <>

82373950_barradeferramentas.JPG.4dbc03c40b86c26206ea02bf49d378b8.JPG

 que está desenhado lá na barra de ferramentas da janela de postar , pois senão seu código fica faltando alguns caracteres ,  e seu código está bom , mas os comandos precisam estar nos locais certos , senão dá esses erros mesmo ,  então seu código poderia ser assim  :

algoritmo "Média de Estudo"
// Função : Calcular a média de tempo estudado
// Autor  : Danrley Vinícius Siqueira
// Data   : 13/08/2019
// Seção de Declarações
var
  t1,t2,t3,med : real
inicio
  escreva("Informe o tempo de estudo do aluno 1: ")
  leia(t1)
  escreva("Informe o tempo de estudo do aluno 2: ")
  leia(t2)
  escreva("Informe o tempo de estudo do aluno 3: ")
  leia(t3)                               //expressões lógica entre parenteses
  se(t1<=24) e (t2<=24) e (t3<=24)entao  //o entao vem no final da linha
    med<-(t1+t2+t3)/3                    //o visualG usa ponto para decimais
    se(med<=0.9) entao                   //o entao vem no final da linha
      escreva("Turma pouco aplicada.")   //use o senao para facilitar tudo
    senao                                //o visualG usa ponto para decimais
      se(med<=2.9) entao                 //o entao vem no final da linha
        escreva("Turma aplicada.")
      senao                              //use o senao para facilitar tudo
        se(med>=3) entao                 //o entao vem no final da linha
            escreva("Turma excepcional.")
        fimse
      fimse
    fimse
  fimse
fimalgoritmo

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@vinesiqueira32, bom dia.

 

Creio que falta ajustar as condições para cada caso de média... alguns contextos: os valores entre 2.9 e 3.0 não estão sendo considerados, ou seja: se a média der, por exemplo, 2.94, não entrará em alguma categoria (não é menor ou igual a 2.9, nem maior ou igual a 3.0). Outro caso é se a média for 0.92, aí passa ser turma aplicada... está certo?

 

Sugiro dar uma revisada no enunciado do problema e se ater a essas faixas limites. Após, tente corrigir e poste o novo código, assim como o enunciado completo para reanalisamos.

 

No aguardo.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Boa noite Simon, 

Dei uma lida novamente no enunciado do e realmente estou confuso em como colocar um comando para identificar a média entre 1 e 3 horas dentro do pseudocódigo.

 

Proponha um algoritmo em pseudocódigo que lê o total de horas de estudo em um dia de cada aluno de uma turma de 3 estudantes. Após a leitura, calcule e informe a média dos tempos dedicados ao estudo pela turma. A partir do valor da média, informe o nível de dedicação da turma, conforme a classificação a seguir:

• Média menor que 1 hora: Turma pouco dedicada 
• Média entre 1 hora e 3 horas: Turma dedicada 
• Média acima de 3 horas: Turma excepcional

OBS: Seu programa deve validar os dados informados pelo usuário.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@vinesiqueira32     ali  como já tem o senao , ele já terá verificado se é menor que 1 , então não precisa verificar novamente pois se passou desse primeiro se então só pode ser maior ou igual a 1 , aí  só precisa verificar se é menor ou igual a três , e no outro se verificar se é maior que três . 

med<-(t1+t2+t3)/3                    
    se(med < 1) entao               
      escreva("Turma pouco aplicada.")
    senao                             
      se(med <= 3) entao              
        escreva("Turma aplicada.")
      senao                           
        se(med > 3) entao              
            escreva("Turma excepcional.")
        fimse
      fimse
    fimse

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
12 horas atrás, vinesiqueira32 disse:

Boa noite Simon, 

Dei uma lida novamente no enunciado do e realmente estou confuso em como colocar um comando para identificar a média entre 1 e 3 horas dentro do pseudocódigo.

 

Isso entra lá nos conceitos de "Intervalos". O conjunto que o problema envolve são os números entre 0 e 24 (inclusos)... seria algo como: {x Є R / 0 ≤ x ≤ 24} ou [0, 24]. Aí, a classificação estaria dividida em 3 subconjuntos: [0, 1[, [1, 3] e ]3, 24]... então, a união desses subconjuntos devem necessariamente ser igual a conjunto maior, no caso [0, 24]. Entende? ao desenhar lá a reta, todo intervalo deve ter sido "usado" ("toda a linha estará preenchida").

 

No seu primeiro código, estava assim: ]-∞,0.9], ]0.9, 2,9] e [3,+∞]... a depender, outra forma seria desenhar a reta lá com os pontos abertos ou fechados... Verás que terá parte não preenchida (e também passando do limite do conjunto do enunciado). Então, onde estaria os números maiores que 2.9 e menores que 3? ou seja: não estão fazendo parte da faixa de números (lá nos se, nenhuma condição será verdadeira). Da mesma forma, os números maiores que 0.9 e menores que 1 estão na segunda faixa, mas, de acordo com o enunciado, deveriam está na primeira. Por aí vai.

 

 

Obs.: se atente que o conjunto dos reais (na matemática) vai de "- infinito" a "+ infinito". No caso do seu programa, você está "verificando" se foi inserido uma quantidade de horas "maiores que 24h", ou seja: se está no limite mínimo e máximo de um dia. Nesse sentido, talvez seria interessante também verificar se o usuário inseriu um valor menor que 0 (já que não existe horas negativas no contexto).

 

 

(ou seria algo bem próximo disso... quem manjar das matemáticas, fiquem a vontade para me corrigir, rs)

 

 

SUGESTÕES:

- além de validar se cada valor é menor ou igual, também verifique se é maior ou igual a 0;

- caso o valor não esteja na faixa acima, exiba uma mensagem de erro, algo como: "insira valores entre 0 e 24 (inclusos)".

 

Daí poste o novo código para analisarmos.

 

Dica: tente fazer uma coisa de casa vez. Ou faz uma coisa ou faz a outra. Após testar, aí implementa a próxima...

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!