Ir ao conteúdo

VisualG Simulacao de prova de conhecimento gerais


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Bom dia, alguém poderia me ajudar a fazer um ranking do tipo mostra o primeiro lugar segundo lugar, em ordem crescente,tentei fazer mas não estou conseguindo 

 

 

 

 

var
acertos,erros:vetor[1..3] de inteiro  //Variaveis para armazenar o acerto e erros separados para cada pessoa em vetor
nome:vetor[1..3] de caractere  // variavel para armazenar o nome de cada pessoa separado q fizer a prova em vetor
i:inteiro  // contador
res:caractere // variavel para ler a resposta de cada questão
percentualacertos1:real
percentualacertos2:real      // variveis para calcular o percentual de acertos das questões
percentualacertos3:real
inicio
// Seção de Comandos
para i de 1 ate 3 passo 1 faca          //  laco de repetição para fazer a prova ate 3 vezes com diferentes pessoas
   escreval
   escreval("                                 ","[",i," ]","° Prova                                        ")
   escreval
   escreval("==================================================================================")
   escreval("                        PROVA DE CONHECIMENTO GERAIS!                             ")
   escreval("==================================================================================")
   escreval
   escreva("Nome: ")
   leia(nome[i])
   escreval
   escreval
   escreval("==================================================================================")
   escreval("                                 1° Questão                                       ")
   escreval("==================================================================================")    // inicio da prova com as questões
   escreval
   escreval("1- Quem foi a primeira pessoa a viajar no Espaço? ")
   escreval("A) Yuri Gagarin")
   escreval("B) A cadela Laika")
   escreval("C) Neil Armstrong")
   escreval("D) Buzz Aldrin ")
   escreval
   escreval("Resposta: ")
   leia(res)                                                // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="a") então          // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 2° Questão                                       ")
   escreval("==================================================================================")      //prova com as questões
   escreval
   escreval("1- Qual a montanha mais alta do mundo? ")
   escreval("A) Monte Chimborazo")
   escreval("B) Monte Everest")
   escreval("C) Pico da Neblina")
   escreval("D) Monte Chimborazo")
   escreval
   escreval("Resposta: ")
   leia(res)                       // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="b") então          // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 3° Questão                                       ")
   escreval("==================================================================================")     //prova com as questões
   escreval
   escreval("1- Onde se localiza Machu Picchu? ")
   escreval("A) Colômbia")
   escreval("B) Peru ")
   escreval("C) Bolívia")
   escreval("D) Argentina")
   escreval
   escreval("Resposta: ")
   leia(res)                  // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="b") então         // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 4° Questão                                       ")
   escreval("==================================================================================")    //prova com as questões
   escreval
   escreval("1- Quanto tempo a Terra demora para dar uma volta completa em torno dela mesma ")
   escreval("A) 30 dias ")
   escreval("B) 365 dias ")
   escreval("C) 24 horas ")
   escreval("D) 7 dias")
   escreval
   escreval("Resposta: ")
   leia(res)                   // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="c") então          // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 5° Questão                                       ")
   escreval("==================================================================================")     //prova com as questões
   escreval
   escreval("1- Qual a Temperatura de ebulição da água? ")
   escreval("A) 150° C")
   escreval("B) 90° C")
   escreval("C) 200° C ")
   escreval("D) 100° C ")
   escreval
   escreval("Resposta: ")
   leia(res)                     // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="d") então            // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 6° Questão                                       ")
   escreval("==================================================================================")      //prova com as questões
   escreval
   escreval("1- Qual o maior planeta do sistema solar? ")
   escreval("A) Terra ")
   escreval("B) Saturno ")
   escreval("C) Júpiter")
   escreval("D) Lua")
   escreval
   escreval("Resposta: ")
   leia(res)                    // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="c") então           // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 7° Questão                                       ")
   escreval("==================================================================================")     //prova com as questões
   escreval
   escreval("1- Qual o monumento famoso pela sua inclinação? ")
   escreval("A) Torre Eiffel")
   escreval("B) Torre de Pisa  ")
   escreval("C) Estatua da Liberdade ")
   escreval("D) Esfinge")
   escreval
   escreval("Resposta: ")
   leia(res)                     // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="b") então            // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 8° Questão                                       ")
   escreval("==================================================================================")   //prova com as questões
   escreval
   escreval("1- Qual a especialidade do otorrinolaringologista? ")
   escreval("A) Tratamento das doenças da pele")
   escreval("B) Tratamento das doenças dos olhos")
   escreval("C) Tratamento de estomago")
   escreval("D) Tratamento das doenças relacionadas a nariz, ouvido e garganta")
   escreval
   escreval("Resposta: ")
   leia(res)                      // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="d") então             // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 9° Questão                                       ")
   escreval("==================================================================================")     //prova com as questões
   escreval
   escreval("1- Que grande evento histórico aconteceu em 1822 no Brasil? ")
   escreval("A) Independencia do Brasil")
   escreval("B) Descobrimento do Brasil")
   escreval("C) Ditadura Militar")
   escreval("D) Construção de Brasilia")
   escreval
   escreval("Resposta: ")
   leia(res)                       // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="a") então              // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
   escreval
   escreval("==================================================================================")
   escreval("                                 10° Questão                                       ")
   escreval("==================================================================================")     //prova com as questões
   escreval
   escreval("1-  Qual a primeira mulher a ganhar um prêmio Nobel? ")
   escreval("A) Madre Teresa de Calcutá")
   escreval("B) Elizabeth Blackweel ")
   escreval("C) Valentina Tereshkova")
   escreval("D) Marie Curie")
   escreval
   escreval("Resposta: ")
   leia(res)                    // ler as respostas
   enquanto (res <> "a") e (res <> "b") e (res <> "c") e (res <> "d") faca    // não deixa o usuario digitar as alternativas que não sejam A,B,C,D
      escreval("Opção Invalida! Digite outra resposta")
      leia(res)
   fimenquanto
   se(res="d") então           // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
      acertos[i]:=acertos[i] + 1
   senao
      erros[i]:=erros[i] + 1
   fimse

   limpatela
