AGB  ·  Datenschutz  ·  Impressum  







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

die Division eines Taschenrechners

Ein Thema von Kanikkl · begonnen am 11. Okt 2009 · letzter Beitrag vom 11. Okt 2009
 
Kanikkl

Registriert seit: 11. Okt 2009
Ort: Soest
10 Beiträge
 
#1

die Division eines Taschenrechners

  Alt 11. Okt 2009, 13:19
Ich glaube mittlerweile ist bekannt dass ich an nem Taschenrechner arbeite der aufeinander Aufbaut xD Und jetzt wird mir langsam klar, dass die division doch kein all zu leichtes Stück ist.

Mein Code sieht so aus:

Delphi-Quellcode:
function krechnungen.addieren(x,y: extended): extended;
begin
  result:=x+y;
end;

function krechnungen.subtrahieren(x,y: extended): extended;
begin
  result:=x-y;
end;

function krechnungen.multiplizieren(x,y: extended): extended;
var
temp :extended;
i, durchlauf: integer;
begin
  temp:=x;
  durchlauf:=round(y);
  for i:=1 to durchlauf-1 do
  begin
    temp:=self.addieren(temp,x);
  end;
result:=temp;
end;

function krechnungen.dividieren(x,y: extended): extended;
var
temp,ergebnis :extended;
begin
  temp:=x;
  temp:=self.multiplizieren(temp,1000000);
  ergebnis:=0;
  repeat
    temp:=self.subtrahieren(temp,y);
    ergebnis:=ergebnis+0.000001;
  until (temp=0) or (temp<0) or (temp<y);
  result:=ergebnis;
end;
und bei einer simplen division wie 2/2 bekomme ich einen Wert wie 1.0000000001 heraus. Ich vermute es hängt mit der until schleife zusammen, die rechnet ja noch einen weiteren Schritt und wird erst nach der letzten(+1) schleife angehalten. Dass heißt ein Schritt ist unnötigt.

Wie bekomme ich es hin, dass die Methode diesen Schritt nicht ausführt? Ich bin mir nicht sicher, aber kann man da etwas mit einer While (temp>0) and (temp<y); schleife anfangen? Oder kann man den Mechanismus irgendwie simpler hinbekommen?
  Mit Zitat antworten Zitat
 


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