Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Exakte Addition langer Zahlen (https://www.delphipraxis.net/131140-exakte-addition-langer-zahlen.html)

Frankfurtoder 19. Mär 2009 14:55

Re: Exakte Addition langer Zahlen
 
Zitat:

Zitat von mr_emre_d
Manuell aufaddieren heißt es per Hand zu machen

Boah. Ich habe gerade doch wirklich gelesen "Manuell aufaddieren heißt es sich per Hand zu machen"

:lol:

mkinzler 19. Mär 2009 14:57

Re: Exakte Addition langer Zahlen
 
Zitat:

Zitat von Frankfurtoder
Zitat:

Zitat von mr_emre_d
Manuell aufaddieren heißt es per Hand zu machen

Boah. Ich habe gerade doch wirklich gelesen "Manuell aufaddieren heißt es sich per Hand zu machen"

:lol:

Dann fühlt er sich vielleicht besser. Sein Problem ist dann aber immer noch nicht gelöst :mrgreen:

mr_emre_d 19. Mär 2009 14:59

Re: Exakte Addition langer Zahlen
 
Ich lach mich tot :tongue:

Gini: Wie schauts denn aus?

MfG

DP-Maintenance 19. Mär 2009 15:11

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

ginimausi 19. Mär 2009 15:23

Re: Exakte Addition langer Zahlen
 
Bei dem array-mäßigen zugriff
- von welchen typ müssen da die variablen sein?
weil das mit .lenght funktioniert bei mir nicht
=(

ginimausi 19. Mär 2009 15:24

Re: Exakte Addition langer Zahlen
 
iwie komm ich gar nicht zurecht^^ :-D
mir fehlt gerade ein geistesblitz, um das mit dem pc manuell aufaddieren zu können^^

@mkinzler: er fühlt sich dann nicht besser^^
ich bin eine sie :-P

quendolineDD 19. Mär 2009 15:25

Re: Exakte Addition langer Zahlen
 
Und wenn man einfach das ganze Binär ausrechnet? Also richtige binäre Addidition. Und die Ausgabe dann als String machen. Das wäre glaube ich doch bestimmt schneller ...

blink182 19. Mär 2009 15:32

Re: Exakte Addition langer Zahlen
 
ich hab ne lösung, aber dir die jetzt zu schicken ist ja auch was doof :P denn du sollst das ja auch verstehen

erst mal die beiden strings auf eine länge bringen

und dann jeweils die die einzelnen zeichen addieren (vom der lange der strings bis runter zu 1)

zwischen -> zahl[i] + zahl2[i]+uebertrag

dann den wert des übertrages ermitteln für den nächsten additionsschritt (zahl[i-1]+zahl[i-2]+uebertrag)

wenn zwischen jetzt 2 stellig ist dann einfach
nur die 2. stelle zum ergebnis speichern
result -> zwischen[2]+result
wenn nicht
uebertrag -> 0
result-> zwischen+result

wenn am ende also bei der addition von zahl[1]+zahl[1]+uebertrag nochmal ein übertrag entsteht den auch einfach nochmal zum ergebnis hinzufügen

mhm sollte jetzt eigentlich ohne weiteres möglich sein einen algo zu schreiben, der steht ja da schon fast^^

xewo 19. Mär 2009 15:35

Re: Exakte Addition langer Zahlen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo, wenn ich den Threadstarter richtig verstanden habe, dann meint er sowas:
Delphi-Quellcode:
procedure TForm1.BtnBerechnenClick(Sender: TObject);
  var
  Zahl1,Zahl2,Ergebnis,TempUE : String;
  UEbertrag, Temp1, Temp2, TempE, Laenge, i : Integer;
begin
  Zahl1 := EdZahl1.Text;
  Zahl2 := EdZahl2.Text;
  UEbertrag := 0;

  if length(Zahl1) > length (Zahl2) then
    Laenge := length(Zahl1)
  else
  if length(Zahl2) > length (Zahl1) then
    Laenge := length(Zahl2)
  else
  if length(Zahl2) = length (Zahl1) then
    Laenge := length(Zahl1);

  for i := 0 to Laenge-1 do
    begin
      if length(Zahl1) -i < 0 then
        begin
          Temp2 := StrToInt(Zahl2[length(Zahl2) - i]);
          Temp1 := 0;
          UEbertrag := 0;
        end
      else
      if length(Zahl2) -i < 0 then
        begin
          Temp1 := StrToInt(Zahl1[length(Zahl1) - i]);
          Temp2 := 0;
          UEbertrag := 0;
        end
      else
      begin
        Temp1 := StrToInt(Zahl1[length(Zahl1) - i]);
        Temp2 := StrToInt(Zahl2[length(Zahl2) - i]);
      end;

      if Temp1+Temp2+UEbertrag >= 10 then
        begin
          TempUE := IntToStr(Temp1 + Temp2 + UEbertrag);
          Ergebnis := TempUE[2] + Ergebnis;
          UEbertrag := StrToInt(TempUE[1]);
        end
      else
        begin
          Ergebnis := IntToStr(Temp1 + Temp2 + UEbertrag)[1] + Ergebnis;
          UEbertrag := 0;
        end;
    end;
    EdErgebnis.Text := Ergebnis;
end;
mfg xewo

mr_emre_d 19. Mär 2009 15:35

Re: Exakte Addition langer Zahlen
 
Dieser Vorgang wurde schon X. Mal erklärt :P

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.
Seite 3 von 5     123 45      

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-2025 by Thomas Breitkreuz