Benutzer-Werkzeuge

Webseiten-Werkzeuge


g9:uebungen:kontrollstrukturen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
g9:uebungen:kontrollstrukturen:start [2021/01/20 19:21] – angelegt Martin Pabstg9:uebungen:kontrollstrukturen:start [2022/06/30 07:03] – [Beispiel 6: Zählen mit "for"] Martin Pabst
Zeile 1: Zeile 1:
-====== Kontrollstrukturen ======+====== Lokale Variablen, Wertzuweisung, Sequenz ====== 
 +<HTML>
  
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Variablen1'}">
 +
 +<script type="text/plain" title="Main.java">
 +int a;         // Deklaration der Variable a
 +a = 12;        // Wertzuweisung
 +
 +// Auswertung von Termen
 +println(a);
 +println(3*a + 5);
 +
 +// Im Unterschied dazu: Ausgabe einer Zeichenkette:
 +println("a");
 +println("3*a + 5");
 +</script>
 +</div>
 +
 +</HTML>
 +
 +====== Wiederholungen ====== 
 +
 + 
 +
 +===== A. Wiederholung mit Anfangsbedingung =====
 +
 +==== Beispiel 1 ====
 +Wir schreiben den Text "Hallo Welt!" 10-mal untereinander in die Ausgabe. Zuerst möchte ich Euch zeigen, wie man es **nicht** machen sollte:
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Wiederholung1'}">
 +
 +<script type="text/plain" title="Main.java">
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +println("Hallo Welt!");
 +</script>
 +</div>
 +
 +</HTML>
 +
 +Viel besser ist es, den Computer anzuweisen, die Ausgabe von "Hallo Welt!" 10-mal zu wiederholen. Das geht so:
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Wiederholung2'}">
 +
 +<script type="text/plain" title="Main.java">
 +int n = 1;
 +
 +while(n <= 10){
 +
 +   println("Hallo Welt!");
 +   n = n + 1;
 +
 +}
 +
 +println("Fertig!", Color.green);
 +
 +</script>
 +</div>
 +
 +</HTML>
 +Schalte rechts auf den "Variablen"-Tab und führe dann das Programm in Einzelschritten aus ("Step over": {{:klassen1:anwenden:step_over.png?nolink|}}). Beobachte genau den Wert der Variable ''n''!
 +
 +==== Beispiel 2: Varianten... ====
 +<HTML>
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Wiederholung3'}">
 +<script type="text/plain" title="Main.java">
 +int z = 1;
 +
 +while(z <= 12){
 +
 +   print("Das ist der ");
 +   print(z);
 +   println("-te Wiederholungsschritt.");
 +   z++;  // z wird um 1 erhöht
 +
 +}
 +</script>
 +</div>
 +
 +</HTML>
 +
 +Die drei ''print''-Anweisungen kann man übrigens auch zu einer einzigen Anweisung zusammenfassen:
 +<code learnj>
 +   println("Das ist der " + z + "-te Wiederholungsschritt");
 +</code>
 +
 +==== Beispiel 3: Zweierpotenzen ====
 +Oft ist es nützlich, noch zusätzliche Variablen zu deklarieren, die bei jedem Wiederholungsschritt geändert werden. Wir schreiben ein Programm, das die ersten 10 Zweierpotenzen ausgibt, also $2^0 = 1$, $2^1 = 2$, $2^2 = 4$, $2^3 = 8$ usw.
 +<HTML>
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Wiederholung4'}">
 +<script type="text/plain" title="Main.java">
 +int i = 0;
 +int zp = 1;
 +
 +while(i <= 10){
 +
 +   println("2 ^ " + i + " = " + zp);
 +   i++;            // i wird um 1 erhöht
 +   zp *= 2;        // Kurzform für zp = zp * 2;
 +
 +}
 +</script>
 +</div>
 +
 +</HTML>
 +
 +Schalte rechts auf den "Variablen"-Tab und führe dann das Programm in Einzelschritten aus ("Step over": {{:klassen1:anwenden:step_over.png?nolink|}}). Beobachte genau den Wert der Variablen ''i'' und ''zp''!
 +
 +<WRAP center round tip 60%>
 +{{ :einstieg:pasted:20200620-170019.png}}
 +Wenn das Programm pausiert (etwa nach Klick auf den Pause-Button oder bei der Ausführung in Einzelschritten) kannst Du den Wert von Variablen sehen, indem Du im Programmtext mit der Maus auf die Variable fährst und etwas wartest. Es öffnet sich ein Tooltip mit dem Wert der Variable (siehe Bild rechts).
 +</WRAP>
 +
 +==== Aufgaben ====
 +
 +Jetzt bis Du dran. [[:einstieg:aufgabenwhile:start|Hier findest Du vier Aufgaben zur Wiederholung mit ansteigendem Schwierigkeitsgrad. Los geht's!]]
 +
 +===== B. Die Wiederholung mit for =====
 +
 +==== Beispiel 6: Zählen mit "for" ====
 +Wir schreiben den Text "Hallo Welt!" 10-mal untereinander in die Ausgabe. Mit der Variablen ''i'' zählen wir dabei, wie oft wir ihn schon ausgegeben haben.
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Wiederholung6'}">
 +
 +<script type="text/plain" title="Main.java">
 +for(int i = 1; i <= 10; i++){
 +   println("Hallo Welt (zum " + i + "-ten Mal)!");
 +}
 +println("Fertig!", Color.lightgreen);
 +</script>
 +</div>
 +
 +</HTML>
 +
 +===== Beispiel 7: Zählen im Dreierschritt =====
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Wiederholung7'}">
 +
 +<script type="text/plain" title="Main.java">
 +println("Dreier-Einmaleins:", Color.lightgreen);
 +for(int n = 3; n <= 30; n += 3){
 +   print(n + ", ");
 +}
 +println(" -> Fertig!", Color.lightgreen);
 +</script>
 +</div>
 +
 +</HTML>
 +<WRAP center round tip 60%>
 +Du erinnerst Dich sicher: ''n += 3'' ist eine Kurzschreibweise für ''n = n + 3'' und bewirkt, dass der Wert der Variable ''n'' um ''3'' erhöht wird.
 +</WRAP>
 +
 +
 +===== Beispiel 8: Berechnung von 8! =====
 +<WRAP center round tip 80%>
 +**Berechnung von Fakultäten** \\ \\ 
 +Die **Faktultät** einer Zahl $n \in \mathbb{N}$, kurz $n!$, ist folgendermaßen definiert:
 +$$n! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot \ldots  \cdot n$$
 +Es ist beispielsweise $5! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 = 120$.
 +</WRAP>
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 300px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Wiederholung8'}">
 +
 +<script type="text/plain" title="Main.java">
 +int zahl = 8;
 +int fakultät = 1;
 +
 +for(int i = 1; i <= zahl; i++){
 +   fakultät *= i;
 +}
 +
 +println(zahl + "! = " + fakultät);
 +</script>
 +</div>
 +</HTML>
 +
 +Probiere das Programm wieder in Einzelschritten aus und schau' Dir die Belegung der Variablen nach jedem Schritt an! 
 +  * Du kannst die ''8'' in der ersten Zeile natürlich auch durch eine andere Zahl ersetzen!
 +  * Warum wird der Variablen ''fakultät'' in Zeile 2 der Startwert ''1'' zugeordnet und nicht ''0''? \\ (Falls Du nicht auf die Antwort kommst, probier' es aus, indem Du die ''1'' im Programm durch ''0'' ersetzt!)
 +
 +==== Aufgaben zur Wiederholung mit for ====
 +[[:einstieg:aufgabenfor:start|Hier geht's zu den Aufgaben.]]
g9/uebungen/kontrollstrukturen/start.txt · Zuletzt geändert: 2022/07/01 08:29 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki