Zum Inhalt springen

Invisi09

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

  1. Erstmal vielen Dank für deine Lösung, ich hätte es etwas komplizierter gelöst. Mich hätte nur mal interessiert wie sich der Lehrer das vorgestellt hat, aus dem vorhandenen Code ohne ihn um zu strukturieren, die Funktion mit den Pfeilen zum laufen zu bringen. Villeicht hatte die herangehensweise vom Lehrer sogar nen Sinn und sollte uns etwas in Bezug auf globale Variablen klar machen.^^ Naja ich denk ich belass es dabei und bin zufrieden das ich es auf andere weise hinbekommen hätte.
  2. Die Bedingungen sind ja ganz unten im Code unter der Funktion "void schaltePfeile(int iEtagennr, int iParkplatznr)" schon definiert. Und in der Funktion "void zeichneParkhaus(void)" ist eine switchanweisung die die Pfeile anzeigen soll wenn der entsprechende Pfeil den Wert 1 hat. Was sie aber nicht macht, weil die Funktion "void schaltePfeile(int iEtagennr, int iParkplatznr)" zwar die benötigten Pfeile mit 1 initialisiert, aber nur lokal. Man müsste irgendwie der Funktion "void zeichneParkhaus(void)" die mit 1 initialisierten Pfeile verklickern.
  3. Wenn das Auto z. B. in die 2te Etage auf die Parkplatznr. 8 soll, dann müsste in der 1ten 0er Zeile in der Mitte ein Pfeil nach rechts, in der 2ten und 3ten 0er Zeile in der Mitte jeweils ein gerader Pfeil angezeigt werden. Würde man die 2te Etage durch die 0te Etage ersetzen würde ein rechter Pfeil in der 3ten 0er Zeile in der Mitte reichen. Hab selbst lange herumgekrübelt wie das mit den Pfeilen genau dargestellt werden soll, aber nach langem überlegen und ausprobieren hab ich wenigstens kappiert was der Lehrer mit dem Programm genau wollte. Schade das die Lehrer an meiner Schule leider häufig missverständliche Aufgaben vergeben. Ich hoffe das Beispiel hat jetzt die letzten Unklarheiten beseitigt. Damit jetzt nur noch Programmierkenntnisse benötigt werden.^^
  4. Wenn man das jetztige programm ausführt sieht man zwei spalten mit Nullen. In der Mitte unten soll die Einfahrt darstellen. Jede 0er Zeile soll eine Etage darstellen. Die Oberste Zeile ist somit die 2te Etage und die unterste die 0te Etage. Die Parkplatznummer bei jeder Etage von links nach rechts gezählt (0 bis 9). Die Pfeile sollen in der mitte angezeigt werden. Danke fürs Feedback, ich hoffe das jetzt einiges klarer ist.
  5. Hi leute, und zwar hab ich folgendes Problem. Wir haben in der Schule nen Code bekommen den wir zur Übung fertigstellen durften. Nun war der Lehrer ne lange Zeit krank und die Aufgabe ist in Vergessenheit geraten. Jetzt hatte ich mir vor paar tagen vorgenommen diese Aufgabe zur Übung zu lösen. Leider hab ich es nach langem herumprobieren nicht auf die Reihe bekommen und wäre jetzt um jede Hilfe dankbar, denn nun will ich unbedingt die Lösung haben. Theoretisch könnte ich es auf eine andere Weise irgendwie funktionsfähig machen, würde aber gerne wissen wie eine Lösung mit dem vorgegebenen Code realisierbar ist. Bei dem Programm handelt es sich um eine Parkhaussimulation, bei dem ich mit der noch fehlenden Funktion "schaltePfeile" nicht zurecht komme. Die Pfeile sollen so geschaltet werden, dass ein Kraffahrzeug zu dem von der Einfahrt her entferntesten freien Parkplatz geleitet wird. //-------Park Haus Leitsystem --ok------------------------------------------- //--------------------------------------------------------------------------- #include <iostream.h> #include <conio.h> //Prototypen void zeichneParkhaus(void); int suchefreieEtage(void); int suchefreienParkplatz(int); void einausfahrt(bool); void schaltePfeile(int, int); // Globale Datendefinition bool ab_parkhaus[3][10] = {{0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}}; bool bfrei; int ietage, iparkplatz; bool bpfeillinks0, bpfeilgeradeaus0, bpfeilrechts0; bool bpfeillinks1, bpfeilgeradeaus1, bpfeilrechts1; bool bpfeillinks2, bpfeilgeradeaus2, bpfeilrechts2; //Hauptprogramm int main(int argc, char* argv[]) { do { bfrei= (suchefreieEtage()+1); if (bfrei) { ietage=suchefreieEtage(); iparkplatz=suchefreienParkplatz(ietage); schaltePfeile(ietage, iparkplatz); zeichneParkhaus(); einausfahrt(1); clrscr(); } else { cout << "Parkhaus gesperrt!!!"<<endl; einausfahrt(0); } } while(1); return 0; } //--------------------------------------------------------------------------- // Funktionsdefinitionen void zeichneParkhaus(void) { cout << "-----------------------------------------"<<endl; for (int i=2; i>=0; i--) { // Ausgabe linke Etage for (int j=0; j <=4 ;j++) { if(ab_parkhaus[i][j]==1) { cout << " 1 "; } else { cout << " 0 "; } } //Ausgabe Pfeile switch (i) { case 0: if (bpfeillinks0==1){ cout << "<--";} else { cout << " ";} if (bpfeilgeradeaus0==1){ cout << " ^ ";} else { cout << " ";} if (bpfeilrechts0==1){ cout << "-->";} else { cout << " ";} break; case 1: if (bpfeillinks1==1){ cout << "<--";} else { cout << " ";} if (bpfeilgeradeaus1==1){ cout << " ^ ";} else { cout << " ";} if (bpfeilrechts1==1){ cout << "-->";} else { cout << " ";} break; case 2: if (bpfeillinks2==1){ cout << "<--";} else { cout << " ";} if (bpfeilgeradeaus2==1){ cout << " ^ ";} else { cout << " ";} if (bpfeilrechts2==1){ cout << "-->";} else { cout << " ";} break; } // Ausgabe rechte Etage0 for (int j=5; j <=9 ;j++) { if(ab_parkhaus[i][j]==1) { cout << " 1 "; } else { cout << " 0 "; } } cout << endl; } cout << "-----------------------------------------" <<endl;; } int suchefreieEtage(void) { for(int i=2;i>=0;i--) { for(int j=0;j<=9;j++) { if(ab_parkhaus[i][j]==0) { ietage = i; return ietage; } } } return(-1); } int suchefreienParkplatz(int iEtagenNr) { for(int j=0;0<=4;j++) { if(ab_parkhaus[iEtagenNr][j]==0) { return j; } else if(ab_parkhaus[iEtagenNr][9-j]==0) { return 9-j; } } return(-1); } void einausfahrt(bool bfrei) { char ceingabe; int i, j; if (bfrei) { cout << "Einfahrt oder Ausfahrt (e/a)?" ; cin >> ceingabe; cout << endl; switch (ceingabe) { case 'e': cout<< "In welche Etage fahren Sie (0-2)?"; cin >> i; cout << endl; cout<< "In welche Box fahren Sie (0-9)?"; cin >> j; cout << endl; if ((i>=0)&&(i<=2)&&(j>=0)&&(j<=9)) { if (ab_parkhaus[i][j]==0) { ab_parkhaus[i][j]=1; } else { cout << "Parkplatz schon belegt"; getchar(); } } else { cout<< "Fehlerhafte Eingabe"; } break; case 'a': cout<< "Welchen Parkplatz möchten Sie verlassen?" << endl; cout<< "Etage (0-2)?"; cin >> i; cout << endl; cout<< "Box (0-9)?"; cin >> j; cout << endl; if ((i>=0)&&(i<=2)&&(j>=0)&&(j<=9)) { if (ab_parkhaus[i][j]==1) { ab_parkhaus[i][j]=0; } else { cout << "Parkplatz ist ncoh frei"; } } else { cout<< "Fehlerhafte Eingabe"; } }; } else { cout<< "Welchen Parkplatz möchten Sie verlassen?" << endl; cout<< "Etage (0-2)?"; cin >> i; cout << endl; cout<< "Box (0-9)?"; cin >> j; cout << endl; if ((i>=0)&&(i<=2)&&(j>=0)&&(j<=9)) { if (ab_parkhaus[i][j]==1) { ab_parkhaus[i][j]=0; } else { cout << "Parkplatz ist noch frei"; } } else { cout<< "Fehlerhafte Eingabe"; } } } void schaltePfeile(int iEtagennr, int iParkplatznr) { if (iParkplatznr <5) { if(iEtagennr == 2) { bool bpfeillinks2 = 1; } else if(iEtagennr == 1) { bool bpfeillinks1 = 1; } else if(iEtagennr == 0) { bool bpfeillinks0 = 1; } } else { if(iEtagennr == 2) { bool bpfeilrechts2 = 1; } else if(iEtagennr == 1) { bool bpfeilrechts1 = 1; } else if(iEtagennr == 0) { bool bpfeilrechts0 = 1; } } // Rücksetzen der Pfeile //Schalten der Pfeile } Ich hoffe das alles einigermaßen verständlich war und bedanke mich schon einmal für eure Mühe. MFG Invisi09

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