diff --git a/Lektion 2/While_Loops/.vscode/tasks.json b/Lektion 2/While_Loops/.vscode/tasks.json new file mode 100644 index 0000000..b2fd501 --- /dev/null +++ b/Lektion 2/While_Loops/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Run Sketch", + "type": "shell", + "group": { + "kind": "build", + "isDefault": true + }, + "command": "/home/borsi/Documents/Uni/1_Semester/Prg/processing-4.3/processing-java", + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "dedicated" + }, + "args": [ + "--force", + "--sketch=${workspaceRoot}", + "--output=${workspaceRoot}/out", + "--run" + ], + "windows": { + "type": "process", + "args": [ + "--force", + { + "value": "--sketch=${workspaceRoot}", + "quoting": "strong" + }, + { + "value": "--output=${workspaceRoot}\\out", + "quoting": "strong" + }, + "--run" + ] + } + } + ] +} diff --git a/Lektion 2/While_Loops/While_Loops.pde b/Lektion 2/While_Loops/While_Loops.pde new file mode 100644 index 0000000..9733fa8 --- /dev/null +++ b/Lektion 2/While_Loops/While_Loops.pde @@ -0,0 +1,117 @@ +/* +1. Wozu benötigt einen Schleife eine Schleifenbedingung? +Wenn es keine Schleifenbedingung gibt, läuft die Schleife nicht. + +2. Warum ist die Schleifenaktion wichtig? Was passiert, wenn es keine Schleifenaktion gibt? +Nichts?????? + +3. Was bedeutet kopfgesteuert und fußgesteuert in Bezug auf Schleifen? +Bei einer kopfgesteuerten Schleife, wird die Abbruchbedingung vor dem Durchlauf geprüft, bei einer fußgesteuerten nach dem Durchlauf. +Dh. eine Fußgesteuerte Schleife läuft immer min. 1x, eine Kopfgegesteuerte >= 0x + +4. Ist dieser Code korrekt? Ist er sinnvoll? Begründe.int zaehler = 0; + while(true) { + println("Hi"); + zaehler++; + } + + Syntaktisch ist der Code Korrekt. Er enthält allerding eine Endlosschleife. + die Variable Zähler ist eine Laufvariable, welche die Durchläufe zählt. + + + +----------------------------------------Aufgaben----------------------------- +*/ + +/* +1. 2er-Schritte + Schreibe eine While-Schleife, + die eine Variable zaehler in 2er-Schritten von 0 bis 10 hochzählt. + In jeder Runde gibst du den Wert auf der Konsole aus. + + +int zaehler = 0; + +while (zaehler <= 10) { + println(zaehler); + zaehler+=2; +} +*/ + +/* +2. 2er-Schritte rückwärts +Schreibe eine While-Schleife, die eine Variable zaehler in 2er-Schritten von 10 bis 0 runterzählt. +In jeder Runde gibst du den Wert auf der Konsole aus. + +int zaehler = 10; + +while (zaehler >= 0) { + println(zaehler); + zaehler-=2; +} +*/ + + +/* +3. Hash-Zeichen +Schreibe eine While-Schleife, die eine vorgegebene Anzahl von #-Zeichen (engl. hash) auf der Konsole ausgibt. Die Anzahl wird durch +eine Variable festgelegen. + +int anzahl = 3; + +// jetzt dein Code... +In dem Code oben sollen also 3 Hashes ausgegeben werden. Wenn man die Variable anzahl auf 7 setzt, sollen 7 Hashes ausgegeben werden. + +Hinweis: Veränder die Variable anzahl nicht. Führe stattdessen eine zweite Variable i ein, um deine While-Schleife zu steuern. + +Auf der Konsole sollte nach Start dies stehen: + +### + +int i = 0; +int anzahl = 3; +while (i < anzahl) { + i++; + print("#"); +} +*/ + +/* +4. Viele Quadrate +Zeichne drei Quadrate nebeneinander. +Das erste liegt bei (10, 40) 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, +sodass du mit einer kleinen Änderung auch 5 oder 2 Quadrate zeichnen kannst. + + + + +size(1000,1000); +int anzahl = 5; +int i = 0; +int x = 0; +int size = 20; +while (i < anzahl) { + i++; + rect(x, 0, size, size); + x+=10 + size; +} +*/ + +/* +5. Teiler +Schreibe alle Zahlen im Bereich {1, ..., 49} auf die Konsole, die durch 7 teilbar sind, und alle, die durch 13 teilbar sind. +Verwende eine While-Schleife. +*/ + +/* +int i = 1; + +while(i < 50) { + if(i%7==0) + { + println(i); + } + i++; +} +*/ diff --git a/Lektion 2/While_Loops/out/While_Loops.class b/Lektion 2/While_Loops/out/While_Loops.class new file mode 100644 index 0000000..fefa6a8 Binary files /dev/null and b/Lektion 2/While_Loops/out/While_Loops.class differ diff --git a/Lektion 2/While_Loops/out/source/While_Loops.java b/Lektion 2/While_Loops/out/source/While_Loops.java new file mode 100644 index 0000000..16b4701 --- /dev/null +++ b/Lektion 2/While_Loops/out/source/While_Loops.java @@ -0,0 +1,147 @@ +/* autogenerated by Processing revision 1293 on 2023-10-05 */ +import processing.core.*; +import processing.data.*; +import processing.event.*; +import processing.opengl.*; + +import java.util.HashMap; +import java.util.ArrayList; +import java.io.File; +import java.io.BufferedReader; +import java.io.PrintWriter; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.IOException; + +public class While_Loops extends PApplet { + + public void setup() { +/* +1. Wozu benötigt einen Schleife eine Schleifenbedingung? +Wenn es keine Schleifenbedingung gibt, läuft die Schleife nicht. + +2. Warum ist die Schleifenaktion wichtig? Was passiert, wenn es keine Schleifenaktion gibt? +Nichts?????? + +3. Was bedeutet kopfgesteuert und fußgesteuert in Bezug auf Schleifen? +Bei einer kopfgesteuerten Schleife, wird die Abbruchbedingung vor dem Durchlauf geprüft, bei einer fußgesteuerten nach dem Durchlauf. +Dh. eine Fußgesteuerte Schleife läuft immer min. 1x, eine Kopfgegesteuerte >= 0x + +4. Ist dieser Code korrekt? Ist er sinnvoll? Begründe.int zaehler = 0; + while(true) { + println("Hi"); + zaehler++; + } + + Syntaktisch ist der Code Korrekt. Er enthält allerding eine Endlosschleife. + die Variable Zähler ist eine Laufvariable, welche die Durchläufe zählt. + + + +----------------------------------------Aufgaben----------------------------- +*/ + +/* +1. 2er-Schritte + Schreibe eine While-Schleife, + die eine Variable zaehler in 2er-Schritten von 0 bis 10 hochzählt. + In jeder Runde gibst du den Wert auf der Konsole aus. + + +int zaehler = 0; + +while (zaehler <= 10) { + println(zaehler); + zaehler+=2; +} +*/ + +/* +2. 2er-Schritte rückwärts +Schreibe eine While-Schleife, die eine Variable zaehler in 2er-Schritten von 10 bis 0 runterzählt. +In jeder Runde gibst du den Wert auf der Konsole aus. + +int zaehler = 10; + +while (zaehler >= 0) { + println(zaehler); + zaehler-=2; +} +*/ + + +/* +3. Hash-Zeichen +Schreibe eine While-Schleife, die eine vorgegebene Anzahl von #-Zeichen (engl. hash) auf der Konsole ausgibt. Die Anzahl wird durch +eine Variable festgelegen. + +int anzahl = 3; + +// jetzt dein Code... +In dem Code oben sollen also 3 Hashes ausgegeben werden. Wenn man die Variable anzahl auf 7 setzt, sollen 7 Hashes ausgegeben werden. + +Hinweis: Veränder die Variable anzahl nicht. Führe stattdessen eine zweite Variable i ein, um deine While-Schleife zu steuern. + +Auf der Konsole sollte nach Start dies stehen: + +### + +int i = 0; +int anzahl = 3; +while (i < anzahl) { + i++; + print("#"); +} +*/ + +/* +4. Viele Quadrate +Zeichne drei Quadrate nebeneinander. +Das erste liegt bei (10, 40) 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, +sodass du mit einer kleinen Änderung auch 5 oder 2 Quadrate zeichnen kannst. + + + + +size(1000,1000); +int anzahl = 5; +int i = 0; +int x = 0; +int size = 20; +while (i < anzahl) { + i++; + rect(x, 0, size, size); + x+=10 + size; +} +*/ + +/* +5. Teiler +Schreibe alle Zahlen im Bereich {1, ..., 49} auf die Konsole, die durch 7 teilbar sind, und alle, die durch 13 teilbar sind. +Verwende eine While-Schleife. +*/ +/* +*/ +int i = 1; + +while(i < 50) { + if(i%7==0) + { + println(i); + } + i++; +} + + noLoop(); + } + + static public void main(String[] passedArgs) { + String[] appletArgs = new String[] { "While_Loops" }; + if (passedArgs != null) { + PApplet.main(concat(appletArgs, passedArgs)); + } else { + PApplet.main(appletArgs); + } + } +}