Ir ao conteúdo
  • Cadastre-se

VisualG Algoritmo quiz


Posts recomendados

Boa noite estou precisando fazer um algoritmo quis que tenha um menu com ranking com nome e pontuação feita, porém não sei como fazer o item ranking, como podem ver abaixo eu consegui fazer a parte das perguntas, mas preciso fazer um ranking com nome e pontuação, top 10, da melhor a pior. se alguem puder ajudar ficaria agradecido.

 

att

 

algoritmo "quis"    //nome da aplicação
//comandos utilizados na aplicação:
// Função : Jogo de Perguntas e Respostas
// Autor : Pablo
// Seção de Declarações
var
   erros, acertos, pontuacao: inteiro     //variaveis para armazenar acertos e erros
   opcao: caractere            //variavel para armazenar opção de resposta
   nome: caractere
   vetnome: vetor[1..20] de caractere
   vetpontos: vetor[1..20] de inteiro
inicio
   // Seção de Comandos 
   // verifica o tempo de execução do programa
   cronometro on
   Escreval("*------------------------------------------------------*")
   Escreval("|                    MENU DE opções                    |")
   Escreval("*------------------------------------------------------*")
   Escreval("|  0 - SAIR DO quis                                    |")
   Escreval("|  1 - INICIAR quis                                    |")
   Escreval("|  2 - RANKING                                         |")       //selecionar o que deseja fazer
   Escreval("*------------------------------------------------------*")
   Escreval("O QUE DESEJA FAZER ? ")
   leia(opcao)

   se (opcao = "0")entao
      Escreval("Finalizando quis")
   fimse

   se (opcao = "1") entao 
      limpatela

      Escreval("Digite o seu nome: ")
      leia (nome)
      // o comando escreva tem o objetivo de exibir na tela
      Escreval("--------------------------------------------------------")
      Escreval("|                         quis                         |")
      Escreval("|                  Primeira Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("1 - O que é Lógica?")
      Escreval("a) Nada ")
      Escreval("b) Uma Coisa Ruim")
      Escreval("c) Sequência Linear")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      //comando "leia" tem o objetivo de ler a opção escolhida
      //comando "se" é um comando que indica condição e faz um comparação
      se(opcao = "c")entao
          acertos <- acertos + 1
          pontuacao <- pontuacao +100
      senao
         erros <- erros + 1
         pontuacao <- pontuacao +0
      fimse
      // Comando para limpar a tela
      limpatela
      Escreval("--------------------------------------------------------")
      Escreval("|                         quis                         |")
      Escreval("|                   Segunda Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("2 - A função  b2 - 4 x A x C?")
      Escreval("a) Estocombo ")
      Escreval("b) Delta")
      Escreval("c) Tabela quântica")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      se(opcao = "b")entao
          acertos <- acertos + 1
          pontuacao <- pontuacao +100
      senao
         erros <- erros + 1
         pontuacao <- pontuacao +0
      fimse

      // Comando para limpar a tela
      limpatela
      Escreval("--------------------------------------------------------")
      Escreval("|                        quis                          |")
      Escreval("|                  Terceira Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("3 - A pintura da monaliza é de ?")
      Escreval("a) Van Gogh ")
      Escreval("b) Da Vinci")
      Escreval("c) Alexandre Frota")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      se(opcao = "b")entao
          acertos <- acertos + 1
          pontuacao <- pontuacao +100
      senao
         erros <- erros + 1
         pontuacao <- pontuacao +0
      fimse
      // Comando para limpar a tela
      limpatela

      Escreval("--------------------------------------------------------")
      Escreval("|                         quis                         |")
      Escreval("|                    Quarta Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("4 - O Iphone foi desenvolvido por?")
      Escreval("a) Ney Mato Grosso ")
      Escreval("b) Silvio Santos")
      Escreval("c) Bill Gates")
      Escreval("d) Steve Jobs")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      se(opcao = "d")entao
          acertos <- acertos + 1
          pontuacao <- pontuacao +100
      senao
         erros <- erros + 1
         pontuacao <- pontuacao +0
      fimse
      // Comando para limpar a tela
      limpatela

      Escreval("--------------------------------------------------------")
      Escreval("|                          quis                        |")
      Escreval("|                 Obrigado por particpar!!             |")
      Escreval("--------------------------------------------------------")

      Escreval("")
      Escreval("********************************************************")
      Escreval("*                  Parabens: ", nome,"                    *")
      Escreval("*                  Você acertou: ", acertos,"                    *")
      Escreval("*                  Você errou: ", erros,"                      *")
      Escreval("*                  Você fez: ", pontuacao," pontos                     *")
      Escreval("********************************************************")
      Escreval("")
      Escreval("########################################################")
      Escreval("#                                                      #")
      Escreval("#                 Autor: Pablo                         #")
      Escreval("#                                                      #")
      Escreval("#                     Versão Aprendizado               #")
      Escreval("#                                                      #")
      Escreval("########################################################")
      cronometro off
   fimse
   se (opcao = "2")entao
      vetnome[1..20] <- nome
      vetpontos <- pontos
      Escreva(nome, "sua pontuacao é: ",pontos)
   fimse
fimalgoritmo

 

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

@Pablo Queiroz Dias    se você usar vetor será mais fácil, por exemplo você pode criar um vetor bidimensional também chamado matriz, na área de variáveis,  assim :

matriz : vetor[1..10,1..4] de caracteres

com isso coloque uma estrutura de repetição com uma variável de controle que pode ser J começando em 1 e nesse caso indo no máximo  até 10  e então na matriz coloque assim :

 matriz[j,1] := nome
 matriz[j,2] := acertos
 matriz[j,3] := erros
 matriz[j,4] := pontuação

e depois de cada resposta faça a atualização dessa matriz com os novos valores, sendo que como essa matriz é de caracteres para fazer cálculos precisa converter os dados para inteiro usando a função caracpnum, que funciona assim :

a=caracpnum(matriz[j,2])

e então fazer a soma e colocar novamente na matriz e dessa vez use a função numpcarac assim :

a=a+1
matriz[j,2]:=numpcarac(a)

depois lá no final pegue os resultados que estarão guardados na matriz, no mesma ordem em que foram guardados e para ver o ranking você faz a organização da matriz em ordem decrescente, com isso o que estiver em primeiro será o mais bem pontuado.

Link para o comentário
Compartilhar em outros sites

@Pablo Queiroz Dias       nas opções você poderia usar o comando escolha / caso , mas seu código esta funcionando bem,  e para o ranking precisar de uma matriz .

   experimente esse seu código com algumas modificações :

algoritmo "quis"    //nome da aplicação
//comandos utilizados na aplicação:
// Função : Jogo de Perguntas e Respostas
// Autor : Pablo
// Seção de Declarações
var
  erros,acertos,pontuacao,cont,op,a,b : inteiro //variaveis para armazenar acertos e erros
  opcao     : caractere                   //variavel para armazenar opção de resposta
  nome,aux  : caractere
  vetnome   : vetor[1..20] de caractere
  vetpontos : vetor[1..20] de inteiro
  ranking   : vetor[1..20,1..4] de caractere
inicio
  // Seção de Comandos
  // verifica o tempo de execução do programa
  cont := 1
  repita  // para jogar varias vezes
    limpatela
    //cronometro on
    escreval("                       ",cont," Rodada")
    Escreval("*------------------------------------------------------*")
    Escreval("|                    MENU DE opções                    |")
    Escreval("*------------------------------------------------------*")
    Escreval("|  0 - SAIR DO quis                                    |")
    Escreval("|  1 - INICIAR quis                                    |")
    Escreval("|  2 - RANKING                                         |")       //selecionar o que deseja fazer
    Escreval("*------------------------------------------------------*")
    Escreva("O QUE DESEJA FAZER ? ")
    leia(opcao)

    se (opcao = "0")ENTÃO
      Escreval("Finalizando quis")
      op := 1
    fimse

    se (opcao = "1") ENTÃO
      limpatela

      Escreval("Digite o seu nome: ")
      leia (nome)
      // o comando escreva tem o objetivo de exibir na tela
      Escreval("--------------------------------------------------------")
      Escreval("|                         quis                         |")
      Escreval("|                  Primeira Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("1 - O que é Lógica?")
      Escreval("a) Nada ")
      Escreval("b) Uma Coisa Ruim")
      Escreval("c) Sequência Linear")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      //comando "leia" tem o objetivo de ler a opção escolhida
      //comando "se" é um comando que indica condição e faz um comparação
      se(opcao = "c")ENTÃO
        acertos <- acertos + 1
        pontuacao <- pontuacao +100
      senao
        erros <- erros + 1
        pontuacao <- pontuacao +0
      fimse
      // Comando para limpar a tela
      limpatela
      Escreval("--------------------------------------------------------")
      Escreval("|                         quis                         |")
      Escreval("|                   Segunda Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("2 - A função  b2 - 4 x A x C?")
      Escreval("a) Estocombo ")
      Escreval("b) Delta")
      Escreval("c) Tabela quântica")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      se(opcao = "b")ENTÃO
        acertos <- acertos + 1
        pontuacao <- pontuacao +100
      senao
        erros <- erros + 1
        pontuacao <- pontuacao +0
      fimse

      // Comando para limpar a tela
      limpatela
      Escreval("--------------------------------------------------------")
      Escreval("|                        quis                          |")
      Escreval("|                  Terceira Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("3 - A pintura da monaliza é de ?")
      Escreval("a) Van Gogh ")
      Escreval("b) Da Vinci")
      Escreval("c) Alexandre Frota")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      se(opcao = "b")ENTÃO
        acertos <- acertos + 1
        pontuacao <- pontuacao +100
      senao
        erros <- erros + 1
        pontuacao <- pontuacao +0
      fimse
      // Comando para limpar a tela
      limpatela

      Escreval("--------------------------------------------------------")
      Escreval("|                         quis                         |")
      Escreval("|                    Quarta Pergunta                   |")
      Escreval("--------------------------------------------------------")
      Escreval(" ")
      Escreval("4 - O Iphone foi desenvolvido por?")
      Escreval("a) Ney Mato Grosso ")
      Escreval("b) Silvio Santos")
      Escreval("c) Bill Gates")
      Escreval("d) Steve Jobs")
      Escreval("")
      Escreval("Resposta:")
      leia(opcao)
      se(opcao = "d")ENTÃO
        acertos <- acertos + 1
        pontuacao <- pontuacao +100
      senao
        erros <- erros + 1
        pontuacao <- pontuacao +0
      fimse
      // Comando para limpar a tela
      limpatela

      Escreval("--------------------------------------------------------")
      Escreval("|                          quis                        |")
      Escreval("|                 Obrigado por particpar!!             |")
      Escreval("--------------------------------------------------------")

      Escreval("")
      Escreval("********************************************************")
      Escreval("*                  Parabens: ", nome,"                    *")
      Escreval("*                  Você acertou: ", acertos,"                    *")
      Escreval("*                  Você errou: ", erros,"                      *")
      Escreval("*                  Você fez: ", pontuacao," pontos                     *")
      Escreval("********************************************************")
      Escreval("")
      Escreval("########################################################")
      Escreval("#                                                      #")
      Escreval("#                 Autor: Pablo                         #")
      Escreval("#                                                      #")
      Escreval("#                     Versão Aprendizado               #")
      Escreval("#                                                      #")
      Escreval("########################################################")
      //cronometro off
      ranking[cont,1]:=nome
      ranking[cont,2]:=numpcarac(acertos)//passar de numero para caractere
      ranking[cont,3]:=numpcarac(erros)
      ranking[cont,4]:=numpcarac(pontuacao)
      cont:=cont+1
      escreval
      escreval("              Tecle Enter")
      leia(opcao)
    fimse
    //mostra o ranking
    se (opcao = "2")ENTÃO
      para a de 1 ate cont-1 faca    //para organizar em ordem decescente
        aux:=ranking[a,4]            // aux pega a pontuação do jogador
        para b de a+1 ate cont faca  // b aponta para o próximo jogador no vetor
          se ranking[b,4]>aux ENTÃO  //se pontuação do próximo jogador maior que a do anterior
             ranking[a,4]:=ranking[b,4]//coloca o maior primeiro
             ranking[b,4]:=aux       //coloca o menor depois
             aux:=ranking[a,1]//troca os outros dados do jogador, aqui é nome
             ranking[a,1]:=ranking[b,1]
             ranking[b,1]:=aux
             aux:=ranking[a,2] //aqui é acertos
             ranking[a,2]:=ranking[b,2]
             ranking[b,2]:=aux
             aux:=ranking[a,3]  // aqui é erros
             ranking[a,3]:=ranking[b,3]
             ranking[b,3]:=aux
          fimse
        fimpara
      fimpara
      se cont = 1 ENTÃO
        b:=cont
      senao
        b := cont-1
      fimse
      para a de 1 ate b faca
        escreva("nome -> ",ranking[a,1],"  acertou ",ranking[a,2])
        escreval("  Errou ",ranking[a,3],"  Pontuação ",ranking[a,4])
      fimpara
      pontuacao:= 0
      acertos  := 0
      erros    := 0
      escreval("Tecle Enter")
      leia(opcao)
    fimse
  ate op = 1
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá a todos...

 

Só uns adendos:

 

1) CONDIÇÕES MUTUAMENTE EXCLUDENTES

Assim como foi usado o SE/ENTÃO/SENÃO para o acertos ou erros, deveriam-se também usar para o Menu, ou seja, lá está com um conjunto de SE/ENTÃO, mas deveria ser SE/ENTÃO/SENÃO (não pode ser 0, 1 ou 2 ao mesmo tempo)... ou como sugerido por @devair1010, usar o ESCOLHA/CASO. (que é uma espécie de se/então/senão mais sofistica).

 

 

 

2) VARIÁVEIS

Ao usar o hanking, os vetores vetnome e vetpontos passaram a não ser mais úteis, logo, apagar lá da declaração.

 

 

 

3) VALIDAÇÃO DE ITEM

Antes de iniciar o Ranking, poderia fazer uma verificação se já existe alguma partida já finalizada, ou seja, com "cont<>1".

 

Isso inclusive já evitaria essa verificação:

9 horas atrás, devair1010 disse:

      se cont=1 ENTÃO
         b:=cont
      senao
         b:=cont-1
      fimse

 

Obs.: pelo que eu entendi, quando nenhuma partida ainda foi feita, o cont conterá 1, daí ao fazer cont-1, ele iria para 0.

 

 

 

***

 

Por enquanto é isso.

 

No aguardo.

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

  • 3 anos depois...
  • Membro VIP
1 hora atrás, Albeliano Lacerda disse:

Como posso colocar gabarito nesses algoritmos aí em cima?

 

Para inserir um gabarito, primeiro você precisa ter um código funcionando sem gabarito.

 

Poste o teu código completo que esteja funcionando, depois vemos a parte do gabarito.

 

No aguardo.

 

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

Em 07/05/2021 às 09:19, Simon Viegas disse:

@Albeliano Lacerda, o código que você postou estava ilegível e desta forma ele foi removido.

 

Por favor, poste o código completo que você já fez e em qual parte está com dúvidas.

 

 

algoritmo "quizz de Química"  //nome da aplicação
//comandos utilizados na aplicação:
// Função : Jogo de Perguntas e Respostas
// Autor : albeliano Junior
// Seção de Declarações
var
   erros,acertos,pontuacao,cont,op,a,b : inteiro //variaveis para armazenar acertos e erros
   opcao : caractere //variavel para armazenar opção de resposta
   nome,aux  : caractere
   vetnome : vetor[1..20] de caractere
   vetpontos : vetor[1..20] de inteiro
   ranking : vetor[1..20,1..4] de caractere
inicio
   // Seção de Comandos
   // verifica o tempo de execução do programa
   cont := 1
   repita  // para jogar varias vezes
      limpatela
      //cronometro on
      escreval(" ",cont," Rodada")
      Escreval("------------------------------------------------------")
      Escreval("|  MENU DE opções  |")
      Escreval("------------------------------------------------------")
      Escreval("|  0 - SAIR DO quis  |")
      Escreval("|  1 - INICIAR quis  |")
      Escreval("|  2 - RANKING |") //selecionar o que deseja fazer
      Escreval("------------------------------------------------------")
      Escreva("O QUE DESEJA FAZER ? ")
      leia(opcao)

      se (opcao = "0")ENTÃO
         Escreval("Finalizando quis")
         op := 1
      fimse

      se (opcao = "1") ENTÃO
         limpatela

         Escreval("Digite o seu nome: ")
         leia (nome)
         // o comando escreva tem o objetivo de exibir na tela
         Escreval("--------------------------------------------------------")
         Escreval("| quis |")
         Escreval("|  Primeira Pergunta |")
         Escreval("--------------------------------------------------------")
         Escreval("1 - Ocorre a fusão quando?")
         Escreval("a) Quando passa do estado liquido para o sólido")
         Escreval("b) Quando passa do estado Liquido para o gasoso ")
         Escreval("c) Quando passa do estado solido pro liquido")
         Escreval("d) Quando passa do estado Liquido para o gasoso")
         Escreval("Resposta:")
         leia(opcao)
         //comando "leia" tem o objetivo de ler a opção escolhida
         //comando "se" é um comando que indica condição e faz um comparação
         se(opcao = "c")ENTÃO
            acertos <- acertos + 1
            pontuacao <- pontuacao +100
         senao
            erros <- erros + 1
            pontuacao <- pontuacao +0
         fimse
         // Comando para limpar a tela
         limpatela
         Escreval("--------------------------------------------------------")
         Escreval("| quis |")
         Escreval("| Segunda Pergunta |")
         Escreval("--------------------------------------------------------")
         Escreval("2 - O que é Inercia?")
         Escreval("a) A matéria tem de ocupar um lugar no espaço")
         Escreval("b) Dois corpos não podem ocupar, simultaneamente o mesmo lugar no espaço ")
         Escreval("c) Consiste em ter volume reduzido quando submetida a determinada pressão")
         Escreval("d) A matéria permanece na situação em que se encontra, seja em movimento, seja em repouso")
         Escreval("Resposta:")
         leia(opcao)
         se(opcao = "d")ENTÃO
            acertos <- acertos + 1
            pontuacao <- pontuacao +100
         senao
            erros <- erros + 1
            pontuacao <- pontuacao +0
         fimse

         // Comando para limpar a tela
         limpatela
         Escreval("--------------------------------------------------------")
         Escreval("|  quis  |")
         Escreval("|  Terceira Pergunta |")
         Escreval("--------------------------------------------------------")
         Escreval("3 - São exemplos de propriedades Gerais da matéria?")
         Escreval("a) Extensão, Inércia, Impenetrabilidade, Compressibilidade, Elasticidade, Divisibilidade e Indestrutibilidade")
         Escreval("b) Dureza, Brilho, Maleabilidade, Ductilidade, Densidade é Magnetismo")
         Escreval("c) Propriedades organolépticas e Ponto de fusão e ebulição")
         Escreval("d) Todas estão errada")
         Escreval("Resposta:")
         leia(opcao)
         se(opcao = "a")ENTÃO
            acertos <- acertos + 1
            pontuacao <- pontuacao +100
         senao
            erros <- erros + 1
            pontuacao <- pontuacao +0
         fimse
         // Comando para limpar a tela
         limpatela

         Escreval("--------------------------------------------------------")
         Escreval("| quis |")
         Escreval("|  Quarta Pergunta |")
         Escreval("--------------------------------------------------------")
         Escreval("4 - Existem 2 tipos de propriedades da matéria. Quais são elas?")
         Escreval("a) Propriedades Normais e anormais")
         Escreval("b) Propriedades Simples e raras")
         Escreval("c) Propriedades Gerais e especificas")
         Escreval("d) Propriedades antigas e atuais")
         Escreval("Resposta:")
         leia(opcao)
         se(opcao = "c")ENTÃO
            acertos <- acertos + 1
            pontuacao <- pontuacao +100
         senao
            erros <- erros + 1
            pontuacao <- pontuacao +0
         fimse
         // Comando para limpar a tela
         limpatela

         Escreval("--------------------------------------------------------")
         Escreval("|  quis  |")
         Escreval("| Obrigado por particpar!! |")
         Escreval("--------------------------------------------------------")

         Escreval("")
         Escreval("********")
         Escreval("*  Parabens: ", nome,"  *")
         Escreval("*  Você acertou: ", acertos,"  *")
         Escreval("*  Você errou: ", erros,"  *")
         Escreval("*  Você fez: ", pontuacao," pontos *")
         Escreval("********")
         Escreval("")
         Escreval("########################################################")
         Escreval("#  #")
         Escreval("# Autor: albeliano junior #")
         Escreval("#  #")
         Escreval("# Versão Aprendizado #")
         Escreval("#  #")
         Escreval("########################################################")
         //cronometro off
         ranking[cont,1]:=nome
         ranking[cont,2]:=numpcarac(acertos)//passar de numero para caractere
         ranking[cont,3]:=numpcarac(erros)
         ranking[cont,4]:=numpcarac(pontuacao)
         cont:=cont+1
         escreval
         escreval("  Tecle Enter")
         leia(opcao)
      fimse
      //mostra o ranking
      se (opcao = "2")ENTÃO
         para a de 1 ate cont-1 faca  //para organizar em ordem decescente
            aux:=ranking[a,4]  // aux pega a pontuação do jogador
            para b de a+1 ate cont faca  // b aponta para o próximo jogador no vetor
               se ranking[b,4]>aux ENTÃO  //se pontuação do próximo jogador maior que a do anterior
                  ranking[a,4]:=ranking[b,4]//coloca o maior primeiro
                  ranking[b,4]:=aux //coloca o menor depois
                  aux:=ranking[a,1]//troca os outros dados do jogador, aqui é nome
                  ranking[a,1]:=ranking[b,1]
                  ranking[b,1]:=aux
                  aux:=ranking[a,2] //aqui é acertos
                  ranking[a,2]:=ranking[b,2]
                  ranking[b,2]:=aux
                  aux:=ranking[a,3]  // aqui é erros
                  ranking[a,3]:=ranking[b,3]
                  ranking[b,3]:=aux
               fimse
            fimpara
         fimpara
         se cont = 1 ENTÃO
            b:=cont
         senao
            b := cont-1
         fimse
         para a de 1 ate b faca
            escreva("nome -> ",ranking[a,1],"  acertou ",ranking[a,2])
            escreval("  Errou ",ranking[a,3],"  Pontuação ",ranking[a,4])
         fimpara
         pontuacao:= 0
         acertos  := 0
         erros  := 0
         escreval("Tecle Enter")
         leia(opcao)
      fimse
   ate op = 1
fimalgoritmo

 

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