Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[erledigt] Pi Berechnung
fneuweiler
myCSharp.de - Member



Dabei seit:
Beiträge: 17

Themenstarter:

[erledigt] Pi Berechnung

beantworten | zitieren | melden

Hallo, ich arbeite gerade an einer Pi Berechnung in C# es funtzt auch alles wunderbar aber ich soll die genauigkeit ausgeben weiss aber nicht wie!

Habe bis jetzt folgendes:


using System;

namespace Pi_Berechnung
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			while (myPi() == false)
			{
				Console.WriteLine("Bitte nur Zahlen angeben und nicht null eingeben!!");
			}
		}
		static bool myPi()
		{
			// Pi Berechnung
			//E
			Console.WriteLine("Wieviele Stellen sollen exat sein??(Hundertstel = 100, Tausendstel  = 1000)");
			string stellen_str = Console.ReadLine();
			//V
			try
			{
				double stellen = Convert.ToDouble(stellen_str);
				if (stellen == 0)
					return false;
				if (stellen == 10)
				{
					stellen *=20;
				}
				stellen *= 10;
				int operand = -1;
				double nenner = 1;
				double pi = 0;
				while (nenner ≤ stellen)
				{
					if (operand == 1)
						pi -= (1/nenner);
					else
						pi += (1/nenner);
					operand *= -1;
					nenner += 2;
				}
				pi *= 4;
				//A
				Console.WriteLine("Pi ist: {0}", pi);
				Console.WriteLine("Mit {0} Reihengliedern", stellen/2);
				Console.ReadLine();
				return true;
			} 
			catch
			{
				return false;
			}
		}
	}
}

private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo fneuweiler.

du berechnest ja eine Folge. Du könntest die beiden letzten Folgenglieder ausgeben. Dann hast du ein Interval, in dem Pi liegen musst und damit gleichzeitig den Fehler.

Oder meinst du auch den Fehler, der durch Rundungsfehler entsteht?

herbivore
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4318
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Nur der Vollständigkeit halber...

PI gibts auch im Namespace Math (Math.PI)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
fneuweiler
myCSharp.de - Member



Dabei seit:
Beiträge: 17

Themenstarter:

beantworten | zitieren | melden

Ich will diesen Wert ausrechnen und zwar wenn ich oben 1000 eingebe das es dann auf die tausendstel stelle genau ist!
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo fneuweiler,

das tust du doch schon; abgesehen von dem "wenn stellen gleich 10, dann stellen mal 20", was ich nicht verstehe. Ansonsten müsstest du vielleicht noch stellen *= 10; in stellen *= 4; ändern.

herbivore
private Nachricht | Beiträge des Benutzers
fneuweiler
myCSharp.de - Member



Dabei seit:
Beiträge: 17

Themenstarter:

beantworten | zitieren | melden

Habs gelöst! Danke an alle!!!
private Nachricht | Beiträge des Benutzers