Acces violation at addres

Carles
08 de Noviembre del 2009

Hola a todos,
soy nuevo en esto(delphi 7) , por eso ruego me disculpeis si mis preguntas no son con el máximo rigor de programación. Estoy realizando el proyecto final de carrera que consiste en una sencilla aplicación que calcula incertidumbre a partir de niveles acusticos medidos.

OBJETIVO: consiste en la siguiente implementación :

1- De un stringgrid donde se han introducido valores, almacena en un array de array de double.
2- cada fila corresponde a una frecuencia y cada columna a un ensayo (total 10 columnas con valores,es decir ensayos) + otra columna para mostrar el promedio de los 10 ensayos.

frecuencia ,ensayo1, ensayo2 ,ensayo3..... ...... ........, ensayo10, PROMEDIO
125 Hz 20,45 18,98 15,67 ...... ....... .. 21,34, X
160 Hz
200 Hz
...
5000 H

IMPLEMENTACIÓN:

procedure TPrincipal.B_validadatoClick(Sender: TObject);
//Procedimiento Onclick del objeto validadato.
//Procede en almacenar los datos ubicados en las celdas de los stringgrid
//en diferentes array

var j:integer; //filas
i:integer; //columnas

begin

SetLength(matriz_le,tabla_le.RowCount,tabla_le.ColCount);

for j:=1 to (tabla_le.RowCol-1)do
begin
for i:=1 to(tabla_le.ColCount-2)do
begin

matriz_le[i,j]:=StrToFloat(tabla_le.Cells[i,j]);//lee tabla_le y almacena en matriz_le
//FormatFloat('###,###,##0.00',matriz_le[i,j]);

end;
matriz_le[11,j]:=0.00; //inicializa la columna 11 (promedios) de matriz_le
// FormatFloat('###,###,##0.00',matriz_le[11,j]);
end;

for j:=1 to (tabla_le.RowCol-1) do
begin
for i:=1 to (tabla_le.ColCount-2) do
begin

matriz_le[11,j]:=matriz_le[11,j]+(Power(10,(matriz_le[i,j]/10))); // Sumatorio(dB-> lineal)
tabla_le.Cells[i,j]:=FloatToStr(matriz_le[i,j]); //muestro toda la matriz:le
end;
matriz_le[11,j]:=(matriz_le[11,j]/(tabla_le.ColCount-2)); //Promedia valor en lineal
matriz_le[11,j]:=10*(log10((matriz_le[11,j]))); //Paso a logaritmico (dB)
FormatFloat('###,###,##0.00',matriz_le[11,j]);
tabla_le.Cells[11,j]:=FloatToStr(simpleRoundTo(matriz_le[11,j],-2){matriz_le[11,j]});

end;
end;// Validadato


ERROR / PROBLEMA:

1. Acces violation at addres 004A4... in module '______ .exe'.Write of addres 00000008

2. Project ________.exe raised exception class E invalid Op with message 'Invalid floating point operation'.Process stopped.Use Step or Run to continue.



Muchas gracias por vuestro tiempo y conocimientos, agradezco toda la ayuda posible, no entiendo que estoy haciendo mal.

GRACIAS DE NUEVO