Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und...

23
Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenscha ften www.wi.hs-wismar.de/ ~laemmel [email protected]

Transcript of Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und...

Page 1: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 1Uwe Lämmel

Einführung in die ProgrammierungAnweisungen und Datentypen

Uwe Lämmel

Fakultät für Wirtschaftswissenschaften

www.wi.hs-wismar.de/~laemmel

[email protected]

Page 2: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 2Uwe Lämmel

Anweisungen und Daten

Algorithmus = Handlungsanweisung

Unsere Weltsicht:Dinge + Handlungen

Begriffswelt der Informatik:Daten + Algorithmen

public void taktsignalGeben( ) {minuten.erhoehen( );

if (minuten.gibWert( ) == 0) { // Limit wurde erreicht!stunden.erhoehen( );

} //ifanzeigeAktualisieren();

} //taktsignalGeben

Methoden-Körper = Algorithmus

Page 3: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 3Uwe Lämmel

Anweisungen

Anweisungen: einfache Anweisungen:

– Zuweisung: wert=0; name=neuName; ...– return-Anweisung: return umsatz/anzahl;

return name; ...– Methodenaufruf:

stunden.setzeWert(neu); ... strukturierte Anweisungen

– Sequenz (Klammerung): { name=neuName; wert=0; }

– Alternative (IF-Anweisung)

Unsere Weltsicht:Dinge + Handlungen

Begriffswelt der Informatik:Daten + Algorithmen

Page 4: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 4Uwe Lämmel

Alternative: if-Anweisung

