AGB  ·  Datenschutz  ·  Impressum  







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

Division by Zero?!

Ein Thema von Stoertebecker · begonnen am 15. Feb 2006 · letzter Beitrag vom 15. Feb 2006
Antwort Antwort
Stoertebecker

Registriert seit: 29. Jan 2006
4 Beiträge
 
#1

Division by Zero?!

  Alt 15. Feb 2006, 15:48
Hi,
muss für die Schule ein Programm für die Annäherung der Zahl Pi schreiben.
Soll nach dem Gregory Verfahren funktionieren!
Zitat:
Wir nutzen einen Kreis mit Radius 1/2 da dieser den Umfang Pi hat.Damit nähern sich die Umfänge der einbeschrieben und umbeschriebenen Vielecke direkt der Zahl Pi an.
Es gilt demnach: u<Pi<U (u= Umfang einbeschriebenes n-Eck; U= Umfang einbeschriebenes n-Eck
Startwerte:
Einbeschriebense 6-Eck u=3
Umbeschriebenes 6-Eck U=2sqrt(3) = 3.464101615
Formeln:
Umfang des umbeschriebenen 2n-Ecks: U2n=2*Un*un/Un+un
Umfang des einbeschriebenen 2n-Ecks: u2n=Wurzel aus un*U2n
Ich weiß nicht wieso das nicht funktioniert:

Delphi-Quellcode:
program gregory;
var
  a,b,d,e: real;
  c,f,i: integer;

function Um(var la,lb:real):real;
begin
  la:=(2*la*lb)/(la+lb);
end;

function Ein(var sa,sb:real):real;
begin
  sa:=sqrt(sb*(2*sa*sb)/(sa+sb));
end;

begin
a:=3;
b:=2*sqrt(3);
writeln('Eingabe Genauigkeit in 10(hoch)x');
readln(c);
for i:=1 to c do f:=f*10;
repeat
d:=(Um(b,a))*f;
e:=(Ein(b,a))*f;
d:=round(e);
e:=round(e);
writeln((d/f));
writeln(e/f);
until d=e;
readln;

end.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Division by Zero?!

  Alt 15. Feb 2006, 15:53
f ist am anfang 0.
Dann setzt du es nie.
"verändert" wird es erst bei der schleife, wo du es mit 10 multiplizierst (0*10=0)

und dann teilst du so einiges durch f

abhilfe würde ein f:=1; ziemlich am Anfang schaffen
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Stoertebecker

Registriert seit: 29. Jan 2006
4 Beiträge
 
#3

Re: Division by Zero?!

  Alt 15. Feb 2006, 16:47
Oh stimmt!
Dank dir!

Aber dann nächstes Problem:
Delphi-Quellcode:
program gregory;
var
  a,b,d,e: real;
f,i: integer;
c:longint;

function Um(var la,lb:real):real;
begin
  la:=(2*la*lb)/(la+lb);
end;

function Ein(var sa,sb:real):real;
begin
  sa:=sqrt(sb*(2*sa*sb)/(sa+sb));
end;

begin
f:=1;
a:=3;
b:=2*sqrt(3);
writeln('Eingabe Genauigkeit in 10(hoch)x');
readln(c);
for i:=1 to c do f:=f*10;
repeat
d:=(Um(b,a))*f;
e:=(Ein(b,a))*f;
d:=round(e);
e:=round(e);
writeln((d/f));
writeln(e/f);
until d=e;
readln;

end.
Funktioniert zwar sieht aber überhaupt nicht nach Pi aus!
Und wenn ich eine Zahl über 9 eingebe kommt wieder:
Zitat:
Division by Zero
mfg
störtbecker
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Division by Zero?!

  Alt 15. Feb 2006, 17:51
kann es sein das bei c=9
f aus dem Wertebereich fliegt

i=1 f:=1*10
i=2 f:=10*10
i=3 f:=100 * 10
i=4 f:= 10 * 1000
i=5 f:= 10 * 10000
i=6 f:= 10 * 100000
i=7 f:= 10 * 1000000

....

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: Division by Zero?!

  Alt 15. Feb 2006, 17:53
ausserdem schreibst du:
Delphi-Quellcode:
d:=round(e);
e:=round(e);
sicher das es nicht
Delphi-Quellcode:
d:=round(d);
e:=round(e);
sein soll?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Division by Zero?!

  Alt 15. Feb 2006, 18:04
Delphi-Quellcode:
pi_1:=0;

For i:=1 to n do
  begin
     if i mod 2 = 0 then
        pi_1:=pi_1+(1/(2*n-1))
     else
        pi_1:=pi_1-(1/2*n-1))
  end;

pi_2:=1/(2*n+1)

pi_x:=4*(pi_1+pi_2)
nicht getestet.

frei nach
http://www.matheprisma.uni-wuppertal...XXL/index.html

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:57 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