AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm für Mathe-Facharbeit

Ein Thema von Admirandis · begonnen am 18. Dez 2006 · letzter Beitrag vom 18. Dez 2006
Antwort Antwort
Admirandis
(Gast)

n/a Beiträge
 
#1

Programm für Mathe-Facharbeit

  Alt 18. Dez 2006, 18:42
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
Angehängte Dateien
Dateityp: rar gau__jordan_algorithmus_rar_851.rar (281,0 KB, 12x aufgerufen)
Dateityp: zip gau__jordan_algorithmus_zip_182.zip (303,2 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
boserPascal

Registriert seit: 4. Apr 2006
96 Beiträge
 
Delphi 5 Professional
 
#2

Re: Programm für Mathe-Facharbeit

  Alt 18. Dez 2006, 18:57
Hallo,

dass klingt mir ganz danach als würde es bei den Free-Methoden krachen, ersetze sie durch eine lösch-Methoden wie clear. Also das du nur den Inhalt zurücksetzt. Ich denke das ist das was du willst.
Stefan
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Programm für Mathe-Facharbeit

  Alt 18. Dez 2006, 19:00
kannst du das in ZIP hohladen? ich glaub es haben nicht alle hier RAR

so nu hab ich erstma ne Frage:

zu welchem Zeitpunkt genau tritt der Fehler auf? hast ma Zeilenweise durchlaufen?

Zu rotem Kasten: Ich würde auch sagen das du statt free was anderes machen solltest, ich nehm da immer die Funktion "FreeAndNil(label1)" oder so(ist das auch ne Funktion oder ne Prozedur? ka aber au egal hier)
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#4

Re: Programm für Mathe-Facharbeit

  Alt 18. Dez 2006, 19:13
So, also jetzt ist es auch als Zip hochgeladen! Sorry, hab nicht weit genug gedacht!

Jetzt zu der Free Methode: Habs mal anders ausprobiert: Funktioniert 1a! Nur da kommt schon das neue Problem zur Tür hereinspaziert:

Ich hab das Prog auf ein verhältnismäßig kleines Formular gebaut. Wenn ich es resette, wird es wieder so groß wie am Anfang! Das liegt daran, dass die zur Laufzeit erstellten Label ja noch existieren, da ich ihnen einfach nur caption := '' zugewiesen hab! Werde jetzt aber mal die Funktion von Angel4585 probieren danke an ihn!

Danke auch an Boser Pascal für den Tipp mit den Free Routinen! Werd mich jetzt gleich mal ans Werk machen und schauen, ob ihr Recht behaltet ^^ Ich hoffe es zumindest! Die Facharbeit muss am 26. Januar fertig...

Nochmals viele Dank an euch!

Grüße

Admirandis
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#5

Re: Programm für Mathe-Facharbeit

  Alt 18. Dez 2006, 19:19
Also, das mit dem freeandnil hat bestens geklappt! Vielen Dank nochmals!

Eigentlich sollte die Free Routine ja auch gehen, aber wenn Delphi nicht mag, dann mag es halt net!

Grüße

Admirandis
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Programm für Mathe-Facharbeit

  Alt 18. Dez 2006, 19:22
Zitat von Admirandis:
Ich hab das Prog auf ein verhältnismäßig kleines Formular gebaut. Wenn ich es resette, wird es wieder so groß wie am Anfang! Das liegt daran, dass die zur Laufzeit erstellten Label ja noch existieren, da ich ihnen einfach nur caption := '' zugewiesen hab!
setz doch die positionen der Labels mit .Left und .Top

Edit: Ich wünsche mir einen funktionierenden roten Kasten
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#7

Re: Programm für Mathe-Facharbeit

  Alt 18. Dez 2006, 20:04
Hab des mit dem versetzen von den Labels schon vorher versucht, aber interessanter Weise ist dann wieder der gleiche Fehler gekommen! Frag mich nicht wieso, ich verstehs auch nicht und ja, es ist unlogisch ^^

Aber da das Problem jetzt gelöst ist, braucht mich das ja nicht mehr zu interessieren!

Grüße

Thomy
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz