! Klausuraufabe C++
-
code formatiert unten
-
Du hast vergessen zu sagen, was du nicht verstehst.
-
danke
-
Bitte formatiere deinen Quelltext vernünftig, so dass man ihn auch lesen kann. Das Formum bietet Code-Tags an, bitte benutze die auch. So schaut sich das niemand an.
-
DocShoe schrieb:
Bitte formatiere deinen Quelltext vernünftig, so dass man ihn auch lesen kann. Das Formum bietet Code-Tags an, bitte benutze die auch. So schaut sich das niemand an.
ok ich versuch das jetzt mal danke für die Information
-
class myClass { private: unsigned int n; // Das n kommt von hier. n ist ein Member dieser Klasse und steht allen Memberfunktionen zur Verfügung- string text; // Eine Zeichenkette public: void Loop1() { do { if (n%2==0) // Eine ganzzahlige Division mit Rest. Beispiel: 7%2 ist 3 Rest 1 text = "0" + text; // 0 vorne anhängen else text = "1" + text; // 1 vorne anhängen n/=2; // Irgendwann wird n 0, da die Division mit Ganzzahlen eine Ganzzahl ergibt. } while (n!=0); } void get_result() { cout << "\nErgebnis: " << text << endl; } myClass(int x):n(x) // x ist der Parameter des Konstruktors. n ist Member der Klasse. n wird mit x initialisiert. { } }; int main() { int i=-1; myClass * cPtr; // Ein Zeiger while (i>-4) // Mach was, solange i größer -4 ist. { cPtr=new myClass(i); // Erzeugt ein neues Objekt auf dem Heap. Der Zeiger zeigt nun auf dieses Objekt. cPtr->Loop1(); // Zeichenkette verändern cPtr->get_result(); // Ergebnis ausgeben i--; // i = i-1 } return 0; } // Fehler, delete vergessen.
-
out schrieb:
class myClass { private: unsigned int n; // Das n kommt von hier. n ist ein Member dieser Klasse und steht allen Memberfunktionen zur Verfügung- string text; // Eine Zeichenkette public: void Loop1() { do { if (n%2==0) // Eine ganzzahlige Division mit Rest. Beispiel: 7%2 ist 3 Rest 1 text = "0" + text; // 0 vorne anhängen else text = "1" + text; // 1 vorne anhängen n/=2; // Irgendwann wird n 0, da die Division mit Ganzzahlen eine Ganzzahl ergibt. } while (n!=0); } void get_result() { cout << "\nErgebnis: " << text << endl; } myClass(int x):n(x) // x ist der Parameter des Konstruktors. n ist Member der Klasse. n wird mit x initialisiert. { } }; int main() { int i=-1; myClass * cPtr; // Ein Zeiger while (i>-4) // Mach was, solange i größer -4 ist. { cPtr=new myClass(i); // Erzeugt ein neues Objekt auf dem Heap. Der Zeiger zeigt nun auf dieses Objekt. cPtr->Loop1(); // Zeichenkette verändern cPtr->get_result(); // Ergebnis ausgeben i--; // i = i-1 } return 0; } // Fehler, delete vergessen.Blubb.
-
Kellerautomat schrieb:
Blubb.
Man darf sich auch mal langweilen.

-
super erklärt!
was bekommt n für einen Wert?
und was gibt das Program aus?
Ergebnis: ?
-
S.lukas schrieb:
super erklärt!
was bekommt n für einen Wert?
und was gibt das Program aus?
Ergebnis: ?Ausgabe:
Ergebnis: 11111111111111111111111111111111Ergebnis: 11111111111111111111111111111110
Ergebnis: 11111111111111111111111111111101
n bekommt die Werte -1 -2 und -3
-
Du musst mich noch fragen was das Programm macht.

-
unsigned int n; kann doch keine negativen werte bekommen, so kenn ich das.
wieso kommt ergebnis 3 mal raus?
und dann 32 zahlen entweder 1 oder null hmm
-
out schrieb:
Du musst mich noch fragen was das Programm macht.

wollte ich auch gerade

-
S.lukas schrieb:
unsigned int n; kann doch keine negativen werte bekommen, so kenn ich das.
Richtig, hast du gut aufgepasst.
n bekommt die Werte
2^32-1
2^32-2
2^32-3S.lukas schrieb:
wieso kommt ergebnis 3 mal raus?
Weil die Schleife 3x durchläuft.
S.lukas schrieb:
und dann 32 zahlen entweder 1 oder null hmm
Richtig. :p
-
S.lukas schrieb:
out schrieb:
Du musst mich noch fragen was das Programm macht.

wollte ich auch gerade

Dezimal Binär Umrechner
-
2^32 =4294967296
wie kommt die 2^32 zustande?
aber dank dir komm ich langsam rein:)
-
S.lukas schrieb:
2^32 =4294967296
wie kommt die 2^32 zustande?
Hast du doch selbst schon beantwortet. unsigned kennt keine negativen Zahlen. Was nicht passt wird passend gemacht. Es gibt einen Unterlauf und wir landen bei der größten unsgined Zahl.
Ich seh grad du hast ja 2 Aufgaben, also auf gehts zur anderen:D
-
aso die größte unsigned int zahl ist 2^32 baaam . super vielen vielen dank;)
-
GenauerRichtiger gesagt 2^32-1
-
also 4294967296-1 machen ist dann 4294967295
4294967296-2 " 4
4294967296-3 " 3hab ich das so richtig verstanden?
-
S.lukas schrieb:
also 4294967296-1 machen ist dann 4294967295
4294967296-2 " 4
4294967296-3 " 3hab ich das so richtig verstanden?
Ja