<form action='correcao.php' method=post> 1. Um objetivo educacional é formulado em termos operacionais, PORQUE ele expressa o que se pretende que o aluno aprenda ao final de uma unidade Resposta: <select name=q1> <option value=a> A </option> <option value=b> B </option> <option value=c> C </option> <option value=d> D </option> </select> <input type=submit value='Correção automática do teste'> </form>
"Isto é um texto. <b>Esta parte</b> ficará em negrito."
Agora passaremos a analisar o arquivo com as questões:
<form action='correcao.php' method=post>
A TAG form cria um espaço onde o usuário escreve ou seleciona alternativas no documento para uso futuro. Nesse caso, os dados serão enviados para "correcao.php", o arquivo que faz as correções automáticas.
<select name=q1> <option value=a> A </option> <option value=b> B </option> <option value=c> C </option> <option value=d> D </option> </select>
A TAG select é onde algumas alternativas serão disponibilizadas para o usuário. Cada conjunto de
alternativas precisa ter um nome distinto, o nome desta é "q1".
Entre as TAGs que dão início e terminam o conjunto select estão as opções disponíveis: A, B, C e D.
<input type=submit value='Correção automática do teste'>
A TAG input com type definido como "submit", cria um botão que envia os dados das respostas para o arquivo definido na primeira TAG form. O arquivo definido fará as correções, suprido com as respostas selecionadas neste documento.
<?php
$respostas[1] = 'd';
$respostas[2] = 'a';
$respostas[3] = 'b';
$respostas[4] = 'b';
$respostas[5] = 'c';
$respostas[6] = 'a';
$respostas[7] = 'a';
$respostas[8] = 'a';
$respostas[9] = 'b';
$respostas[10] = 'd';
$corretas=0;
$erradas=0;
foreach( $respostas AS $questao_numero => $resposta ) {
$questao_nome = 'q'.$questao_numero;
unset( $correta );
if( $resposta == $_POST[$questao_nome] ) { $correta = TRUE; }
$alternativa_aluno = strtoupper( $_POST[$questao_nome] );
$alternativa_correta = strtoupper( $resposta );
echo "Questão {$questao_numero}:";
if( $correta ) {
echo " Correta! Alternativa {$alternativa_correta}.";
$corretas++;
} else {
echo " <font color=red>Errada. Selecionada alternativa {$alternativa_aluno}.
Correta: {$alternativa_correta}.</font>";
$erradas++;
} // else
echo "<br>";
} // foreach
$respostas_numero = count($respostas);
$nivel = 80;
$percentual = $corretas * ( 100 / $respostas_numero );
if( $percentual >= $nivel ) {
$cor = '#efe';
$msg = "Você atingiu o percentual necessário de acertos! Passe para o próximo módulo.";
} else {
$cor = '#fee';
$msg = "Você não atingiu o percentual necessário de acertos! Siga as instruções do fluxograma.";
} // else
echo "<p><div style='background: {$cor}; padding: 10px; font-weight: bold; text-align: center;'>
Você acertou {$corretas} questão(ões). Errou {$erradas}. Percentual de acertos: {$percentual}%.
<br>{$msg}
</div>";
?>
Nota sobre código PHP: Trata-se de uma linguagem de programação, portanto uma das coisas mais importantes são as variáveis. Variável é algo que armazena uma informação, como uma pasta que guarda um documento. Para guardar uma informação numa variável, primeiro damos nome à ela usando o símbolo $, depois mandamos que ela guarde uma informação qualquer, usando o símbolo =. Por exemplo:
$fruta = 'laranja';
Depois podemos usar a informação guardada nessa variável chamando ela pelo nome. Por exemplo:
echo "A minha fruta favorita é $fruta, e a sua?";
Agora passaremos a analisar o código de correção:
<?php
Qualquer código PHP deve iniciar com a TAG <?php e terminar com a TAG ?>.
$respostas[1] = 'd'; $respostas[2] = 'a'; $respostas[3] = 'b'; $respostas[4] = 'b'; $respostas[5] = 'c'; $respostas[6] = 'a'; $respostas[7] = 'a'; $respostas[8] = 'a'; $respostas[9] = 'b'; $respostas[10] = 'd';
Esse conjunto de variáveis guarda as 10 respostas corretas do teste: D, A, B, B, etc.
foreach( $respostas AS $questao_numero => $resposta ) {
O comando foreach acessa cada uma das respostas e permite fazermos qualquer coisa com qualquer uma delas.
$questao_nome = 'q'.$questao_numero;
unset( $correta );
if( $resposta == $_POST[$questao_nome] ) { $correta = TRUE; }
$alternativa_aluno = strtoupper( $_POST[$questao_nome] );
$alternativa_correta = strtoupper( $resposta );
echo "Questão {$questao_numero}:";
Essa complexa seqüência de código lembra do nome da alternativa e compara a reposta do usuário com a resposta correta. O símbolo para comparar duas variáveis é ==.
$respostas_numero = count($respostas);
$nivel = 80;
$percentual = $corretas * ( 100 / $respostas_numero );
if( $percentual >= $nivel ) {
$cor = '#efe';
$msg = "Você atingiu o percentual necessário de acertos! Passe para o próximo módulo.";
} else {
$cor = '#fee';
$msg = "Você não atingiu o percentual necessário de acertos! Siga as instruções do fluxograma.";
} // else
Essa parte estabelece uma exigência de acertos de 80%: $nivel = 80;
Depois calcula se a quantidade de acertos do usuário atinge o percentual
exigido: if( $percentual >= $nivel )
Então gera duas mensagens, uma para sucesso no percentual exigido, e outra para falha.
echo "<p><div style='background: {$cor}; padding: 10px; font-weight: bold; text-align: center;'>
Você acertou {$corretas} questão(ões). Errou {$erradas}. Percentual de acertos: {$percentual}%.
<br>{$msg}
</div>";
A última parte mistura código HTML e PHP, para gerar a mensagem final para o usuário, dizendo se ele foi bem sucedido. A mensagem tem cor de fundo, fonte em estilo negrito, e é alinhada no centro da linha.
Com isso, terminamos a explicação de como é feito um teste com correção automática pela Internet! Para aprender mais sobre HTML e PHP, acesse os sites www.w3.org e www.php.net ou procure por cursos impressos ou on-line.