Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Pi mit Pythagoras berechnen


Bastian25 - So 12.12.04 19:12
Titel: Pi mit Pythagoras berechnen
Hallo!

Habe mal wieder keine Ahnung, wie ich die folgende Aufgabe lösen soll!!!
Würde mich freuen, wenn mir jemand helfen könnte!

Pi mit Pythagoras berechnen

in 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).
Man kann die Ergebnisse für jeden Schritt in einem Memofeld speichern.

Gruß Bastian


Moderiert von user profile iconChristian S.: Topic aus Multimedia / Spiele / Grafik verschoben am So 12.12.2004 um 23:57


AXMD - So 12.12.04 19:26

Sag nichts, lass mich raten:

1.) Du stellst die Aufgabe hier rein und möchtest, dass sie jemand von uns für dich programmiert

2.) Du lieferst weder einen Ansatz noch Codeschnipsel, die zeigen könnten, dass du dich auch nur ansatzweise mit der Implementierung der Aufgabe auseinandergesetzt hast

Selber denken, dann fragen. Danke :roll:

AXMD


Bastian25 - So 12.12.04 19:28

Ein Ansatz würde mir ja auch helfen!
Ich will ja gar nicht das ganze programm, möchte ja auch was lernen!
Aber ich habe absolut keine ahnung, wie ich beginnen soll!


Kroni - So 12.12.04 19:33

guck doch mal in ein mathelexikon....sowas gibts bestimmt auch im internet, und dann guckste, wie das funktioniert, wie man das pi nach dem pythagoras berechnet, in dem du wie du schon sagtest immer sichi näher annähert.....
wenn dud as verstatnden hast, musste das nur noch in Quellcode packen....das kannst du!!!!!


Bastian25 - So 12.12.04 21:22

So, habe jetzt mal nen Programm geschrieben!

Leider stürzt es ab, bzw. hängt sich an der Berechnung auf!!!!????!!!!

Wisst ihr vielleicht ne Lösung für das problem?



procedure TForm1.Button1Click(Sender: TObject);
var i,
kasten :integer;
radius,
breite,
hoehe,
kflaeche,
p,
halbkreis,
gen_promille,
faktor :double;
genau :boolean;
begin
i:= 0;
kflaeche:=0;
breite:=0;

radius:=strtofloat(edit1.Text);
gen_promille:=strtofloat(edit2.Text);
faktor:=1-gen_promille/1000;
halbkreis:=(pi*Sqr(radius))/2;
kasten:=0;
genau:=false;
while not genau do
begin
inc(kasten);
kflaeche:=0;
for i:=0 to (kasten-1) do
begin
hoehe:=radius/kasten;
if i=0
then breite:=2*radius;
kflaeche:=kflaeche+(hoehe*breite);

end;

if halbkreis >= (kflaeche*faktor) then genau:=true;

end;

p:=(kflaeche*2)/(Sqr(radius));
label3.caption:=floattostr(p);
label4.caption:=inttostr(i);
end;