Delphi-PRAXiS
Seite 1 von 3  1 23      

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)

Borgschüler 14. Nov 2008 15:48


Problem bei Pascalsche Dreieck
 
Hallo forengemeinde!

Das folgende Programm soll in einem stringgrid das Pascalsche dreieck erzeugen.
Dabei wird erst in die oberste zeile ein 1er gelegt. alle anderen Kästchen sollen die summe der beiden Kästchen rechts oben und links oben des jeweiligen kästchens sein.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,j,x : integer;
begin

x:=(0);
stringgrid1.cells[17,1]:= inttostr(1);

for i:= 1 to 34 do
 begin
    for j:= 1 to 10 do
    begin
        x:= x + strtoint(stringgrid1.cells[i-1,j-1])
         + strtoint(stringgrid1.cells[i+1,j-1]);
        stringgrid1.cells[i,j]:= inttostr(x);
    end;
 end;

end;
end.
Fehlermeldung:

''' ist kein gültiger Integerwert'


sitze schon den ganzen tag an dem programm, und kann den Fehler nicht finden!

Danke im vorraus,

DeddyH 14. Nov 2008 15:52

Re: Problem bei Pascalsche Dreieck
 
Stepp doch mal durch und schau, was in der entsprechenden Zelle steht, wenn der Fehler auftritt.

3_of_8 14. Nov 2008 15:56

Re: Problem bei Pascalsche Dreieck
 
Ich bin mir jetzt nicht ganz sicher, wie die Indizierung beim StringGrid ist. Kommt da zuerst x- oder zu erst y-Koordinate? Wenn es y zuerst ist, musst du nur bei der Stelle, wo du deine Koordinaten vertauschen. Das Problem ist nämlich, dass du irgendwo versuchst, eine Zahl aus einer Zelle zu lesen, die leer ist.

Sir Rufo 14. Nov 2008 15:58

Re: Problem bei Pascalsche Dreieck
 
oder mal so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ACol, ARow ,x : integer;
begin
  x := ( 0 ); // wofür denn die klammern? 
  StringGrid1.Cells[ 17, 1 ] := IntToStr( 1 ); // würde ja auch := '1'; gehen ;-)

  for ACol := 1 to 34
  do
    begin
      for ARow := 1 to 10 
      do
        begin
          x :=
            x + 
            StrToIntDef( StringGrid1.Cells[ ACol - 1, ARow - 1 ], 0 ) +
            StrToIntDef( StringGrid1.Cells[ ACol + 1, ARow - 1 ], 0 );
          StringGrid1.Cells[ ACol, ARow ] := IntToStr( x );
        end;
    end;
end;

end.
... btw ... so kann man es auch noch lesen ... ;-)

cu

Oliver

[edit]ich hab dann mal die Variablen angepasst, wegen der besseren Unterscheidung, was Col und was Row[/edit]

[edit2]aber das passt ja eigentlich gar nicht ...
Code:
....X....
...X.X...
..X.X.X..
.X.X.X.X.
X.X.X.X.X
denn du darfst ja nur die 'X'-Felder berechnen und die '.'-Felder bleiben leer![/edit2]
[edit3]oh graus ... du schreibst in zuerst in Zeile 1 (Cells[ 17, 1 ]), und dann berechnest du für jedes Feld der Zeile 1 einen Wert.
Warum dann erst die Mühe und dort etwas eintragen? Muss das vielleicht in Zeile 0?[/edit3]

Borgschüler 14. Nov 2008 16:13

Re: Problem bei Pascalsche Dreieck
 
Ja man will ja nur die X-felder haben.

Im endeffekt siehts so aus:

.....1
....1.1
...1.2.1
..1.3.3.1
.1.4.6.4.1

usw...


hmm irgenwie kommtn totaler blödsinn raus!
in der ersten(nichtgrauen) zeile steht neben dem ersten 1er ein 9er dann 46...


Wenn man sich bei dem dreieck die 3te zeile anschaut: Da besteht der 1er aus 0 und 1, der 3er aus 1 und 2 usw.

und was heisst strtointDEF??

Sir Rufo 14. Nov 2008 16:16

Re: Problem bei Pascalsche Dreieck
 
Also für die Lösung der Aufgabe musst du:

1 Zeile löschen
1 Zeile ändern
1 Zeile hinzufügen

dann ist fertig, du bist also nah dran.

Kleiner Tip - überleg doch mal unter welchen Umständen du ein Ergebnis schreiben sollst ... ;-)

cu

Oliver

Borgschüler 14. Nov 2008 16:23

Re: Problem bei Pascalsche Dreieck
 
meine güte ich zerbrech mir seit mittag den kopf drüber, bitte sag mir doch was nicht stimmt!

Fridolin Walther 14. Nov 2008 16:26

Re: Problem bei Pascalsche Dreieck
 
Das Problem ist, das es Dir nichts bringt, wenn Sir Rufo es Dir sagt. Weil letztlich musst Du es können und nicht Sir Rufo. Entsprechend klar das er Dir nur Tipps gibt und keine komplette Lösung präsentiert.

Borgschüler 14. Nov 2008 16:29

Re: Problem bei Pascalsche Dreieck
 
ja ber ich kann den fehler dann nachvollziehen und beim nächsten mal selber draufkommen.
Außerdem könnten es ja fehler sein, die ich aufgrund meines wissenstandes gar nicht erkennen kann, da hilft es niemandem wenn ich einen taqg meinse lebens vergeblich aufopfere.

Sir Rufo 14. Nov 2008 16:30

Re: Problem bei Pascalsche Dreieck
 
Zitat:

Zitat von 0xF30FC7
Das Problem ist, das es Dir nichts bringt, wenn Sir Rufo es Dir sagt. Weil letztlich musst Du es können und nicht Sir Rufo. Entsprechend klar das er Dir nur Tipps gibt und keine komplette Lösung präsentiert.

wieso muss ich das nicht können ... :gruebel:

aber das sind die fakten, und aufs pferd haben wir dir schon geholfen, jetzt nur noch die füsse in die steigbügel.

darum nochmal:
stell dir die frage, wie der wert an einer beliebigen stelle berechnet wird und vergleich das ergebnis mit deinem code, ob der das auch so macht ...

cu

Oliver


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 Uhr.
Seite 1 von 3  1 23      

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