Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - "Speicherloch" produzieren
Fabian W. - Fr 28.10.05 16:23
Titel: "Speicherloch" produzieren
Hallo,
der Titel ist nicht ganz treffend, aber mir fiel beim besten Willen kein besserer ein. :oops:
:arrow: Zur Frage:
Ich bräuchte zwei Funktionen die mir 2 Zahlen addieren so, dass, falls die addierte Zahl größer ist als der Wert x, bei der addierten Zahl wieder von vorn beginnt zu zählen:
Quelltext
1: 2: 3: 4:
| x = 20 zahl := 5 + 5 (=10) ABER zahl := 10 + 12 (=2) |
Sie zweite Funktion soll das gleiche, nur mit Subtraktion und bei "0", machen:
Quelltext
1: 2: 3:
| zahl := 10 - 5 (=5) ABER zahl := 5 - 8 (=3) |
Das zweite wäre dann wohl "Betrag von"?!
Wie bekomm' ich das jetzt mit Delphi hin? Gibt's da schon irgendwelche schlauen Funktionen?
Gausi - Fr 28.10.05 16:31
Wenn ich dich richtig verstehe, suchst du die Funktion MOD
Es gilt: (5 + 7) MOD 10 = 2
alzaimar - Fr 28.10.05 16:31
Für den ersten Fall könnte das 'modulo' (also der Rest, der bei einer ganzzahligen Division übrigbleibt) verwendet werden.
Für den zweiten Fall willst Du eigentlich den Wert der Substraktion, nur ohne Vorzeichen, also den absoluten Wert.
Ironwulf - Fr 28.10.05 16:32
wo is da dein problem du hast doch schon alles da stehn ;D
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| begin x:= 20; zahl:= 10 + 12;
Repeat If Zahl >= 20 Then zahl:= Zahl - x; Until Zahl < 20; end;
begin zahl:= 5 - 8; If zahl < 0 Then Abs(zahl); end; |
das wars schon...
Stefan.Buchholtz - Fr 28.10.05 16:33
Die erste Funktion läßt sich mit
mod realisieren:
Quelltext
1:
| (10 + 12) mod 20 (= 2) |
Das zweite ist die Betragsfunktion, die heisst in Delphi
Abs().
Stefan
Fabian W. - Fr 28.10.05 17:02
Perfekt, danke!
alzaimar - Fr 28.10.05 17:15
Seit Ihr Alle farbenblind?
alzaimar hat folgendes geschrieben: |
Für den ersten Fall könnte das 'modulo' (also der Rest, der bei einer ganzzahligen Division übrigbleibt) verwendet werden.
Für den zweiten Fall willst Du eigentlich den Wert der Substraktion, nur ohne Vorzeichen, also den absoluten Wert. |
.
Da will man mal dezent (Farbe braun) draufhinweisen, und dann wird man einfach ingnoriert :bawling: Pah!
Aber, mir ist das doch gleich :schmoll:
Schönes WE :party:
Ironwulf - Fr 28.10.05 17:35
mmh ich würd sagen das hier alle ziemlich zur selben zeit angefang haben mit schreiben...
und damit is das hier halt alles 3 mal da :D
Fabian W. - Fr 28.10.05 19:01
Ironwulf hat folgendes geschrieben: |
mmh ich würd sagen das hier alle ziemlich zur selben zeit angefang haben mit schreiben...
und damit is das hier halt alles 3 mal da :D |
:mrgreen: Das kann mir nur recht sein :D
Die Funktionen würden dann (auf meine Bedürfnisse abgestimmt) so aussehen: (falls sich noch andere dafür interessieren ;-))
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function TForm1.TrimToMax(Zahl: real; Max: real): real; begin Repeat If Zahl > Max Then zahl:= Zahl - Max; Until Zahl <= Max; end;
function TForm1.TrimToMinZeroWithMax(Zahl: real; Max: real): real; begin If Zahl < 0 Then Zahl := Abs(Zahl); TrimToMax(Zahl, Max); end; |
mfg
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!