![]() |
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:
Fehlermeldung:
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. ''' ist kein gültiger Integerwert' sitze schon den ganzen tag an dem programm, und kann den Fehler nicht finden! Danke im vorraus, |
Re: Problem bei Pascalsche Dreieck
Stepp doch mal durch und schau, was in der entsprechenden Zelle steht, wenn der Fehler auftritt.
|
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.
|
Re: Problem bei Pascalsche Dreieck
oder mal so:
Delphi-Quellcode:
... btw ... so kann man es auch noch lesen ... ;-)
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. 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:
denn du darfst ja nur die 'X'-Felder berechnen und die '.'-Felder bleiben leer![/edit2]
....X....
...X.X... ..X.X.X.. .X.X.X.X. X.X.X.X.X [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] |
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?? |
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 |
Re: Problem bei Pascalsche Dreieck
meine güte ich zerbrech mir seit mittag den kopf drüber, bitte sag mir doch was nicht stimmt!
|
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.
|
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. |
Re: Problem bei Pascalsche Dreieck
Zitat:
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 13:21 Uhr. |
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