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

5 Lösungen Lösungen öffentlich
#261

Alle Winkel von einem Dreieck ausrechnen...

Fortgeschrittener - C# von maxi72501 - 06.05.2019 um 15:01 Uhr
Gegeben sind alle Koordinaten. Die Punkte A und B gibt der Benutzer ein und die C Koordinate ist der Koordinaten Ursprung (0, 0).
Anhand der Seiten soll der Flächeninhalt und alle Winkel berechnet werden.
#2
1x
vote_ok
von suppengruen (200 Punkte) - 14.05.2019 um 14:18 Uhr
Quellcode ausblenden C#-Code
using System;

namespace DreieckCalc
{
    /*
    Gegeben sind alle Koordinaten.Die Punkte A und B gibt der Benutzer ein und die C Koordinate ist der Koordinaten Ursprung (0, 0).
    Anhand der Seiten soll der Flächeninhalt und alle Winkel berechnet werden.
    */
    class Program
    {
        static Double[] a = new Double[2];
        static Double[] b = new Double[2];
        static Double[] c = { 0, 0 };
        static Double sA, sB, sC, fi, alpha, beta, gamma;
                
        static void Main(string[] args)
        {
            Eingeben();
            Rechnen();
            Ausgeben();
        }

        static void Eingeben()
        {            
            int kompos;
            string koordhelp;

            //A
            Console.WriteLine("Gib die Koordianten von A ein!\nFormat: x,y");
            koordhelp = Console.ReadLine();
            kompos = koordhelp.IndexOf(',');
            if(kompos == -1)
            {
                Console.Clear();
                Console.WriteLine("Komma konnte nicht gefunden werden!");
                return;
            }
            a[0] = Convert.ToDouble(koordhelp.Substring(0, kompos));
            a[1] = Convert.ToDouble(koordhelp.Substring(kompos + 1));

            //B
            Console.WriteLine("Gib die Koordianten von B ein!\nFormat: x,y");
            koordhelp = Console.ReadLine();
            kompos = koordhelp.IndexOf(',');
            if (kompos == -1)
            {
                Console.Clear();
                Console.WriteLine("Komma konnte nicht gefunden werden!");
                return;
            }
            b[0] = Convert.ToDouble(koordhelp.Substring(0, kompos));
            b[1] = Convert.ToDouble(koordhelp.Substring(kompos + 1));
        }

        static void Rechnen()
        {            
            //Seite b
            sB = Math.Sqrt((Math.Pow(a[0],2) + Math.Pow(a[1],2)));
            //Seite a
            sA = Math.Sqrt((Math.Pow(b[0], 2) + Math.Pow(b[1], 2)));
            //Seite c
            double helpc1;
            double helpc2;
            helpc1 = a[0] - b[0];
            helpc2 = a[1] - b[1];
            if(helpc1 < 0 )
            {
                helpc1 = helpc1 * (-1);
            }
            if (helpc2 < 0)
            {
                helpc2 = helpc2 * (-1);
            }
            sC = Math.Sqrt(Math.Pow(helpc1, 2) + Math.Pow(helpc2, 2));

            //Flächeninhalt          
            fi = Math.Sqrt((sA + sB + sC)*(sA + sB - sC)*(sB + sC - sA)*(sC + sA - sB)) / 4;
          
            //Winkel
            alpha = Math.Acos((Math.Pow(sB, 2) + Math.Pow(sC, 2) - Math.Pow(sA, 2)) / (2 * sB * sC));
            beta = Math.Acos((Math.Pow(sA, 2) + Math.Pow(sC, 2) - Math.Pow(sB, 2)) / (2 * sA * sC));
            gamma = Math.Acos((Math.Pow(sA, 2) + Math.Pow(sB, 2) - Math.Pow(sC, 2)) / (2 * sA * sB));
            alpha = RadUmrechner(alpha);
            beta = RadUmrechner(beta);
            gamma = RadUmrechner(gamma);
        }

        static double RadUmrechner(double rad)
        {
            double deg = 0.0;

            deg = 180 / Math.PI * rad;

            return deg;
        }

        static void Ausgeben()
        {
            Console.Clear();
            Console.WriteLine("Das Ergebnis ist...");
            Console.WriteLine("Flächeninhalt: {0}cm²\nAlpha: {1}°\nBeta: {2}°\nGamma:{3}°",fi,alpha,beta,gamma);
            Console.ReadLine();
        }        
    }
}

Kommentare:

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

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

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.