Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marxrtf

Eliminar menor nota

Recommended Posts

Eu fiz e ele me retornou isso:

 

  Citar

 

Nota mais baixa: 0.00

Media: 0.00                                            
array(5) {  [0]=>  NULL  [1]=>  NULL  [2]=>  NULL  [3]=>  NULL  [4]=>  NULL}Nota mais baixa: 0.00Media: 0.00                                            
array(5) {  [0]=>  string(4) "1.00"  [1]=>  string(4) "7.00"  [2]=>  string(4) "7.00"  [3]=>  string(0) ""  [4]=>  string(0) ""}Nota mais baixa: 0.00Media: 3.75                                            
array(5) {  [0]=>  NULL  [1]=>  NULL  [2]=>  NULL  [3]=>  NULL  [4]=>  NULL}Nota mais baixa: 0.00Media: 0.00                                            

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz a modificação, mas mesmo assim ele continua a fazer a divisão por 4, mesmo tendo somente 3 notas lançadas

 

  Citar

 

array(5) {

  [0]=>  string(4) "1.00"  [1]=>  string(4) "7.00"  [2]=>  string(4) "7.00"  [3]=>  NULL  [4]=>  NULL}Nota mais baixa: 0.00Media: 3.75

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa se habituar a ler o manual, amigo.

<?php
$n1 = 5.5;
$n2 = 7.5;
$n3 = 10;
$n4 = NULL;
$n5 = NULL;

$notas = [ $n1, $n2, $n3, $n4, $n5 ];
$notas = array_filter( $notas, function( $nota ){ return !is_null( $nota ); } );
sort( $notas, SORT_NUMERIC );
$nota_mais_baixa = array_shift( $notas );
$media = array_sum( $notas ) / count( $notas );

printf(
	'Nota mais baixa: %.2f<br>Media: %.2f',
	$nota_mais_baixa,
	$media
);

Nota mais baixa: 5.50
Media: 8.75

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Matheus. Me desculpe, não era o problema de ler o manual, era acertos dentro do meu código mesmo.

 

E depois ainda fiquei confuso mas logo também acertei uma coisa. No seu exemplo você estava fazendo a divisão por duas notas, que eram a de 10 + 7.5 que na divisão deu 8.75, e descartando a 5.50. Quando na verdade deveria ser divido por 3. que seria 10+7.5+5.50 /3 = 7.66

 

A nota descartada deveria ser igual a 0.00. Não poderia ter nota descartada com valor no seu exemplo até ser lançada a recuperação.

 

  Citar

 

 

$n1 = 5.5;
$n2 = 7.5;
$n3 = 10;
$n4 = NULL;
$n5 = NULL;

 

 

Bati a cabeça nisso também, então no caso para ele ir dividindo pelo número de notas lançadas e só descartar a menor nota após ser lançada a recuperação, que no exemplo é a $n5 O valor da $n5 não pode ser NULL.

 

Então só as notas n1, n2, n3 e n4 podem ter seu valor NULL, sendo no exemplo ou no banco de dados, já a n5 tem que ser deixada com o campo em branco.

 

Só deixei aqui a explicação para possíveis consultas futuras por outras pessoas.

 

Agradeço muito sua ajuda Matheus. E também aos colegas que tentaram ajudar.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.