domingo, 20 de maio de 2012

Vetores - Desafio 1

Apostila de Vetores - Desafio 1


1. Elabore um programa para corrigir provas de múltipla escolha (resposta para cada questão pode ser a, b, c, d ou e). Cada prova tem dez questões e cada questão vale um ponto. O primeiro conjunto de dados a ser lido será o gabarito (vetor 1) para a correção da prova. Os outros dados serão os números (variável do tipo inteiro) dos alunos e suas respectivas respostas (vetor 2). O programa deverá calcular e imprimir para cada aluno, o seu número e a sua nota (variável do tipo inteiro).

Passos de Execução do Programa (algoritmo de alto nível)

  1. Leitura do gabarito 
  2. Leitura da Prova 
  3. Correção da Prova estrutura de repetição 
  4. Impressão da Nota 

Algoritmo



Programa CorrigeProva
      Declare gabarito, prova: vetor [1..10] de char
      Declare matricula, i, nota: inteiro
      Declare op: caracter
Inicio
         Para i  1 até 10 Faça                        {leitura do gabarito}
         Inicio_para
                 Escreva ('Digite a resposta ', i, ' : ')
                 Leia (gabarito[i])
         Fim_para
         op  ‘s’
         Enquanto (op = ’s’) Faça
         Inicio_enquanto
                 Leia (matricula)                             {leitura da matricula do aluno}
                 Para i ← 1 até 10 Faça                 {leitura das respostas do aluno}
                 Inicio_para
                         Escreva ('Digite a resposta ', i, ' do aluno: ')
                         Leia (prova[i])
                 Fim_para
                 nota ← 0
                 Para i ← 1 até 10 Faça                 {correção da prova}
                 Inicio_para
                         Se (gabarito[i] = prova[i])
                         Então nota ← nota + 1
                 Fim_para
                 Escreva (‘O aluno ‘, matricula, ’ teve nota’, nota)   {nota do aluno}
                 Escreva (‘Existe mais aluno? s/n’)
                 Leia (op)
         Fim_enquanto
Fim



Código compilado no Dev-C++ 4.9.9.2


#include <iostream>
#include <stdio.h>


using namespace std;



main()
{
      char gabarito[10], prova[10];
      char op; 
      int matricula, i, nota;
      for (i = 0; i < 10; i++)                               //leitura do gabarito
            {
            cout << "Digite a resposta " << i+1 << " : ";
            cin >> gabarito[i];
            }
      op = 's';
      while (op == 's')
            {
            cout << "Digite o numero de matricula: ";
            cin >> matricula;                               //leitura da matricula do aluno
            for (i = 0; i < 10; i++)                         //leitura das respostas do aluno 
                  {
                  cout << "Digite a resposta " << i+1 << " : ";
                  cin >> prova[i];
                  }
            nota = 0;
            for (i = 0; i < 10; i++)                         //correção da prova
                  {
                  if (gabarito[i] == prova[i])
                        {
                        nota = nota + 1;
                        }
                  }
            cout << "\n" << "O aluno " << matricula << " teve nota: " << nota; //nota do aluno
            cout << "\n" << "Existem mais alunos? (s/n) ";
            cin>>op;
            }
      system("pause");
}

Note que não foi necessário usar o comando strcmp já que estamos comparando apenas caracteres simples, e não cadeias de caracteres.

Nenhum comentário:

Postar um comentário