Einführung in die Programmierung Anweisungen und Datentypen

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Einführung in die Programmierung Ausführbare Klassen
Einführung in die Programmierung Zusammenfassung
Zusammenfassung der Vorwoche
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
der Universität Oldenburg
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Konstruktoren.
Objekte und Arbeitsspeicher
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Robotik mit LEGO Mindstorms
Imperative Programmierung Funktionen und Parameter
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0);
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
DVG Klassen und Objekte
Einführung in die Programmierung Vererbung
Einführung in die Programmierung Datensammlung
Einführung in die Programmierung Klassendefinition und Objekte
Verzweigung.
Struktogramme IF-ELSE FOR – Schleife
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Grundkonzepte Java - Klassendefinition
Rekursive Funktionen (Fakultät)
Java programmieren mit JavaKara
Informatik 1 Übung 2.
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Grundlagen der Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Einführung in die Programmierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Informatik 1 Letzte Übung.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
2. Zustandsorientiertes Modellieren 2.1 Einfachauswahl
2.4 Rekursion Klassifikation und Beispiele
Variablenkonzept Klassisch, in Java Basistyp
Aufruf einer Methode eines Objektes vom Typ „Bruch“
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Programmiervorkurs WS 2014/15 Schleifen
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Aufgaben zu Rückgabewerten
 Präsentation transkript:

Einführung in die Programmierung Anweisungen und Datentypen Fakultät für Wirtschaftswissenschaften Einführung in die Programmierung Anweisungen und Datentypen Uwe Lämmel www.wi.hs-wismar.de/~laemmel Uwe.Laemmel@hs-wismar.de

Methoden-Körper = Algorithmus Anweisungen und Daten Unsere Weltsicht: Dinge + Handlungen Begriffswelt der Informatik: Daten + Algorithmen Algorithmus = Handlungsanweisung public void taktsignalGeben( ) { minuten.erhoehen( ); if (minuten.gibWert( ) == 0) { // Limit wurde erreicht! stunden.erhoehen( ); } //if anzeigeAktualisieren(); } //taktsignalGeben Methoden-Körper = Algorithmus

Begriffswelt der Informatik: Anweisungen Unsere Weltsicht: Dinge + Handlungen Begriffswelt der Informatik: Daten + Algorithmen 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)

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

if-Anweisung: Interpretation if (Bedingung) { Anweisungen } else { Anweisungen } 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.

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

Entscheidungsbaum Rot? Röhren? ? nicht möglich Warnung essbar essbar?

Pilze class Pilz { private String name; private boolean rot; // Wahrheitswert: true / false private 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";} } //if return ergebnis; } //pilzIst Pilze if (rot) { if (roehren) { ergebnis= "nicht moeglich"; } else { ergebnis= "giftig!"; } } else { if (roehren) { ergebnis= "essbar";} else { ergebnis= "vielleicht essbar";}

Entscheidungsbaum - Aufgabe Artikel Nummer MWSt in % Leitungswasser 1000 7 Brot 1010 Butter 1020 Bier 1100 19 Buch 2000 Fahrkarte-Nahverker 3100 Fahrkarte-Fernverkehr 3200 Miete 4100 Arzthonorar 4200 Bekleidung 5100 Geräte 5200 Nutzen Sie Vergleiche für die Entscheidungen!

Daten – Interpretation natürliche Sprache Maschinencode Programmierung Compiler Programm Programmiersprache

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 aktuelle Parameter Referenz und Objekt

Variable: Name + Typ + Wert Name = Handgriff Typ liefert Interpretation des Wertes int a; Person p1; 435 a (Ein Person- Objekt) p1 A4CB890 Ein Person- Objekt new

Variable = Speicherplatz 2 Byte (26 A4 6B 30): 0101 0111 0100 1001 Interpreation als … short char = 5*163+7*16²+4*16+9 = 22.345 ASCII 87 ASCII 73  ‘W‘ ‘I‘ Angabe des Typs einer Variablen erforderlich

Variable und einfache Datentypen 435 a int a = 435; int b = a; a = 4711; 435 b 4711 a 435 b

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

 Objekte stets mittels Konstruktor erzeugen: new Objekt-Datentypen vordefiniert (siehe Java-API): String selbst entwickelt: TicketAutomat Nummernanzeige Uhrenanzeige Student Unternehmen …  Objekte stets mittels Konstruktor erzeugen: new

Variable, die auf Objekte zeigen Person p1; p1 = new Person("Katz",1979); Person p2; p2 =p1; p2.setName(„Hund“); Was liefert p1.getName() ? p1 Person Objekt: "Katz" p1 Person Objekt: "Katz" p1 p2 // Was bewirkt: Person p3 = new Person(); p3 = p1; Vorsicht bei Objekt-Variablen!

Variable, die auf Objekte zeigen? String s = "Anton"; String s1 = new String("Anton"); Uhrenanzeige wecker = new Uhrenanzeige(); Datumsanzeige kalender; Kalender = new Datumsanzeige();

Instanzen-Variablen – privat Sicherheit Stabile Schnittstelle (Wartbarkeit) Geheimnisprinzip Schutz vor unerwünschter Veränderung class Person { private String name; … public String getName() { return name; } Zugriffsmethoden name geboren Programm-Entwicklung: Instanzen-Variablen: private Zugriff über public-Methoden

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

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

Ende

Entscheidungsbaum Neuer Monat