Programmieren C#

Hallo erstmal :stuck_out_tongue:
ich wollt fragen wie man es in c# mit einer schleife realisieren kann dass das entsprechende Programm Pi auf undbegrezte Nachkommastellen berechnet und das Ergebniss dann in eine Text datei schreibt ?

Hallo erstmal :stuck_out_tongue:
ich wollt fragen wie man es in c# mit einer schleife
realisieren kann dass das entsprechende Programm Pi auf
undbegrezte Nachkommastellen berechnet und das Ergebniss dann
in eine Text datei schreibt ?

das ist eher etwas für einen Mathematiker als für
einen C-Programmierer. Wenn Du mir die entsprechende
Formel nennst oder den Algorithmus vorgibts, ist das
formulieren in C sicher kein Problem mehr.

Am besten schaust du dir zuerst einmal an, was für Möglichkeiten es gibt, Pi (oder bestimmte Nachkommastellen von Pi) zu berechnen. Das ist nämlich nicht ganz so trivial, vor allem, wenn du unbegrenzt viele Nachkommastellen haben willst, denn die üblichen Datentypen (float, double, etc.) stoßen hier recht schnell an ihre Grenzen. Wenn du dir einen bestimmten Algorithmus ausgesucht hast, kann man dir leichter weiterhelfen.

Tipp: Ließ dir einfach mal http://de.wikipedia.org/wiki/Kreiszahl durch.

Ich hatte schon die Idee BBP-Reihe zu nehmen und dann halt immer einzelnt die nächste stelle auszurechnen …
Glaub aber dass das Ganze ziemlich unperformant wäre …
aber wenigstens hätte man das Problem mit der begrenzung von Integer und co. nicht .

Hallo erstmal :stuck_out_tongue:
ich wollt fragen wie man es in c# mit einer schleife
realisieren kann dass das entsprechende Programm Pi auf
undbegrezte Nachkommastellen berechnet und das Ergebniss dann
in eine Text datei schreibt ?

also schleife schreiben und dateien schreiben wüsste ich noch, aber auf die schnelle pi berechnen. da bin ich leider überfragt

Hallo erstmal :stuck_out_tongue:
ich wollt fragen wie man es in c# mit einer schleife
realisieren kann dass das entsprechende Programm Pi auf
undbegrezte Nachkommastellen berechnet und das Ergebniss dann
in eine Text datei schreibt ?

Mit c# habe ich nichts am Hut, aber prinzipiell sollte es damit gehen wie mit den anderen C-Varianten oder Programmiersprachen.

Zuerst brauchst Du mal einen Algorithmus, den ohne den geht es nicht…
Diesen musst du dann in die Sprache umsetzen.
Hast du schon eine Vorstellung, wie das (jetzt nicht in einer Progammiersprache) funktionieren soll?
Also wie das auf dem Papier gerechnet würde?

Ja mit der BBP Reihe kann man ja eine bestimmte Stelle von Pi ausrechnen also die x te Stelle und dass das Ergebnis dann in die Datei geschrieben wird und dann x um 1erhöht wird und das ganze halt mit ner Schleife

ich habs jetzt mit der BBP reihe ausprobiert bin jedoch am Pc immer wieder auf das Ergebnis 0 gekommen wenn man das ganze in einem genaueren Taschenrechner eingibt erhält man einen sehr niedrigen wert von 0,001…
ich bin überfragt kann mir jemand helfen ?

ich habs jetzt mit der BBP reihe ausprobiert bin jedoch am Pc
immer wieder auf das Ergebnis 0 gekommen wenn man das ganze in
einem genaueren Taschenrechner eingibt erhält man einen sehr
niedrigen wert von 0,001…
ich bin überfragt kann mir jemand helfen ?

Ich hab mal diagonal gelesen, was BBP so kann, was mich erstmal irritiert, ist dass BBP im Sechzehnersystem arbeitet, das mir vor allem bei ganzzahligen Geschichten vertraut ist…

