C++ Programmieren Funktionen,Werte,Zeiger und for-schleife



  • Hi,

    ich habe hier eine kleine Aufgabe aus dem Bereich c++, die ich schon seit längerem Versuche zu lösen. Leider komme ich im Moment nicht weiter, da ich seit langem nicht mehr programmiert habe.

    Aufgabe:
    Die 1.Funktion(genannt werteparameter) erhält über die Tastatur zwei Werte(wert1,wert2) mitgeteilt. Diese Werte werden miteinander multipliziert. Das Ergebnis(wert3) wird an die 2.Funktion(zeigerparameter) übergeben mithilfe von zeigern.
    In der 2.Funktion soll von 0 bis zum übergebenen Wert(wert3) alle Zahlen, mit der größten Zahl beginnend, in der Konsole erscheinen ((also wert3-bis0)mithilfe einer for-schleife zu lösen). Diese Werte sollen miteinander addiert werden und die Summe soll an die Main-Funktion übergeben werden.
    In der Main-Funktion soll die Summe ausgegeben werden und das Programm muss man wiederholen können.

    Danke schonmal für die Hilfe 🙂



  • Was hast du denn schon gemacht, wo liegen denn die Probleme konkret. Oder suchst du jemand der dir ne fertige Mustrelösung bereitstellt ? Dann stelle die Fragen besser unter dem Sub-Forum Projekte und überleg dir dann gleich wieviel du zahlen willst.



  • Ich weiß nicht genau wie ich von der werteparameter-funktion den wert zur zeigerparameterfunktion übergeben muss und die for-schleife weiß ich nicht.



  • Das hier habe ich bis jetzt gemacht mit Microsoft Visual C++ 2008:

    #include <iostream>
    
    using namespace std;
    
    //1.Funktion
    int werteparameter(int wert1,int wert2,int *wert3)
    {
    //EINGABE
    	cout<<"Bitte geben Sie den ersten Wert ein!"<<endl;
    	cin>>wert1;
    	cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl;
    	cin>>wert2;
    //BERECHNUNG
    	*wert3=wert1*wert2;
    //RÜCKGABE
    	return(*wert3);
    }
    //2.Funktion
    int zeigerparameter(&wert3)
    {	
    //for-Schleife
    	for()
    	{
    		wert3=0	
    	}
    
    }
    //Main-Funktion
    void main()
    {	
    //Funktionsaufrufe
    	werteparameter(wert1,wert2,*wert3);
    	zeigerparameter(&wert3);
    //Ausgabe
    	cout<<"Das Ergebnis ist: "<<wert3<<endl;
    
    }
    


  • Kann mir jemand helfen???



  • Redneet schrieb:

    Das hier habe ich bis jetzt gemacht mit Microsoft Visual C++ 2008:

    #include <iostream>
    
    using namespace std;
    
    //1.Funktion
    int werteparameter(int wert1,int wert2,int *wert3)
    {
    //EINGABE
    	cout<<"Bitte geben Sie den ersten Wert ein!"<<endl;
    	cin>>wert1;
    	cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl;
    	cin>>wert2;
    //BERECHNUNG
    	*wert3=wert1*wert2;
    //RÜCKGABE
    	return(*wert3);
    }
    //2.Funktion
    int zeigerparameter(&wert3)
    {	
    //for-Schleife
    	for()
    	{
    		wert3=0	
    	}
    
    }
    //Main-Funktion
    void main()
    {	
    //Funktionsaufrufe
    	werteparameter(wert1,wert2,*wert3);
    	zeigerparameter(&wert3);
    //Ausgabe
    	cout<<"Das Ergebnis ist: "<<wert3<<endl;
    	
    }
    

    Na dann wollen wir deine Hausaufgabe mal lösen.
    Hoffentlich noch rechtzeitig zum Abgabetermin?

    int werteparameter()
    {
    int wert1,wert2;
    //EINGABE
    	cout<<"Bitte geben Sie den ersten Wert ein!"<<endl;
    	cin>>wert1;
    	cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl;
    	cin>>wert2;
    //hier aufpassen: bei großen Werten für wert1/wert2 kann int überlaufen/negativ werden!
    	return wert1*wert2;
    }
    
    int zeigerparameter(int *wert3)
    {	
      int result=0;
    	for(;*wert3>=0;--*wert3)
    	{
    		result+=*wert3;	
    	}
    //auch hier: Überlauf möglich, LONGLONG-Typ wäre hier wie oben besser
       return result;
    }
    
    main:
    	int r;
    	cout<<zeigerparameter((r=werteparameter(),&r));
    


  • Kann mir noch jemand helfen?
    Blick bei der if-Schleife irgendwie nicht durch und auch bei der Main-Funktion weiß ich nicht was das r bedeuten soll. Außerdem erfüllt das Programm von dir nicht die Aufgabe, die ich zu lösen habe. Es soll nämlich von wert3 bis 0 runterzählen und dies auch anzeigen und dann sollen die angezeigten zahlen addiert werden.

    Die erste Funktion habe ich schon, sogar mit wertübergabe

    #include <iostream>
    
    using namespace std;
    
    int werteparameter()
    {
    int wert1,wert2,erg;
    //EINGABE
    	cout<<"Funktion Werteparameter"<<endl;
    	cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"<<endl;
        cout<<"Bitte geben Sie den ersten Wert ein!"<<endl;
        cin>>wert1;
        cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl;
        cin>>wert2;
    //BERECHNUNG
    	erg=wert1*wert2;
    //AUSGABE
    	cout<<"Das Ergebnis der Multiplikation ist: "<<erg<<"\n"<<endl;
    //ÜBERGABE
        return (erg);
    
    }
    
    int zeigerparameter(int *erg)
    { 
      int y;
      cout<<"Funktion Zeigerparameter"<<endl;
      cout<<"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n"<<endl;
    
      for(y=0;*erg>=y;*erg--)
        {
            *erg=y--;
        }
       return (*erg);
    } 
    int main(int erg)
    {
        int r;
        cout<<zeigerparameter((r=werteparameter(),&r));	
    }[
    

    Na dann wollen wir deine Hausaufgabe mal lösen.
    Hoffentlich noch rechtzeitig zum Abgabetermin?

    int werteparameter()
    {
    int wert1,wert2;
    //EINGABE
    	cout<<"Bitte geben Sie den ersten Wert ein!"<<endl;
    	cin>>wert1;
    	cout<<"Bitte geben Sie den zweiten Wert ein!"<<endl;
    	cin>>wert2;
    //hier aufpassen: bei großen Werten für wert1/wert2 kann int überlaufen/negativ werden!
    	return wert1*wert2;
    }
    
    int zeigerparameter(int *wert3)
    {	
      int result=0;
    	for(;*wert3>=0;--*wert3)
    	{
    		result+=*wert3;	
    	}
    //auch hier: Überlauf möglich, LONGLONG-Typ wäre hier wie oben besser
       return result;
    }
    
    main:
    	int r;
    	cout<<zeigerparameter((r=werteparameter(),&r));
    

    [/quote]



  • BRAUCHE HILFE !!!

    Danke schonmal 😉


Anmelden zum Antworten