Dúvida em algorítimo (Como fazer)

1. Dúvida em algorítimo (Como fazer)

Eduardo Cipriani
OldSchoolxu

(usa Ubuntu)

Enviado em 01/09/2014 - 20:17h

10. Deseja-se publicar o número de acertos de cada aluno
em uma prova em forma de testes. A prova consta de
30 questões, cada uma com cinco alternativas
identificadas por A, B, C, D e E. Para isso são dados:

o cartão gabarito;
o número de alunos da turma;
o cartão de respostas para cada aluno, contendo o seu número e suas respostas.


Poderiam fazer a resposta desta pergunta e me explicar a parte da array? entendo uma base de programação,
na realidade IF :), mas estou aprendendo pouco a pouco, Obrigado a atenção.


  


2. Re: Dúvida em algorítimo (Como fazer)

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/09/2014 - 20:45h

Você vai basicamente usar uma matriz para verificar se a alternativa do aluno bate com a resposta correta;

Exemplo:



array(0,0) = "a" # resposta da 1 é "a";
array(1,0) = "d" # resposta da 2 é "d";
array(2,0) = "b" # resposta da 3 é "b";
...
array(29,0) = "e" # resposta da 30 é "e";

if [ array(3,0) -eq array_aluno1(3,0) ]
then
acertos=$acertos+1
else
acertos=$acertos
fi


No exemplo acima (ilustrativo, misturando a lógica que você usaria com Shell Script), estamos verificando se a resposta 4 do aluno está certa ou não (tudo o que precisa ser feito é criar uma matriz com as respostas corretas e compará-la com as matrizes dos alunos, para ver se as respostas deles estão certas ou não);

Se forem 20 alunos, por exemplo, você criaria um laço de repetição para que, enquanto o número de alunos for menor ou igual a 20, o programa realiza a "correção"


3. Re: Dúvida em algorítimo (Como fazer)

Eduardo Cipriani
OldSchoolxu

(usa Ubuntu)

Enviado em 01/09/2014 - 20:57h

unnamed escreveu:

Você vai basicamente usar uma matriz para verificar se a alternativa do aluno bate com a resposta correta;

Exemplo:



array(0,0) = "a" # resposta da 1 é "a";
array(1,0) = "d" # resposta da 2 é "d";
array(2,0) = "b" # resposta da 3 é "b";
...
array(29,0) = "e" # resposta da 30 é "e";

if [ array(3,0) -eq array_aluno1(3,0) ]
then
acertos=$acertos+1
else
acertos=$acertos
fi


No exemplo acima (ilustrativo, misturando a lógica que você usaria com Shell Script), estamos verificando se a resposta 4 do aluno está certa ou não (tudo o que precisa ser feito é criar uma matriz com as respostas corretas e compará-la com as matrizes dos alunos, para ver se as respostas deles estão certas ou não);

Se forem 20 alunos, por exemplo, você criaria um laço de repetição para que, enquanto o número de alunos for menor ou igual a 20, o programa realiza a "correção"



Acho que intendi o sentido, Vou tentar fazer.. é um trabalho que vou ganhar pontos na media (Curso) mas não vimos esta matéria ainda, estamos em php básico, por isto não intendo quase nada, mas muito obrigado a resposta.



4. Re: Dúvida em algorítimo (Como fazer)

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/09/2014 - 21:02h

Valeu; eu não sei PHP, então deixei de uma forma mais lógica (junto com Shell Script) pra tentar exemplificar;


Você vai ter uma matriz (tabela) com as respostas corretas e outra matriz com as respostas dos alunos;

Então, é só comparar a matriz dos alunos com as respostas corretas, usando "while"


5. php + html + mysql + javascript

CASSIO FERRAZ
cassio88

(usa Ubuntu)

Enviado em 02/09/2014 - 05:48h

Sei que o que você pediu não é bem isso, mas como lecionei durante 15 anos, vou postar o que eu usava PARA INCLUIR UMA PROVA NO BANCO DE DADOS. Se interessar, depois eu coloco os códigos de corrigir uma prova e fazer o relatório de notas da classe. De toda maneira, você aprende mais quebrando a cabeça e tentando achar sua própria solução do que pegando coisas prontas na web.

prova_inclui.php : selecionava a classe
prova_inclui0.php: se era P1, P2, exame final...
prova_inclui1.php: conferia senha do aluno (para evitar um fazer no lugar do outro)
prova_inclui2.php: selecionava aleatoriamente 10 questões e montava a prova. O código segue abaixo. Note que o código é do modo antigo, como se seguisse uma receita de bolo, sem uso de orientação a objeto

<?php
session_start();
include("biblioteca.php");

// para evitar o cara entrar direto
if ($_SESSION[logado]!=1) {
echo 'Acesso negado';
die;
}

