Feedback

C# - Pi mit der Kreisfläche berechnen

Veröffentlicht von am 06.02.2013
(0 Bewertungen)
Hallo,
Mit diesem Snippet kann die Kreiszahl Pi berechnet werden. Dabei kann mit Circount die Genauigkeit eingestellt werden.

Die Grundlage basiert auf den Wikipediaeintrag.

Funktionsweise:
Es wird die Fläche eines Viertelkreises bestimmt mit dem Radius Circount. Um die Fläche zu bestimmen wir der Umfang mit dem Satz des Pythagoras abgefahren. Danach wird die Fläche mit 4 multipliziert und durch Circount² geteilt.

Zu beachten ist das Pi nicht genauer dargestellt werden kann als die Genauigkeit von double. Wichtig ist auch das die Laufzeit des Programms mit höheren Circount quadratisch zunimmt.

GFU-Schulungen  [Anzeige]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

static double CalcPi(long circount)
{
	Stopwatch sw = new Stopwatch();
	sw.Start();

	long x = 0;
	long y = circount;

	long gesamt = 0;

	long squarecircount = circount * circount;

	while (y > 0 && x < circount)
	{
		if ((x * x) + (y * y) <= squarecircount)
		{
			x++;
			gesamt += y;
		}
		else
		{
			y--;
		}
	}
	sw.Stop();

	var pi = (gesamt * 4.0) / squarecircount;
	Console.WriteLine("Pi:{0} Time:{1} Width:[{2}]",pi,sw.ElapsedMilliseconds,circount);
	return pi;
}
Abgelegt unter Pi, Kreis, Fläche.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!