• Keine Ergebnisse gefunden

Einführung in die Programmierung

N/A
N/A
Protected

Academic year: 2022

Aktie "Einführung in die Programmierung"

Copied!
37
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Einführung in die Programmierung

by André Karge

Übung - Verzweigungen und Schleifen

Einführung in die Programmierung | WS18/19 | André Karge 1/23

(2)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

letzte Woche

Primitives

Command Line I/O

Operatoren

Casting

Methoden

(3)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

diese Woche

Besprechung Übungsblatt 01

Verzweigungen

Schleifen

Übungsblatt 02

Einführung in die Programmierung | WS18/19 | André Karge 3/23

(4)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Übungsblatt 01

(5)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Übungsblatt 01

Aufgabe 01

Beispiel an der Tafel

Aufgabe 02 Eclipse Code

Aufgabe 03

Vorrechnung an der Tafel

Richtigstellung -132 in 8bit

Die Zahl -132 ist natürlich nicht mit 8bit inklusive Vorzeichenbit darstellbar. Der Versuch diese Zahl mit nur 7bit darzustellen ist daher nicht möglich.

Deswegen fließt die Antwort von Aufgabe 3.a.iii) nicht mit in die Bewertung ein.

Einführung in die Programmierung | WS18/19 | André Karge 5/23

(6)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Übungsblatt 01

Aufgabe 01

Beispiel an der Tafel

Aufgabe 02 Eclipse Code

Aufgabe 03

Vorrechnung an der Tafel

Richtigstellung -132 in 8bit

Die Zahl -132 ist natürlich nicht mit 8bit inklusive Vorzeichenbit darstellbar. Der Versuch diese Zahl mit nur 7bit darzustellen ist daher nicht möglich.

Deswegen fließt die Antwort von Aufgabe 3.a.iii) nicht mit in die Bewertung ein.

(7)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Übungsblatt 01

Aufgabe 01

Beispiel an der Tafel

Aufgabe 02 Eclipse Code

Aufgabe 03

Vorrechnung an der Tafel

Richtigstellung -132 in 8bit

Die Zahl -132 ist natürlich nicht mit 8bit inklusive Vorzeichenbit darstellbar. Der Versuch diese Zahl mit nur 7bit darzustellen ist daher nicht möglich.

Deswegen fließt die Antwort von Aufgabe 3.a.iii) nicht mit in die Bewertung ein.

Einführung in die Programmierung | WS18/19 | André Karge 5/23

(8)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Übungsblatt 01

Aufgabe 01

Beispiel an der Tafel

Aufgabe 02 Eclipse Code

Aufgabe 03

Vorrechnung an der Tafel

Richtigstellung -132 in 8bit

Die Zahl -132 ist natürlich nicht mit 8bit inklusive Vorzeichenbit darstellbar.

Der Versuch diese Zahl mit nur 7bit darzustellen ist daher nicht möglich.

Deswegen fließt die Antwort von Aufgabe 3.a.iii) nicht mit in die Bewertung ein.

(9)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Verzweigungen

Einführung in die Programmierung | WS18/19 | André Karge 6/23

(10)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Verzweigung - Insel 2.5

Definition

Kontrollstrukturen um Teile von Programmen nur unter bestimmten Bedingungen auszuführen.

Konstrukte:

if Verzweigung

if-else Verzweigung

switch-case Verzweigung

(11)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Verzweigungen - if -Verzweigung - Insel 2.5.1

Generelle if-Verzweigung

if ( Bedingung ) {

// Befehls-Block, der beim Erfüllen der Bedingung ausgeführt wird }

else { // else + Block ist Optinal

// Befehls-Block, der beim Nichterfüllen der Bedingung ausgeführt wird }

Beispiel

if (true) {

System.out.println("Verzweigung erreicht");

}

if (false) { // Bedingung ist false -> if(Bedingung) wird nur ausgeführt, wenn Bedingung true ist System.out.println("Wird nicht erreicht");

}

else { // Bedingung ist false -> else wird nur ausgeführt, wenn Bedingung false ist System.out.println("Wird erreicht");

}

Einführung in die Programmierung | WS18/19 | André Karge 8/23

(12)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Verzweigungen - if -Verzweigung - Insel 2.5.1

Nutzung von Bedingungen

Hier kommen die logischen Operatoren in Benutzung

// Gibt die Differenz zwischen zwei Zahlen aus int getDifference(int a, int b) {

// Wenn b größer oder gleich a -> ziehe linke Zahl von rechter ab if (a <= b) {

return b - a;

}

// Ansonsten ziehe rechte Zahl von linker ab else {

return a - b;

}

}