if (Bedingung) { Anweisungen // Dann-Fall, wenn Bedingung true ist}else { Anweisungen // Sonst-Fall, Bedingung ist false}

if ( z % 2 == 0) { System.out.println( "gerade Zahl") ;}else { System.out.println("ungerade Zahl");}

Page 5: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 5Uwe Lämmel

if-Anweisung: Interpretation

Bedingung muss vom Typ boolean sein. Besteht Anweisungen nur aus einer Anweisung,

können Klammern entfallen else-Teil kann entfallen

Interpretation:Wenn Bedingung den Wert true liefert,

wird (nur) nachfolgende Anweisung abgearbeitet; liefert Bedingung false, wird (nur) Anweisung des else-Teils abgearbeitet.

if (Bedingung) { Anweisungen } else { Anweisungen }

Page 6: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 6Uwe Lämmel

Bedingung einer if-Anweisung

ist logischer Ausdruck:– gleich == a == 0– ungleich != a != 0– größer > a > 10– größer gleich >= a >=0– kleiner <– kleiner gleich <=– und && 0<a && a<100– oder | | a>0 | | a==0 – nicht ! ! (a==0)

logische Variable/Konstante:– boolean b1; b1 !b1

Page 7: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 7Uwe Lämmel

Entscheidungsbaum

Rot?

Röhren? Röhren?

??

nicht möglich Warnung essbar essbar?

Page 8: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 8Uwe Lämmel

Pilze

if (rot) {

if (roehren) { ergebnis= "nicht moeglich"; }

else { ergebnis= "giftig!"; }

}

else {

if (roehren) { ergebnis= "essbar";}

else { ergebnis= "vielleicht essbar";}

class Pilz {

private String name;private boolean rot; // Wahrheitswert: true / falseprivate boolean roehren;

public Pilz(String pname, boolean istRot, boolean hatRoehren){

name = pname; rot = istRot; roehren = hatRoehren;

} //Pilz

public String pilzIst() {String ergebnis;if (rot) {

if (roehren) { ergebnis= "nicht moeglich"; }else { ergebnis= "giftig!"; }

}else {

if (roehren) { ergebnis= "essbar";}else { ergebnis= "vielleicht essbar";}

} //ifreturn ergebnis;

} //pilzIst

Page 9: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 9Uwe Lämmel

Entscheidungsbaum - Aufgabe

Artikel Nummer MWSt in %

Leitungswasser 1000 7

Brot 1010 7

Butter 1020 7

Bier 1100 19

Buch 2000 7

Fahrkarte-Nahverker 3100 7

Fahrkarte-Fernverkehr 3200 19

Miete 4100 0

Arzthonorar 4200 0

Bekleidung 5100 19

Geräte 5200 19

Nutzen Sie Vergleiche für die Entscheidungen!

Page 10: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 10Uwe Lämmel

Daten – Interpretation

Maschinencode

natürliche Sprache

Compiler

Programmierung

Programm

Programmiersprache

Page 11: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 11Uwe Lämmel

Daten

class Person {

//-- Datenfelder, Merkmale, Attribute private String name; private int geboren; //-- Geburtsjahr!

public Person(String nachname, int jahr) {

name = nachname;geboren = jahr;

} //Person

public int getAlter(int jahr ) {int alter = jahr – geboren;return alter;

} //getAlter

} // Person

Person p1 = new Person("Meier",1980);

Instanz-Variablen

formale Parameter

lokale Variable

Referenz und Objekt

aktuelle Parameter

Page 12: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 12Uwe Lämmel

Variable: Name + Typ + Wert

Name = Handgriff Typ liefert Interpretation des Wertes

435 a

(EinPerson- Objekt)

p1A4CB890

EinPerson-Objekt new

int a;

Person p1;

Page 13: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 13Uwe Lämmel

Variable = Speicherplatz

0101

0111

0100

1001

2 Byte

short char

ASCII 87ASCII 73

‘W‘ ‘I‘

= 5*163+7*16²+4*16+9

= 22.345

(26 A4 6B 30):

Interpreation als …

Angabe des Typs einer Variablen erforderlich

Page 14: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 14Uwe Lämmel

Variable und einfache Datentypen

int a = 435;

int b = a;

a = 4711;

435 a

435 b

4711 a

435 b

Page 15: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 15Uwe Lämmel

Einfache Datentypen

boolean logischer Wert: true/false 1 Byte

char Zeichen 2 Byte

byte Ganzzahl –128 .. +127 1 Byte

short Ganzzahl 2 Byte

int Ganzzahl 4 Byte

long Ganzzahl 8 Byte

float Fließpunktzahl 4 Byte

double Fließpunktzahl 8 Byte

Page 16: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 16Uwe Lämmel

Objekt-Datentypen

vordefiniert (siehe Java-API):String

selbst entwickelt:TicketAutomatNummernanzeigeUhrenanzeigeStudentUnternehmen…

Objekte stets mittels Konstruktor erzeugen: new

Page 17: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 17Uwe Lämmel

Variable, die auf Objekte zeigen

Person p1;

p1 = new Person("Katz",1979);

Person p2;p2 =p1;p2.setName(„Hund“);

Was liefert p1.getName() ?

p1

PersonObjekt:"Katz"

p1

PersonObjekt:"Katz"

p1

p2// Was bewirkt:Person p3 = new Person();p3 = p1;

Vorsicht bei Objekt-Variablen!

Page 18: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 18Uwe Lämmel

Variable, die auf Objekte zeigen?

String s = "Anton";

String s1 = new String("Anton");

Uhrenanzeige wecker = new Uhrenanzeige();

Datumsanzeige kalender;

Kalender = new Datumsanzeige();

Page 19: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 19Uwe Lämmel

class Person {private String name;…public String getName() {

return name;}

Instanzen-Variablen – privat

Sicherheit Stabile Schnittstelle (Wartbarkeit)

– Geheimnisprinzip Schutz vor unerwünschter

Veränderung

namegeboren

Zugriffsmethoden

Programm-Entwicklung: Instanzen-Variablen: private Zugriff über public-Methoden

Page 20: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 20Uwe Lämmel

Daten und Anweisungen

class TestPerson {public static void main(String[ ] args) {

Person p1 = new Person("Berg", 1978);Person p2 = new Person("Tal", 1990);int limit = 18;int imJahr = 2007;if (p1.getAlter(imJahr)>=limit) {

System.out.println("Kredit fuer "+p1.getName()+ ": JA");}else System.out.println("Kredit fuer "+p1.getName()+ ": NEIN");…

}}

Page 21: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 21Uwe Lämmel

Zusammenfassung

Dinge + Handlungen => Daten und Algorithmen

Algorithmen = Folge von Anweisungen

einfache <> strukturierte Anweisungen

Zuweisung, return, Methoden-Aufruf

Sequenz, Alternative (if-Anweisung)

einfache Datentypen (int, double, boolean, …)

Referenz-Datentypen (Objekt-Typen)

Speicherverwendung und Datentypen

Page 22: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 22Uwe Lämmel

Ende

Page 23: Anweisungen und Datentypen Folie 1 Uwe Lämmel Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel Fakultät für Wirtschaftswissenschaften.

Anweisungen und Datentypen Folie 23Uwe Lämmel

Entscheidungsbaum Neuer Monat

Monat 30?Monat 30?

tag=31?tag=31? Februar?Februar?

neuerMonatneuerMonat

Schaltjahr?Schaltjahr? tag=0?tag=0?

tag=30?tag=30? tag=29?tag=29?neuerMonatneuerMonat

neuerMonatneuerMonat

neuerMonatneuerMonat