Tegnstatistik

Tags:    delphi

I en opgave er følgende givet til en ordstatistik, som laver en statistik over hvor mange gange den forskellelige ordlængde forekommer i en tekst, hyppigheden, desuden udregner den også frekverne. Altså hvis teksten er "aa bb aaa bbb" har Ordlængde 2 en frekvens på 50, mens ordlængde 3 har en frekvens på 50.. det er altså en procentvis fordeling. Koden ser således ud:

procedure TForm3.FormActivate(Sender: TObject);
var
Tekst,Ord,Str1,Str2,Str3: String;
i,AntalTegn,AntalOrd: Integer;
OrdTabel: OrdTabelType;
Temp: Real;
begin
Memo1.Clear;
AntalOrd:=0;
for i:=1 to 31 do OrdTabel:=0;
Tekst:=Form1.Memo1.Text;
while Tekst<>'' do
begin
FindOrd(Tekst,Ord);
if Ord<>'' then
begin
AntalTegn:=Length(Ord);
if AntalTegn<31 then inc(OrdTabel[AntalTegn])
else inc(OrdTabel[31]);
inc(AntalOrd);
end;
end;
Memo1.Lines.Add('Ordstatistik');
Memo1.Lines.Add('');
Memo1.Lines.Add('Ordlængde Hyppighed Frekvens');
for i:=1 to 31 do
begin
Str(i :5, Str1);
Str(OrdTabel : 6,Str2);
if AntalOrd>0 then
begin
Temp:=OrdTabel*100/AntalOrd;
Str(Temp : 6 : 2,Str3);
end
else
begin
Str3:='';
end;
if i<31 then Memo1.Lines.Add(Str1+' '+Str2+' '+Str3)
else Memo1.Lines.Add(Str1+'-> '+Str2+' '+Str3);
end;
end;

Denne kode er givet og virker udemærket.. opgaven går så ud på bagefter at lave en tegnstatistik på samme måde hvor forekomsten af hvert tegn optækkes, hvor man benytter sig af et array TegnHyp: array[0..255] of integer; og optællingen kan ske ved inc(TegnHyp[Ord(Linie[j])]) der er ydeligere oplyst at Ord er en funktion som virker på et tegn. Funktionsværdien er ANSI-værdien af det pågældende tegn. Fx er Ord('A') = lig 65 og Ord('c') = 99. Jeg er ret i tvivl om hvad dette betyder og har svært ved at komme i gang med opgaven. Håber i kan hjælpe. På forhånd mange tak.




2 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
http://www.handheld-basic.com/documentation/text/page_599.html

Ansi tabellen, nogle programmerings bøger har den bagerst, en functionsværdi er den værdi en funktion returnere.

så hvis du sender en character til funktionen ord får du værdien der står i decimal kolonen udfor den charecter i det link der er foroven.
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/



Fold kodeboks ind/udKode 


Jeppe Johansen
Jeppesoftware@hotmail.com

[Redigeret d. 02/12-05 22:11:25 af Jeppe]



t