You are not logged in.

  • Login

1

Wednesday, February 1st 2006, 11:10pm

Pi berechnen mit C++

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* Rechenschema */
/* 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 */
 
double nenner=1;
double zahl;
double wert = 1;
int i = 0;
for (nenner=3; i<999999; nenner=nenner+2, i++)
{
       zahl = 1/nenner;
    if (!(i%2))
    {
        zahl = zahl*(-1);
    }
 
    wert += zahl;
}
Edit1->Text=FloatToStr(wert*4);
}

Aalon

Unregistered

2

Monday, April 26th 2010, 8:39pm

Man kann ja long long double auf 19 nachkommastellen definieren, ist es möglich das ganze in einem string zu speichern damit man noch mehr nachkommastellen hat?
Ich hatte das mal probiert allerdings kam ich auf das Problem das ich im String ja nicht das "Addieren" kann,(z.b. Zahl=4+5 wäre ja 9; im string 45)
Ist das irgendwie möglich?

3

Monday, April 26th 2010, 9:47pm

OT: Taylorpolynomgefahr. Achtung: ätzend

This post has been edited 1 times, last edit by "Koljan777" (Apr 26th 2010, 9:52pm)


4

Tuesday, April 27th 2010, 8:11pm

Entschuldigung für die Frage, aber mit dieser Formel kann man PI doch auf beliebig viele Stellen berechnen, oder?

5

Tuesday, April 27th 2010, 8:49pm

Sh0x: Ja, allerdings kann ein double nicht beliebig viele Nachkommastellen speichern, deswegen die Frage nach den String.

Aalon: Du müsstest dir eine Klasse bauen die Zahlen als Strings abspeichert und dann damit rechnen kann ohne jemals die ganze Zahl konvertieren zu müssen. Möglich ist es, aber ziemlich ätzend und extrem unperformant. Bsp: Du addierst den Strinng stellenweise (eine Dezimalstelle darf man casten). und definierst Multiplikation als mehrfache Addition...

Aalon

Unregistered

6

Wednesday, April 28th 2010, 4:02pm

vielen danke SeBa ! :)

7

Wednesday, April 28th 2010, 9:43pm

Gibt es wirklich keinen besseren Weg als den mit den Strings? Irgendwie muss man das doch auch anders lösen können =/

8

Thursday, April 29th 2010, 12:05am

Schreib einen neuen Datentyp :)

hänge 5 int variablen zusammen, definiere alle Regeln und Funktionen (+, -, *, /, %, casting etc)

dann geht es bestimmt auch :) :P

9

Friday, April 30th 2010, 8:32pm

Ich glaube ich begnüge mich dann lieber mit weniger PI Nachkommastellen, oder lass ein kurzes "#define PI 3,1415..." herhalten wenn ich PI in meinen Programmen verwenden will ^^

10

Friday, April 30th 2010, 9:43pm

mit define kriegst du keine größere Zahl als int :)

11

Friday, April 30th 2010, 10:18pm

Ist aber irgendwie eleganter =)

12

Saturday, May 1st 2010, 5:18am

was ist eleganter? wenn er dein pi beim definieren auf 3 abrundet? :P

ich weiß auch nicht ganz recht, aber ich glaube define's sind int's und ints haben keine nachkommastellen

kann aber auch sein dass ich die andere hälfte der vorlesung gepennt hab :)

probiere es :)

13

Saturday, May 1st 2010, 8:17am

defines haben keinen Datentyp. Ein define ist nichts anderes als ne Textersetzung, deswegen kommt es ganz darauf an, wie es im Quellcode verwendet wird. Deswegen is das völlig in Ordnung, wenn man das mit Nachkommastellen angibt und dann in Rechnungen mit Floats/Doubles verwendet.

14

Saturday, May 1st 2010, 12:01pm

was ist eleganter? wenn er dein pi beim definieren auf 3 abrundet? :P

ich weiß auch nicht ganz recht, aber ich glaube define's sind int's und ints haben keine nachkommastellen

kann aber auch sein dass ich die andere hälfte der vorlesung gepennt hab :)

probiere es :)


Nene, das wird nicht auf 3 Nachkommastellen abgerundet ^^
Hab hier so ein C++ für Anfänger Buch, da steht das mit 20 Nachkommastellen definiert und es klappt einwandfrei :-D

Similar threads

Social bookmarks