also, das array is wie folgt definiert:
Delphi-Quellcode:
type
TKurs = record
metall, kristall, tritium:integer;
end;
var
results: array[1..155] of TKurs;
und zum zweiten..ähhhh, da kommt auch 0...das KANN nicht sein
also hier nochma der gesamte code:
Delphi-Quellcode:
var
Form1: TForm1;
results: array[1..155] of TKurs;
gesamt:integer;
implementation
{$R *.dfm}
//"tripel" suchen
procedure TForm1.Button1Click(Sender: TObject);
var metall,kristall,tritium,i:integer;
begin
ListBox1.Clear;
gesamt:=0;
for metall:=1 to 20 do
for kristall:=1 to 20 do
for tritium:=1 to 20 do
begin
//wenn es passt dann eintragen
if abs(metall/kristall-2.2)<0.5
then if abs(metall/tritium-2.1)<0.5
then if abs(kristall/tritium-1)<1
then begin
//in listbox
ListBox1.Items.Add(inttostr(metall)+':'+inttostr(kristall)+':'+inttostr(tritium));
inc(gesamt);
label1.Caption:=inttostr(gesamt);
//und in array
results[i].metall:=metall;
results[i].kristall:=kristall;
results[i].tritium:=tritium;
end;
end;
end;
//kuerzen
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
procedure kuerzen(i:integer);
var j:integer;
begin
for j:=20 downto 2 do
if (results[i].metall mod j=0) and
(results[i].kristall mod j=0) and
(results[i].tritium mod j=0)
then begin
results[i].metall:=results[i].metall div j;
results[i].kristall:=results[i].kristall div j;
results[i].tritium:=results[i].tritium div j;
end;
end;
begin
ListBox1.Clear;
for i:=1 to gesamt do
begin
kuerzen(i);
ListBox1.Items.Add(inttostr(results[i].metall)+':'
+inttostr(results[i].kristall)+':'
+inttostr(results[i].tritium));
end;
end;
end.
so, ich hab ma ausprobiert ob in results[i].xxx überhaupt was drinsteht....
bei folgendem code in Button1Click kommt das richtige ergebnis:
Delphi-Quellcode:
results[i].metall:=metall;
results[i].kristall:=kristall;
results[i].tritium:=tritium;
ListBox1.Items.Add(inttostr(results[i].metall)+':'+inttostr(results[i].kristall)+':'+inttostr(results[i].tritium));