Wenn ich mit k=0 anfange, liefert BBP einen Wert von 3,13333, bei k=1 dann noch 0,0081
Dann bleibt die Frage, wie man die Abbruchbedingung definiert, also a wann man sagt, dass der Summand nicht mehr relevant ist.
Und mit relativ leistungsfähigen Variablen muss man auch arbeiten, bei 16 hoch 84 gibt der normale Taschenrechner auf…

Hallo,

da ich keine Ahnung habe, wie man PI berechnet kann ich dir auc nicht sagen, wie man eine entsprechende Schleife programmiert.
Hast du dazu schon einen Algorhytmus?

biba

Dirk

Da wie ich ja bereits geschrieben habe die BBP reihe zu keinem anständigen Ergebniss gekommen ist habe ich es mal mit der Formel von Wallis versucht .
Zufinden unter : http://de.wikipedia.org/wiki/Kreiszahlberechnung_nac…
Und habe auch schon versucht das ganze in den code einzubauen … dort ist jedoch anscheinend ein fehler …
schätze mal bei dem "rechne * (zähler / nenner ) "
hier mein der relevante teil des codes :
private void button1_Click(object sender, EventArgs e)
{
int zähler = 2 ;
int nenner = 1 ;
int pi ;
int wieoft = Convert.ToInt32(textBox1.Text);
int schongetan = 0;
int hinzufügen;
int rechne;

while (wieoft > schongetan)
{
rechne = (zähler / nenner);
if (zähler > nenner)
{
nenner++;
nenner++;
rechne * (zähler / nenner);
}
if (zähler

Ich hab das ganze jetzt nicth selber getestet, aber beim "rechne * (zähler / nenner ) " tritt tatsächlich das Problem auf, dass da ein Gleichheitszeichen fehlt - un der compiler nicht weiß, wohin das Ergebnis soll…

Außerdem sollte für Pi kein Integer (also eine ganze Zahl - die wäre dann eben 3), sondern eine Fließkommavariable (ist dann 3.141…)verwendet werden - also ein float oder double oder wie die bei c# heißen.
Das könnte auch beim BBP-Versuch zu Problemen geführt haben.

Ich habe den Code jetzt noch ein wenig geändert (double statt integer und einige sachen an der reihenfolge … )
jetzt is jedoch das Problem das er zwar ein Ergebnis ausgibt dieses jedoch nich das richtige ist …
schätzte es liegt an der Umrechnung…

private void button1_Click(object sender, EventArgs e)
{
double zähler = 2 ;
double nenner = 1 ;
double pi ;
double wieoft = Convert.ToDouble(textBox1.Text);
double schongetan = 0;
double rechne;

while (wieoft > schongetan)
{
rechne = (zähler / nenner);
if (zähler > nenner)
{
nenner++;
nenner++;
rechne = rechne * (zähler / nenner);
}
if (zähler schongetan )
{
textBox2.Text = pi.ToString();
}
}

Das mit den Doubles war etwas zu viel des Guten…
An allen Stellen, wo nur ganze Zahlen auftreten können, reichen integers.
Und wenn gezählt werden soll (z.B. zähler++) passiert möglicherweise was ganz komisches, wenn da kein integer verwendet wird.

Interessante Anforderung, aber sorry, dabei kann ich dir nicht helfen. Hast du’s mittlerweile geschafft?

Hallo erstmal :stuck_out_tongue:
ich wollt fragen wie man es in c# mit einer schleife
realisieren kann dass das entsprechende Programm Pi auf
undbegrezte Nachkommastellen berechnet und das Ergebniss dann
in eine Text datei schreibt ?

Das ist untrivial. Also ziemlich kompliziert.
Hierzu ist eine eigene Zahlenklasse erforderlich. diese kann Zahlen als String verwalten und wird somit unbegrenzt. Mit dieser klasse kann man dann die Näherung berechnen.
ist hier in C beschrieben
http://www.daniweb.com/software-development/c/thread…