Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem bei Pascalsche Dreieck (https://www.delphipraxis.net/124112-problem-bei-pascalsche-dreieck.html)

Fridolin Walther 15. Nov 2008 15:06

Re: Problem bei Pascalsche Dreieck
 
Hier die gefixte Routine für alle Interessierten:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ACol, ARow, x : Integer;
begin
  StringGrid1.Cells[ 17, 1 ] := '1';
  for ARow := 1 to 10 do
    for ACol := 1 to 34 do
      begin
        x :=
          StrToIntDef(StringGrid1.Cells[ACol - 1, ARow - 1], 0) +
          StrToIntDef(StringGrid1.Cells[ACol + 1, ARow - 1], 0);
        if x <> 0 then StringGrid1.Cells[ACol, ARow] := IntToStr(x);
      end;
end;
Die Fehler in der Routine des Threaderstellers sind folgende:

Er geht zuerst Spalte für Spalte durch und nicht Zeile für Zeile. Da sich die Berechnung darauf verlässt, das die Zeile davor komplett berechnet ist, müssen wir Zeile für Zeile arbeiten.

Ausserdem berechnet sich x nicht durch "x + <Wert Links Oben> + <Wert Rechts Oben>" sondern nur durch "<Wert Rechts Oben> + <Wert Links Oben>".

Sir Rufo 15. Nov 2008 15:09

Re: Problem bei Pascalsche Dreieck
 
Hast Du Deinen Code auch überprüft?

Ich sehe da auf jeden Fall noch einen groben Fehler ...

cu

Oliver

Fridolin Walther 15. Nov 2008 15:23

Re: Problem bei Pascalsche Dreieck
 
Jo. Welchen Fehler denn?

Borgschüler 15. Nov 2008 16:50

Re: Problem bei Pascalsche Dreieck
 
der fehler ist, dass man in der 2ten reihe anfangt und nicht in der ersten.

Fridolin Walther 15. Nov 2008 16:52

Re: Problem bei Pascalsche Dreieck
 
Ist in dem Fall unnötig, weil in Zeile 0 keine Werte vorhanden sind und somit niemals irgendwelche Werte in die Zeile 1 geschrieben werden (die 1 die dort platziert wird, wird also niemals geändert).

Borgschüler 15. Nov 2008 17:06

Re: Problem bei Pascalsche Dreieck
 
hinterher find ichs schad dass ich da gestern nicht draufgekommen bin.

naja ich hab auch schlecht wissen können was es mit dem Def auf sich hatte, danke jedenfalls!

Sir Rufo 15. Nov 2008 17:29

Re: Problem bei Pascalsche Dreieck
 
Zitat:

Zitat von Borgschüler
naja ich hab auch schlecht wissen können was es mit dem Def auf sich hatte, danke jedenfalls!

Öh, das hatte mit der Lösung eigentlich nichts zu tun, war in dem Fall nur eleganter zu lösen.
Und ausserdem ist dir der Unterschied zwischen StrToInt und StrToIntDef erklärt worden.
Der eigentliche Fehler lag doch wohl darin, dass du

a) den vorherigen wert mit dazuaddiert hattest ( x := x + ... )
b) du keine überprüfung gemacht hast, ob für das feld überhaupt eine berechnung erfolgen darf

Das Argument "konnte ich doch gar nicht wissen" kann hier wohl nicht gelten.

cu

Oliver


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz