Ir ao conteúdo
  • Cadastre-se

Sobre visualg: variás ações e respostas


Posts recomendados

Boa noite, estou estudando um pouco do visualg e me veio uma duvida, teria como eu fazer um código onde existem duas alternativas de resposta para uma pergunta e dependendo da resposta o código seguiria um caminho diferente?

 

No código abaixo tem um exemplo do que eu queria mais ou menos, se caso o usuário responda a pergunta com "exatas" então viriam perguntas de matérias exatas, caso ele respondesse "humanas" então viriam perguntas sobre matérias de humanas, no caso o código teria que seguir a função "escolha" ou "se"?

 

Var
// Seção de Declarações das variáveis 
exatas,humanas:caractere

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreval ("Seja bem vindo!")
escreval ("Escolha uma matéria.")
leia (exatas,humanas)
escolha exatas,humanas
caso "exatas"
     escreval ("Quanto é 5x7?")
outrocaso
     escreval ("Quando o brasil foi descoberto?")
fimescolha



Fimalgoritmo

Se puderem me ajudar na questão da execução do código eu agradeceria, pois não faço a mínima ideia de como continuar.

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

  • Moderador

@Alfredo Braz Olá!

 

Basicamente podes fazer tanto com escolha ou SE.

O que está errado no seu código é ter duas variáveis, tentar lê-las juntas e tentar testar juntas.

Tente assim:

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

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreval ("Seja bem vindo!")
escreval ("Escolha uma matéria.")
escreval ("1 - para Exatas  2- para humanas .")  
leia (opcao)
escolha opcao
caso 1 faca
     escreval ("Quanto é 5x7?")
caso 2 faca
     escreval ("Quando o brasil foi descoberto?")
fimescolha



Fimalgoritmo

Pode fazer com a opção seja em caractere:

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

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreval ("Seja bem vindo!")
escreval ("Escolha uma matéria.")
escreval ("Aperte a letra E para Exatas ou H para humanas .")  
leia (opcao)
escolha opcao
caso "e" faca
     escreval ("Quanto é 5x7?")
caso "h" faca
     escreval ("Quando o brasil foi descoberto?")
fimescolha



Fimalgoritmo

Ainda podes usar o SE se preferir:

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

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreval ("Seja bem vindo!")
escreval ("Escolha uma matéria.")
escreval ("e - para Exatas  h - para humanas .")  
leia (opcao)
  
se (opcao == "e") então
  escreval ("Quanto é 5x7?")
  senao se (opcao == "h") então
    escreval ("Quando o brasil foi descoberto?")
  fimse
fimse  
  
Fimalgoritmo

 

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

@Alfredo Braz    sim, tem como ter duas resposta para uma pergunta, e você pode

usar o comando escolha.    então fiz uma pequena modificação no seu algoritmo,

se escolher  um ele segue por um caminho, e se escolher dois ele vai por outro caminho.                              veja como ficou o algoritmo

Algoritmo "acao e resposta"
Var
exatas,humanas:caractere
materia:inteiro
Inicio
escreval ("Seja bem vindo!")
escreval ("Escolha uma matéria. ")
escreval("Digite 1 - para humanas")
escreval("Digite 2 - para exatas")
leia (materia)
escolha materia
caso  2
     escreval ("Quanto é 5x7?")
caso  1
     escreval ("Quando o brasil foi descoberto?")
outrocaso
     escreva("opção invalida")
fimescolha
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

@Alfredo Braz        para o programa aceitar a resposta, você precisa colocar os

códigos do que você quer fazer, ali no caso 1 ou no caso 2. por exemplo se esco-

lher humanas que como coloquei é caso 1, então ele vai fazer o que estiver na
linha abaixo do caso 1, ali você já colocou para ele escrever na tela a frase

Quando O Brasil Foi Descoberto? então você colocaria mais alguma coisa para

que o programa armazene a informação por exemplo.:

leia(data)

para isso precisaria de mais uma variável, no caso, data do tipo inteiro.  Aí então

o usuário digitaria 1500 informando a data;  E  depois  desta  questão você pode

colocar mais questões ou qualquer outro comando que você queira que o progra-

ma faça, e enquanto tiver comandos para ele fazer ele vai fazendo e aí depois

que ele fizer todos esses comandos, então aí sim, ele finaliza a execução do pro-

grama.

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Alfredo Braz é mais ou menos como o colega falou ali em cima, mas não com variável inteiro.

basicamente você precisa ter uma variável do tipo caractere para receber as respostas e outra para selecionar a correta.

Por exemplo:

 

var
  opcao, alternativa, certo,errado:caractere
inicio
// Seção de Comandos 

escreval ("Seja bem vindo!")
escreval ("Escolha uma matéria.")
escreval ("Aperte a letra E para Exatas ou H para humanas .")
leia (opcao)

certo <- "Resposta certa!"
errado <- "Resposta errada :("

escolha opcao
caso "e" faca
     escreval ("Quanto é 5x7?")
     escreval ("a)35")
     escreval ("b)12")
     escreval ("c)49")
     escreva  ("Resposta: ")
     leia(alternativa)
     se (alternativa = "a") então
        escreval(certo)
     senao se (alternativa = "b") então
        escreval(errado)
     senao
        escreval(errado)
     fimse
    interrompa
caso "h" faca
     escreval ("Quando o brasil foi descoberto?")
     escreval ("a)1235")
     escreval ("b)1450")
     escreval ("c)1500")
     escreva  ("Resposta: ")
     leia(alternativa)
     se (alternativa = "a") então
        escreval(errado)
     senao se (alternativa = "b") então
        escreval(errado)
     senao
        escreval(certo)
     fimse
    interrompa
fimescolha

Mais ou menos isso.

O que fiz foi:

Criar 3 variáveis alternativa, certo e errado.

O certo e errado recebem um valor string ou seja em texto.

A alternativa fica para testar qual alternativa você escolheu e sua resposta.

Veja que faço um teste de alternativa.. perceba que tem 3 alternativas a, b e c. 

Usa-se a condicional SE-senão para testar as alternativas.

A lógica é esta.

Só que fica muito inviável fazer um questionário assim... pois teria muitas opções de caso.

O ideal seria usar vetores, para armazenar as perguntas e respostas... e aí depois iterar este vetor. ou seja percorre-lo e separar as perguntas e etc... mas esta linguagem visualG é extremamente limitada. por isso use só para aprender a lógica.. depois disso procure estudar uma linguagem mais robusta. como java, c, php.. e etc...

 

PS: SE o caso não funcionar com caractere(creio que seja por causa da versão do visualG) Altere a variável opcao para o tipo inteiro e aí substitua  o "H" e o "E"  por números 1 e 2.. e por ai vai.

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

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