Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.11.2015, 22:10

Hilfestellung / Komischer Ausdruck

Hallo,
Es geht um folgendes ich habe in dem Buch "C++ für Spieleprogrammierer" von Heiko kalista auf Seite 87 ein für mich komischen Ausdruck entdeckt.

Zwar geht es darum mehrere schleifen ineinander zu verschscheltn so weit so klar aber dann kommt dass hier:

C-/C++-Quelltext

1
2
if( (j == Breite / 2) || ( i == Hoehe / 2) )
    cout << "-";


Zur Funktion es sollen mittels zweier Schleifen eine Art Rechteck gezeichnet werden.

Allerdings verwirrt mich dieser Vergleich sehr, wie versteht ihr ihn?

Gruß
Vincent

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

12.11.2015, 22:15

Was genau verwirrt dich daran denn? Ich versteh den Ausdruck folgendermaßen: Wann immer die Schleife vertikal oder horizontal in der Mitte angekommen ist, wird ein '-' ausgegeben...

3

13.11.2015, 00:16

Für mich ist das schlecht zu verstehen. Ich verstehe die Bedingung in der Abfrage einfach nicht so wie ich das sehe ist i und j die Variable zum zahlen der Schleifedurchläufe, die Bedienung sagt aus dass i oder j gleich Höhe bzw breite sein sollen dass soll dann durch zwei geteilt werden.

Das ergibt die Mitte sehe ich das richtig? ?(

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

13.11.2015, 00:20

Der Ausdruck (j == Breite / 2) || ( i == Hoehe / 2) ist genau dann wahr, wenn j gleich der halben Breite oder i gleich der halben Hoehe ist.

Vielleicht hilft's, wenn wir das Gleiche ein bisschen anders schreiben:

C-/C++-Quelltext

1
2
if ((j == (Breite/2)) || (i == (Hoehe/2)))
    // ...

!?

5

13.11.2015, 00:23

Ne oder?
Mann bin ich blöd demnach wird erst die Operation breite bzw. Höhe durch zwei ausgewertet und dann mit i bzw j verglichen und wenn dass war ist wird die Bedienung ausgewertet... Oder?

Dann sollte ich mir mal die Operatoren Prioritäten durchlesen..

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

13.11.2015, 00:24

[...] demnach wird erst die Operation breite bzw. Höhe durch zwei ausgewertet und dann mit i bzw j verglichen und wenn dass war ist wird die Bedienung ausgewertet... Oder?

exakt

Dann sollte ich mir mal die Operatoren Prioritäten durchlesen..

hf: http://en.cppreference.com/w/cpp/languag…ator_precedence ;)

Eigentlich könnte man sogar einfach

C-/C++-Quelltext

1
2
if (j == Breite/2 || i == Hoehe/2)
    // ...

schreiben...

7

13.11.2015, 00:32

Super, ich danke dir.

Ich denke bei der letzten Möglichkeit ist es klar das als erstes die Division ausgeführt werden soll und dann verglichen werden soll oder?

Und tut Leid dass ich wegen dieser Sache einen thread eröffnet habe.

Gruß
Vincent

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

13.11.2015, 00:48

Ich denke bei der letzten Möglichkeit ist es klar das als erstes die Division ausgeführt werden soll und dann verglichen werden soll oder?

Naja, alle drei Varianten tun das gleiche... ;)

Und tut Leid dass ich wegen dieser Sache einen thread eröffnet habe.

Für was gibt's sonst ein Forum... ;)

9

13.11.2015, 00:49

Von meiner Seite, nochmals vielen dank!

Gruß Vincent :)

Werbeanzeige