Mehrere Ausgaben mit einer Funktion?



  • Wieder mal die Funktionen, ich frage mich ob viele solche Schwierigkeiten am Anfang mit dem Verständnis haben, zu meinem Problem: ich muss einen Taschenrechner programmieren mit den Grundrechenoperationen, diese sollen über Funktionen das Ergebnis berechnen und es ausgeben. Soweit so gut, meine Lösung ist bestimmt nicht illeganteste aber mein Wissensstand gibt in Moment nicht sehr viel her 🙂

    #include "stdafx.h"
    
    using namespace System;
    
    //Funktionen für die Rechenoperationen
    Double addition(Double a, Double b){
    	return (a+b);
    }
    Double subtraktion(Double a,Double b){
    	return (a-b);
    }
    Double multiplikation(Double a, Double b){
    	return (a*b);
    }
    Double division(Double a, Double b){
    	return (a/b);
    }
    
    int main(array<System::String ^> ^args)
    {
    	Double zahl1, zahl2;
    	Char rechenoperation;
    
    //Initialisierung der ersten Zahl
    	Console::Write("Geben Sie die erste Zahl ein: ");
    	zahl1=Convert::ToDouble(Console::ReadLine());
    //Initialisierung der zweiten Zahl
    	Console::Write("Geben Sie die zweite Zahl ein: ");
    	zahl2=Convert::ToDouble(Console::ReadLine());
    //Rechenoperation wird vereinbart
    	Console::Write("Geben Sie die Rechenoperation ein: (+,-,*,/) ");
    	rechenoperation=Convert::ToChar(Console::ReadLine());
    
    	if (rechenoperation=='+')
    		Console::WriteLine("Das Ergebnis der Addition lautet: {0}",addition(zahl1,zahl2));
    	else
    		if (rechenoperation=='-')
    			Console::WriteLine("Das Ergebnis der Subtraktion lautet: {0}",subtraktion(zahl1,zahl2));
    		else
    			if (rechenoperation=='*')
    				Console::WriteLine("Das Ergebnis der Multiplikation lautet: {0}",multiplikation(zahl1,zahl2));
    			else
    				if (rechenoperation=='/')
    					Console::WriteLine("Das Ergebnis der Division lautet: {0}",division(zahl1,zahl2));
    
    return 0;
    }
    

    So nun muss ich aber noch eine Funktion schreiben, die alle 4 Rechenoperationen ausführt und ausgibt, wie soll ich das realisieren wenn eine Funktion immer nur einen Wert zurückgeben kann? Außerdem würde ich gerne die ganze Ausgabe(also den Satz) in die Funktion verlagern, wäre das irgendwie möglich?



  • Hi

    Die Ausgabe in der Funktion selbst könnte so aussehen.

    Void addition(Double a, Double b){
        Console::WriteLine("Das Ergebnis der Addition lautet: {0}",(a+b));
    }
    

    In der Funktion die alle Rechenoperationen ausgibt, würde ich jede Funktion extra aufrufen.

    Void alleAusgeben(Double a,Double b){
        addition(a,b);
        subtraktion(a,b);
        //und so weiter
    }
    

    Das if else gedöhns würde ich gegen switch eintauschen, wenn du schon so weit bist. Wenn nicht dann nicht. 😃



  • @b2101 Warum schreibst Du die Addition in Klammern?

    Unfug...

    Console::WriteLine("Das Ergebnis der Addition lautet: {0}",(a+b));
    

    Und dieses "if else gedöhns" kann in...

    if(Bedingung)
    {
       //Anweisung;
    }
    
    else if(Bedingung)
    {
       //Anweisung;
    }
    else
    {
      //Anweisung;
    }
    

    geändert werden, wenn Du schon so weit bist...

    So...

    Und Tschüß



  • Au Backe schrieb:

    @b2101 Warum schreibst Du die Addition in Klammern?

    Tja, hab mich irgendwie dran gewöhnt Berechnungen in Klammern zu setzen.
    Schaden tuts nicht, aber hier ist es doch recht sinnlos, da haste recht. 😃



  • Danke Leute.


Log in to reply