fimpara

percentualacertos1:=(acertos[1]/10)*100
percentualacertos2:=(acertos[2]/10)*100    //atribuição para o calculo de percentual de acertos
percentualacertos3:=(acertos[3]/10)*100
escreval
escreval("====================================================================================")
escreval("                               RESULTADO DAS PROVAS!                                ")
escreval("====================================================================================")
escreval
escreval("Resultado prova 1! Nome: ",nome[1]," Acertos: ",acertos[1]," Percentual de: ",percentualacertos1:6:2,"% Erros: ",erros[1])
escreval("Resultado prova 2! Nome: ",nome[2]," Acertos: ",acertos[2]," Percentual de: ",percentualacertos2:6:2,"% Erros: ",erros[2])   // saida com o resultado da prova com o nome, acertos, percentual de acertos e erros
escreval("Resultado prova 3! Nome: ",nome[3]," Acertos: ",acertos[3]," Percentual de: ",percentualacertos3:6:2,"% Erros: ",erros[3])



fimalgoritmo

 

  • Amei 1
Postado

@Resende inacio      essa lógica não está muito boa , não , pois você está contando os acertos e erros ,  e não precisa usar vetor para isso ,  melhor seria usar os vetores para armazenar as questões e respostas  e após terminar todas as questões ,  faz a contagem dos acertos e erros , e não precisa repetir a mesma parte do código várias vezes ,  se usar um laço de repetição que vai pegando as Questões armazenadas previamente em um vetor de caracteres antes do início do programa ,   e assim você poderia usar um método de ordenação de vetores , como o bubbleSort ou o AncoraSort  e teria a classificção dos melhores pontuados  decrescendo para os que tenham menos quantidade de pontos .

Postado
3 horas atrás, devair1010 disse:

@Resende inacio      essa lógica não está muito boa , não , pois você está contando os acertos e erros ,  e não precisa usar vetor para isso ,  melhor seria usar os vetores para armazenar as questões e respostas  e após terminar todas as questões ,  faz a contagem dos acertos e erros , e não precisa repetir a mesma parte do código várias vezes ,  se usar um laço de repetição que vai pegando as Questões armazenadas previamente em um vetor de caracteres antes do início do programa ,   e assim você poderia usar um método de ordenação de vetores , como o bubbleSort ou o AncoraSort  e teria a classificção dos melhores pontuados  decrescendo para os que tenham menos quantidade de pontos .

e como ficaria esse codigo melhorado?

  • Obrigado 1
  • Solução
Postado

@Resende inacio    creio que poderia ser assim :

Algoritmo "Ordem CescenTe"
var
  acertos,erros      : vetor[ 1..3      ] de inteiro    //Variaveis para armazenar o acerto e erros separados para cada pessoa em vetor
  questoes,respostas : vetor[ 1..10,1..5] de caractere
  nome               : vetor[ 1..3      ] de caractere  // variavel para armazenar o nome de cada pessoa separado q fizer a prova em vetor
  res , aux          :                       caractere  // variavel para ler a resposta de cada questão
  i , j ,q ,auxiliar :                       inteiro    // contador    
  percentualacertos1 :                       real
  percentualacertos2 :                       real       // variveis para calcular o percentual de acertos das questões
  percentualacertos3 :                       real

