Entwickler-Ecke
Sonstiges (Delphi) - Dividieren: Ist die Zahl ohne Rest teilbar?
Big_Nuke - So 18.08.02 16:37
Titel: Dividieren: Ist die Zahl ohne Rest teilbar?
Guthen Teg, mein Name ist Siegmund Freud, ;-)
tjaaaaaaaaaaaaaaaaaa... ich hab n KLEIIIINES Problem. Ist sicher für keinen von euch problematisch, aber mein Programm soll selbstständig sagen können, dass zwei zahlen ohne/mit Rest (ohne/mit Dezimalstellen)
teilbar sind.
Ihr könnt mir sicher helfen. Vielen Dank :mrgreen:
Ex0rzist - So 18.08.02 16:43
Hallo Big_Nuke,
die Operation, die du suchst ist mod.
Sie gibt den Rest bei einer Division zurück.
Zum Beispiel:
5 mod 2 = 1
Und mit div machst du eine ganzzahlige Division.
Zum Beispiel:
5 div 2 = 2
P.S.: Das steht auch alles in der Onlinehelp.
____________
Ex0rzist
Big_Nuke - Mo 19.08.02 13:42
Mist... geht nich ganz... ich wollt ein Primzahlen berechnungsprog schreiben... aber er berechnet mehr eine zahlenreihe von +3, +3, +3, +4
oder so... :( :? aber ihr könnt mir sicher helfen... :mrgreen:
Ex0rzist - Mo 19.08.02 15:09
Um dir helfen zu können, müsstest du schon etwas Code posten.
Big_Nuke - Di 20.08.02 20:27
Hier das Herz des Programms: den Timer:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.Timer2Timer(Sender: TObject); label new; label next; begin new: teiler := 1; zahl:=zahl+1; next: teiler := teiler+1; if teiler<zahl then begin if zahl mod teiler = 0 then begin goto new; end else begin goto next; end; end else begin memo1.lines.Add(' Nächste Priemzahl: '+inttostr(zahl));
teiler := 1; end; end; |
nun? ach und die Ergebnisse:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Nächste Priemzahl: 983 Nächste Priemzahl: 991 Nächste Priemzahl: 997 Nächste Priemzahl: 1009 Nächste Priemzahl: 1013 Nächste Priemzahl: 1019 Nächste Priemzahl: 1021 Nächste Priemzahl: 1031 Nächste Priemzahl: 1033 Nächste Priemzahl: 1039 Nächste Priemzahl: 1049 Nächste Priemzahl: 1051 Nächste Priemzahl: 1061 Nächste Priemzahl: 1063 Nächste Priemzahl: 1069 |
(das ist natürlich kein code!)
Ex0rzist - Di 20.08.02 22:04
Hallo Big_Nuke,
Big_Nuke hat folgendes geschrieben: |
Quelltext 1: 2: 3: 4:
| ... goto new; ... goto next; |
|
Gewöhne dir das mit dem Goto gar nicht erst an bzw. schnell ab.
Das führt früher oder später nur zu Verwirrungen im Code.
"... the quality of programmers is a decreasing function of the density of goto statements in the programms they produce.''
___________
Ex0rzist
hitstec - Di 20.08.02 22:36
Da alle geraden Zahlen keine Primzahlen sind, wäre es durchaus sinnvoll den Algo in eine
while-Schleife zu packen, die die geraden Zahlen überspringt, etwa so:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| iStep:=3 while ... do begin if... . . iStep:=iStep+2; end; |
Big_Nuke - Do 22.08.02 15:51
das mit dem goto is schon ok.. ich habs mir von c++ angewöhnt...
aber ich hab jetzt n anderes prob... un zwar:
bei grösseren Zahlen Stürzt der pc ab... ich müsste ihm sagen, er soll eine millisekunde pause machen, befor er teiler:= teiler+1 macht, um so zu verhindern, dass er 10000000 mal die mod anweisung durchführt und dafür nur eine ms zeit hat... oder gibt es eine andere lösung?
hitstec - Do 22.08.02 18:10
Dieser Befehl schläfert das Prog für eine ms ein.
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!