Lernpfad:Einführung in Processing/13: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{NNavigation}}
{{NNameAnzeigen}}{{NNavigation}}


{{Tldr:Start|Was du in diesem Schritt lernst|Icon=Icon Chalk board.png}}
{{Tldr:Start|Was du in diesem Schritt lernst|Icon=Icon Chalk board.png}}
Zeile 45: Zeile 45:


{{Aufgabe:Start}}
{{Aufgabe:Start}}
Kopiere das Programm nach {{Processing}} und probiere es mit Hilfe des ''Debuggers'' aus.
Kopiere das Programm nach {{Processing}} und probiere es mithilfe des ''Debuggers'' aus.


Klicke dazu den runden grauen Button oben rechts an (der etwas aussieht wie ein Käfer). {{Processing}} wechselt in den Debug-Modus. Nun kannst du das Programm ''schrittweise'' ablaufen lassen. Markiere dazu Zeile 4 als ''Breakpoint'', indem du links auf die Zeilennummer klickst (die Nummer wird zu einem "Diamanten"). Wenn du nun das Programm startest, stoppt die Ausführung in Zeile 5 und zeigt dir im ''Debug-Fenster'' die Werte aller Variablen an.
Klicke dazu den runden grauen Button oben rechts an (der etwas aussieht wie ein Käfer). {{Processing}} wechselt in den Debug-Modus. Nun kannst du das Programm ''schrittweise'' ablaufen lassen. Markiere dazu Zeile 4 als ''Breakpoint'', indem du links auf die Zeilennummer klickst (die Nummer wird zu einem "Diamanten"). Wenn du jetzt das Programm startest, stoppt die Ausführung in Zeile 5 und zeigt dir im ''Debug-Fenster'' die Werte aller Variablen an.


Klicke nun den ''Weiter'' Button mehrmals und beobachte die Veränderung der Werte im kleinen ''Debug-Fenster''.
Klicke nun den ''Weiter'' Button mehrmals und beobachte die Veränderung der Werte im kleinen ''Debug-Fenster''.
Zeile 55: Zeile 55:
# Gib alle geraden Zahlen von 2 bis 100 auf der Konsole aus.
# Gib alle geraden Zahlen von 2 bis 100 auf der Konsole aus.
# Zeichnen drei Quadrate nebeneinander. Das Erste liegt bei <code>(10, 40)</code> und ist 20x20 Pixel groß. Das nächste liegt mit 10 Pixeln Abstand rechts daneben, das dritte wieder 10 Pixel rechts davon.
# Zeichnen drei Quadrate nebeneinander. Das Erste liegt bei <code>(10, 40)</code> und ist 20x20 Pixel groß. Das nächste liegt mit 10 Pixeln Abstand rechts daneben, das dritte wieder 10 Pixel rechts davon.
#: Verwende eine While-Schleife, so dass mit einer kleinen Änderung auch 5 oder 2 Quadrate gezeichnet werden können.
#: Verwende eine <code>while</code>-Schleife, sodass mit einer kleinen Änderung auch 5 oder 2 Quadrate gezeichnet werden können.
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
{{Lösung:Start}}
Zeile 68: Zeile 68:
== Zählschleifen ==
== Zählschleifen ==


Die Aufgaben oben haben alle einen ähnlichen Aufbau: Sie zählen in einer Variable von einem ''Anfangswert'' bis zu einem ''Zielwert'' mit einer festgelegten ''Schrittweite''. Da diese Art der Schleife beim Programmieren sehr häufig vorkommt, gibt es dafür ein eigenes Konstrukt: die ''Zählschleife''.
Die Aufgaben oben haben alle einen ähnlichen Aufbau: Sie zählen in einer Variable von einem ''Anfangswert'' bis zu einem ''Zielwert'' mit einer festgelegten ''Schrittweite''. Da diese Art der Schleife beim Programmieren regelmäßig vorkommt, gibt es dafür ein eigenes Konstrukt: die ''Zählschleife''.


Eine Zählschleife (oder auch <code>for</code>-Schleife) bringt alle drei Teile zusammen:
Eine Zählschleife (oder auch <code>for</code>-Schleife) bringt alle drei Teile zusammen:
Zeile 205: Zeile 205:
size(200, 200);
size(200, 200);


for( int i = 0; i < 10; i += 1 ) {
for( int i = 0; i < 5; i += 1 ) {
     for( int j = 0; j < 10; j += 1 ) {
     for( int j = 0; j < 5; j += 1 ) {
         if( (i+j)%2 == 0 ) {
         if( (i+j)%2 == 0 ) {
           fill(0);
           fill(0);
Zeile 288: Zeile 288:
     for ( int j = 0; j < 10; j += 1 ) {
     for ( int j = 0; j < 10; j += 1 ) {
       if ( i%2 == 1 ) {
       if ( i%2 == 1 ) {
         fill(0, 236, 48);
         fill(0, 198, 48);
       } else {
       } else {
         fill(236, 48, 0);
         fill(236, 48, 0);
Zeile 298: Zeile 298:
</syntaxhighlight>
</syntaxhighlight>
{{Lösung:End}}
{{Lösung:End}}
{{Zusatzaufgabe:Start}}
{{Zusatzaufgabe:Start}}
Erstelle ein ''radiales'' Muster dieser Art:
Erstelle ein ''radiales'' Muster dieser Art:
Zeile 305: Zeile 306:
Verwende auch hier verschachtelte Schleifen. Die erste bestimmt den Abstand zum Mittelpunkt, die zweite den Winkel. Nutze dann <code>sin()</code> zur Berechnung der <code>x</code>- und <code>cos()</code> für die <code>y</code>-Koordinate.
Verwende auch hier verschachtelte Schleifen. Die erste bestimmt den Abstand zum Mittelpunkt, die zweite den Winkel. Nutze dann <code>sin()</code> zur Berechnung der <code>x</code>- und <code>cos()</code> für die <code>y</code>-Koordinate.
{{Zusatzaufgabe:End}}
{{Zusatzaufgabe:End}}
{{Tipp:Start|Tipp zur Zusatzaufgabe}}
Für den nullten Kreis und den Winkel 135 Grad könntest du die Koordinaten berechnen durch:
* x: <code>i*60*sin(radians(135))</code>
* y: <code>i*60*cos(radians(135))</code>
<code>60</code> ist der Abstand zwischen zwei Ringen. Der Winkel beginnt bei 0 und zählt bis 360 hoch. Die Schrittweite wird anhand der Anzahl Kreise pro Ring bestimmt. Bei Acht Kreisen: <code>360 / 8 = 45</code>.
{{Tipp:End}}{{Lösung:Start|Lösung Zusatzaufgabe}}
<syntaxhighlight lang="java" line="1">
void setup() {
  size(400, 400);
}
void draw() {
  for ( int i = 0; i <= 3; i += 1 ) {
    for ( int j = 0; j < 360; j += 45 ) {
      ellipse(200+i*60*sin(radians(j)), 200+i*60*cos(radians(j)), 30, 30);
    }
  }
}
</syntaxhighlight>
{{Lösung:End}}
8.581

Bearbeitungen