Foros del Web » Programando para Internet » PHP »

promedios moviles en php (ya tengo un codigo)

Estas en el tema de promedios moviles en php (ya tengo un codigo) en el foro de PHP en Foros del Web. hola me pidieron en la escuela un metodo para programar un promedio movil. es posible hacerlo digamos tenemos 2 tablas la primera se registran lecturas ...
  #1 (permalink)  
Antiguo 19/11/2013, 20:27
Avatar de dianali_1990  
Fecha de Ingreso: noviembre-2013
Mensajes: 11
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta promedios moviles en php (ya tengo un codigo)

hola me pidieron en la escuela un metodo para programar un promedio movil. es posible hacerlo
digamos
tenemos 2 tablas
la primera se registran lecturas
y la segunda se guardan los promedios de esas lecturas
le adjunto un documento en excel donde se muestra lo que quiero hacer http://sdrv.ms/1it8GYS
el la columna F12 empieza el calculo de variables tomalas 5 datos anteriores y los promedia y despues toma los ultimo 4 valores y el promediado para sacar el valor de f14 y asi sucesivamente hasta que ingrese otro dato y vuelve a hacer el calculo
lo que quiero es eso que me lo haga de forma automatica que al ingresar algun dato me calcule podrian ayudarme
no se como hacer operaciones desde dos tablas diferentes


Código PHP:
 <?

/*
  MEDIAS MOVILES   
  metodos: add, reset, setN, setNesimo, caculate, unDo (deshace el ultimo calculo)
*/
// superclase
abstract Class Media 
  protected 
$n;
  protected 
$arr = array();
  protected 
$arrSize;
  protected 
$calculo   =null;
  protected 
$calculoAux=null// guarda valor anterior

  
function __construct ($n){
    
$this->setN($n);
  }
  
  
// usar solo despues... de tener el arreglo "lleno" !!
  
function setNesimo ($val){   
       
$this->arr [($this->n) - 1]=$val;
  }    
  
  function 
unDo (){
       
$this->calculo       $this->calculoAux;
  }
  
  
# puede ser protected porque el usuario no la llama directamente  
  
protected function saveCalc(){ 
    
$this->calculoAux $this->calculo;
  }  
    
  function 
reset(){    
    unset (
$this->arr);
    
$this->arrSize=0;
    
$this->n=0;    
    
$this->calculoAux=null;
    
$this->calculo   =null;
  }
  
  
// agrega a $rb los elemenos de $this->arr
  
protected function add_array(array $rb){
    foreach (
$rb as $val){
      
$this->arr[] = $val;
    }    
  }
  
  function 
add($data) {
     
     if (
is_array($data)){
       
$this->add_array ($data);
     }else{
       
$this->arr[] = $data;       
     }    
    
    
$this->arrSize count ($this->arr);
  }
  
  function 
setN($n){
    
$this->$n;
  }
  
  abstract protected function 
calculate(); // debe ser abstracta igual que la clase!!!
  
// fin


Class MediaSimple extends Media {

/*
  // hace falta si el constructor es "protected" en la clase padre
  function __construct ($n){
    parent::__construct($n);
  }
*/

  
private function summ(){
    
$res=0;
    for (
$i=0;$i<$this->arrSize;$i++){
      
$res $res $this->arr[$i];
    }
    return 
$res;
  }
    
  public function 
calculate(){
    
$this->saveCalc;
    
$this->calculo = ($this->summ ($this->arr)/$this->n);
    return (
$this->calculo);  
  }
  
}


Class 
MediaExponencial extends Media {

  function 
__construct ($n){
    if (
$n==null$n=0;  
    
parent::__construct($n);
  }
  
  
/*  
  public function setEma ($ema){
    $this->calculo = $ema;
  }  
  */     
    
  
public function calculate(){
    
$this->saveCalc();
    
    
$k = (/ ( $this->1)); 
        
    if (
$this->calculo==0)
      
$this->calculo $this->arr[0]; 
    
    for (
$i=0;$i<$this->n;$i++){ 
      
$this->calculo $this->calculo + (($this->arr[$i] - $this->calculo) * $k);      
    }
    
    return (
$this->calculo);  
  }
  
}

?>
encontre este codigo que otro usuario posteo, me podrian decir como lo puedo adecuar a mis datos de mis tablas. La idea es que la tabla lecturas se ingresen los registros, y el la tabla pronosticos se guarden para posteriormente mostrar una tabla con esos datos nuevos de promedios y dar a conocer al usuario esos datos. digamos que hice 24 registros de una fecha digamos 20/11/13 y quiero saber imprimir los datos guardados de la tabla de promedios de los dias 21/11/13,22/11/2013 y 23/11/2013

Última edición por dianali_1990; 20/11/2013 a las 00:21 Razón: nuevo codigo

Etiquetas: movil, operaciones, programacion, promedio
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 17:12.