Все работает.Толко Chart Рисует полынй бред а дсиперсия с мат ожиданием поражают вообажение.
//текстовый файл перегоняем в строку
function TTexts.ReadFromFile(FileName: string): TypOfString ;
var S: TypOfString ;
iFileHandle,iFileLength: Integer;
Buffer: PChar;
begin
try
iFileHandle := FileOpen(FileName, fmOpenRead);
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
FileRead(iFileHandle, Buffer^, iFileLength);
FileClose(iFileHandle);
S:=Buffer;
finally
FreeMem(Buffer);
end;
Result:=S;
end;
//Считаем по сколько каждого символа в тексте
Procedure TTexts.AnsiToarr(S: TypOfString ;var Xaxis:array of integer);
var
I: Integer;
begin
for I := 0 to 255 do
begin
Xaxis[i]:=0;
end;
for I := 1 to Length(S) do
begin
Xaxis[Ord(S[I])]:=Xaxis[Ord(S[I])]+1;
end;
end;
//рисуем график в чарте
Procedure TTexts.Sdat(Fn:string);
var
Ftxt: TypOfString ;
I,sum: Integer;
p:array[0..255] of real;
Begin
sum:=0;
Ftxt:=ReadFromFile(Fn);
AnsiToarr(Ftxt,Xaxis);
for i:=0 to 255 do
Begin
Sasci.AddXY(i,Xaxis[i],'',clRed);
sum:=sum+Xaxis[i];
End;
if sum <>0 then
begin
for i:=0 to 255 do
Begin
p[i]:=Xaxis[i]/sum;
End;
Form3.Modis(Xaxis,p,0,255,label1,label2); //Вычисление дисперсий
end;
End;
Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста. |