Registriert seit: 20. Jan 2006
5 Beiträge
|
Re: Bereinigen des Records
20. Jan 2006, 12:02
Delphi-Quellcode:
type
tdatensatz = record
zeichen:char;
anzahl:integer;
haeufig:real;
end;
const
maxzahl = 40;
var
datensatz: array[1..maxzahl] of tdatensatz;
zahl: integer;
satz: string;
procedure TForm1.Button1Click(Sender: TObject);
var laenge,a,c,d,g,e:integer;
b,f:char;
h:real;
begin
satz:=edit1.text;
memo.Clear;
laenge:=length(satz);
a:=0; //wir sind beim a-ten zeichen
memo.lines.add('Gesamtlänge: ' + inttostr(laenge));
while a<laenge do
begin
a:=a+1;
b:=satz[a]; //b ist das aktuelle zeichen
c:=laenge; // einfacher
d:=0;
e:=zahl;
while c>0 do
begin
if b=datensatz[e].zeichen then
begin
datensatz[e].anzahl:=datensatz[e].anzahl+1;
c:=0;
d:=1; // d gibt an ob der buchstabe schon zugeordnet wurde
end
else
begin
c:=c-1; //c geht alle buchstaben durch
e:=e-1; // e ist hier der zähler um alle datensätze abzuklappern
end;
end;
if d=0 then
begin
zahl:=zahl+1;
datensatz[zahl].zeichen:=b;
datensatz[zahl].anzahl:=1
end;
end;
e:=0; //hier ist e der zähler um alle datensätze auszugeben
memo.lines.add('Zeichen Anzahl Häufigkeit');
while e<zahl do
begin
e:=e+1;
f:=datensatz[e].zeichen;
g:=datensatz[e].anzahl;
h:=(g/laenge);
memo.lines.add(f + ' ' + inttostr(g) + ' ' + floattostr(h))
end;
end;
|
|
Zitat
|