C# :: Aufgabe #184 :: Lösung #2

4 Lösungen Lösungen öffentlich
#184

Wurzel ziehen mit Intervallschachtelung

Anfänger - C# von Felix - 11.07.2017 um 21:30 Uhr
Schreibe eine Methode die aus einer Zahl die Wurzel zieht, benutze dafür die Intervallschachtelung.
#2
vote_ok
von hollst (13980 Punkte) - 14.07.2017 um 10:20 Uhr
Quellcode ausblenden C#-Code
using System;
using static System.Console;

namespace wurzel_184    {

    public static class Program    {

        static void Main()        {
          
            double zahl = 70.12345678;
            ("wurzel(" + zahl.ToString() + ") = " + zahl.wurzel(20).ToString()).EndMessage();

            zahl = 0.12345678;
            ("wurzel(" + zahl.ToString() + ") = " + zahl.wurzel(20).ToString()).EndMessage();

            zahl = 4.0;
            ("wurzel(" + zahl.ToString() + ") = " + zahl.wurzel(20).ToString()).EndMessage();

            zahl = -4.0;
            ("wurzel(" + zahl.ToString() + ") = " + zahl.wurzel(20).ToString()).EndMessage();

        }

        static double wurzel(this double zahl, int nachkommastellen)    {

            if (zahl < 0.0)
                return double.NaN;

            double 
                delta = 1.0, 
                start = 0.0, 
                merker = start, 
                grenze = 1.0 / Math.Pow(10.0, nachkommastellen);

            do            {

                while(start * start < zahl) {
                    merker = start;
                    start += delta;
                };

                start = merker;
                delta /= 10.0;

            } while ((grenze < delta) && (delta > 1.0E-15)); 
                       
            return start;
        }

        static void EndMessage(this string s)
        { WriteLine(s); ReadKey(true); }
    }    
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben