AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

modular 0.0?

Ein Thema von Kuehter · begonnen am 20. Okt 2014 · letzter Beitrag vom 24. Okt 2014
Antwort Antwort
Seite 1 von 3  1 23      
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#1

modular 0.0?

  Alt 20. Okt 2014, 11:36
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
nicht nur Delphi sondern auch Java und C# formen die Welt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: modular 0.0?

  Alt 20. Okt 2014, 11:42
Was soll die Funktion eigentlich machen?
Markus Kinzler
  Mit Zitat antworten Zitat
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#3

AW: modular 0.0?

  Alt 20. Okt 2014, 11:44
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.
nicht nur Delphi sondern auch Java und C# formen die Welt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: modular 0.0?

  Alt 20. Okt 2014, 11:46
Warum verhinderst du nicht einfach die Speicherung von Zahlen, welche nicht 3 stellig sind? Bzw. erweiterst diese.
Markus Kinzler
  Mit Zitat antworten Zitat
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#5

AW: modular 0.0?

  Alt 20. Okt 2014, 11:48
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
nicht nur Delphi sondern auch Java und C# formen die Welt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: modular 0.0?

  Alt 20. Okt 2014, 11:56
Wie willst Du den auffüllen: 63 -> 063 oder 630?
Markus Kinzler
  Mit Zitat antworten Zitat
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#7

AW: modular 0.0?

  Alt 20. Okt 2014, 12:01
also sinnvollerweise 063
nicht nur Delphi sondern auch Java und C# formen die Welt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: modular 0.0?

  Alt 20. Okt 2014, 12:02
In deinem Code ist aber 6 die erste Ziffer der 3 stelligen Zahl.
Markus Kinzler
  Mit Zitat antworten Zitat
Kuehter

Registriert seit: 14. Okt 2014
59 Beiträge
 
Delphi 7 Professional
 
#9

AW: modular 0.0?

  Alt 20. Okt 2014, 12:04
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
nicht nur Delphi sondern auch Java und C# formen die Welt

Geändert von Kuehter (20. Okt 2014 um 12:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#10

AW: modular 0.0?

  Alt 20. Okt 2014, 12:42
Zitat:
while numbers[counter] <> 0 do
Du brichts ab, sobald dort 0 drin steht, also sind dann alle höheren Dezimalstellen natürlich undefiniert.
* 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. {$R+} an den Anfang aller deiner eigenen Units)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (20. Okt 2014 um 12:47 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz