Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Wert einer Zahl um 1 erhöhen?
Paulchengb - Di 14.08.07 11:49
Titel: Wert einer Zahl um 1 erhöhen?
Hallo,
wie kann ich denn den Wert einer Zahl um die Anzahl erhöhen, so oft die Bedingung erreicht wird?
Delphi-Quelltext
1: 2: 3: 4:
| if <Bedingung> then
z:= 1++; |
Aber das funktioniert nicht. Da ist das ; nach den beiden ++ rot unterringelt --> Syntaxfehler...
Moderiert von
Gausi: Topic aus VCL (Visual Component Library) verschoben am Di 14.08.2007 um 11:52
Gausi - Di 14.08.07 11:52
In Delphi gibts kein ++. Hier kann man das so machen: z := z + 1; oder inc(z);.
Paulchengb - Di 14.08.07 11:57
Hi,
danke. Das geht jetzt schonmal, aber die Operation wird nur 1x ausgeführt...
Also ich erstelle 10 Zufallszahlen und folgende Eigenschaften sollen erfüllt sein:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if (v<=x) and (x<=b) and (v<=y) and (y<=b) and (v<=z) and (z<=b) then
p:= p + 1;
labelededit5.Text:=floattostr (p); end; |
x,y,z sind die 1.,2.,3. Stelle der Zufallszahl und v=von b=bis, welche Ziffern enthalten sein sollen, z.B. v=3, b=6 --> es sollen nur die Zufallszahlen gezählt werden, die 3,4,5 und 6 enthalten.
pigfacejoe - Di 14.08.07 12:07
Da brauchste ne Wiederholungsanweisung, so wie ich das verstehe.
In diesem Fall würde sich da ja eine for Anweisung anbieten.
Also in etwa so:
Delphi-Quelltext
1: 2: 3: 4:
| for p:= v to b do begin end; |
So sollte das klappen,
Schönen Gruss
Pigface Joe
Narses - Di 14.08.07 12:09
Moin!
Dein Ansatz ist falsch, vielleicht geht es besser so:
- Eine Schleife, die über alle erzeugten Zufallszahlen läuft
- Eine innere Schleife, die über die Stellen der aktuellen Zufallszahl läuft
- in dieser Schleife prüfen, ob die aktuelle Ziffer der aktuellen Zufallszahl im gesuchten Bereich liegt: das geht z.B. so: if (StelleInZufallszahl[Position] in ['3'..'6']) then
:idea:
cu
Narses
TheAxeEffect - Di 14.08.07 19:21
was meinst du denn?
meinst so solange etwas so ist wie es sein soll, soll er es erhöhen, oder er soll es x-mal erhöhen oder er soll x mal prüfen, ob etwas so ist wie es sein soll, und ggf. erhöhen?
fall 1:
Delphi-Quelltext
1: 2: 3:
| while (bedingung) do begin p:=p+1; end; |
fall 2:
Delphi-Quelltext
1: 2: 3:
| for loop-variable(zb. i):=1 to x do begin inc(p); end; |
fall3:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| <div class="syntaxContainer"> <div class="syntaxTitle genmed"> <b>Delphi-Quelltext</b> </div> <div class="syntax"> <table cellspacing="0" cellpadding="0"> <tr> <td valign="top" style="text-align: right; padding-right: 3px; border: #DBE4EB solid; border-width: 0px 1px 0px 0px;"> <pre>1: 2: 3: 4: 5: </pre> </td> <td valign="top" style="width: 100%; padding-left: 3px;"> <pre class="sourcecode"><span class="codekey">for</span> loop-variable(zb. i):=<span class="codenumber">1</span> <span class="codekey">to</span> x <span class="codekey">do</span> <span class="codekey">begin</span> <span class="codekey">if</span> bedingung <span class="codekey">then</span> <span class="codekey">begin</span> inc(p); <span class="codekey">end</span>; <span class="codekey">end</span>; </pre> </td> </tr> </table> </div></div> |
oder meinst du überhaupt was anderes?
Paulchengb - Di 14.08.07 19:58
@TheAxeEffect,
ich mein, dass wenn ich schon 10 Zufallszahlen erstellt habe, dann gibt es die ja. :P Nun sollen die 10 erstellen Zahlen auf "Bedingungen" überprüft werden, zB., dass sie nur die Ziffern 1-3 enthalten. Verstehst? Also so wie ich das lese, ist Fall 3 das richtige für mich. Ich habe das jetzt auch mal versucht, nur leider wird mir in dem edit.text Feld nichts ausgegeben. Es bleibt einfach leer.
Hier der Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| for i:= 1 to x do begin if (v<=x) and (x<=b) and (v<=y) and (y<=b) and (v<=z) and (z<=b) then begin p:= p+1; labelededit5.Text:=floattostr (p); end; end; end; |
TheAxeEffect - Di 14.08.07 20:04
du weißt eh, dass du diese ausgabe in der schleife eingebunden hast oder?
du willst aber nur das endergebnis oder?
mach die mal aus der schleife raus.
dann: hast die die variable x deklariert, und definiert..wenn du mit der nix machst ist die 0, und die schleife geht erst garnich los.
edit: wo liegen deine zufallszahlen überhaupt? und: könnteste den ganzen code posten, dann wären wir eher imstande dir weiterzuhelfen^^
mfg,
simon
Paulchengb - Mi 15.08.07 12:31
Danke für eure Hilfe. Ich habe es heute hinbekommen...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!