hat sich erledigt :)
Ankündigung
Einklappen
Keine Ankündigung bisher.
User helfen User - Programmieren
Einklappen
X
-
Gast -
Als ich mich in C++ vertiefen musste, habe ich den Prata durchgelesen, das war ganz gut. Etwas weitergehende Themen findet man (nebst einer guten Einführung) auch im Solter/Kleper.
Sonst ist als Referenz auch das Original geeignet, allerdings sollte man schon einigermassen sattelfest sein, mindestens in einer verwandten Programmiersprache.
Kommentar
-
Hab mit jetzt mal C++ von A bis Z besorgt.
Und gleich mein nächstes Problem, den Rest hab ich mit eurer Hilfe super gelöst bekommen :-)
http://pastebin.com/7n3txH0i
Ich möchte gerne eine Dezimalzahl als Binäre Zahl ausgeben, klappt alles super, bis auf das Problem, das ich keine Idee habe, wie ich meine Ausgabe drehen kann. Bei einer '23' bekomme ich ein Bitmuster von '11101' als Ausgabe, richtig ist aber '10111'.
Kommentar
-
Anstatt Rekursion, verwende eine Schleife und speichere das Ergebnis in einer Dezimalzahl. Den ersten Rest multipliziere mit 1, den zweiten Rest mit 10, usw.
Das "number = newnumber" in Zeile 16 kannst du dir sparen, übergib einfach "newnumber".
Kommentar
-
http://pastebin.com/5wSnBz79Zitat von HagiAnstatt Rekursion, verwende eine Schleife und speichere das Ergebnis in einer Dezimalzahl. Den ersten Rest multipliziere mit 1, den zweiten Rest mit 10, usw.
Das "number = newnumber" in Zeile 16 kannst du dir sparen, übergib einfach "newnumber".
Hab das ganze jetzt so gelöst bekommen, verstehe aber immer noch nicht so ganz wie das Funktioniert. Speziell geht es mir da um Zeile 12.
Ich schau mal ob ich das irgendwo auftreiben kann. DankeZitat von puroc++ primer bestes c++ buch
edit: Kennt jemand ein gutes tool, womit ich Visual Studio c++ Code als PDF exportieren kann?
Kommentar
-
Hab es mit dem PDF24 versucht, damit füge ich meine PDF's immer zusammen. Die gedruckten PDF's sind aber jedes mal Fehlerhaft. Random ist immer so ne Sache, ich habe keine lust irgendeine gammelige lästige adware mitzuinstallieren. Vielleicht hat ja jemand einen Geheimtipp :)
e: ok hab einen Drucker gefunden.
Kommentar
-
Mit dem Bitshift-Operator entfernst du einfach das Bit mit dem geringsten Wert aus der Zahl und hängst es an der ersten Stelle wieder an:Zitat von keu1ehttp://pastebin.com/5wSnBz79
Hab das ganze jetzt so gelöst bekommen, verstehe aber immer noch nicht so ganz wie das Funktioniert. Speziell geht es mir da um Zeile 12.
58 = 111010
58 mod 2 = 0
58 >> 1 = 111010 >> 1 = 011101 = 29
29 mod 2 = 1
usw.
Mir geht es aber ähnlich wie dir, denn ich verstehe nicht, wie deine Rekursion für einen beliebigen Parameter jemals abbrechen kann.
Kommentar
-
hab die Lösung im Internet gefunden, funktioniert auf jeden Fall, muss mir das aber nochmal genauer reinziehen.Zitat von HagiMit dem Bitshift-Operator entfernst du einfach das Bit mit dem geringsten Wert aus der Zahl und hängst es an der ersten Stelle wieder an:Zitat von keu1ehttp://pastebin.com/5wSnBz79
Hab das ganze jetzt so gelöst bekommen, verstehe aber immer noch nicht so ganz wie das Funktioniert. Speziell geht es mir da um Zeile 12.
58 = 111010
58 mod 2 = 0
58 >> 1 = 111010 >> 1 = 011101 = 29
29 mod 2 = 1
usw.
Mir geht es aber ähnlich wie dir, denn ich verstehe nicht, wie deine Rekursion für einen beliebigen Parameter jemals abbrechen kann.
Jetzt sind erstmal die Ferien vorbei und es steht eine Klausur an, mal schauen wie ich mich mache, hab auf jeden Fall viel dafür getan und bin weiter im Stoff als meine classmates :-)
Kommentar
-
Neue Frage:
Wie kann ich überprüfen wie viele Zeichen bei einer cin Eingabe zustande gekommen sind?
http://pastebin.com/UapYAqQA
In Zeile 19 ist meine Eingabe. Diese darf jedoch nur aus 4 Zahlen bestehen, die kleinste würde ich sagen, wäre also 0001 und die größte 9999. 10000 wäre unzulässig, genau wie 1, oder 11, oder 111.
Wie genau kann ich das realisieren, und das ganze in meine Schleife unterbringen?
Kommentar
-
kommt drauf an was du möchtest. Soll eine Fehlermeldung kommen, dass die Anzahl der Zeichen nicht korrekt ist? Oder soll einfach der normale Fehler kommen bzgl. der falschen Pin ?
Den zweiten Fall könnte man relativ einfach lösen mit:
cin >> cpin;
int length = 0;
length = strlen(cpin);
if (cpin == pin && length == 4) {
....
*edit hab lange kein C++ mehr angefasst. Wüsste jetzt spontan nicht, wie du überprüfen kannst, ob nur Ziffern eingegeben wurden.
Kommentar
Kommentar