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

Post on 05-Apr-2015

116 views 0 download

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

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

Uwe.Laemmel@hs-wismar.de

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

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

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");}

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 }

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

Anweisungen und Datentypen Folie 7Uwe Lämmel

Entscheidungsbaum

Rot?

Röhren? Röhren?

??

nicht möglich Warnung essbar essbar?

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

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!

Anweisungen und Datentypen Folie 10Uwe Lämmel

Daten – Interpretation

Maschinencode

natürliche Sprache

Compiler

Programmierung

Programm

Programmiersprache

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

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;

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

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

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

Anweisungen und Datentypen Folie 16Uwe Lämmel

Objekt-Datentypen

vordefiniert (siehe Java-API):String

selbst entwickelt:TicketAutomatNummernanzeigeUhrenanzeigeStudentUnternehmen…

Objekte stets mittels Konstruktor erzeugen: new

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!

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();

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

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");…

}}

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

Anweisungen und Datentypen Folie 22Uwe Lämmel

Ende

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