Moin allerseits!
Ich schreibe in Mathe meine Facharbeit über das Lösen von Gleichungssystemen mit dem Gauß-Jordan Algorithmus! Der Algorithmus selber ist nicht so ein besonderes Problem, aber ich habe eine Reset Funktion eingebaut, mit der man das ganze Programm zurücksetzen kann um wieder neue Gleichungen etc einzugeben! Bisher hat das auch alles wunderbar funktioniert, aber seitdem ich eine neue Beispielroutine gecodet habe kommt immer die Fehlermeldung "Zugriffsverletzung bei Adresse 004031DE in Modul....". Und ich habe leider nicht die leiseste Ahnung, wie das da hineingekommen ist! Deswegen wollte ich euch mal den Code schicken und fragen, ob ihr da was sehen könnt! Würde mich über Antworten freuen!
Admirandis
PS: Den Quellcode findet ihr in der "knappen" Fassung unten, den ganzen lade ich noch als Anhang hoch!
PPS: Falls ich hier im falschen Forum für Mathe bin: sorry
Erstmal ein grooooßer Variablenblock:
Delphi-Quellcode:
var
Form1: TForm1;
lblcnt, lblhgt, xcnt, vorzcnt, maxwidth1, maxwidth2: integer;
gleichung, determinante, lsg, ergebnis: array[1..99] of TLabel;
x, y: Array[1..100, 1..100] of extended;
g: Array[1..100, 1..100] of string;
e: Array[1..100] of extended;
vargl: Array[1..100] of integer;
Das ist die Procedure, die die Zufallsgleichungen erstellt
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
cnt, cnt2, ak, pm: integer;
zahl: extended;
inp: string;
begin
ak := 3+random(7);
for cnt := 1 to ak do
begin
for cnt2 := 1 to ak do
begin
pm := random(2);
zahl := random(50);
if pm = 1 then inp := inp+'+' else inp := inp+'-';
inp := inp+floattostr(zahl);
end;
inp := inp+'='+inttostr(random(100));
input.Text := inp;
button1.Click;
inp := '';
end;
end;
Und last but not least die Procedure zum Resetten
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
frecnt, cnt1, cnt2: integer;
begin
for cnt1 := 1 to 100 do
for cnt2 := 1 to 100 do
begin
x[cnt1, cnt2] := 0;
y[cnt1, cnt2] := 0;
g[cnt1, cnt2] := '';
e[cnt1] := 0;
vargl[cnt1] := 0;
end;
for frecnt := 1 to 99 do
begin
gleichung[frecnt].Free;
determinante[frecnt].Free;
lsg[frecnt].Free;
end;
lblcnt := 0;
lblhgt := 70;
vorzcnt := 0;
label1.Caption := '1';
form1.Height := 227;
form1.Width := 503;
end;
Ich hoffe ihr habt ein paar Antworten für mich... Hoffentlich bis bald! Admirandis