Hallo...
Ich setze mich ganz frisch mit C# (und überhaupt mit Programmierung) auseinander.
Momentan finde ich einfach den Fehler bei einer do-Schleife nicht.
Die Variable n soll solange verdoppelt werden und mit diesem neuen Wert die Berechnung so lange ausgeführt werden, bis das Ergebnis z kleiner oder gleich g = 0.00001 ist.
Dann soll über die Konsole ausgegeben werden, bei welchem Wert n dies der Fall ist.
Ich weiß, dass dies bei n = 524288 der Fall ist, aber das Programm rechnet immer weiter.
Erkennt er das "While" nicht?
Schon mal vielen Dank und ein schönes Wochenende...!
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication7 { class Program { static void Main(string[] args) { { double n = 2; double x = 0; double y = 0; double z = y - x; double g = 0.00001;
do { n *= 2; {for (double i = 1; i <= n; i++) x = x + ((1 / n) * Math.Sqrt((1 - (i / n) * (i / n)))); } {for (double i = 0; i <= n - 1; i++) y = y + ((1 / n) * Math.Sqrt((1 - (i / n) * (i / n)))); } z = y - x; Console.WriteLine("n =" + n);
} while (z >= g); }
Console.ReadLine();
} } } |
Moderiert von Christian S.: C#-Tags hinzugefügt