Foros del Web » Programando para Internet » PHP »

duda de calculo de promedio

Estas en el tema de duda de calculo de promedio en el foro de PHP en Foros del Web. Hola la pregunta es : si yo tengo una $v1+$v2+$v3/$prom asta aqui esta todo claro la duda es que pasa si $v2 no tiene ningun ...
  #1 (permalink)  
Antiguo 14/03/2003, 19:21
Avatar de goya  
Fecha de Ingreso: enero-2002
Ubicación: La Serena
Mensajes: 273
Antigüedad: 22 años, 10 meses
Puntos: 1
duda de calculo de promedio

Hola

la pregunta es :

si yo tengo una $v1+$v2+$v3/$prom asta aqui esta todo claro la duda es que pasa si $v2 no tiene ningun valor y el divisor no es 3 sino 2 hay alguna forma de contar los datos validos para luego dividirlos por el valor..

en exel sue usa una propiedad llamada prom en php existe algo asi???
__________________
:adios:
..."Hay dos cosas que son infinitas: el universo y la estupidez humana; y no estoy muy seguro acerca del universo."
Albert Einstein
  #2 (permalink)  
Antiguo 15/03/2003, 03:50
Avatar de Neno  
Fecha de Ingreso: marzo-2003
Mensajes: 11
Antigüedad: 21 años, 8 meses
Puntos: 0
$variables = array($var1, $var2, $var3);

$promedio = promedio_func($variables);

function promedio_func ($arg)
{
$i = 0;
$prom = 0;
foreach ($arg as $var) {
if ( $var ) {
$prom .= $var;
$i++;
}
}
if ( $i ) {
$prom /= $i;
}
return $prom;
}
  #3 (permalink)  
Antiguo 15/03/2003, 03:51
Avatar de Neno  
Fecha de Ingreso: marzo-2003
Mensajes: 11
Antigüedad: 21 años, 8 meses
Puntos: 0
Correción:

$prom .= $var;

debe ser

$prom += $var;
  #4 (permalink)  
Antiguo 15/03/2003, 12:48
Avatar de goya  
Fecha de Ingreso: enero-2002
Ubicación: La Serena
Mensajes: 273
Antigüedad: 22 años, 10 meses
Puntos: 1
gracias

ahora a provar

gracias
__________________
:adios:
..."Hay dos cosas que son infinitas: el universo y la estupidez humana; y no estoy muy seguro acerca del universo."
Albert Einstein
  #5 (permalink)  
Antiguo 15/03/2003, 13:27
 
Fecha de Ingreso: noviembre-2002
Mensajes: 147
Antigüedad: 22 años
Puntos: 0
Un ejemplo

$pelas1 = 68.75;
$pelas2 = 54.35;
$pelas = $pelas1 + $pelas2;
// echo $pelas mostrará "123.1";
$formateado = sprintf ("%01.2f", $pelas);
// echo $formateado mostrará "123.10"

//si pones
$formateado = sprintf ("%01.1f", $pelas);
// echo $formateado mostrará "123.1"

//si pones
$formateado = sprintf ("%01.0f", $pelas);
// echo $formateado mostrará "123"
  #6 (permalink)  
Antiguo 15/03/2003, 14:04
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 3 meses
Puntos: 8
Aca lo sacas en menos lineas...
Código PHP:
$todo = array($var1$var2$var3$var4);
$ceros array_count_values($todo);
$promedio array_sum($todo)/(count($todo)-$ceros[0]);
echo 
$promedio
  #7 (permalink)  
Antiguo 22/03/2003, 02:22
Avatar de Neno  
Fecha de Ingreso: marzo-2003
Mensajes: 11
Antigüedad: 21 años, 8 meses
Puntos: 0
En verdad, se está usando mal la definición
de promedio. Por ejemplo: el promedio de
1+2+0+4 es 7/4 y no 7/3
  #8 (permalink)  
Antiguo 22/03/2003, 14:01
Avatar de goya  
Fecha de Ingreso: enero-2002
Ubicación: La Serena
Mensajes: 273
Antigüedad: 22 años, 10 meses
Puntos: 1
gracias

al final voy a usar una mescla de las respuestas
Código PHP:
<?
$todo 
= array($var1$var2$var3$var4);
$ceros array_count_values($todo);
$promedio array_sum($todo)/(count($todo)-$ceros[0]);
$promedio2 sprintf ("%01.2f"$promedio);
echo 
$promedio2;
?>
aunque es cierto que hay que usar un 0 cuando no hay nota eso me parece (por lo pronto un problema menor)

Gracias de nuevo
__________________
:adios:
..."Hay dos cosas que son infinitas: el universo y la estupidez humana; y no estoy muy seguro acerca del universo."
Albert Einstein
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.