Erste Klassen versuche!



  • Okay wieder mal ein neuer versuch aber es gibt noch kleine probleme 😞

    #include <iostream>
    using namespace std;
    
    class Taschenrechner
    {
    public:
    	float zahl1;
    	float zahl2;
    
    	void plus(float number1, float number2)
    {
    	cout<<"Ergebnis:"<<number1+number2<<"\n";
    }
    
    void minus(float number1, float number2)
    {
    	cout<<"Ergebnis:"<<number1-number2<<"\n";
    }
    
    void mal(float number1, float number2)
    {
    	cout<<"Ergebnis:"<<number1*number2<<"\n";
    }
    
    void geteilt(float number1, float number2)
    {
    	cout<<"Ergebnis:"<<number1/number2<<"\n";
    }
    
    };
    
    int main ()
    {
    	cout<<"Geben sie die anzahl der rechen durchgänge an!\n";
    	int durchgang;
    	cin>>durchgang;
    	for(int i;i<durchgang;i++)
    	{
    	Taschenrechner v1;
    	cout<<"Geben sie eine zahl ein\n";
    	cin>>v1.zahl1;
    	cout<<"Geben sie eine weitere nummer ein\n";
    	cin>>v1.zahl2;
    	cout<<"Weahlen sie nun eine rechenart aus\n"
    		<<"1=plus(+), 2=Minus(-), 3=Mal(*) und 4=Geteilt(/)\n";
    		int wahl;
    		cin>>wahl;
    	switch(wahl)
    	{
    	case 1:
    		void plus(float v1.zahl1, float v1.zahl2);
    		break;
    	case 2:
    		void minus(float v1.zahl1, float v1.zahl2);
    		break;
    	case 3:
    		void mal(float v1.zahl1, float v1.zahl2);
    		break;
    	case 4:
    		void geteilt(float v1.zahl1, float v1.zahl1);
    		break;
    	default:
    		cout<<"Eingabe ist ungueltig\n";
    		break;
    	}
    	}
    	system("PAUSE");
    }
    

    er sagt folgendes:
    Aufgabe 2.cpp(52) : error C2143: Syntaxfehler: Es fehlt ',' vor '.'
    Aufgabe 2.cpp(55) : error C2143: Syntaxfehler: Es fehlt ',' vor '.'
    Aufgabe 2.cpp(58) : error C2143: Syntaxfehler: Es fehlt ',' vor '.'
    Aufgabe 2.cpp(61) : error C2143: Syntaxfehler: Es fehlt ',' vor '.'

    Diese zeilen sind in der switchfunktion wo ich die funktionen aufrufe.



  • ich korrigier das jetzt nur erstmal, zum inhalt sag iche rstmal nix, da ich a) deinem Buch nicht vorgreifen will, und b) andere sicher schon genug dazu sagen XD

    #include <iostream>
    using namespace std;
    
    class Taschenrechner
    {
    public:
        float zahl1;
        float zahl2;
    
        void plus(float number1, float number2)
        {
            cout<<"Ergebnis:"<<number1+number2<<"\n";
        }
    
        void minus(float number1, float number2)
        {
            cout<<"Ergebnis:"<<number1-number2<<"\n";
        }
    
        void mal(float number1, float number2)
        {
            cout<<"Ergebnis:"<<number1*number2<<"\n";
        }
    
        void geteilt(float number1, float number2)
        {
            cout<<"Ergebnis:"<<number1/number2<<"\n";
        }
    
    };
    
    int main ()
    {
        cout<<"Geben sie die anzahl der rechen durchgänge an!\n";
        int durchgang;
        cin>>durchgang;
        for(int i;i<durchgang;i++)
        {
    		Taschenrechner v1;
    		cout<<"Geben sie eine zahl ein\n";
    		cin>>v1.zahl1;
    		cout<<"Geben sie eine weitere nummer ein\n";
    		cin>>v1.zahl2;
    		cout<<"Weahlen sie nun eine rechenart aus\n"
    	    	<<"1=plus(+), 2=Minus(-), 3=Mal(*) und 4=Geteilt(/)\n";
    		int wahl;
    		cin>>wahl;
    		switch(wahl)
    		{
    		case 1:
    			v1.plus(v1.zahl1,v1.zahl2);
    			break;
    		case 2:
    			v1.minus(v1.zahl1,v1.zahl2);
    			break;
    		case 3:
    			v1.mal(v1.zahl1,v1.zahl2);
    			break;
    		case 4:
    			v1.geteilt(v1.zahl1,v1.zahl2);
    			break;
    		default:
    			cout<<"Eingabe ist ungueltig\n";
    			break;
    		}
        }
        system("PAUSE");
    }
    


  • 1.Danke für die schnelle hilfe(top ebayer hä?)
    2.Ich hab das selber mal gemacht und die gröbxten fehler beseitigt 😉
    und das ich das so schreiben muss wusste ich nicht und nochmal danke 😉

    EDIT:Kaptel Elementfunktionen(methoden) nochmal von vorne durhclesen 😉



  • hier mal eine neue version mit der rechnung im quadrat!

    #include <iostream>
    using namespace std;
    
    class Taschenrechner
    {
    public:
    	float zahl1;
    	float zahl2;
    
    void plus(float number1, float number2)
    {
    	cout<<"\nErgebnis:"<<number1+number2<<"\n";
    }
    
    void minus(float number1, float number2)
    {
    	cout<<"\nErgebnis:"<<number1-number2<<"\n";
    }
    
    void mal(float number1, float number2)
    {
    	cout<<"\nErgebnis:"<<number1*number2<<"\n";
    }
    
    void geteilt(float number1, float number2)
    {
    	cout<<"\nErgebnis:"<<number1/number2<<"\n";
    }
    
    void quadrat(float number1, float number2)
    {
    	cout<<"\nErgebnis:"<<(number1*number1)+(number2*number2)<<"\n";
    }
    
    };
    
    int main ()
    {
    	cout<<"\nGeben sie die anzahl der rechen durchgeange an!\n";
    	int durchgang;
    	cin>>durchgang;
    	for(int i=0;i<durchgang;i++)
    	{
    	Taschenrechner v1;
    	cout<<"\nGeben sie eine zahl ein\n";
    	cin>>v1.zahl1;
    	cout<<"\nGeben sie eine weitere zahl ein\n";
    	cin>>v1.zahl2;
    	cout<<"\nWeahlen sie nun eine rechenart aus\n"
    		<<"1=plus(+), 2=Minus(-), 3=Mal(*), 4=Geteilt(/) und 5=)im quadrat(²)\n";
    		int wahl;
    		cin>>wahl;
    	switch(wahl)
    	{
    	case 1:
    		v1.plus(v1.zahl1, v1.zahl2);
    		break;
    	case 2:
    		v1.minus(v1.zahl1, v1.zahl2);
    		break;
    	case 3:
    		v1.mal(v1.zahl1, v1.zahl2);
    		break;
    	case 4:
    		v1.geteilt(v1.zahl1, v1.zahl2);
    		break;
    	case 5:
    		v1.quadrat(v1.zahl1, v1.zahl2);
    		break;
    	default:
    		cout<<"\nEingabe ist ungueltig\n";
    		break;
    	}
    	}
    	system("PAUSE");
    }
    

    Ich werde das nochetwas vergrössern 😉



  • hi,

    wenn du die 2 zahlen mit denen gerechnet wird doch sowieso schon einliest wieso machst du es so kompliziert und uebergibst sie noch einmal als funktions parameter .. meine methoden koennen doch eh schon auf die zahlen zugreifen...

    so koennte man das wie folgt umschreiben

    void plus(float number1, float number2)
    {
        cout<<"\nErgebnis:"<<number1+number2<<"\n";
    }
    

    in

    void plus()
    {
        cout<<"\nErgebnis:"<<zahl1+zahl2<<"\n";
    }
    

    ausserdem wuerde ich das cout ueberhaupt aus den methoden rauslassen und das ergebnis als rueckgabe wert liefern ... so das eine methode immer nur eine aufgabe macht ... also rechnen ... also wuerd ich die funktionen so umschreiben

    float plus()
    {
        return zahl1+zahl2;
    }
    

    dann kannst du im hauptprogramm das ergebnis ausgeben mit

    cout << "ergebnis : " << v1.plus() << endl;
    

    oder so in der art

    wobei das auch irgendwie scheisse aussieht da man aus dem funktionsaufruf alleine ned sehen kann was mit was addiert wird ...

    P.S. scheiss tippfehler -.-



  • Okay gute idee wollte ja erst nur mit den paar methoden und einer klasse rumexperementieren aber danke noch mal 😉



  • Hier mal eine neue version der klasse Taschenrechner XD :

    #include <iostream>
    using namespace std;
    
    class Taschenrechner
    {
    public:
    	float zahl1;
    	float zahl2;
    
    float plus(float number1, float number2)
    {
    	return number1+number2;
    }
    
    float minus(float number1, float number2)
    {
    	return number1-number2;
    }
    
    float mal(float number1, float number2)
    {
    	return number1*number2;
    }
    
    float geteilt(float number1, float number2)
    {
    	return number1/number2;
    }
    
    float pythagoras(float number1, float number2)
    {
    	return (number1*number1)+(number2*number2);
    }
    
    };
    
    int main ()
    {
    	cout<<"\nGeben sie die anzahl der rechen durchgeange an!\n";
    	int durchgang;
    	cin>>durchgang;
    	for(int i=0;i<durchgang;i++)
    	{
    	Taschenrechner v1;
    	cout<<"\nGeben sie eine zahl ein\n";
    	cin>>v1.zahl1;
    	cout<<"\nGeben sie eine weitere zahl ein\n";
    	cin>>v1.zahl2;
    	cout<<"\nWeahlen sie nun eine rechenart aus\n"
    		<<"1->plus(+), 2->Minus(-), 3->Mal(*), 4->Geteilt(/), 5->satz des phytagoras\n";
    
    		int wahl;
    		cin>>wahl;
    	switch(wahl)
    	{
    	case 1:
    		v1.plus(v1.zahl1, v1.zahl2);
    		cout<<"\nErgebnis:"<<v1.plus(v1.zahl1, v1.zahl2)<<"\n";
    		break;
    	case 2:
    		v1.minus(v1.zahl1, v1.zahl2);
    		cout<<"\nErgebnis:"<<v1.minus(v1.zahl1, v1.zahl2)<<"\n";
    		break;
    	case 3:
    		v1.mal(v1.zahl1, v1.zahl2);
    		cout<<"\nErgebnis:"<<v1.mal(v1.zahl1, v1.zahl2)<<"\n";
    		break;
    	case 4:
    		v1.geteilt(v1.zahl1, v1.zahl2);
    		cout<<"\nErgebnis:"<<v1.geteilt(v1.zahl1, v1.zahl2)<<"\n";
    		break;
    	case 5:
    		v1.pythagoras(v1.zahl1, v1.zahl2);
    		cout<<"\nErgebnis:"<<v1.pythagoras(v1.zahl1, v1.zahl2)<<"\n";
    		break;
    	default:
    		cout<<"\nEingabe ist ungueltig\n";
    		break;
    	}
    	}
    	system("PAUSE");
    }
    

    wie immer ist kritik und idee/vorschläge erwünscht 😉



  • float pythagoras(float number1, float number2)
    {
    return (number1*number1)+(number2*number2);
    }

    Das sieht nicht nach dem Satz von Phytagoras aus.



  • Vielleicht interessiert ihn auch nur das Ergebnis als Quadratzahl ?



  • jo genau eigentlich ist der satz des phytagors ja a²+b²=c² da zahl1 und zahl2 im Quadrat berechnet werden ist das ergebnis ja dann c² und man hat den grundsatz 🙂
    aber ich werde das auch noch erweitern 😉


Anmelden zum Antworten