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)
- Leitura do gabarito
- Leitura da Prova
- Correção da Prova estrutura de repetição
- 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 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
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");
}
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