• Keine Ergebnisse gefunden

Annabelle Klarl Kontrollstrukturen

N/A
N/A
Protected

Academic year: 2021

Aktie "Annabelle Klarl Kontrollstrukturen"

Copied!
16
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

WS15/16

Zentralübung zur Vorlesung

„Einführung in die Informatik: Programmierung und Softwareentwicklung“

http://www.pst.ifi.lmu.de/Lehre/wise-15-16/infoeinf

Annabelle Klarl

Einführung in die Informatik

Programmierung und Softwareentwicklung

Kontrollstrukturen

(2)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Action required now

1. Smartphone: installiere die App "socrative student" oder Laptop: öffne im Browser m.socrative.com

2. Betrete den Raum InfoEinf.

3. Beantworte die erste Frage sofort!

2

Kontrollstrukturen

(3)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufgabe 1a: Zahlen vertauschen

Gegeben seien zwei Variablen x und y vom Typ int . Vertausche die Werte dieser beiden Variablen.

3 Kontrollstrukturen

Welchen Wert haben die Variablen

x und y am Ende des Codefragments?

Raum: InfoEinf int x = 2;

int y = 4;

x = y;

y = x;

(4)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufgabe 1a: Zahlen vertauschen

Gegeben seien zwei Variablen x und y vom Typ int . Vertausche die Werte dieser beiden Variablen.

4 Kontrollstrukturen

2

x x 2 x 4 x 4

4

y y 4 y 4

Codezeile: int x = 2; int y = 4; x = y; y = x;

Veränderung des Speichers:

int x = 2;

int y = 4;

x = y;

y = x;

(5)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufgabe 1b: Zahlen vertauschen

Gegeben seien zwei Variablen x und y vom Typ int . Vertausche die Werte dieser beiden Variablen.

5 Kontrollstrukturen

2

x x 2 x 4 x 4

4

y y 4 y 2

CZ: int x = 2; int y = 4; x = y; y = tmp;

Veränderung des Speichers:

2 x

4 y

int tmp = x;

2 tmp

2

tmp tmp 2

int x = 2;

int y = 4;

int tmp = x;

x = y;

y = tmp;

(6)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Fallunterscheidung in Java

IfStatement =

"if" "(" Expression ")" Statement ["else" Statement]

Expression = Variable | Value |

| Expression BinOp Expression

| UnOp Expression

| "(" Expression ")"

Statement = VariableDeclaration

| Assignment

| Block

| Conditional

| Iteration

6 Kontrollstrukturen

vom Typ boolean

int x = 2;

x = 4;

{ ... }

(7)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Einfache Fallunterscheidungen

int alter = ?; // ? geeignet ersetzen boolean volljaehrig = false;

if (alter >= 18) volljaehrig = true;

int alter = ?; // ? geeignet ersetzen boolean volljaehrig;

if (alter >= 18) volljaehrig = true;

else volljaehrig = false;

7

Kontrollstrukturen

(8)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufgabe 2a: Mehrere Statements

Kontrollstrukturen 8

volljaehrig: false anrede: "Sie"

Wegen:

IfStatement =

"if" "(" Expression ")"

Statement ["else" Statement]

Welchen Wert haben die Variablen

volljaehrig und anrede am Ende dieses Codefragments?

int alter = 4;

boolean volljaehrig

= false;

String anrede = "du";

if (alter >= 18)

volljaehrig = true;

anrede = "Sie";

Raum: InfoEinf

(9)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Welchen Wert haben die Variablen

volljaehrig und anrede am Ende dieses Codefragments?

Aufgabe 2b: Mehrere Statements

Kontrollstrukturen 9

int alter = 4;

boolean volljaehrig

= false;

String anrede = "du";

if (alter >= 18) {

volljaehrig = true;

anrede = "Sie";

}

volljaehrig: false

anrede: "du"

(10)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufgabe 3a: Mehrere Statements pro Fall

Kontrollstrukturen 10

int alter = 4;

boolean volljaehrig

= false;

String anrede = "du";

if (alter >= 18)

volljaehrig = true;

anrede = "Sie";

else

volljaehrig = false;

anrede = "du";

Raum: InfoEinf

Welchen Wert haben die Variablen

volljaehrig und anrede am Ende dieses Codefragments?

Achtung syntaktischer Fehler:

• Nach if(Expression) muss ein Statement folgen.

• Mehrere Assignments sind kein Statement!

Wegen: IfStatement =

"if" "(" Expression ")"

Statement

["else" Statement]

