<?php
// Leia quatro números (N1, N2, N3, N4), cada um deles com uma casa decimal, correspondente às quatro notas de um aluno.
// Calcule a média com pesos 2, 3, 4 e 1, respectivamente, para cada uma destas notas e mostre esta média acompanhada pela mensagem "Media: ".
// Se esta média for maior ou igual a 7.0, imprima a mensagem "Aluno aprovado.". Se a média calculada for inferior a 5.0,
// imprima a mensagem "Aluno reprovado.". Se a média calculada for um valor entre 5.0 e 6.9, inclusive estas,
// o programa deve imprimir a mensagem "Aluno em exame.".
// No caso do aluno estar em exame, leia um valor correspondente à nota do exame obtida pelo aluno.
// Imprima então a mensagem "Nota do exame: " acompanhada pela nota digitada.
// Recalcule a média (some a pontuação do exame com a média anteriormente calculada e divida por 2). e
// imprima a mensagem "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). Para estes dois casos (aprovado ou reprovado após ter pego exame)
// apresente na última linha uma mensagem "Media final: " seguido da média final para esse aluno.
// Entrada
// A entrada contém quatro números de ponto flutuante correspendentes as notas dos alunos.
// Saída
// Todas as respostas devem ser apresentadas com uma casa decimal. As mensagens devem ser impressas conforme a descrição do problema.
// Não esqueça de imprimir o enter após o final de cada linha, caso contrário obterá "Presentation Error".
function readInput()
{
return array_map(
'floatval',
explode(" ",trim(fgets(STDIN)))
);
}
function readNotaExame()
{
return floatval(trim(fgets(STDIN)));
}
function calcMediaPonderada(array $notas, array $pesos): float
{
$total = array_reduce(
array_keys($notas),
function (float $acumulador, int $indice) use ($notas, $pesos): float {
return $acumulador + ($notas[$indice] * $pesos[$indice]);
},
0
);
return $total / array_sum($pesos);
}
function calcMedia($notas)
{
[$N1,$N2,$N3,$N4] = $notas;
$media = ($N1*2 + $N2*3 + $N3*4 + $N4*1) / 10;
return ($media * 100) / 100;
}
$notas = readNotas();
$media = calcMedia($notas);
printf("Media: %.1f" . PHP_EOL, $media);
// echo "Media: " . number_format($media,1,".","") . PHP_EOL;
if( $media >= 7.0)
{
printf("Aluno aprovado." . PHP_EOL);
}elseif($media < 5.0){
printf("Aluno reprovado." . PHP_EOL);
}elseif($media >= 5.0 && $media < 7.0){
printf("Aluno em exame." . PHP_EOL);
$notaExame = readNotaExame();
printf("Nota do exame: %.1f" . PHP_EOL, $notaExame);
$mediaFinal = ($notaExame + $media) / 2.0;
if($mediaFinal >= 5.0){
printf("Aluno aprovado." . PHP_EOL);
} else{
printf("Aluno reprovado." . PHP_EOL);
}
printf("Media final: %.1f" . PHP_EOL, $mediaFinal);
}
To embed this project on your website, copy the following code and paste it into your website's HTML: