Zum Inhalt springen

BigBasti86

Mitglieder
  • Gesamte Inhalte

    9
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von BigBasti86

  1. Vielen Dank nochmals für die Hilfestellungen. Ich habe es wie gesagt zum laufen bekommen. Musste den Code aber nochmals ändern damit auch wirklich der Hanoi-Algo ausgeführt wird. Das war ja vorher Schwachsinn. Hat aber ja nichts mit dem Problem zu tun gehabt. Nur zur Info, damit ein Leser nichts falsches denkt :upps Gruß Basti
  2. Danke nochmals Klotzkopp! Wie gesagt ich bin ein totaler Neuling in C++. Ich habe nun in eclipse mit einem makefile gearbeitet, und es funktioniert prima. Wieso es nun funzt und vorher nicht kann ich aber auch nicht wirklich begründen. Auf das Problemmit den Kennziffern bin ich dann auch gestoßen und habe das dann noch eingefügt. Eine Frage hätte ich aber noch: Kann ein c++-Quellcode, der von einem Compiler als ok anerkannt wird, von einem anderen Compiler als fehlerhaft anerkannt werden. Spielt es also allein in Bezug auf den Quellcode eine Rolle welchen Compiler man wählt? Gruß Basti
  3. ok wenn das so richtig ist: in eclipse -> neues projekt -> neuer source folder -> neue source datei -> in die source datei dann meinen code reinschreiben und als .cpp speichern -> laufen lassen dann zeigt er mir immer "Launch failed. Binary not found"
  4. oha.. mit so nem teil hatte ich schon immer Probleme. Die Sache ist, dass uns ein Mac-Rechner zur Verfügung gestellt wird. Und dort arbeiten wir einfach mit Emacs und Terminal. Ich wüsste nicht, wie ich dort mit nem Debugger arbeite. Java habe ich immer zuhause mit eclipse(der ja einen Debug-Modus hat) gemacht. Ich besorg mir jetzt erstmal schnell eclipse für c++..
  5. Also so etwas habe ich bereits probiert. Habe eine main() geschrieben und darin eine Ausgabe (cout) gemacht. Das hat gefunzt...:confused: Natürlich das Ganze in einer eigenen Datei test.cpp Diese auf die selbe weise compiliert und lief..
  6. @Klotzkopp: stimmt, aber soweit habe ich noch nicht gedacht. Denn wenn das das einzige Problem wäre, würde ich bestimmt ne Fehlermeldung kriegen (NullPointer oder was auch immer). Aber wie gesagt, wenn ich das Prog laufen lasse, passiert einfach gar nichts. Also im Terminal sieht das dann ca. so aus: <user@bla im richtigen Ordner> ./hanoi <user@bla im richtigen Ordner> wenn ihr jetzt wisst wie ich das meine.. also ersteres(gleich wieder neue eingabe) @Klotzkopp
  7. Danke schon mal für die Antworten, also dass die main nicht ausgeführt wird, erkenne ich daran dass ich im ShellTerminal (MacOS) eingebe: ./hanoi (also das prog. ausführe) und nix passiert. Ich habe mal als erste zeile der main, eine einfache ausgabe eingebaut (cout<< "test";) und auch diese wurde nicht angezeigt/ausgegeben. Daraus habe ich geschlossen dass die main gar nicht "betreten" wird.
  8. In der main fehlt uebrigens, das Einfuegen der Kennziffern. Aber das wird wohl kaum das Prob sein. Wahrscheinlich ist mir da einfach irgendeine C++ Regel nicht gelaeufig und ich uebernehme es falsch aus meinem Java-Verstaendnis
  9. Hallo zusammen, ich beschaeftige mich seit einiger Zeit mit C++ und habe vorher eigentlich nur Java kennengelernt. Ich habe nun ein kleines Programm geschrieben, welches die Problematik der Hanoi-Tuerme bearbeitet. Also verschieben von A nach C ueber B. Mein Problem ist nun, dass mein Compiler(g++) alles schoen uebersetzt und nicht meckert aber die main() niemals ausgefuehrt wird. Wie gesagt, ich habe noch die Java-Gedanken-Struktur und nach diesem Wissen muesste es laufen. Ich bitte um Hilfe, da ich nichts mehr blicke.. Hier der Code: #include <iostream> #include <vector> using namespace std; typedef vector <int> tower; //tower kann als Schluesselwort //fuer Vector<int> verwendet werden //print_tower gibt den Turm aus. Zuerst die Kennziffer, //welche das erste Element im Vector ist, dann die restlichen Elemente void print_tower(tower& t){ cout << "Turm mit der Kennziffer " << t.at(0) << ":" << endl; for(int i = 1; i<t.size(); i++){ cout << t.at(i) << endl; } } //move fuehrt den geforderten Algorithmus durch. Hierbei wird fuer //k=1 einfach die oberste Scheibe von A nach C verschoben int move(int k, tower& a, tower& b, tower& c){ cout << "Vor dem Verschieben: " << endl; print_tower(a); print_tower(; print_tower(c); if(k == 1){ int z = a.back(); a.pop_back(); c.push_back(z); cout << z << " von A nach C" << endl << "A und C nach dem Versieben: " << endl; print_tower(a); print_tower(c); } //ist k != 1, werden erst die ersten n-1 Scheiben von A nach B verschoben else if(k != 1){ while(a.size() > 2){ // >2 weil die Kennziffer(erstes Element) // und das eigentliche erste // Element bleiben sollen b.push_back(a.back()); cout << a.back() << " von A nach B verschoben" << endl; a.pop_back(); } c.push_back(a.back()); // Letztes Element direkt nach C cout << a.back() << " direkt von A nach C" << endl; a.pop_back(); while(b.size() > 1){ //Hier sollen nun alle bis auf die Kennziffer //von B nach C gehen c.push_back(b.back()); cout << b.back() << " von B nach C verschoben" << endl; b.pop_back(); } cout << "Alle Tuerme nach dem Verschieben: " << endl; print_tower(a); print_tower(; print_tower(c); } } int main(){ //Eingabe vom Nutzer in n gespeichert cout << "Geben Sie eine Ganzzahl ein!"; int n; cin >> n; //Drei Tuerme tower a; tower b; tower c; //A wird mit n Elementen befuellt //Hier ist es ja so dass das Ende des Vektors //ja gerade der Anfang der Stange ist. //Deshalb liegt das kleinste Element am Ende des Vektors //also am Anfang der Stange for(int i = n; i>0; i--){ a.push_back(i); } move(n, a, b, c); print_tower(a); return 0; } [/code] Besten Dank im Vorraus fuer alle die sich die Zeit nehmen Gruss Der Basti

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...