Média 3 – beecrowd | 1040

Este código começa lendo quatro números de ponto flutuante da entrada padrão, correspondentes às quatro notas do aluno. Em seguida, calcula a média ponderada dessas notas com os pesos especificados e imprime a mensagem “Media: ” seguida pelo valor da média calculada.

Dependendo do valor da média calculada, o código imprime uma das três mensagens possíveis: “Aluno aprovado.”, “Aluno reprovado.” ou “Aluno em exame.”. No caso do aluno estar em exame, o código lê um valor adicional correspondente à nota do exame obtida pelo aluno e imprime a mensagem “Nota do exame: ” seguida pela nota digitada.

<?php
fscanf(STDIN, "%f %f %f %f", $n1, $n2, $n3, $n4);
$media = ($n1 * 2 $n2 * 3 $n3 * 4 $n4) / 10;
printf("Media: %.1f\n", $media);

$status = 'reprovado';
if ($media >= 7.0) {
$status = 'aprovado';
} elseif ($media >= 5.0) {
$status = 'exame';
}

switch ($status) {
case 'aprovado':
echo "Aluno aprovado.\n";
break;
case 'reprovado':
echo "Aluno reprovado.\n";
break;
case 'exame':
echo "Aluno em exame.\n";
fscanf(STDIN, "%f", $exame);
printf("Nota do exame: %.1f\n", $exame);
$media_final = ($media $exame) / 2;
if ($media_final >= 5.0) {
echo "Aluno aprovado.\n";
} else {
echo "Aluno reprovado.\n";
}
printf("Media final: %.1f\n", $media_final);
break;
}
?>

Usamos a estrutura switch para verificar o valor da variável $status e executar o bloco de código correspondente. No caso do aluno estar em exame (case 'exame':), o código lê um valor adicional correspondente à nota do exame obtida pelo aluno e imprime a mensagem “Nota do exame: ” seguida pela nota digitada.

Em seguida, o código recalcula a média final (somando a pontuação do exame com a média anteriormente calculada e dividindo por 2) e imprime uma das duas mensagens possíveis: “Aluno aprovado.” (caso a média final seja 5.0 ou mais) ou “Aluno reprovado.” (caso a média tenha ficado 4.9 ou menos). Por fim, o código apresenta na última linha uma mensagem “Media final: ” seguida da média final para esse aluno.

Deixe um comentário