![]() |
Fehlfunktion in if-Abfrage
Hi DP :hi: !
Ich hbe folgenden Code:
Delphi-Quellcode:
z3z und z3 sin beide ein array [1..3] of Integer
if zahlenarray1[1] = 1 then
zahlenaray3moeglichezahlen[1] := zahlenaray3moeglichezahlen[1]+1 // else if zahlenarray1[1] = 2 then zahlenaray3moeglichezahlen[2] := zahlenaray3moeglichezahlen[2]+1 // else if zahlenarray1[1] = 3 then zahlenaray3moeglichezahlen[3] := zahlenaray3moeglichezahlen[3]+1; // Zugewiesene Zahlen aus den Arrays z1 und z2 if zahlenarray1[2] = 1 then zahlenaray3moeglichezahlen[1] := zahlenaray3moeglichezahlen[1]+1 // lesen und z3z hinufügen else if zahlenarray1[2] = 2 then zahlenaray3moeglichezahlen[2] := zahlenaray3moeglichezahlen[2]+1 // else if zahlenarray1[2] = 3 then zahlenaray3moeglichezahlen[3] := zahlenaray3moeglichezahlen[3]+1; // if zahlenarray2[1] = 1 then zahlenaray3moeglichezahlen[1] := zahlenaray3moeglichezahlen[1]+1 else if zahlenarray2[1] = 2 then zahlenaray3moeglichezahlen[2] := zahlenaray3moeglichezahlen[2]+1 else if zahlenarray2[1] = 3 then zahlenaray3moeglichezahlen[3] := zahlenaray3moeglichezahlen[3]+1; if zahlenarray2[2] = 1 then zahlenaray3moeglichezahlen[1] := zahlenaray3moeglichezahlen[1]+1 else if zahlenarray2[2] = 2 then zahlenaray3moeglichezahlen[2] := zahlenaray3moeglichezahlen[2]+1 else if zahlenarray2[2] = 3 then zahlenaray3moeglichezahlen[3] := zahlenaray3moeglichezahlen[3]+1; // wie oben if z3z[1] = 1 then // begin // if z3[2] <> 0 then // z3[1] := 1 // else z3[2] := 1; // end // else if z3z[2] = 1 then // begin // wo in z3z eine 1 steht, diese Zahl zu z3 hinzufügen. if z3[2] <> 0 then // z3[1] := 2 // else z3[2] := 2; // end // else if z3z[3] = 1 then // begin // if z3[2] <> 0 then // z3[1] := 3 // else z3[2] := 3; // end; // ShowMessage(IntToStr(z3z[1])+'+'+IntToStr(z3z[2])+'+'+IntToStr(z3z[3])); ShowMessage('z3: '+IntToStr(z3[1])+'+'+IntToStr(z3[2]); Bei der ersen Meldung soll mir immer zweimal eine 1 angezeigt werden und eine 2. Das Funktioniert so auch. Danach soll dann z3[1] und z3[2] die Zahl des Arrays übergeben werden, in der eine 1 steht. so wie ich es mache, kriege ich aber immer nur für die zweite Zahl eine Zahl, und die erste ist immer 0. Aber wieso? :gruebel: Was mache ich falsch? |
Re: Fehlfunktion in if-Abfrage
Delphi-Quellcode:
1. Formatierung
Was mache ich falsch
2. Dokumentation 3. Variablennamen |
Re: Fehlfunktion in if-Abfrage
Zitat:
Zitat:
Zitat:
Je länger die sind, umso eher schreibt man sie falsch. |
Re: Fehlfunktion in if-Abfrage
Zitat:
Zitat:
|
Re: Fehlfunktion in if-Abfrage
Delphi-Quellcode:
Kann man so schreiben:
if z1[1] = 1 then z3z[1] := z3z[1]+1
else if z1[1] = 2 then z3z[2] := z3z[2]+1 else if z1[1] = 3 then z3z[3] := z3z[3]+1;
Delphi-Quellcode:
Wenn z1[1] nur 1, 2 oder 3 annehmen kann.
Inc(z3z[z1[1]]);
Benutze mal den Debugger. |
Re: Fehlfunktion in if-Abfrage
Zitat:
![]() Zitat:
Es kann sein, dass fuer dich alles klar ist, zumindest jetzt. Guck dir das Programm 2 Monate lang nich an, und versuch es nochmal zu verstehn. Ausserdem: Fuer dich ist alles klar, weil du den Code geschrieben hast. Ein Aussenstehender hat schon alleine Schwierigkeiten damit, den Quellcode zu verstehn, und ich habe schon lange aufgehoert, solche Quellcodes zu lesen. Lektion Nr2: Aussagekraeftige Variablennamen verringern nicht nur die Fehlerwahrscheinlichkeit, sondern erhoehen auch die Wahrscheinlichkeit, dass jemand anderes deinen Quellcode liest und evt. auch korrigieren kann. greetz Mike |
Re: Fehlfunktion in if-Abfrage
Zitat:
Delphi-Quellcode:
Am Anfang werden z1 und z2 Werte zugelost.
var z1, z2, z3, z3z: array [1..3] of Integer;
Da es bei z3 dann zu lange dauert bis es auch Werte hat lese ich aus, welche Werte schon verwendet werden. Es gibt drei Werte: 1,2 und 3. Alle müssen am Ende 2 mal drin vorkommen. |
Re: Fehlfunktion in if-Abfrage
Zitat:
![]() Variablennamen: Ich sag immer: Die beste Dokumentation is der Code selber. Wenn man schon aus den Bezeichnern rauslesen kannst, das passiert, brauchst du weniger Prosa zu schreiben. Die Heisenbergsche Unschärferelation für Programmierer: Code * Kommentar >= h :zwinker: @TurboMartin: Wenn du uns sagst, was der Code bezweckt, können wir vielleicht besser helfen... mfg Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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-2025 by Thomas Breitkreuz