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 = $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 = (2 / ( $this->n + 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