(11)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufgabe 3b: Mehrere Statements pro Fall

Kontrollstrukturen 11

int alter = 4;

boolean volljaehrig

= false;

String anrede = "du";

if (alter >= 18) {

volljaehrig = true;

anrede = "Sie";

}

else {

volljaehrig = false;

anrede = "du";

}

Welchen Wert haben die Variablen

volljaehrig und anrede am Ende dieses Codefragments?

volljaehrig: false

anrede: "du"

(12)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufg 4a: Geschachtelte Fallunterscheidungen

Wir wollen überdurchschnittliche Studenten loben und “Durchfaller” zum Lernen anregen.

12 Kontrollstrukturen

Alle Studenten, die mit einer Note von 1.7 und schlechter bestanden haben. Der else -Zweig

gehört immer zum nächsten

if im selben Block.

boolean durchgefallen = ? // ? geeignet ersetzen double note = ?

// ? geeignet ersetzen String nachricht;

if (!durchgefallen) if (note <= 1.3)

nachricht = "Sehr gut!";

else

nachricht = "Lern mehr!";

Welche Studenten erhalten die Nachricht "Lern mehr"?

Raum: InfoEinf

(13)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufg 4b: Geschachtelte Fallunterscheidungen

Wir wollen überdurchschnittliche Studenten loben und “Durchfaller” zum Lernen anregen.

13 Kontrollstrukturen

boolean durchgefallen = ? // ? geeignet ersetzen double note = ?

// ? geeignet ersetzen String nachricht;

if (!durchgefallen) { if (note <= 1.3)

nachricht = "Sehr gut!";

} else

nachricht = "Lern mehr!";

Alle durchgefallenen Studenten

Welche Studenten erhalten

die Nachricht "Lern mehr"?

(14)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufg 4c: Geschachtelte Fallunterscheidungen

Wir wollen überdurchschnittliche Studenten loben und “Durchfaller” zum Lernen anregen.

14 Kontrollstrukturen

boolean durchgefallen = ? // ? geeignet ersetzen double note = ?

// ? geeignet ersetzen String nachricht;

if (durchgefallen)

nachricht = "Lern mehr!";

else

if (note <= 1.3)

nachricht = "Sehr gut!";

Raum: InfoEinf

Welche Studenten erhalten die Nachricht "Lern mehr"?

Alle durchgefallenen

Studenten

(15)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Aufg 4d: Geschachtelte Fallunterscheidungen

Wir wollen allen Studenten eine entsprechende Nachricht schicken.

15 Kontrollstrukturen

... // analog zu vorher if (durchgefallen)

nachricht = "Lern mehr!";

else if (note <= 1.3)

nachricht = "Sehr gut!";

else if (note <= 2.3) nachricht = "Gut!";

else if (note <= 3.3)

nachricht = "Befriedigend!";

else nachricht = "Ausreichend!";

(16)

Annabelle Klarl:

Einführung in die Informatik

Programmierung und Softwareentwicklung

Praktischer Tipp für Fallunterscheidungen

Immer einen Block nach if und else verwenden, um Missinterpretation zu vermeiden!

16 Kontrollstrukturen

if (durchgefallen) {

nachricht = "Lern mehr!";

}

else if (note <= 1.3) {

nachricht = "Sehr gut!";

} ...

else {

nachricht = "Ausreichend!";

}

Referenzen

ÄHNLICHE DOKUMENTE

Falls der linke Kindknoten leer ist, füge dort einen neuen Knoten ein. Ansonsten wiederhole die

In der &#34;alpha&#34; wurden eine Vielzahl von Arbeiten über die Geschichte der Mathematik veröffentlicht.. Die im folgenden chronologisch aufgelisteten, mathematikhistorischen

[r]

(a) Der Data-Frame vm zeigt die Ergebnisse aus einem Perzeptionsexperiment in dem zwei Altersgruppen (Factor Alter) mit 'lenis' oder 'fortis' (also /d/ oder /t/) beantworten mussten,

Die Zungenposition (mm) in hohen und tiefen Vokalen wurde in 10 verschiedenen Versuchspersonen gemessen, darunter 5 männlich und 5 weiblich.. Wiederholen Sie mit der Varianzanalyse

Wer schon einen Account bei Google hat, kann sich mit diesem bei Socrative einloggen!. Anmelden bei

[r]

Shreiben Sie ein Programm geld., welhes vershiedene Geldanlagen einliest und dann an-.. hand der Benutzereingaben die beste verfügbare Geldanlage (inklusive der Geldsumme