(13)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Zusammengesetzte Bedingung

// logisches UND

if (Bedingung1 & Bedingung2) {

// Block wird nur ausgeführt, wenn beide Bedingungen erfüllt sind }

// logisches ODER

if (Bedingung1 | Bedingung2) {

// Block wird ausgeführt, wenn eine der Bedingungen erfüllt ist }

// Verschachtelung von Bedingungen

if (Bedingung1 & (Bedingung2 | (Bedingung3 & Bedingung4)) & Bedingung5) // Beispiel:

int a = 15;

if (3 < 5 & (15 >= a | (2 == 2 & 5 == 4)) & 42 > a) { System.out.println("Bedingung erfüllt!");

} else {

System.out.println("Bedingung nicht erfüllt!");

}

Frage: Wird die Bedingung erfüllt oder nicht?

Antwort: (true & (true | (true & false)) & true) = true

Einführung in die Programmierung | WS18/19 | André Karge 10/23

(14)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Zusammengesetzte Bedingung

// logisches UND

if (Bedingung1 & Bedingung2) {

// Block wird nur ausgeführt, wenn beide Bedingungen erfüllt sind }

// logisches ODER

if (Bedingung1 | Bedingung2) {

// Block wird ausgeführt, wenn eine der Bedingungen erfüllt ist }

// Verschachtelung von Bedingungen

if (Bedingung1 & (Bedingung2 | (Bedingung3 & Bedingung4)) & Bedingung5) // Beispiel:

int a = 15;

if (3 < 5 & (15 >= a | (2 == 2 & 5 == 4)) & 42 > a) { System.out.println("Bedingung erfüllt!");

} else {

System.out.println("Bedingung nicht erfüllt!");

}

Frage: Wird die Bedingung erfüllt oder nicht?

Antwort: (true & (true | (true & false)) & true) = true

(15)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Zusammengesetzte Bedingung

// logisches UND

if (Bedingung1 & Bedingung2) {

// Block wird nur ausgeführt, wenn beide Bedingungen erfüllt sind }

// logisches ODER

if (Bedingung1 | Bedingung2) {

// Block wird ausgeführt, wenn eine der Bedingungen erfüllt ist }

// Verschachtelung von Bedingungen

if (Bedingung1 & (Bedingung2 | (Bedingung3 & Bedingung4)) & Bedingung5) // Beispiel:

int a = 15;

if (3 < 5 & (15 >= a | (2 == 2 & 5 == 4)) & 42 > a) { System.out.println("Bedingung erfüllt!");

} else {

System.out.println("Bedingung nicht erfüllt!");

}

Frage: Wird die Bedingung erfüllt oder nicht?

Antwort: (true & (true | (true & false)) & true) = true

Einführung in die Programmierung | WS18/19 | André Karge 10/23

(16)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Verzweigungen - Mehrfachverzweigung - Insel 2.5.2

Wenn man mit einer Verzweigung mehr als nur 2 unterschiedliche Fälle abdecken möchte

Bspw.: Annahme von 3 Fällen (Kind, Jugendlicher, Erwachsener) jenachdem, welches Alter ein Nutzer hat, soll eine von 3 Ausgaben gezeigt werden

void zeigeAusgabe(int alter) { if (alter < 10) {

System.out.println("Die Legokiste ist hinten rechts");

}

else if (alter >= 10 && alter < 18) {

System.out.println("Die Playstation ist hinten links");

}

else { // nur noch Zahlen >= 18 übrig, daher müssen wir das nicht mehr angeben System.out.println("Das Bier ist im Kühlschrank");

}

}

(17)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Bedingungsvarianten

Bedingungen, die durch einfaches ”&”getrennt sind, werden alle der Reihe nach geprüft und ihr Wahrheitswert berechnet

Bedingungen, die durch doppeltes ”&&”getrennt sind, werden so lange der Reihe nach geprüft, bis ein Ausdruck false ist. Alle folgenden Ausdrücke werden ignoriert

selbiges gilt auch für den ODER Operator | (| vs. ||)

Einführung in die Programmierung | WS18/19 | André Karge 12/23

(18)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Verzweigungen - Switch-Case - Insel 2.5.4

Switch-Case Verzweigung löst das Problem von zu vielen Mehrfachverzweigungen.

switch ( meineVariable ) { case 1:

// Ausführung wenn meineVariable == 1 System.out.println("first case");

break;

case 2:

// Ausführung wenn meineVariable == 2:

System.out.println("first case");

break;

default:

System.out.println("wenn weder case 1 noch case 2 eintreffen");

}

Wichtig: break; am Ende jedes Cases verhindert Ausführung von mehreren Cases

(19)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Verzweigungen - Switch-Case - Insel 2.5.4

Switch-Case Verzweigung löst das Problem von zu vielen Mehrfachverzweigungen.

switch ( meineVariable ) { case 1:

// Ausführung wenn meineVariable == 1 System.out.println("first case");

break;

case 2:

// Ausführung wenn meineVariable == 2:

System.out.println("first case");

break;

default:

System.out.println("wenn weder case 1 noch case 2 eintreffen");

}

Wichtig: break; am Ende jedes Cases verhindert Ausführung von mehreren Cases

Einführung in die Programmierung | WS18/19 | André Karge 13/23

(20)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Schleifen

(21)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Schleifen - Insel 2.6

Definition

Eine Schleife ist ein Programmkonstrukt, das dazu dient bestimmte Anweisungen mehrfach abzuarbeiten.

Sie besteht aus einer Schleifenbedingung und einem Schleifenkörper.

Konstrukte:

while-Schleife

do-while-Schleife

for-Schleife

Einführung in die Programmierung | WS18/19 | André Karge 15/23

(22)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

While Schleife - Insel 2.6.1

While = Abweisende Schleife

Schleifenbedingung muss vor erstem Abarbeiten erfüllt sein

vor jedem Schleifendurchlauf wird die Bedingung geprüft

int i = 0;

while (i < 10) { // Prüfen der Bedingung bei jedem Ausführen System.out.println("aktueller Durchlauf: " + i);

i++;

// Springe wieder in die Zeile der Bedingung }

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 10x - Zahlen von 0 - 9

(23)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

While Schleife - Insel 2.6.1

While = Abweisende Schleife

Schleifenbedingung muss vor erstem Abarbeiten erfüllt sein

vor jedem Schleifendurchlauf wird die Bedingung geprüft

int i = 0;

while (i < 10) { // Prüfen der Bedingung bei jedem Ausführen System.out.println("aktueller Durchlauf: " + i);

i++;

// Springe wieder in die Zeile der Bedingung }

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 10x - Zahlen von 0 - 9

Einführung in die Programmierung | WS18/19 | André Karge 16/23

(24)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

While Schleife - Insel 2.6.1

While = Abweisende Schleife

Schleifenbedingung muss vor erstem Abarbeiten erfüllt sein

vor jedem Schleifendurchlauf wird die Bedingung geprüft

int i = 0;

while (i < 10) { // Prüfen der Bedingung bei jedem Ausführen System.out.println("aktueller Durchlauf: " + i);

i++;

// Springe wieder in die Zeile der Bedingung }

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 10x - Zahlen von 0 - 9

(25)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

While Schleife - Insel 2.6.1

int i = 42;

while (i < 10) { // Prüfen der Bedingung bei jedem Ausführen System.out.println("aktueller Durchlauf: " + i);

i++;

// Springe wieder in die Zeile der Bedingung }

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output? Antwort: 0x - kein Output

Einführung in die Programmierung | WS18/19 | André Karge 17/23

(26)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

While Schleife - Insel 2.6.1

int i = 42;

while (i < 10) { // Prüfen der Bedingung bei jedem Ausführen System.out.println("aktueller Durchlauf: " + i);

i++;

// Springe wieder in die Zeile der Bedingung }

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 0x - kein Output

(27)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

While Schleife - Insel 2.6.1

int i = 42;

while (i < 10) { // Prüfen der Bedingung bei jedem Ausführen System.out.println("aktueller Durchlauf: " + i);

i++;

// Springe wieder in die Zeile der Bedingung }

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 0x - kein Output

Einführung in die Programmierung | WS18/19 | André Karge 17/23

(28)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Do-While Schleife - Insel 2.6.2

Do-While = Annehmende Schleife

Schleifenbedingung muss am Ende des Blocks erfüllt sein um ihn erneut auszuführen

wird immer mindestens einmal ausgeführt

int i = 0;

do {

System.out.println("aktueller Durchlauf: " + i);

i++

} while(i < 10);

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 10x - Zahlen von 0-9

(29)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Do-While Schleife - Insel 2.6.2

Do-While = Annehmende Schleife

Schleifenbedingung muss am Ende des Blocks erfüllt sein um ihn erneut auszuführen

wird immer mindestens einmal ausgeführt

int i = 0;

do {

System.out.println("aktueller Durchlauf: " + i);

i++

} while(i < 10);

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 10x - Zahlen von 0-9

Einführung in die Programmierung | WS18/19 | André Karge 18/23

(30)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Do-While Schleife - Insel 2.6.2

Do-While = Annehmende Schleife

Schleifenbedingung muss am Ende des Blocks erfüllt sein um ihn erneut auszuführen

wird immer mindestens einmal ausgeführt

int i = 0;

do {

System.out.println("aktueller Durchlauf: " + i);

i++

} while(i < 10);

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 10x - Zahlen von 0-9

(31)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Do-While Schleife - Insel 2.6.2

int i = 42;

do {

System.out.println("aktueller Durchlauf: " + i);

i++

} while(i < 10);

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output? Antwort: 1x - Zahl 42

Einführung in die Programmierung | WS18/19 | André Karge 19/23

(32)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Do-While Schleife - Insel 2.6.2

int i = 42;

do {

System.out.println("aktueller Durchlauf: " + i);

i++

} while(i < 10);

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 1x - Zahl 42

(33)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Do-While Schleife - Insel 2.6.2

int i = 42;

do {

System.out.println("aktueller Durchlauf: " + i);

i++

} while(i < 10);

Frage: Wie häufig wird die Schleife durchlaufen? Was ist der Output?

Antwort: 1x - Zahl 42

Einführung in die Programmierung | WS18/19 | André Karge 19/23

(34)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

For Schleife - Insel 2.6.3

Spezielle Variante der While Schleife

For Schleife = Abweisende Schleife

Hat einen komplexeren Schleifenkopf als die While Schleife

Schleifenkopf

for (Initialisierung; Schleifenbedingung; Schleifen-Inkrement) {...}

Initialisierung: Schleifenvariable (vgl. int i = 0; der while und der do-while Schleife)

Schleifenbedingung: Bedingung für Eintritt und erneutes Ausführen der Schleife (vgl. (i< 10) der while und der do-while Schleife)

Schleifen-Inkrement: Wie soll die Schleifenvariable am Ende jedes Durchlaufes verändert

werden (vgl. i++; der while und der do-while Schleife)

(35)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Beispiel For Schleife

for (int i=0; i<10; i++) {

System.out.println("aktueller Durchlauf: " + i);

}

Selbes Beispiel als While Schleife

int i = 0;

while(i<10) {

System.out.println("aktueller Durchlauf: " + i);

i++;

}

Wir sparen 2 Zeilen mit einem For Loop

Einführung in die Programmierung | WS18/19 | André Karge 21/23

(36)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Programmierbeispiel

Aufgabe

Schreiben Sie eine Methode, mit der Sie Pyramiden auf der Konsole ausgeben können.

Die länge der Grundfläche soll per Parameter regelbar sein.

Zudem soll ein weiterer Parameter steuern, ob die Pyramide auf dem Kopf steht oder nicht.

Beispiel:

printPyramid(5, false);

> #

> ###

> #####

printPyramid(5, true);

> #####

> ###

> #

(37)

Einführung in die Programmierung: by André Karge,Übung - Verzweigungen und Schleifen Bauhaus-Universität Weimar

Fragen?

Einführung in die Programmierung | WS18/19 | André Karge 23/23

Referenzen

ÄHNLICHE DOKUMENTE

• Man kann sich bei Generics merken: Man nutzt Platzhalter (&lt;Typ&gt;) an bestimmten Stellen im Code, den man für verschiedene Typen nutzen möchte. • Bei der Nutzung beschreibt

• die erste Methode erhält einen Parameter und berechnet die Fläche für ein Quadrat. • die zweite Methode erhält zwei Parameter und berechnet die Fläche für

▶ eine Liste aus Variablen (mit Komma getrennt), die in die Methode gegeben werden (brauchen einen Typen und einen Bezeichner).. Einführung in die Programmierung: by André Karge,Übung

// Es wird kein Zustand von vorhandenen Objekten geändert - static public static final Complex add(Complex z1, Complex z2) {. return new Complex(z1.real + z2.real, z1.imag +

private Node front; // Referenz auf das erste Element in der Liste private Node rear; // Referenz auf das letzte Element in der Liste private int nodeCount; // Übersicht, wie

Schreiben Sie Ihre einfach verkettete Liste von letzter Woche um, dass sie anstelle von integer einen Generic Datentypen abspeichert. Testen sie diese generische Liste mit den

• protected = Attribut / Methode einer Klasse mit diesem Keyword sind von allen anderen Klassen nicht sichtbar, außer von child-Klassen.. • private = Attribut / Methode einer Klasse

public class Node &lt;meinVariablerTyp&gt; { // &lt;...&gt; gibt an, dass die Klasse einen generic verwendet private meinVariablerTyp data; // Inhalt von unserem noch nicht