Potenzieren :-(



  • Hallo

    Der Fehler war das

    cout<<a*=2;
    

    keine gültige C++ Anweisung ist 😉

    bis bald
    akari



  • Hi,
    ne funktioniert leider nicht richtig.
    bei der Abfrage habe ich mal 2 eingegeben. Demnach ist es ja 2^2. ausgabe ist 48. Also 4 und 8... falsch 😞 was nun?



  • DocShoe schrieb:

    Poste den Quelltext, der den Fehler produziert.
    Beschreibe den Fehler, der auftritt. Ist es ein Compilerfehler oder produziert dein Programm nicht die erwarteten Ergbnisse?

    Ohne diese Informationen kann man nur raten, was du tust und was der "Fehler" ist.

    stimmt. mache ich sofort 🙂



  • Hallo

    Ich habe keine Ahnung was für einen Quellcode du benutzt, aber meiner lifert ein korrektes Ergebnis :

    2
    2^1 = 2
    2^2 = 4
    

    bis bald
    akari



  • #include<iostream>
    using namespace std;
    
    void main()
    {
    	int a=2,x;
    	cout<<"Die Basis ist 2.\n";
    	cout<<"geben Sie den exponenten ein:";
    	cin>>x;
    	for (int i=0;i<x;i++)
    	{
    		a=a*2;
    		cout<<a;
    	}
    }
    

    das ist mein Quellcode 😃
    Also nochmal zur Ausgabe: 2^x soll gerechnet werden meine Vorgabe ist 2 und x soll eingegeben werden. Die Ausgabe soll bei 2^3 z.B. 248 sein bzw.
    2
    4
    8

    aber so ein kleines Problem so einen riesen Aufwand 😞 sitze schon seit 2 Stunden daran 😞



  • Hö?

    int twoPower(int x)
    {
       return 1 << x;
    }
    

    läuft.



  • Eisflamme schrieb:

    Hö?

    int twoPower(int x)
    {
       return 1 << x;
    }
    

    läuft.

    ja und was ist twoPower?....



  • Mathematisch beschrieben ist das dann f(x) = 2^x

    Aber du schreibst jetzt oben auch, dass 2 x 3 = 248 sein soll, was ich dann wiederum nich verstehe.

    Die Ausgabe soll bei 2^3 z.B. 248 sein

    Wie ist jetzt deine mathematische Definition?



  • #include<iostream>
    using namespace std;
    
    void main()
    {
    	int a=2,x;
    	cout<<"Die Basis ist 2.\n";
    	cout<<"geben Sie den exponenten ein:";
    	cin>>x;
    	for (int i=0;i<x;i++)
    	{
    		a=a*2;
    		cout<<a;
    	}
    }
    

    Dann geh es halt durch. Du weißt ja wie Potenzieren läuft.
    2^0 = 1
    2^1 = 2
    2^2 = 4.
    Was macht deine Schleife? Sie multipliziert den aktuellen Wert con a mit 2. Ist ja logisch. Doch macht sie es so we du denkst?
    1. Kontrollcheck: x=0 -> x<2 -> a=2 -> a2 = 4
    2. Kontrollcheck: x=1 -> x<2 -> a=4 -> a
    2 = 8
    3. Kontrollcheck: x=2 -> x=2 -> Abbruch.
    Und das heißt jetzt... (lies mal paar posts weiter oben...
    Und jetzt bin ich der böse, weil ich deine Hausaufgabe gemacht hab...

    Ciao
    Nullnix



  • Ich glaube, er möchte alle Potenzen für 2x für x = [0..n] ausgeben. Die 248 aus dem Posting oben sind dann wohl eher 2,4,8...

    Zwei Stunden.. ZWEI STUNDEN!?

    @NullNix
    Ich war auch schon kurz davor. Zumal ja wirklich alle Informationen für den 3-Zeiler vorhanden sind, wenn man sich nur mal die Antworten durchliest.

    Allen Ernestes zwei Stunden?!



  • Eisflamme schrieb:

    Mathematisch beschrieben ist das dann f(x) = 2^x

    Aber du schreibst jetzt oben auch, dass 2 x 3 = 248 sein soll, was ich dann wiederum nich verstehe.

    Die Ausgabe soll bei 2^3 z.B. 248 sein

    Wie ist jetzt deine mathematische Definition?

    248=2 4 8 =
    2
    4
    8
    🙂 falsch ausgedrückt habe die Zahlen hintereinander geschmissen.



  • DocShoe schrieb:

    Ich glaube, er möchte alle Potenzen für 2x für x = [0..n] ausgeben. Die 248 aus dem Posting oben sind dann wohl eher 2,4,8...

    Zwei Stunden.. ZWEI STUNDEN!?

    @NullNix
    Ich war auch schon kurz davor. Zumal ja wirklich alle Informationen für den 3-Zeiler vorhanden sind, wenn man sich nur mal die Antworten durchliest.

    Allen Ernestes zwei Stunden?!

    Jop 2 Stunden 😃 ohne Plan und ... funktioniert es nunmal nicht.



  • Nullnix schrieb:

    #include<iostream>
    using namespace std;
    
    void main()
    {
    	int a=2,x;
    	cout<<"Die Basis ist 2.\n";
    	cout<<"geben Sie den exponenten ein:";
    	cin>>x;
    	for (int i=0;i<x;i++)
    	{
    		a=a*2;
    		cout<<a;
    	}
    }
    

    Dann geh es halt durch. Du weißt ja wie Potenzieren läuft.
    2^0 = 1
    2^1 = 2
    2^2 = 4.
    Was macht deine Schleife? Sie multipliziert den aktuellen Wert con a mit 2. Ist ja logisch. Doch macht sie es so we du denkst?
    1. Kontrollcheck: x=0 -> x<2 -> a=2 -> a2 = 4
    2. Kontrollcheck: x=1 -> x<2 -> a=4 -> a
    2 = 8
    3. Kontrollcheck: x=2 -> x=2 -> Abbruch.
    Und das heißt jetzt... (lies mal paar posts weiter oben...
    Und jetzt bin ich der böse, weil ich deine Hausaufgabe gemacht hab...

    Ciao
    Nullnix

    ne bist nicht der böse bist n lieber 😃 gemacht haste sie ja nicht 😉



  • Meine Lösung ist doch viel schöner. Hab nur die Streams weggelassen, das kriegt man doch wohl hin?


Anmelden zum Antworten