// a função check mandatory só funciona se houver um só input hidden no início
// caso contrário a alternativa e sempre aparecerá em branco

// se o cara já fez, nao vai conseguir puxar de novo!
$query = "SELECT * FROM tbl_nota_teste WHERE aluno = $aluno AND p$prova is not null";
// $query = "SELECT * FROM tbl_nota_teste WHERE aluno = $aluno";
$guest = database($query);
if (mysql_num_rows($guest) > 0) {
echo 'Você já fez esta prova.';
die;
}

// sortear as questoes aleatoriamente
$query = "SELECT numero_questao FROM tbl_gabarito WHERE prova <= $prova";
// $query = "SELECT numero_questao FROM tbl_gabarito WHERE prova = 4";

// setado para exame, até prova 3 ************************************
if ($prova > 97)
$query = "SELECT numero_questao FROM tbl_gabarito WHERE prova < 4";

$result = database($query);
// upperbound = número de questoes; lowerbound = 1 pois começa na primeira questao
$upperbound = mysql_num_rows($result);
// checa se o numero já nao esta incluido na lista
$contador=1;
$lista[1] = 0;
while ($contador < 11) {
$numero_sorteado = rand (1, $upperbound);
$achei = false;
foreach ($lista as $value) {
if ($value == $numero_sorteado) {
$achei = true;
}
}
if ($achei == false) {
$lista[$contador] = $numero_sorteado;
$contador++;
}
}
// $lista() é um array que contem os numeros das 10 questoes

$strSQL = "SELECT numero_questao, texto, alternativa_a, alternativa_b, alternativa_c, alternativa_d, alternativa_e ";
$strSQL = $strSQL." FROM tbl_gabarito WHERE numero_questao = $lista[1] OR numero_questao = $lista[2]";
$strSQL = $strSQL." OR numero_questao = $lista[3] OR numero_questao = $lista[4]";
$strSQL = $strSQL." OR numero_questao = $lista[5] OR numero_questao = $lista[6]";
$strSQL = $strSQL." OR numero_questao = $lista[7] OR numero_questao = $lista[8]";
$strSQL = $strSQL." OR numero_questao = $lista[9] OR numero_questao = $lista[10]";

$guest = database($strSQL);
?>
<HTML>
<head>
<meta http-equiv="Pragma" content="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="Thu, 01 Dec 1994 16:00:00 GMT">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<script language = "JavaScript">
function checkMandatory()
{
// check the radio buttons
var error_string = "";
var i = 1;
var loop = 3;
while (loop < window.document.the_form.elements.length)
{
var rad_select = "no";
while (i < 6)
{

if (window.document.the_form.elements[loop].checked == true)
{
rad_select = "yes";
}

i = i + 1;
loop = loop + 1;
}

loop = loop + 2;
i = 1;
if (rad_select == "no")
{
error_string += parseInt(loop/7);
error_string += "\n";
}

}

if (error_string == "")
{
return true;
} else {
error_string = "As seguintes questões ficaram em branco:\n" + error_string;
alert(error_string);
return false;
}
}
</script>
</head>
<BODY>
<FORM name = "the_form" method="POST" action="prova_inclui3.php" onSubmit="var the_result = checkMandatory(); return the_result;">
<input type="hidden" name="aluno" value="<?php print $aluno;?>">
<table>
<?php
$contador = 1;
while ($result = mysql_fetch_array($guest, MYSQL_ASSOC)) {
?>
<tr>
<input type="hidden" name ="<?php print "M$contador";?>" value="<?php print $contador;?>">
<td><?php print $contador;?>)
<input type="hidden" name ="<?php print "Q$contador";?>"
value="<?php echo $result[numero_questao];?>"></td>
<td>
<?php
echo $result[texto];
// echo '('.$result[numero_questao].')';
?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="a"></td>
<td><?php echo $result[alternativa_a];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="b"></td>
<td><?php echo $result[alternativa_b];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="c"></td>
<td><?php echo $result[alternativa_c];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="d"></td>
<td><?php echo $result[alternativa_d];?></td></tr>
<tr><td><input type="radio" name = "<?php print "R$contador";?>" value="e"></td>
<td><?php echo $result[alternativa_e];?></td>
</tr>
<tr><td><hr></td><td><hr></td></tr>
<?php
$contador++;
}
?>
</table>
<p><input type="hidden" name="prova" value="<?php print $prova;?>">
<p><input type="submit" value="Enviar" name="Enviar">
</FORM>
</BODY>
</HTML>


6. Agradecimento

Eduardo Cipriani
OldSchoolxu

(usa Ubuntu)

Enviado em 02/09/2014 - 19:39h

Obrigado a resposta, não consegui fazer o exercício.. é pra manha, infelizmente não irei ganhar os pontos referente ao exercício mas valeu o aprendizado! Obrigado as respostas novamente e até!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts