public Rechner(string operation)
 {
     if (operation == "Addieren")
     {
         rechenoperation = new Rechenoperation(Addiere);
     }
     else if (operation == "Subtrahieren")
     {
         rechenoperation = operanden =>
         {
             int result = operanden.First();
             Array.ForEach(operanden.Skip(1).ToArray(), x => result -= x);
             return(result);
         };
     } /*else if (operation == "Multiplizieren") {
        * rechenoperation = new Rechenoperation(
        *    delegate (int op1, int op2)
        *    {
        *        return op1 * op2;
        *    });
        * } else if (operation == "Dividieren") {
        * rechenoperation = delegate (int op1, int op2)
        * {
        *    return op1 / op2;
        * };
        * } else if (operation == "Modulo")
        * {
        * rechenoperation = (op1, op2) => op1 % op2;
        * }*/
 }
        public Rechner(string operation)
        {
            switch (operation)
            {
            case "Addition":
            {
                rechenoperation = x => x.Aggregate((y, z) => y + z);
                break;
            }

            /* case "Subtraktion":
             *   {
             *       rechenoperation = new Rechenoperation(delegate(int op1, int op2) {
             *           return op1 - op2;
             *       });
             *       break;
             *   }
             * case "Multiplikation":
             *   {
             *       rechenoperation = delegate (int op1, int op2)
             *       {
             *           return op1 * op2;
             *       };
             *       break;
             *   }
             * case "Division":
             *   {
             *       rechenoperation = (op1, op2) =>
             *       {
             *           return op1 / op2;
             *       };
             *       break;
             *   }
             * case "Modulo":
             *   {
             *       rechenoperation = (x, y) => x % y;
             *       break;
             *   }*/
            default:
            {
                return;
            }
            }
        }
Exemplo n.º 3
0
        //Funktion zur Berechnung der gewählten Operation
        public static double Berechne(double a, double b, Rechenoperation operation)
        {
            //Verzweigung je nach gewählter Operation
            switch (operation)
            {
            case Rechenoperation.Addition:
                return(a + b);

            case Rechenoperation.Subtraktion:
                return(a - b);

            case Rechenoperation.Multiplikation:
                return(a * b);

            case Rechenoperation.Division:
                return(a / b);

            default:
                //Rückgabe der Double-Konstanten 'NaN' (Not A Number) bei fehlerhafter Eingabe durch den Benutzer
                return(double.NaN);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Anhand des in der Rechenaufgabe enthaltenen Rechenzeichens (Rechenaufgabe.Operation)
        /// wird die auszuführende Rechenoperation bestimmt und ausgeführt.
        /// </summary>
        public void BerechneRechenaufgabe()
        {
            switch (Aufgabe.Operation)
            {
            case '+': Operation = Addieren; break;

            case '-': Operation = Subtrahieren; break;

            case '*': Operation = Multiplizieren; break;

            case '/': Operation = Dividieren; break;

            case '%': Operation = Modulo; break;

            case '^': Operation = Potenzieren; break;

            default: Operation = null; break;
            }
            if (Operation != null && Aufgabe.OK)
            {
                Operation();
            }
        }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            // STRG + D => Duplizieren
            // STRG + C => (Ohne Markierung) Ganze Zeile Kopieren
            // STRG + V => (Ohne Markierung) Ganze Zeile einfügen
            // STRG + X => (Ohne Markierung) Ganze Zeile ausschneiden
            // ALT + Pfeiltaste => Codezeile rauf/runter verschieben

            // Programmstart:
            // F5 -> Start mit Debugger
            // STRG + F5 -> Start ohne Debugger
            // F10 und F11 -> Starte im Einzelschrittmodus
            //   -> F10: Methoden überspringen
            //   -> F11: In Methoden hineinspringen

            // Dokumentation erstellen:
            // Einstellungen -> Build -> XML Documentation File - Option aktivieren

            #region Funktionen
            //MachEtwas();
            //MachEtwas();
            //MachEtwas();

            //MachEtwas("Hallo Welt");

            //GibMirEineZufallszahl(100); // rückgabe verfällt

            //int zufallsZahl = GibMirEineZufallszahl(0, 1000);
            //Console.WriteLine(zufallsZahl);


            //int meineZahl = 12;

            //int veränderteZahl = VerändereDieZahl(ref meineZahl);

            //Console.WriteLine($"MeineZahl: {meineZahl}");
            //Console.WriteLine($"VeränderteZahl: {veränderteZahl}");


            //int ergebnis = 0;
            //// bool erfolg = KonvertiereEtwas("123", ref ergebnis);
            //bool erfolg = KonvertiereEtwas("123", out ergebnis);

            //Console.WriteLine(erfolg);
            //Console.WriteLine(ergebnis);

            //Console.WriteLine(Addieren(3,4));
            //Console.WriteLine(Addieren(3,4,6,4,2,3,5,7,78,9654));
            #endregion

            // int zahl1 = 5;
            // if(zahl1 < 10)

            Wochentage wecker = Wochentage.Montag;

            if (wecker == Wochentage.Montag)
            {
                Console.Beep(800, 2000);
            }

            // Beispiel für das Umsetzen einer Nutzereingabe zu einem Enum-Wert
            Console.WriteLine("1 Für Add, 2 für sub ....");
            int benutzerEingabeAlsZahl = 2;

            Rechenoperation gewünschteOperation = (Rechenoperation)benutzerEingabeAlsZahl;
            if (gewünschteOperation == Rechenoperation.Add)
            {
                ; // ...
            }
            Console.WriteLine("---ENDE---");
            Console.ReadKey();
        }
Exemplo n.º 6
0
 /// <summary>
 /// Default Konstruktor
 /// </summary>
 public Taschenrechner()
 {
     Ergebnis  = new Rechenergebnis();
     Aufgabe   = new Rechenaufgabe();
     Operation = null;
 }