![]() |
Pi mit Pythagoras berechnen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich bin am verzweifeln :wall: , denn folgendes klappt einfach nicht: pi mit Pythagoras berechnen Ein Halbkreis wird durch Rechtecke angenähert. Zunächst hat der erste Rechenlauf ein Rechteck mit der Höhe R im Vergleich mit der Halbkreisfläche. Dann wird die Höhe halbiert, 2 Rechtecke haben jeweils die Höhe R/2. Die Breite des Rechtecks ergibt sich jeweils aus dem Satz des Pythagoras. Dann wird der Radius gedrittelt, und neue Rechtecke bestimmt. Die Summe der Rechteckflächen wird jedes mal mit der Fläche des Halbkreises verglichen, die am Anfang des Programms ausgerechnet wurde. Ist die Abweichung kleiner als 1/10 Promille wird die Rechnung abgebrochen und das Ergebnis ausgegeben (mit der Anzahl der Rechtecke). Mein Ansatz bisher:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin close; end; procedure TForm1.Button1Click(Sender: TObject); var i, kasten :integer; radius, breite, hoehe, kflaeche, p, halbkreis :double; genau :boolean; begin radius:=strtofloat(edit1.Text); halbkreis:=(pi*Sqr(radius))/2; kasten:=0; genau:=false; while not genau do begin inc(kasten); kflaeche:=0; for i:=0 to kasten do begin hoehe:=radius/kasten; if i=0 then breite:=2*radius else breite:=2*(power((Sqr(radius)-Sqr(i*hoehe)),(1/2))); kflaeche:=kflaeche+(hoehe*breite); end; if halbkreis >= (kflaeche*0.8) then genau:=true; end; p:=(kflaeche*2)/(Sqr(radius)); label3.caption:=floattostr(p); label4.caption:=inttostr(i); end; Sobald ich die Genauigkeit aber höher als 80% setze, erscheint folgende Fehlermeldung: "Im Projekt project1.exe ist eine Exception der Klasse EInvalidOp aufgetreten. Meldung:'Ungültige Gleitkommaoperation'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen." Was mache ich falsch ?!? Im Anhang das gezippte Projekt |
Re: Pi mit Pythagoras berechnen
Ich hab dafür mal ein Programm geschrieben, eines für die Monte-Carlo und eines für die Archimedes-Methode ( Die die du suchst ). Den Source kann ich dir mal schicken.
|
Re: Pi mit Pythagoras berechnen
Lösung selber gefunden.
Die for-Schleife lief einmal zu viel... |
Re: Pi mit Pythagoras berechnen
yo ich hab nen ähnliches problem habe schon alles ausprobiert aber das programm hängt sich beim ausführen auf bzw. ich vermute das die for schleife unendlich ausgeführt wird!
oder meine abbruch bedingung ist falsch kann mir jemand helfen! studiere maschinenbau und habe nun informatik als fach dazu bekommen! hier ist mein delphi code:
Delphi-Quellcode:
[edit=Luckie]Delphi-Tags Mfg, Luckie[/edit]
procedure TForm1.Button1Click(Sender: TObject);
var R, anzahl, i :integer; summe, flaeche, hoehe, genau, breite :double; begin R:=100; anzahl:=0; summe:=0; //Pi:=3.1415926535897932385; repeat inc(anzahl); summe:=2*R*R/anzahl; if anzahl=1 then begin hoehe:=R; breite:=2*R; flaeche:=breite*hoehe; summe:=summe+flaeche; genau:=(summe-0.5*Pi*R*R)/(0.5*Pi*R*R); end Else for i:=2 to anzahl do begin hoehe:=(i-1)*(R/anzahl); breite:=Sqrt(R*R-(hoehe*hoehe)); flaeche:=breite*hoehe; summe:=summe+flaeche; end; genau:=(summe-0.5*Pi*R*R)/(0.5*Pi*R*R); until genau < (1/10000); LabeledEdit2.Text:=IntToStr(anzahl); LabeledEdit3.Text:=FloatToStr(summe*2/10000); end; end. |
Re: Pi mit Pythagoras berechnen
@tylerxxx
benutz doch bitte die delphi-tags beim editieren, dass kann man kaum lesen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 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