Zum Inhalt springen

TheWho

Mitglieder
  • Gesamte Inhalte

    117
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von TheWho

  1. Meine Kokosnuss hat er auch nicht erraten
  2. TheWho

    Und nochmal ich :)

    Hi, das der Titel blöd war, ist mir leider erst aufgefalllen, als ich nicht mehr editieren konnte. Tut mir leid. Bin ziemlich erkältet und wohl etwas neben der Spur... :hells: Die ordentliche Einrückung habe ich versucht, nur leider klappt das mit den html Sachen hier scheinbar nicht 100% - immer, wo ich Leerzeichen statt Tabs benutzt habe, war der Code wesentlich mehr eingerückt... Ließ sich dann auch nicht mehr korrigieren! Das Problem ist, daß er eben in den case-Fall 3 reingeht, obwohl getDirection() = 1 liefert. Für mich sieht es so aus, als ob er von case 1 in case 2 reinläuft, wo die Anweisung setDirection() = 3 vorkommt, und dann munter weiter in case 3. Das dürfte doch aber mit den breaks nicht sein, oder? Ich würde gern auf den "this-> Unsinn" verzichten, wenn ich es besser wüßte :confused: Nur steh ich gerade am Anfang mit meinen C++ Kenntnissen, und dachte, so wäre es richtig. Die gezeigte Methode ist eine von vier, die jeweils die "direkten Nachbarn" aller Richtungen eines 2dim Arrays ansehen, machen aber im Prinzip das gleiche. Ich hoffe, es ist jetzt etwas klarer?
  3. Hallo! Nachdem ich jetzt das Problem mit dem 2dim Array gelöst habe, bekomme ich hier einen Fehler, finde aber die Quelle nicht. Vielleicht seh ich den Wald vor lauter Bäumen nicht mehr?! :cool: Das Programm läuft bis zum Schluß prima, dann jedoch geht er noch 3 Schritte weiter, obwohl er zur Main zurückkehren sollte (Abfrage auf Ende des Vektors). Ich wäre dankbar, wenn mir jemand sagen kann, wieso das Programm in den case 3 reinläuft, obwohl die lastdirection weiter auf 1 steht und ich die breaks nicht vergessen habe? LG, TheWho int matrix::goNorth(xArray *Coord) { if ( 1 == checkLimits() ) //Grenzen überschritten? return 1; if ( 0 == checkEnd( Coord ) ) //Polygon fertig return 0; cout << "last direction (goNorth2): " << this->getDirection() << endl; switch ( this->getDirection() ) { case 0: if ( this->m_iXAct <= 0 ) // für Ausgangspixel 0-0 { this->goEast(Coord); } else { if ( this->m_iXAct-1 >= 0 && this->getContent( this->m_iXAct-1, this->m_iYAct ) != this->getContent(this->m_iXAct, this->m_iYAct) ) { this->setNextBegin(this->m_iXAct-1, this->m_iYAct); this->goEast(Coord); } else { cout << "2: " <<this->m_iXAct << " - " << this->m_iYAct << endl; Coord->setXCoord(this->m_iXAct); Coord->setYCoord(this->m_iYAct); --this->m_iXAct; this->goNorth(Coord); } } break; case 1: if ( this->m_iYAct-1 >= 0 && this->getContent( this->m_iXAct, this->m_iYAct-1 ) == this->getContent(this->m_iXAct, this->m_iYAct) ) { cout << "3: " <<this->m_iXAct << " - " << this->m_iYAct << endl; Coord->setXCoord(this->m_iXAct); Coord->setYCoord(this->m_iYAct); --this->m_iYAct; this->goWest(Coord); } else { if ( this->m_iXAct-1 >= 0 && this->getContent( this->m_iXAct-1, this->m_iYAct ) == this->getContent(this->m_iXAct, this->m_iYAct) ) { cout << "4: " <<this->m_iXAct << " - " << this->m_iYAct << endl; Coord->setXCoord(this->m_iXAct); Coord->setYCoord(this->m_iYAct); --this->m_iXAct; this->goNorth(Coord); } else { if ( this->m_iYAct+1 <= this->m_zeilen && this->getContent( this->m_iXAct, this->m_iYAct+1 ) == this->getContent(this->m_iXAct, this->m_iYAct) ) { cout << "5: " <<this->m_iXAct << " - " << this->m_iYAct << endl; Coord->setXCoord(this->m_iXAct); Coord->setYCoord(this->m_iYAct); this->setDirection(2); ++this->m_iYAct; //gehe nach Osten this->goNorth(Coord); } } } break; case 2: //Nordwesten if ( this->m_iXAct-1 >= 0 && this->getContent( this->m_iXAct-1, this->m_iYAct ) != this->getContent(this->m_iXAct, this->m_iYAct) ) { cout << "6: " <<this->m_iXAct << " - " << this->m_iYAct << endl; Coord->setXCoord(this->m_iXAct); Coord->setYCoord(this->m_iYAct); --this->m_iXAct; this->setDirection(1); //zurücksetzen auf Westen this->goNorth(Coord); } else { this->setDirection(3); this->goNorth(Coord); } break; case 3: if ( this->m_iXAct <= 0 ) // für Ausgangspixel { this->goEast(Coord); } else { if ( this->m_iYAct-1 >= 0 && this->getContent( this->m_iXAct, this->m_iYAct-1 ) != this->getContent(this->m_iXAct, this->m_iYAct) ) { this->setNextBegin(this->m_iXAct, this->m_iYAct-1); this->goWest(Coord); } if ( this->m_iXAct-1 >= 0 && this->getContent( this->m_iXAct-1, this->m_iYAct ) != this->getContent(this->m_iXAct, this->m_iYAct) ) { this->setNextBegin(this->m_iXAct-1, this->m_iYAct); this->goEast(Coord); } else { cout << "7: " << this->m_iXAct << " - " << this->m_iYAct << endl; Coord->setXCoord(this->m_iXAct); Coord->setYCoord(this->m_iYAct); --this->m_iXAct; this->goNorth(Coord); } } break; default: break; } return 0; // korrektes Beenden }
  4. Das meinte ich nicht mit dynamisch, sorry. Dynamisch hieß, zur Laufzeit die Größe festlegen. Also die Dimensionen aus einer Datei einlesen und das Array dann mit diesen Werten initialisieren. Da ich aber gestern und vorgestern den C++-Kurs hatte, und das Problem dort gelöst werden konnte, hat sich das eh erledigt Trotzdem vielen Dank an alle, die mir versucht haben, zu helfen!
  5. So ähnlich (in einer Methode) habe ich das auch erst gemacht, aber der meckert der Compiler... Darum dachte ich, ich hätte etwas falsch gemacht. Es geht, wenn ich der Membervariablen sofort die Dimensionen zuweise, aber dann ist es ja nicht mehr dynamisch.
  6. Muß ich dafür nicht die Größe des Arrays kennen? Ich hatte das bisher so: private: float feld**; // Dynamisches zweidimensionales Array public: matrix(int x, int y) // Konstruktor mit Dimensionen und Anfangspixel { zeilen = y; spalten = x; iXAct = 0; iYAct = 0; float feld[zeilen][spalten]; }; Ich wollte also im Konstruktor dem Array seine Dimensionen zuweisen. Danach das befüllen klappt schon (jetzt hardcodiert).
  7. Hi Ihrs, danke für Eure Hilfe. Jetzt hat es erstmal geklappt. So falsch war das gar nicht, was ich hatte. Nur die Initialisierung des Arrays klappt nicht, das hab ich erstmal hardcodiert Ich hab nächste Woche nen C++ Kurs, da soll mir der Dozent das mal hübsch beibringen, wie man ein dynamisches Array als Membervariable initialisiert :floet: Aber ich komme jetzt schon mal weiter, und das ist die Hauptsache :nett: Wie gesagt, danke vorerst!! LG, TheWho
  8. Also, erstmal würde es mir reichen, das zweite Konzept umzusetzen, damit ich das Prinzip verstehe. Ich befürchte allerdings, daß ich das erste Konzept irgendwann umsetzen muß, da ich zu jedem Wert voraussichtlich noch einen Wert eintragen muß (nämlich, ob das Feld bereits "betreten" wurde). Oder würde es dafür auch reichen, in das Array statt des einen Werts einen Vektor oder eine map einzutragen? Mein Problem ist wohl eher, daß ich von OO echt noch nicht viel Ahnung habe. Aber irgendwo muß ich ja anfangen. :floet:
  9. Naja, eigentlich sollte man schon den gesamten Post lesen Meine Aussage im ersten Post war: Und das ist weiterhin mein Problem. Ich weiß nicht, wie ich mit Objekten in den beiden Dimensionen des Ursprungs-Arrays "wandern" kann?!
  10. Hm, hab ich das Prinzip doch noch nicht verstanden? Ist das nicht der Konstruktor? Den hatte ich ja oben mit angegeben. Brauche ich eigentlich nicht. Die Größe des Arrays beziehe ich aus der Datei und damit initalisiere ich den Konstruktor. Oder? Das sollte die Methode setContent() sein. Auch falsch? Eigentlich getContent() :hells: Destruktor, oder? Das ist das Teil mit der Tilde davor. Dachte ich zumindest? Jo, danke erstmal. Allerdings ist damit mein eigentliches Problem noch nicht gelöst. Ich hab Probleme damit, auf den Content eines anderen Objekts dieser Klasse zu gucken. Oder eher die Nachbarn halt. :confused: HILFE :beagolisc
  11. Huhu Mod(s), ähm - peinlich, bin im Forum verrutscht. Könnte bitte einer den ins C/C++ Forum verschieben? Danke! :nett: TheWho
  12. Hallo Leute, heute brauche ich mal fachliche Hilfe Also, ich muß Daten vektorisieren. Diese Daten bekomme ich prima aus der Datei ausgelesen und in ein 2dim Array geschrieben, und auch wieder ausgegeben. Mein Problem: ich soll das Ganze eigentlich objektorientiert umsetzen. Mir fällt aber nichts ein, wie ich das als Klasse(n) beschreiben soll. Wichtig ist, daß ich für jedes Element des Arrays nach oben, rechts, unten und links nach dem Inhalt gucken können muß - im 2dim Array kein Problem, aber mit Klassen bekomme ich es einfach nicht hin. Dabei ist die Lösung sicher einfach und ich komme nur nicht drauf? Danke im voraus!! TheWho Derzeit habe ich es etwa so: class matrix { private: float** feld; // Dynamisches zweidimensionales Array int zeilen, spalten, x, y; // Anzahl Zeilen und Spalten float fContent; public: matrix(int zeilen, int spalten); // Konstruktor //matrix(const matrix&); // Copy-Konstruktor ~matrix(); // Destruktor void set (int anzahl, ...); // Wertzuweisung void print (); // Ausgabe einer Matrix float getContent(int x, int y) { return fContent; }; void setContent(int x, int y, float c) { fContent = c; }; }; main { blablub.... //setzen Inhalt myRaster.setContent( iXDim, iYDim, <einzelner Content> ); //Nachbarn angucken lookNeighbours ( iNeighbours, iXDim, iYDim, myRaster ); } void lookNeighbours(int* iNeighbours, int iXDim, int iYDim, float myRaster) { if ( ! (iYDim-1 < 1 ) ) //NORDEN { if ( myRaster.getContent(iXDim, iYDim) == myRaster.getContent(iXDim-1, iYDim) ) iNeighbours[0] = 0; else iNeighbours[0] = 1; } if ( ! ( iXDim+1 > nXSize-1 ) ) //OSTEN { if ( faRaster[iXDim+1][iYDim] == faRaster[iXDim][iYDim] ) iNeighbours[1] = 0; else iNeighbours[1] = 1; } if ( ! ( iYDim+1 > nYSize-1 ) ) //SUEDEN { if ( faRaster[iXDim][iYDim+1] == faRaster[iXDim][iYDim] ) iNeighbours[2] = 0; else iNeighbours[2] = 1; } if ( !( iXDim-1 < 1 ) ) //WESTEN { if ( faRaster[iXDim-1][iYDim] == faRaster[iXDim][iYDim] ) iNeighbours[3] = 0; else iNeighbours[3] = 1; } }
  13. Genauso ist es gemeint. Man sagt auch "alt hergebracht", also aus vergangenen Zeiten mitgenommen quasi
  14. Falls es noch jemanden interessiert, hier die Lösung: es war das Board Glück im Unglück, alles noch da und ok, bis auf XP, das es mit gezogen hat, Image drüber (Ghost sei Dank) und nun lüppt et wieder *PUH* :marine
  15. Biete sie einfach einem Raucher an, der nicht soviel Kohle hat - er freut sich, wenn er sparen kann, da bin ich sicher. Ich kenne viele, die sich auch mit weniger Geschmack anfreunden, wenn sie dafür sparen können. Traurig, aber wahr. Die echten Raucher schockt nix (bei DEN Preisen)
  16. Hi, erstmal: herzlichen Glückwunsch zum Nichtrauchen :uli Aber jetzt mal ehrlich: glaubst Du wirklich, ALDI nimmt die zurück? Ich nicht. Versuch doch einfach, sie einem anderen Raucher zu verkaufen Du machst evtl. minimalen Verlust, und der andere freut sich. Besser, als sie wegzuwerfen, auch wenn ich vom Rauchen nichts halte :floet: Viel Erfolg beim Durchhalten! LG, TheWho
  17. Ich bekenne mich auch als MAIDS-Infizierte. Mein Handy gehört dazu wie Schlüsselbund und Portemonaie Und mein Rechner funktioniert jetzt seit 5 Tagen nimmer, furchtbar!! Glücklichweise hat mein Mann noch nen Rechner und ich hier in der Firma ja auch, und bei t-online kann man die auch online abrufen, dafür bin ich sehr dankbar :bimei Schlimmer sind nur die Termine, die derzeit auf meiner Festplatte verschimmeln :hells: "Hattu Kopf wie Sieb, muttu notieren" --> hilft aber auch nicht immer :uli
  18. Also, ich hab noch ein neues Netzteil eingebaut, leider ohne Erfolg. Hab auch noch älteren RAM besorgen können, gleicher Fehler. Ich vermute mal ganz stark, daß mir das Board abgeraucht ist. Hab mir jetzt bei Ebay das gleiche wieder ersteigert, hoffe mal, daß es dann wieder funzt... :cool: So long! TheWho
  19. Aber sollten wirklich 3 Bausteine auf einmal kaputtgehen?
  20. Was mich jetzt verwirrt: beim Award steht zu den von mir aufgeführten Beeps folgendes: > 1x lang Speicherproblem, Module sitzen nicht richtig oder sind oxydiert. Das Signal wiederholt sich nach einer Pause. Mein Signal wiederholt sich aber nicht, der Rechner schaltet sich aus. > 10 Sekunden dauernder Ton mit nachfolgendem Abschalten des Rechners : Kühler Mein Ron ist aber keine 10sek lang > wiederholt kurz: Problem mit der Stromversorgung des Motherboards macht er nur bei fehlendem RAM Was davon paßt denn nun? :confused:
  21. Bissel, aber nur bissel *g* Ne, ich wüßte auch nicht, wie ich das messen kann, weil es ja sofort wieder ausgeht? Das ist doch mal was, dann schau ich heute abend mal wegen der Beepcodes *schnell ausdruckt* danke!
  22. Ja, die Vorstellung hat mich eben auch ziemlich erheitert Also, wie ganz oben beschrieben hab ich ne Geforce MMX, also keine OnBoard. Und auch die habe ich ausgebaut, keine Änderung. Änderung des Tons erst nach Ausbau des kompletten RAMs. Reicht es denn, das BIOS zu flashen, oder muß evtl. ein neues Board her?
  23. Ähm: noch ne blöde Frage: wie finde ich raus, welches BIOS ich habe? Nur damit kann ich lt. obiger Seite die Beepcodes "knacken"?
  24. Nein, leider nicht, da keiner mehr SD-RAM hat Achtung Ironie! Ich hab eben noch nie und nimmer eines geflasht, darum obige Aussage. Aber Ironie scheint Dir nicht zu liegen. :mod:

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...