Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Programmierung 2 » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (7): « erste ... « vorherige 5 6 [7] Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Programmierung 2
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich weiss das hier meine Idee nicht ganz so richtig ist.
Aber das sind irgendwie die Gedankengänge die ich hier rein geschrieben habe.

Für die X Koordinate muss ich ja die for schleife über die X Werte gehen lassen ,daher habe ich getX genommen.

Aber das zeigt nur Fehler großes Grinsen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
void CRectangle::draw(CScreen& screen) const
{
	for(int getX() = 0; getX()>0 ; getX()++){


		setPoint(m_x,#);
	}
}



Ich hoffe der Code hat wenigstens bisschen Logik?
19.09.2017 09:58
Victor
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Kannst du mir noch weiter helfen string ?
Besser bisschen Hilfe von dir als gar keine großes Grinsen
Ohne deine Hilfe schaffe ich gar nichts
19.09.2017 20:35
as_string as_string ist männlich
Tripel-As


Dabei seit: 06.11.2013
Beiträge: 246
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das hier:
code:
1:
for(int getX() = 0; getX()>0 ; getX()++){...}

Ist in so vieler Hinsicht falsch und blödsinnig, dass ich gar nicht weiß, wo ich anfangen soll.
getX() ist doch keine Variable (genauer: kein LValue), der Du eine 0 zuweisen könntest oder die Du eins hochzählen könntest!
Warum sollte die Schleife bei 0 anfangen?
Was sollte die Bedingung ">0" bringen? Das ist beim ersten Durchlauf dann ja nie wahr, wenn Du vorher den Schleifenzähler mit 0 initialisiert hast!

Für mich zeigt das, dass Du noch nicht mal mit so eine grundlegende Sache wie eine for-Schleife auch nicht im Ansatz verstanden hast.
Lass uns deshalb mal anders anfangen. Nehmen wir als Beispiel das Rechteck mit den Ecken (5,5) und (15,25). Um dieses Rechteck zeichnen zu können, müssen wir die Methode setPoint(x, y, c) ja mehrfach aufrufen, und zwar für jeden einzelnen "Punkt" innerhalb dieses Rechtecks.
Wir müssen also z. B. die erste Zeile des Rechtecks zeichnen, indem wir für alle Punkte mit den Koordinaten 5 bis 15 für den x-Wert und 5 für den y-Wert aufrufen.
Also prinzipiell muss das hier ausgeführt werden:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
screen.setPoint( 5, 5, '#');
screen.setPoint( 6, 5, '#');
screen.setPoint( 7, 5, '#');
screen.setPoint( 8, 5, '#');
screen.setPoint( 9, 5, '#');
screen.setPoint(10, 5, '#');
screen.setPoint(11, 5, '#');
screen.setPoint(12, 5, '#');
screen.setPoint(13, 5, '#');
screen.setPoint(14, 5, '#');
screen.setPoint(15, 5, '#');

Das würde eine horizontale Linie mit den dem Füllzeichen '#' ausgeben. So könnten wir jetzt Zeile für Zeile weiter machen, also nochmal diese ganzen Anweisungen allerdings mit einer 6 für die y-Koordinate. Und so weiter bis zur 25 in der y-Koordinate.

Das wäre natürlich nicht sehr flexibel, weil man ja für unterschiedliche Rechtecke direkt den kompletten Quellcode ändern müsste. Deshalb wollen wir das mit Schleifen lösen, die flexibel die Anweisungen passend zu den Eckpunkten "generieren".

Deshalb für Dich zuerst mal eine einfache Aufgabe: Schreibe mir einfach mal eine for-Schleife auf für die erste Zeile. Verwende als Laufvariable einfach ein "i" und schreibe die ganzen Zahlen einfach zuerst fix rein. Das können wir dann später noch besser machen. Ich stelle mir also sowas vor:
code:
1:
2:
3:
4:
5:
for(...) {
    screen.setPoint(i, 5, '#');
}

Was muss in der Klammer hinter "for" statt der Pünktchen stehen, damit i der Reihe nach mit den Zahlen 5 bis 15 belegt wird?

Gruß
Marco
20.09.2017 22:03 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
as_string as_string ist männlich
Tripel-As


Dabei seit: 06.11.2013
Beiträge: 246
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe gerade nochmal die Aufgabe angeschaut. Da ist der zweite Eckpunkt nicht (15,25) sondern (25,15). Das hatte ich falsch in Erinnerung. Das spielt aber letztlich keine wichtige Rolle im Moment. Du kannst meinetwegen den einen oder den anderen nehmen, wie Du möchtest...

Gruß
Marco
20.09.2017 22:06 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Seiten (7): « erste ... « vorherige 5 6 [7] Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Programmierung 2