inicio
  questoes[1,1] := " Quem foi a primeira pessoa a viajar no Espaço? "
  questoes[1,2] := "A) Yuri Gagarin"
  questoes[1,3] := "B) A cadela Laika"
  questoes[1,4] := "C) Neil Armstrong"
  questoes[1,5] := "D) Buzz Aldrin"
  
  questoes[2,1] := " Qual a montanha mais alta do mundo? "
  questoes[2,2] := "A) Monte Everest"
  questoes[2,3] := "B) Monte Chimborazo"
  questoes[2,4] := "C) Pico da Neblina"
  questoes[2,5] := "D) Monte Chimborazo"
  
  questoes[3,1] := " Onde se localiza Machu Picchu? ")
  questoes[3,2] := "A) Peru "
  questoes[3,3] := "B) Colômbia"
  questoes[3,4] := "C) Bolívia"
  questoes[3,5] := "D) Argentina"
  
  questoes[4,1] := " Quanto tempo a Terra demora para dar uma volta completa em torno dela mesma ")
  questoes[4,2] := "A) 365 dias "
  questoes[4,3] := "B) 30 dias "
  questoes[4,4] := "C) 24 horas "
  questoes[4,5] := "D) 7 dias "
  
  questoes[5,1] := " Qual a Temperatura de ebulição da água? ")
  questoes[5,2] := "A) 100° C "
  questoes[5,3] := "B) 90° C"
  questoes[5,4] := "C) 200° C "
  questoes[5,5] := "D) 150° C"
  
  questoes[6,1] := " Qual o maior planeta do sistema solar? ")
  questoes[6,2] := "A) Júpiter"
  questoes[6,3] := "B) Saturno "
  questoes[6,4] := "C) Terra "
  questoes[6,5] := "D) Lua"
  
  questoes[7,1] := " Qual o monumento famoso pela sua inclinação? ")
  questoes[7,2] := "A) Torre de Pisa  "
  questoes[7,3] := "B) Torre Eiffel"
  questoes[7,4] := "C) Estatua da Liberdade "
  questoes[7,5] := "D) Esfinge"

  questoes[8,1] := " Qual a especialidade do otorrinolaringologista? ")
  questoes[8,2] := "A) Tratamento das doenças relacionadas a nariz, ouvido e garganta"
  questoes[8,3] := "B) Tratamento das doenças dos olhos"
  questoes[8,4] := "C) Tratamento de estomago"
  questoes[8,5] := "D) Tratamento das doenças da pele"
  
  questoes[9,1] := " Que grande evento histórico aconteceu em 1822 no Brasil? ")
  questoes[9,2] := "A) Independencia do Brasil"
  questoes[9,3] := "B) Descobrimento do Brasil"
  questoes[9,4] := "C) Ditadura Militar"
  questoes[9,5] := "D) Construção de Brasilia"
  
  questoes[10,1] := "  Qual a primeira mulher a ganhar um prêmio Nobel? ")
  questoes[10,2] := "A) Madre Teresa de Calcutá"
  questoes[10,3] := "B) Elizabeth Blackweel "
  questoes[10,4] := "C) Valentina Tereshkova"
  questoes[10,5] := "D) Marie Curie"
  para i de 1 ate 3 passo 1 faca               //  laco de repetiCAo para fazer a prova para 3 Alunos diferentes
    escreval
    escreval("                                 ","[",i," ]","° Aluno                                        ")
    escreval
    escreval("==================================================================================")
    escreval("                        PROVA DE CONHECIMENTO GERAIS!                             ")
    escreval("==================================================================================")
    escreval
    escreva("Nome: ")
    leia(nome[i])
    para j de 1 ate 10 faca
      escreval
      escreval
      escreval("==================================================================================")
      escreval("                                 ",j," ° Questão                                       ")
      escreval("==================================================================================")    // inicio da prova com as questões
      escreval
      para q de 1 ate 5 faca
        escreval(questoes[ j , q ] )
      fimpara
      escreval
      escreval("Resposta: ")
      leia( res )                                 // ler as respostas
      enquanto ( res < "a" ) ou ( res > "d" ) faca
        escreval("Opção Invalida! Digite outra resposta")
        leia( res )
      fimenquanto
      se res = "a"  então          // comando se vai comparar se a resposta foi correta ou não e vai contabilizar os acertos e erros
        acertos[i] := acertos[i] + 1
      senao
        erros[i] := erros[i] + 1
      fimse
      limpatela
    fimpara
  fimpara
  percentualacertos1:=(acertos[1]/10)*100
  percentualacertos2:=(acertos[2]/10)*100    //atribuição para o calculo de percentual de acertos
  percentualacertos3:=(acertos[3]/10)*100
  para i de 1 ate 3 faca
    para j de 1 ate 3 faca
      se acertos[i]  <  acertos[j] então
        auxiliar    := acertos[i]
        acertos[i]  := acertos[j]
        acertos[j]  := auxiliar    // organiza os acertos
        
        auxiliar    := erros[i]
        erros[i]    := erros[j]
        erros[j]    := auxiliar    // organiza os erros

        aux         := nome[i]     // organiza os nomes
        nome[i]     := nome[j]
        nome[j]     := aux
      fimse
    fimpara
  fimpara
  escreval
  escreval("====================================================================================")
  escreval("                               RESULTADO DAS PROVAS!                                ")
  escreval("====================================================================================")
  para i de 1 ate 3 faca
    escreval
    escreval("Resultado prova ",i," ! Nome: ",nome[i]," Acertos: ",acertos[i]," Percentual de: ",percentualacertos1:6:2,"% Erros: ",erros[i])
  fimpara
fimalgoritmo

 

  • Curtir 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!