übungsquellcode



  • ich habe übungsquellcode. Es soll die die Ausgabe des programmes hingeschreiben werden. allderings versteh ich nicht was das Programm macht. hoffe das mir jemand weiterhelfen kann... Vielen Dank im voraus!

    #include <iostream>
    using namespace std;
    int a=0, b=1;
    int f1(int a);
    int f2(int b);
    int main()
    {
    int count;
    for (count=1;count<=5;++count)
    {
    b+=f1(a+1)+1;
    cout << b << " ";
    }
    }
    int f1(int a)
    {
    b = f2(a+1)+1;
    return (b);
    }
    int f2(int a)
    {
    return (b+a);
    }



  • Bitte Code-Tags verwenden und Code einrücken!

    #include <iostream>
    using namespace std;
    
    int a=0, b=1;
    int f1(int a);
    int f2(int b);
    
    int main()
    {
    	int count;
    	for (count=1;count<=5;++count)
    	{
    		b+=f1(a+1)+1;
    		cout << b << " ";
    	}
    }
    int f1(int a)
    {
    	b = f2(a+1)+1;
    	return (b);
    }
    int f2(int a)
    {
    	return (b+a);
    }
    


  • Zur Frage: Arbeite Schritt für Schritt auf einem Blatt Papier das Programm ab. Wenn Du eine bestimmte Stelle nicht verstehst kannst Du ja nochmal konkret nachfragen.



  • ich bin seit 3-4 tagen hier aktiv.
    ich hab jetzt mehrere codes hier drin, aber ich komm iwie mit den tags net klar die rücken iwie nicht ein.
    benutzt meistens leerzeichen 😞
    und die werden nicht angenommen



  • #include <iostream> 
    using namespace std; 
    
    int a=0, b=1; //a bekommt den wert 0 zugewiesen und b1
    int f1(int a); //übergibt wahrscheinlich der funktion f1 int a 
    int f2(int b); //das gleiche hier f2 int b
    
    int main() 
    { 
         int count; //int count wird initialisiert
         for (count=1;count<=5;++count)   //for schleife geht von 1 bis 5 soweit alles ok 
         { 
             b+=f1(a+1)+1; //und jetzt kann ich es nicht mehr nachvollziehen was passiert
             cout << b << " "; 
         } 
    } 
    int f1(int a) 
    { 
         b = f2(a+1)+1; 
         return (b); 
    } 
    int f2(int a) 
    { 
         return (b+a); 
    }
    


  • irgendwo hast du dich vertippt:

    int f2(int b);
    
    int f2(int a)
    {
    	return (b+a);
    }
    

    heißt der Parameter nun "a" oder "b"? In diesem Fall ist das entscheidend, weil das entscheidet, welche globale Variable überdeckt wird.



  • daddy_felix schrieb:

    irgendwo hast du dich vertippt:

    Nö. Das ist einfach nur ein bißchen fies.



  • HorrySheet

    hat das für mich schön formatiert.

    dies ist das code.

    danke für die schnellen antworten.



  • die formatierung von HorrySheet ist das richtige



  • MFK schrieb:

    daddy_felix schrieb:

    irgendwo hast du dich vertippt:

    Nö. Das ist einfach nur ein bißchen fies.

    weißt du 100%, dass es kein Vertipper ist? Klar schluckt der Compiler das so, aber ich hätte nicht vermutet, dass das Absicht ist.



  • habe mich 100% nicht vertippt hab eben das in den compiler geworfen gibt dies aus:

    9 25 57 121 249



  • Du solltest dich als erstes dem Thema "Funktionen" widmen. Was ist eine Deklaration, was ist eine Definition, wie wird eine Funktion aufgerufen?

    Als nächstes wäre dann das Thema "Lebensdauer von Variablen" dran. Sehr wichtig in dem Zusammenhang auch "Überdeckung globaler Variablen durch lokale Variablen".



  • ich habe es ja nicht verstanden habe 2 literaturen.

    kann aber nicht ganz nachvollziehen was das programm macht.



  • S.lukas schrieb:

    kann aber nicht ganz nachvollziehen was das programm macht.

    Das ist bei deinen Wissenslücken auch kein Wunder. Daher solltest du dir erstmal in Ruhe die angegebenen Themen ansehen, bevor du dich an den Übungscode setzt. Der beinhaltet nämlich ziemlich viele kleine Fallen, das ist momentan einfach noch zu kompliziert für dich.



  • habe nächste woche mittwoch meinen 2. versuch (klausur).
    ich versuch so schnell wie möglich an die infos dran zu kommen um das alles nachfolziehen zu können und somit auch nach lesen werde.



  • S.lukas schrieb:

    habe nächste woche mittwoch meinen 2. versuch (klausur).
    ich versuch so schnell wie möglich an die infos dran zu kommen um das alles nachfolziehen zu können und somit auch nach lesen werde.

    Welche Entwicklungsumgebung nutzt du eigentlich? Visual Studio Express?



  • ja



  • Was verstehst Du denn an dem Programm nicht? Gehen wir es mal gemeinsam durch:

    #include <iostream>
    using namespace std;
    
    int a=0, b=1; //zwei Variablen, die mit einem Wert initilisiert werden
    int f1(int a);//Deklaration einer Funktionen
    int f2(int b);//Deklaration einer anderen funktion
    
    int main() //Hier fängt dein Programm logisch an!
    {
        int count;
        for (count=1;count<=5;++count) //eine Schleife, die von 1 bis einschließlich 5 zählt
        {
            b+=f1(a+1)+1;
            /*
            1. a = 0; f1(a+1)+1 = f1(1)+1 = f2(1+1)+1+1 = f2(2)+1+1 = 5 
            2. //...
            */
    
            cout << b << " "; //Ausgabe von b
        }
    }
    int f1(int a) //Definition der Funktion f1
    {
        b = f2(a+1)+1;
        return (b);
    }
    int f2(int a) //Definition der Funktion f2
    {
        return (b+a);
    }
    


  • {
            b+=f1(a+1)+1; //b=b+f1(0+1)+1 das hab ich verstanden dann wird f1 aufgerufen was passiert da ?
    
            cout << b << " "; //Ausgabe von b
        }
    }
    int f1(int a) //Definition der Funktion f1
    {
        b = f2(a+1)+1;
        return (b);
    }
    int f2(int a) //Definition der Funktion f2
    {
        return (b+a);
    }
    


  • Wenn f1 aufgerufen wird, passiert das:

    int f1(int a) //Definition der Funktion f1
    {
        b = f2(a+1)+1;
        return (b);
    }
    

    Ersetze also den Funktionsaufruf f1 durch die Rechenoperationen, die f1 ausführt. Das ist in diesem Falle f2(a+1)+1.

    Klar?


Anmelden zum Antworten