![]() |
modular 0.0?
Hallo
Ich habe ein Problem ich habe normalerweise immer 3-tellig Zahlen in dem Programm das ich schrieb. Nur sobald ich eine 2-stellige Zahl einlese, da diese per Random erzeugt werden, dichtet er sich von selbst eine zahl dazu. ich konnte den Fehler schon begrenzen auf folgende Zeilen
Delphi-Quellcode:
function numberdissect(numbers: array of integer): Tallnumbers; // Aufsplitten der Nummern array Allnumbers besteht aus 27 stellen 0-26 var safer: integer; counter, resultmerker: integer; onenumber: array[0..2] of integer; // Für eine 3 Stellige zahl die er abspeichern soll begin resultmerker := 0; for counter := low(numbers) to high(numbers) do begin safer := 2; while numbers[counter] <> 0 do begin ShowMessage ('Wert ist falsch'); onenumber[safer] := numbers[counter] mod 10; numbers[counter] := numbers[counter] div 10; dec(safer); end; for safer := 0 to 2 do begin Result[resultmerker] := onenumber[safer]; // speichern der gesplittenen zahl in einzelne werte von 0-9 inc(resultmerker); end; end; end; Als Beispiel: Ich habe die Zahlen 623 + 33 = 656 dann schreibt er in die freie Stelle wo eigentliche ne null stehen sollte eine 6 rein uns dort steht dann bei der Ausgabe folgendes 623+633 = 656 das kommt aber nicht mit dem Ergebnis ein also das er die hier Rot makierte Zahl nimmt weiß ich schon |
AW: modular 0.0?
Was soll die Funktion eigentlich machen?
|
AW: modular 0.0?
ich habe 9 zahlen die 3 stellig sind alle diese 9 zahlen haben insgesamt 27 einzelzahlen sprich 123 = 1|2|3.
das splittet die so auf und das macht die auch nur wenn ich ne zahl habe die 2 stellen hat soll er null reinschreiben was er aber nicht tut. |
AW: modular 0.0?
Warum verhinderst du nicht einfach die Speicherung von Zahlen, welche nicht 3 stellig sind? Bzw. erweiterst diese.
|
AW: modular 0.0?
er soll auch 2 stellige oder 1 stellige speichern nur ich weiß nicht wie ich ihm sagen kann das er auffüllen soll bzw weiß es schon aber weiß nicht wo ich das einsätze
|
AW: modular 0.0?
Wie willst Du den auffüllen: 63 -> 063 oder 630?
|
AW: modular 0.0?
also sinnvollerweise 063
|
AW: modular 0.0?
In deinem Code ist aber 6 die erste Ziffer der 3 stelligen Zahl.
|
AW: modular 0.0?
meinst du die rote 6 weil das wäre der falsche also die 633+33 soll nachher stehen wenn das so richtig ist 633+033
also er braucht nur die 33 auffüllen |
AW: modular 0.0?
Zitat:
* entweder du initialisiert voher gefälligst diese Werte (alles mit 0 füllen) * oder du mußt die nichtbelegten Werte nachher noch mit 0 füllen * oder du lässt immer alle gewünschten Dezimalstellen durchrechnen Und nun rate auch mal was passiert, wenn da eine 4-stellige oder noch größere oder vielleicht sogar negative Zahl drin steht? Du solltest dringend bei deinen Programmen immer die Bereichs- und vielleicht sogar die Überlaufprüfung aktivieren. (z.B.
Delphi-Quellcode:
an den Anfang aller deiner eigenen Units)
{$R+}
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 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