Lernpfad:Einführung in Processing/14: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
{{NNavigation}} | {{NNavigation}} | ||
{{Tldr:Start|Was du in diesem Schritt lernst|Icon=Icon Chalk board.png}} | |||
* ''Logische Verknüpfungen'' | |||
{{Tldr:End}} | |||
In {{Pfad|11|bedingten Anweisungen}} und {{Pfad|13|bedingten Schleifen}} kontrolliert eine ''Bedingung'', welche Befehle als Nächstes ausgeführt werden. ''Bedingungen'' in {{Java}} sind Ausdrücke, die entweder ''wahr'' (<code>true</code>) oder ''falsch'' (<code>false</code>). <code>true</code> und <code>false</code> nennt man ''Wahrheitswerte''. Sie werden in {{Java}} mit dem Schlüsselwort <code>boolean</code> gekennzeichnet. | In {{Pfad|11|bedingten Anweisungen}} und {{Pfad|13|bedingten Schleifen}} kontrolliert eine ''Bedingung'', welche Befehle als Nächstes ausgeführt werden. ''Bedingungen'' in {{Java}} sind Ausdrücke, die entweder ''wahr'' (<code>true</code>) oder ''falsch'' (<code>false</code>). <code>true</code> und <code>false</code> nennt man ''Wahrheitswerte''. Sie werden in {{Java}} mit dem Schlüsselwort <code>boolean</code> gekennzeichnet. |
Version vom 11. Februar 2022, 23:32 Uhr
- Logische Verknüpfungen
In bedingten Anweisungen und bedingten Schleifen kontrolliert eine Bedingung, welche Befehle als Nächstes ausgeführt werden. Bedingungen in Java sind Ausdrücke, die entweder wahr (true
) oder falsch (false
). true
und false
nennt man Wahrheitswerte. Sie werden in Java mit dem Schlüsselwort boolean
gekennzeichnet.
Durch Verschachtelung von Bedingungen und Schleifen können mehrere Bedingungen miteinander verknüpft werden. Zum Beispiel
wenn es heute nicht regnet wenn es windig ist gehen wir Drachen steigen lassen ende wenn ende wenn
In natürlicher Sprache würden wir uns kompakter ausdrücken:
wenn es heute '''nicht''' regnet '''und''' es windig ist
Java kennt auch solche Verknüpfungen: die logischen Verknüpfungen.
Art | Syntax | Beispiel | Beschreibung |
---|---|---|---|
UND | && |
i%2 == 0 && i < 100 |
Ist wahr, wenn die Ausdrücke links und rechts wahr sind. |
ODER | || |
i >= 10 | i <= 40 |
Ist wahr, wenn mindestens einer der Ausdrücke links und rechts wahr ist. |
NICHT | ! |
!(i == 4) |
Ist wahr, wenn der Ausdruck falsch ist. Dreht den Wahrheitswert um. (Das Beispiel kann auch als i != 4 geschrieben werden.)
|
Du kennst logische Verknüpfungen vielleicht schon von logischen Schaltungen (bzw. digitalen Schaltungen). Die Wahrheitstafeln der UND-Verknüpfung (&&
) und des UND-Gatters sind zum Beispiel genau identisch.
Wie auch bei den Schaltungen lassen sich mit den drei Basisverknüpfungen UND, ODER und NICHT komplexe Anfragen programmieren.
- Analysiere die folgenden Programmzeilen und gib eine Vermutung ab, ob das Ergebnis
true
oderfalse
ist. Probiere erst dann die Zeilen (einzeln) in Processing aus.println(width < 4000 || height < 100);
println(width < 4000 && height < 100);
println(width < 4000 && height < 4000);
println(width > 500 && height < 4000);
println(width == height || width != height);
println(width-height == height-width);
int x = 0;
void draw() {
background(0);
// Linien zum Markieren der Zone
stroke(255);
line(25, 0, 25, height);
line(75, 0, 75, height);
// hier wird animiert...
ellipse(x, 50, 20, 20);
x++;
if (x > width) {
x = 0;
}
}
- Übernimm das Programm oben in Processing und probier es aus. Du siehst zwei Linien und einen fliegenden Ball. Verwende genau eine bedingte Anweisung, um den Ball zwischen den Linien rot werden zu lassen.
- Ändere das Programm so ab, dass der Ball außerhalb des Bereichs rot wird (und innen weiß bleibt).
int x = 0;
void draw() {
background(0);
// Linien zum Markieren der Zone
stroke(255);
line(25, 0, 25, height);
line(75, 0, 75, height);
// Farbe setzen
if( x > 25 && x < 75 ) {
fill(199, 43, 0);
} else {
fill(255);
}
// hier wird animiert...
ellipse(x, 50, 20, 20);
x++;
if (x > width) {
x = 0;
}
}
float angle = 0;
void draw() {
noStroke();
// Vier Zonen
fill(0);
rect(0,0,50,50);
fill(50);
rect(50,0,50,50);
fill(100);
rect(0,50,50,50);
fill(150);
rect(50,50,50,50);
fill(255);
// hier wird animiert...
ellipse(50+25*sin(radians(angle)), 50+25*cos(radians(angle)), 20, 20);
angle += 3;
}
Übernimm das Programm oben in Processing und probier es aus. Du siehst vier Zonen und einen fliegenden Ball. Verwende bedingte Anweisungen, um den Ball in jeder Zone anders zu färben. (Wähle die Farben selbst.)
Berechne zunächst die x
- und y
-Koordinate des Kreises und prüfe danach mit if - else if - ...
Anweisungen die verschiedenen Bedingungen für die Position des Kreises.
float angle = 0;
void draw() {
noStroke();
// Vier Zonen
fill(0);
rect(0,0,50,50);
fill(50);
rect(50,0,50,50);
fill(100);
rect(0,50,50,50);
fill(150);
rect(50,50,50,50);
fill(255);
// Farbe festlegen
float x = 50+25*sin(radians(angle));
float y = 50+25*cos(radians(angle));
if( x < 50 && y < 50 ) {
fill(199, 43, 0);
} else if( x >= 50 && y < 50 ) {
fill(0, 199, 43);
} else if( x >= 50 && y >= 50 ) {
fill(43, 0, 199);
} else {
fill(255);
}
// hier wird animiert...
ellipse(x, y, 20, 20);
angle += 3;
}