einstieg:geschachtelt:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
einstieg:geschachtelt:start [2020/06/26 10:14] – [Beispiel 2: Stern-Dreieck] Martin Pabst | einstieg:geschachtelt:start [2020/07/08 16:19] – Martin Pabst | ||
---|---|---|---|
Zeile 147: | Zeile 147: | ||
</ | </ | ||
+ | <WRAP center round todo 60%> | ||
+ | Die Tabelle sieht noch nicht perfekt aus, weil die Zahlen unterschiedlich breit sind: | ||
+ | < | ||
+ | 1 2 3 4 5 6 7 8 9 10 | ||
+ | 2 4 6 8 10 12 14 16 18 20 | ||
+ | 3 6 9 12 15 18 21 24 27 30 | ||
+ | 4 8 12 16 20 24 28 32 36 40 | ||
+ | 5 10 15 20 25 30 35 40 45 50 | ||
+ | 6 12 18 24 30 36 42 48 54 60 | ||
+ | 7 14 21 28 35 42 49 56 63 70 | ||
+ | 8 16 24 32 40 48 56 64 72 80 | ||
+ | 9 18 27 36 45 54 63 72 81 90 | ||
+ | 10 20 30 40 50 60 70 80 90 100 | ||
+ | </ | ||
+ | Im Kapitel zur Wenn-Dann-Anweisung werden wir [[wenndann: | ||
+ | </ | ||
Zeile 152: | Zeile 168: | ||
Bisher können wir zwar nur Zeichen auf dem Bildschirm ausgeben (Computergrafik und Spieleprogrammierung kommt auch noch, versprochen!), | Bisher können wir zwar nur Zeichen auf dem Bildschirm ausgeben (Computergrafik und Spieleprogrammierung kommt auch noch, versprochen!), | ||
< | < | ||
- | * | + | * |
- | ** | + | ** |
- | *** | + | *** |
- | **** | + | **** |
***** | ***** | ||
****** | ****** | ||
+ | ******* | ||
******** | ******** | ||
+ | ********* | ||
+ | ********** | ||
+ | *********** | ||
+ | ************ | ||
</ | </ | ||
Zeile 166: | Zeile 187: | ||
<script type=" | <script type=" | ||
- | for(int | + | for(int |
- | | + | |
print(" | print(" | ||
} | } | ||
Zeile 177: | Zeile 198: | ||
</ | </ | ||
- | <WRAP center round tip 80%> | + | ===== Aufgaben: ===== |
- | Der Wert der Variable ' | + | 1. Ändere das Programm so ab, dass die Pyramide auf dem Kopf steht, also so: |
- | **Probiere es aus,** indem Du die '' | + | < |
- | </WRAP> | + | ************ |
+ | *********** | ||
+ | ********** | ||
+ | ********* | ||
+ | ******** | ||
+ | ******* | ||
+ | ****** | ||
+ | ***** | ||
+ | **** | ||
+ | *** | ||
+ | ** | ||
+ | * | ||
+ | </code> | ||
- | Um die komplette Einmaleinstabelle auszugeben, müssen wir den obigen Programmteil zuerst für '' | + | [[.loesungen:aufgabe1: |
- | <HTML> | + | <hidden Lösung> |
+ | <code learnj> | ||
- | <div class=" | + | </code> |
+ | </ | ||
+ | \\ | ||
+ | 2. Ändere das Programm so ab, dass die Pyramide zentriert erscheint, also so: | ||
+ | < | ||
+ | * | ||
+ | *** | ||
+ | ***** | ||
+ | | ||
+ | ********* | ||
+ | | ||
+ | </ | ||
+ | **Tipps:** | ||
+ | * Jede Reihe besteht jetzt aus einer ungeraden Anzahl von Sternen. Die Variable | ||
+ | * Vor jeder Reihe von Sternen stehen unterschiedlich viele Leerzeichen. Wie kann man die Anzahl der Leerzeichen aus der Anzahl der Sterne ( = Reihennummer) berechnen? Dazu eine Hilfstabelle: | ||
- | <script type=" | + | ^ Reihe ^ Anzahl von Sternen ^ Anzahl von Leerzeichen ^ |
- | int e = 1; | + | |1|1|6| |
- | for(int i = 1; i <= 10; i++){ | + | |3|3|5| |
- | print(e * i + " "); | + | |5|5|7| |
- | } | + | ... |
- | println(); | + | |
- | e = 2; | + | |
- | for(int i = 1; i <= 10; i++){ | + | [[.pyramidezentriert: |
- | | + | |
- | } | + | |
- | println(); | + | |
- | e = 3; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | println(); | ||
- | |||
- | e = 4; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | println(); | ||
- | |||
- | e = 5; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | println(); | ||
- | |||
- | e = 6; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | println(); | ||
- | |||
- | e = 7; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | println(); | ||
- | |||
- | e = 8; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | println(); | ||
- | |||
- | e = 9; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | println(); | ||
- | |||
- | e = 10; | ||
- | for(int i = 1; i <= 10; i++){ | ||
- | | ||
- | } | ||
- | </ | ||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | <WRAP center round todo 80%> | ||
- | **War' | ||
- | Eigentlich ist die Aufgabe jetzt schon gelöst: Die Einmaleinstabelle wird korrekt ausgegeben. Trotzdem hoffe ich, dass Ihr mit der gefundenen Lösung genauso unzufrieden seid wie ich: | ||
- | * Der Code ist hochgradig **[[https:// | ||
- | * Wenn wir später in der for-Schleife etwas ändern wollen (z.B. weil wir einen Fehler entdeckt haben), dann müssen wir es **10-Mal ausbessern**. | ||
- | * Das Programm **belegt sehr viel Speicherplatz**. | ||
- | \\ \\ | ||
- | Es muss doch möglich sein, den Computer anzuweisen, den Programmblock aus dem ersten Beispiel oben einfach 10-mal zu wiederholen! | ||
- | </ | ||
- | |||
- | == Bessere Lösung: zwei ineinandergeschachtelte Schleifen == | ||
- | < | ||
- | |||
- | <div class=" | ||
- | |||
- | <script type=" | ||
- | for(int e = 1; e <= 10; e++){ | ||
- | | ||
- | print(e * i + " "); | ||
- | } | ||
- | | ||
- | } | ||
- | </ | ||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | <WRAP center round tip 80%> | ||
- | Schiebe den Geschwindigkeitsregler (neben dem Startbutton) auf ca. 6 Schritte pro Sekunde und führe das Programm aus. Wenn das Programm langsam genug ausgeführt wird, wird die gerade ausgeführte Anweisung jeweils grün hinterlegt. | ||
- | * Beobachte, nach welchem Muster der grüne Balken sich durchs Programm bewegt! | ||
- | * Führe das Programm auch im Einzelschritt bei geöffnetem Tab " | ||
- | </ | ||
einstieg/geschachtelt/start.txt · Zuletzt geändert: 2021/12/29 11:29 von 127.0.0.1