2. JAVA-Programmierung Informatik II für Verkehrsingenieure
Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2
Beispiele für Algorithmen 3
Definitionsversuch Algorithmus Anleitung, wie ein bestimmtes Ziel zu einem Problem bzw. einer Aufgabe erreicht werden kann Anleitung ist dabei in der Art einer Liste von Anweisungen, die abgearbeitet werden müssen je Kontext sind die Anweisungen hinreichend primitiv zu halten eine Anweisung wie z.b. löse das Problem sind unzulässig Beachte Bei der Definition ist nicht festgeschrieben, wer die Anweisungen ausführt (kann sowohl Computer als auch Mensch sein) 4
Weitere Eigenschaften Eigenschaften 5
Computer soll Algorithmus ausführen Problemstellung Algorithmus Umsetzung
Geschichte Entwicklung Seit der Entwicklung des ersten Computers wurden Turm von Babylon der Programmiersprachen Programmiersprachen entwickelt. (Sammet, J.: Programming Languages: History and Fundamentals, Prentice Hall, 1969) https://sli.do Code: #T1460 7
Stammbaum der Programmiersprachen 8
Historie (2) Strukturierte Programmierung wurde mit Pascal zu Beginn der siebziger Jahre begründet (Entwicklung von Niklaus Wirth) Einführung von Sprachmitteln die heute in modernen Programmiersprachen noch zu finden sind Programmiersprache C Entwicklung Anfang der siebziger Jahre Erstmals höhere Programmiersprache zur Implementierung des Betriebssystems UNIX eingesetzt Vorteil: Maschinenunabhängigkeit erreicht und damit UNIX und Linux auf nahezu allen Hardwareplattformen einsetzbar Modulare Programmierung Mitte der siebziger Jahre wiederum von Niklaus Wirth Umsetzung in der Programmiersprache Ada 9
Historie Autocode und Fortran Anfang fünfziger Jahre Autocode als erste Sprache vorgeschlagen, die arithmetische Ausdrücke, Schleifen und bedingte Sprünge umfasst Daraus wurde dann Fortran (FORmula TRANslator) entwickelt (erste Fassung 1954) Einsatz im wissenschaftlich-technischen Bereich Algol (ALGOrithmic Language) Anfang der sechziger Jahre Grundlage aller funktionalen Programmiersprachen im Bereich der künstlichen Intelligenz noch heute im Einsatz COBOL (Common Business Oriented Language) ebenfalls Anfang der sechziger Jahre entwickelt am weitesten verbreitete Programmiersprache 10
Historie (3) Objektorientierte Programmierung Ursprung in Simula-67 um 1967 in Norwegen entwickelt als eine Sprache für ereignisorientierte Simulation Potential objektorientierter Sprachen nicht erkannt Smalltalk und C++ Weiterentwicklung von Simula-67 Ende der siebziger Jahre Konzepte wie Klasse und Vererbung fanden Einzug in die Programmierung C++ 1983 durch AT&T entworfen, die Abwärtskompatibel zu C ist Java Arbeiten lassen sich bis in das Jahr 1990 zurückverfolgen (Sun Microsystems) Name der Sprache Oak Entwurfsziele: Plattformunabhängigkeit, Objektorientierung und Anlehnung an C/C++, um so den Lernaufwand für Kenner dieser Sprachen gering zu halten 11
Klassifikation Kategorien Programmiersprachen lassen sich in Kategorien einteilen, die sich im evolutionären Verlauf der Entwicklung als sog. Programmierparadigmen gebildet haben Imperative Programmiersprachen Programm besteht aus Anweisungen (imperare = lat. befehlen), die beschreiben, wie das Programm seine Ergebnisse erzeugt 12
Klassifikation (2) Deklarative Programmiersprachen umgekehrter Ansatz zu den imperativen Programmiersprachen Programmierer beschreibt Bedingungen, was das Ergebnis sein soll. Wie das Ergebnis erzeugt wird, wird automatisch aus der Beschreibung bestimmt Beispiel: Datenbankanfragesprache SQL Unterteilung der Deklarativen Programmiersprachen Abhängig von der Art der formulierten Bedingungen Logische Programmiersprachen (Bedingungen in mathematischer Logik) Funktionale Programmiersprachen (Bedingung in mathematischen Funktionen) 13
Programmiersprache JAVA Problemstellung Algorithmus Umsetzung
Allgemeines über JAVA Hochsprache Relativ jung im Vergleich zu C/C++ Hat nichts mit JavaScript zu tun Auf verschiedenen Plattformen (Betriebssystem, Prozessorarchitektur) ausführbar Plattformunabhängigkeit Klassenbibliothek versteht man eine Ansammlung von kleinen Unterprogrammen, welche man verwenden kann um viele häufig wiederkehrende Aufgaben zu erledigen und diese somit nicht selbst programmieren muss JAVA-Technologie JAVA-Plattform besteht aus einer Laufzeitumgebung (JAVA Runtime Environment) und den Standard- Klassenbibliotheken 15
Das erste JAVA-Programm Hello World - Beispiel public class MeinErstesProgramm { public static void main() { System.out.println( Hello World ); } } 16
Erläuterungen Zugriffsrechte: public = Alle Klassenbibliothek: Alles ist eine Klasse (class) Name bzw. Bezeichner der Klasse public class MeinErstesProgramm { } 17
Bezeichner Definition Ein Bezeichner ist eine Folge von Buchstaben und Zahlen, die mit einem Buchstaben beginnt Verwendet für Klassennamen, Als Alphabet wird UNICODE zugrunde gelegt - 16 Bit lang etwa 65.00 Zeichen können kodiert werden (Zeichen fast aller Schriftsprachen) - Beinhaltet die ASCII-Zeichen nach ISO-8859-1 (Latin-1) - Günther ist ein legaler Bezeichner, trotz Umlaut! Unterscheidung Selbstdefinierte Bezeichner Reservierte Bezeichner 18
Bezeichner Selbstdefinierte Bezeichner Selbstdefinierte Bezeichner sind Namen für im Programm deklarierte syntaktische Einheiten Beispiel: Klassennamen, Die meisten Bezeichner sind selbstdefiniert Reservierte Bezeichner ( Schlüsselwörter ) Reservierte Bezeichner sind fester Teil der Programmiersprache Sie dürfen nicht als Namen eigener Deklarationen verwendet werden 19
Erläuterungen Methodenname bzw. Bezeichner der Methode Schlüsselwort main() signalisiert Startpunkt des Programmes Methode innerhalb der Klasse Mehrere Methoden pro Klasse möglich public class MeinErstesProgramm { public static void main() { System.out.println( Hello World ); } } Verwendung einer vorhandenen Methode zur Ausgabe eines Textes (Hello World) auf der Konsole Methode: println aus der Klassenbibliothek System.out 20
Kurze Pause 15 min. Aufgaben: 1) Was soll ich nochmals erklären bzw. wiederholen? 2) Diskutieren bzw. Überlegen Sie, was noch alles für eine Umsetzung von Algorithmen benötigt wird.