Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Schriftliches Dividieren! (https://www.delphipraxis.net/54729-schriftliches-dividieren.html)

ScorpionKing 10. Okt 2005 16:32


Schriftliches Dividieren!
 
Hi Leute,
ich habe mich jetzt drangesetzt und wollte eine Funktion schreiben, die wie man es aus der Schule kennt schriftlich dividiert, sprich mit Strings.

Delphi-Quellcode:
function Divide(zahl: string; divi: integer): string;
var g: boolean;
    z,r,t,last: integer;
   erg: string;
begin
  g := false;
  z := 0;
  last := 0;
  repeat
    if z = Length(zahl)+1 then begin
     g := true;
   end
   else begin
      t := StrToInt(zahl[z]);
     t := t + last;
     last := 0;
     if divi > t then begin
       t := StrToInt(zahl[z] + zahl[z+1]);
       inc(z);
     end;
     if t = 0 then begin
       erg := erg + '0';
     end
     else begin
       erg := erg + IntToStr(t div divi);
       last := t mod divi;
     end;
     inc(z);
   end;
  until g = true
  Result := erg;
end;
Nur leider funktioniert es nicht. Hat jemand eine funktionierende Funktion, oder wo steckt bei meiner der Fehler?

MfG, ScorpionKing!

Kroko1999 10. Okt 2005 17:26

Re: Schriftliches Dividieren!
 
dies sollte gehen, deinen Code habe ich nicht durchschaut :roteyes:
Delphi-Quellcode:
function NewDiv (const AZahl: String; ADiv: Integer): String;
var
  P: Integer;
  Z,H: Cardinal;
begin
  P := 1;
  Z := 0;
  Result := '';
  repeat
    Z := Z*10;
    if P<=Length(AZahl) then Z := Z+Ord(AZahl[p])-Ord('0');
    Inc (P);
    H := Z div ADiv;
    Result := Result+IntToStr(H);
    Z := Z - H*ADiv;
  until P>Length(AZahl);
end;

ScorpionKing 10. Okt 2005 17:28

Re: Schriftliches Dividieren!
 
Super Danke! Ich teste es mal!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 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