Mehrere Operationen in Funktion abbilden



  • Hallo zusammen,

    erster Beitrag und gleich ne dumme Frage. Ich habe die Aufgabe einen einfachen Taschenrechner zu schreiben bei dem die Rechenoperationen in Funktionen abgebildet sind. Dies hab ich bereits erledigt und dieser funktioniert:

    #include "stdafx.h"
    
    using namespace System;
    
    Int32 summe(Int32 x, Int32 y) {
    	return (x+y);
    }
    
    Int32 differenz(Int32 x, Int32 y) {
    	return (x-y);
    }
    
    Int32 produkt(Int32 x, Int32 y) {
    	return (x*y);
    }
    
    Int32 quotient(Int32 x, Int32 y) {
    	return (x/y);
    }
    
    int main(array<System::String ^> ^args)
    
    {
    	Int32 einVariable1, einVariable2;
    	Char rOperator;
    
    	Console::WriteLine("Geben Sie die erste Zahl ein: ");
    	einVariable1=Convert::ToInt32(Console::ReadLine());
    
    	Console::WriteLine("Geben Sie die zweite Zahl ein: ");
    	einVariable2=Convert::ToInt32(Console::ReadLine());
    
    	Console::WriteLine("Wählen Sie die Rechenoperation, +, -, *, / .");
    	rOperator=Convert::ToChar(Console::ReadLine());
    
    switch (rOperator) {
    case '+':
    	Console::WriteLine("Die Summe der Zahl {0} und {1} ist {2}.",einVariable1, einVariable2, summe(einVariable1, einVariable2));
    	break;
    case '-':
    	Console::WriteLine("Die Differenz der Zahl {0} und {1} ist {2}.", einVariable1, einVariable2, differenz(einVariable1, einVariable2));
    	break;
    case '*':
    	Console::WriteLine("Das Produkt der Zahl {0} und {1} ist {2}.", einVariable1, einVariable2, produkt(einVariable1, einVariable2));
    	break;
    case '/':
    	Console::WriteLine("Der Quotient der Zahl {0} und {1} ist {2}.", einVariable1, einVariable2, quotient(einVariable1, einVariable2));
    	break;
    
    default:
    	Console::WriteLine("Die Eingabe war falsch!");
    }
    
    	Console::ReadKey();
    
    	return 0;
    }
    

    Nun ist die Aufgabe den Taschenrechner dahingehend zu erweitern, dass zusätzlich die Ergebnisse aller Operationen gleichzeitig ausgegeben werden können, diese Funktionalität soll auch als Funktion erstellt werden.
    Leider habe ich dahingehend aktuell keinen Plan.
    Ich hätte es so gelöst, einen weiteren Operator abzufragen und einen case Zweig hinzuzufügen bei dem dann alle 4 Operationen ausgegeben werden. Aber dann habe ich ja keine weitere Funktion benutzt... 😞

    Leider komme ich damit aktuell nicht weiter...

    Vielen Dank im Voraus.

    Mfg



  • Ich finde deinen Lösungsansatz gut.
    Ev. kannst Du bei deinem "einem-in-Alles" Operator noch eine eigene Funktion geben, die dann ihrerseits eben alle schon verfügbaren Funktionen aufruft.

    BTW:
    Was ist das wieder für ein super Kurs wo programmieren mit der Sprache C++/CLI beggebracht wird? Glaub ja nicht es sei C++ und glaub auch nicht dass mit dieser Sprache Applikationen geschrieben werden. Diese Sprache ist dafür gedacht Interop Layer zwischen managed / unmanaged Code zu schreiben.
    Es ist schlicht eine schlechte Wahl der Sprache um programmieren zu lernen!



  • Hi, danke für die Antwort.

    Im Endeffekt hätte ich einfach folgendes hinzugefügt:

    case '?':
    	Console::WriteLine("Die Summe der Zahl {0} und {1} ist {2}.",einVariable1, einVariable2, summe(einVariable1, einVariable2));
    	Console::WriteLine("Die Differenz der Zahl {0} und {1} ist {2}.", einVariable1, einVariable2, differenz(einVariable1, einVariable2));
    	Console::WriteLine("Das Produkt der Zahl {0} und {1} ist {2}.", einVariable1, einVariable2, produkt(einVariable1, einVariable2));
    	Console::WriteLine("Der Quotient der Zahl {0} und {1} ist {2}.", einVariable1, einVariable2, quotient(einVariable1, einVariable2));
    	break;
    

    Sprich, bei Eingabe von einem "?" beim Operator wird alles berechnet. Das funktioniert auch soweit, aber ich habe eben keine neue Funktion. Mir fällt leider auch nichts ein, was ich noch darin verpacken kann. 😞

    Grüße



  • Ok habs hinbekommen, stand ein wenig auf dem Schlauch.

    Danke trotzdem! 🙂


Log in to reply