Inhalte • Grundlagen – – – – – Rechneraufbau Zahlendarstellung (binär, dezimal, hexadezimal) Zeichen, Bilder Zusammengesetzte Datentypen Computerprogramme • Programmierung – Softwareentwicklung – Algorithmus – Javaprogramm D. Sommer Programmierung I WS 12/13 1 Grundlagen – Zeichensätze • Darstellung weiterer Zeichen, alternativ zu den Zahlen • Buchstaben, Zeichenketten, Texte, etc. • Annahme: 7 Bit je Zeichen genügen (max. 128 mögliche Zeichen) • • • • 10 Ziffern (0 1 2 3 4 5 6 7 8 9 ) 26 Klein- und Großbuchstaben (aA, bB, …, zZ) Sonderzeichen (%$?!“°…) Steuerzeichen (Zeilenumbruch, CR carriage return, TAB. etc.) • Datenaustausch führt zur Notwendigkeit eines festen Zeichensatzes D. Sommer Programmierung I WS 12/13 2 Grundlagen – Zeichensätze American Standard Code for Information Interchange – Eines der ersten Standards in der Informatik – ASCII o. US-ASCII [1963] • Ziel: Standard für Austausch von Informationen – 8 bit - Code • 7 Bit zur Zeichencodierung • höchstwertige Bit als Prüfbit (wegen möglicher Fehler während der Datenübertragung) – Festlegung der 128 Zeichen in 95 druckbare Zeichen und 33 nichtdruckbare Zeichen – 10 Ziffern – 26 Klein- und Großbuchstaben – 33 Sonderzeichen – 33 Steuerzeichen: TAB, ESC, CR, etc. D. Sommer Programmierung I WS 12/13 3 Grundlagen – Zeichensätze • 00 – 1F: Steuerzeichen • Bsp. - Darstellung ‚E‘: 69. Zeichen: 4516 = 4*16 + 5*1 (0100 0101)2 D. Sommer Programmierung I WS 12/13 4 Grundlagen – Zeichensätze – Erweiterung: länderspezifische Zeichen • Bspw. DE: ä, ö, ü, Ä, Ö, Ü, ß (deutsche Umlaute) • weitere Länder: é, æ, ë, Ý, å, á, etc. – Lösungsansatz [1986]: länderspezifische Zeichentabellen • Verzicht auf Prüfbit: Verdoppelung der Zeichenmöglichkeit • Für jedes Land eine extra zweite Hälfte im 8 Bit - Code – Vorteil: • Darstellung sprachspezifischer Zeichen für verschiedene Regionen – Nachteil: • verschiedene Regionen interpretieren zweite Hälfte unterschiedlich • Verwendung regionenspezifischer Zeichentabellen • Datenaustausch zum Teil schwierig (bspw. Email, also bis heute noch relevant, auch bei Eingaben, bspw. Tastatur relevant) D. Sommer Programmierung I WS 12/13 5 Grundlagen – Zeichensätze • Bsp. aus dem Thunderbird-Email-Programm D. Sommer Programmierung I WS 12/13 6 Grundlagen – Zeichensätze • Insbesondere durch internationalen Datenverkehr, (zunehmend durch Internet) Notwendigkeit der Erweiterung • Standard seit 1993 im Aufbau – 1. Version 16 Bit (216 = 65536) – Aktuelle Version 32 bit (232 = 4.294.967.296) • Unicode – Code-Tabelle für universellen Zeichensatz – Soll alle Zeichen der Welt umfassen D. Sommer Programmierung I WS 12/13 7 Grundlagen – Zeichensätze • Unicode – Plattformunabhängig • Unix, Windows, Android, Apple iOS, etc. – Programmunabhängig • Browser, Texteditor, Email-Client, etc. – Sprachenunabhängig • Englisch, deutsch, indisch, etc. – Aktuelle Version (6.2) umfasst aktuell: • 100 Schriftsysteme (prinzipiell Codetabellen) • 110.182 Zeichen • Beginnt bei U+0000 ASCII-Zeichen, Griechisch, … Hiragana, Katagana, …, etc. D. Sommer Programmierung I WS 12/13 8 Grundlagen – Unicode Code Charts http://www.unicode.org/charts/ D. Sommer Programmierung I WS 12/13 9 Grundlagen – Unicode BMP • Aufteilung der Unicodes in Unicodeblöcke D. Sommer Programmierung I WS 12/13 10 Grundlagen – Zeichensätze • Der Unicodeblock Lateinisch-1, Ergänzung • (U+0080 bis U+00FF) D. Sommer Programmierung I WS 12/13 11 Grundlagen – Zeichensätze • Bsp. Unicodeblock Katakana • U+30A0 – U+30FF D. Sommer Programmierung I WS 12/13 12 Grundlagen – Zeichensätze • Bsp. Unicodeblock Katakana • U+30A0 – U+30FF (es werden nur 2 Byte gezeigt, führende 0000 fehlt) • Silbenschrift Katakana (einer von drei Bestandteilen der japanischen Schrift, vor allem für Fremdwörter) D. Sommer Programmierung I WS 12/13 13 Grundlagen – Bilddaten • Speicherung von Bildinformationen in Digitalbildern D. Sommer Programmierung I WS 12/13 14 Grundlagen – Bilddaten • Möglichkeit 1: Speicherung als Rasterpunkte • Bild wird in kleine Rechtecke zerlegt & gespeichert – Bildpunkte (Pixel) – Zusammensetzung zu Line – Mehrere Linien -> Bild … D. Sommer Programmierung I WS 12/13 15 Grundlagen – Bilddaten • Anzahl der Bildpunkte bestimmen Qualität des Bildes – Absolute Angabe: • • • • • Pixel je Zeile x Anzahl der Zeilen = Gesamtzahl der Pixel Handy IPhone5: 1.136 x 640 Pixel Handy Samsung S3: 1.280 x 720 Pixel Fernseher: 1.920 x 1.080 Pixel (Full HD) Kamera Canon 600d: 18 MegaPixel (5.184 x 3.456 Pixel ) – Relative Angabe: • • • • D. Sommer Punkte je Zoll (dots per inch) Drucker: 4.800 dpi (4.800 Punkte auf 2,54 cm) IPhone5: 326 ppi (pixel per inc) „über 300 ppi (Retina-Display)“ Programmierung I WS 12/13 16 Grundlagen – Bilddaten Je Rasterpunkt werden die Farben gespeichert – Position ergibt sich aus Speicherreihenfolge und Bsp. Graustufen-Bild Kenntnis der Auflösung des Bildes (bspw. Pixel / Zeile) – Möglichkeiten der Farbinformationscodierung: • • • • 1 Bit je Pixel: typisch in Schwarz/Weiß-Bildern 8 bit je Pixel: Graustufen 3 x 8 Bit je Pixel: (RGB) ‚True Color‘(28 * 28 * 28 = 224 ~16,7 Mil. Farben) 4 x 8 Bit je Pixel: (RGBA), ist RGB + Alpha-Kanal (Transparenz) Bsp. Speicherung der Farbinformation je Pixel D. Sommer Programmierung I WS 12/13 Bsp. Schwarz-Weiß-Bild Bsp. RGBA-Darstellung, Icons scheinen am Fensterrand durch 17 Grundlagen – Bilddaten • Speicherplatz für Bildinformation – Absolute Auflösung • Anzahl der Pixel je Zeile • Anzahl der Zeilen – – – – Farbtiefe Anzahl der Farbkanäle Auflösung * Farbtiefe * #Farbkanäle Bsp. HD-Bild des Fernseher (True Color) • 1.920 x 1.080 x 1 Byte*3 = 6.220.800 (ca. 6 Mbyte) • Typisch Bilddateiformate: bmp, tiff, gif, png, jpg (letztere sind komprimiert) D. Sommer Programmierung I WS 12/13 18 Grundlagen – Bilddaten 2. Möglichkeit: Vektorgrafik, alternativ zur Pixelgrafik • (Keine Rasterung) Zerlegung des Bildes in Primitive / Objekte: z.B. Linien, Kreise, Polygone, Freiformkurven • Zu jedem Objekt werden nur die Eigenschaften / Attribute gespeichert, z.B. Position, Größe, Farbe, Füllung, etc. • Darstellungsprogramm: bspw. Browser zeichnet das Bild • Beispielformate für Vektorgrafiken: SVG, CDR (Corel Draw, PDF, SWF (Flash) + Bilder sind beliebig vergrößerbar + sehr wenig Speicherplatz bei wenigen Primitiven + Ideal für Diagramme - Weniger geeignet für Fotos D. Sommer Programmierung I WS 12/13 19 Grundlagen – Bilddaten Vektorgrafik: Bsp. Kreis Mittelpunkt – X: 1 Byte – Y: 1 Byte Radius – R:1 Byte Randdicke – D: 1 Byte Farbe (True Color) – Fi: 3 Byte (Farbe Innen, RGB) – Fa: 3 Byte (Farbe Rand, RGB) D. Sommer Programmierung I WS 12/13 256 Pixel Summe: 10 Bytes / Kreis 20 Grundlagen – Bilddaten Vektorgrafik D. Sommer Programmierung I WS 12/13 21 Grundlagen – Musik, Video • Ähnliche Speicherprinzipien für Musik und Videodaten – In digitale Samples / Bildsequenzen – Primitive / Objekte: Noten, etc. D. Sommer Programmierung I WS 12/13 22 Grundlagen – komplexe Datentypen • Klare Definition für: Zahlen, Zeichen, Bilder, Töne, etc. • Vieles lässt sich jedoch nicht direkt auf elementare Datentypen abbilden • Zum Beispiel komplexere Sachverhalte, ähnlich dem Beispiel von vorhin (Kreis im SVG-Format) oder: • Bsp.: Beschreibung einer Person: – beschrieben durch Daten wie: Name, Größe, Alter, etc. – Teile der Daten sind Text, andere Zahlen, etc. D. Sommer Programmierung I WS 12/13 23 Grundlagen – komplexe Datentypen Ansatz zur Speicherung komplexerer Sachverhalte – Zerlegung der Daten in elementare Datentypen – Bsp. Person: Speicherung in einem zusammenhängenden Block • • • • Name: Zeichenfolge Alter: positive ganze Zahl Größe: Fließkommazahl Passbild: Rasterbild • Speicherplatzbedarf, ähnlich dem Kreisbeispiel von vorhin: ergibt sich aus der Summe aus ElementarDatentypen D. Sommer Programmierung I WS 12/13 24 Grundlagen – komplexe Datentypen Bsp. Person: • Name: Zeichenfolge • Alter: positive ganze Zahl • Größe: Fließkommazahl • Passbild: Rasterbild Name: 100 ASCII-Zeichen Alter: [Jahre] Größe [m]: Passbild: 300x200 RGB 100 Bytes 1 Byte 4 Byte 192.000 Bytes • Summe der Bytes im Speicher: 192.105 Bytes (Meist wird je Speicherblock noch Strukturinformation abgelegt, daher leichtes Overhead möglich) • Ermöglicht vereinbarten Datentausch D. Sommer Programmierung I WS 12/13 25 Grundlage - Computerprogramme Ablegen von Programmen im Computer • Von Neumann-Architektur: Daten und Programme zusammen in einem Speicher • Binärdaten liegen fortlaufend im Speicher, könnten Datum oder Befehl sein (Befehle sind Bitfolgen) • Unterscheidung durch CPU, die einen ‚Programm Counter‘ (PC) hat, der jeweils auf den aktuellen Befehl zeigt • Nach Abarbeitung eines Befehl, verändert sich der PC, wird auf Wert der nächsten Befehlsposition gesetzt – Bspw. bei einem speziellen Typ von 64 Bit-CPU wird der PC nach jedem Befehl um 64 Bit erhöht D. Sommer Programmierung I WS 12/13 26 Grundlage - Computerprogramme – Einfache Befehle auf/für Positive, Ganze, Fließkommazahlen oder Zeichen, Zeichenfolgen – Addition, Subtraktion, Multiplikation, Division – Logische Operatoren (AND, OR, NOT, XOR) für Bit & Bitfolgen – Ein oder zwei Operanden – Bsp: AND, OR, XOR, NOT A AND B (beide Bits müssen ‚1‘ sein, dann ist die Ausgabe-Bit ‚1‘) A OR B (ein Bits muss ‚1‘ sein, dann ist das Ausgabe-Bit ‚1‘) A XOR B (ein Bits muss ‚1‘ sein, das andere ‚0‘, dann ist das Ausgabe-Bit ‚1‘) Not 0 = 1 Not 1 = 0 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 D. Sommer Programmierung I WS 12/13 0 OR 0 = 0 0 OR 1 = 1 1 OR 0 = 1 1 OR 1 = 1 0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0 1100100 OR 1010011 1110111 27 Grundlage - Programmiersprachen • Maschinencode: Instruktionen (Befehle) und Daten, die der Prozessor direkt ausführen kann. Kaum lesbarer Binär- bzw. Hexadezimalcode. (kaum genutzt) • Assembler: Anzeige des Maschinencodes spezifisch für eine CPU in Textform. (für Menschen lesbare Form repräsentiert.) typische Befehle: • Daten Lesen / Schreiben • Arithmetische Operationen +-*/ • Logische Operationen Not, And… • Kontrolle des Programmflusses D. Sommer Programmierung I WS 12/13 28 Grundlage - Programmiersprachen • Strukturierte Programmierung – Stark abstrahiert von dem wie CPU arbeitet – an das Problem angelehnte Programmstruktur – Meisten eingesetzt – Programm besteht aus Teilprogrammen und beschreibt die Bedingungen, unter denen sie zusammen wirken. – Leichter zu lesen – Bessere Wartung D. Sommer Programmierung I WS 12/13 29 Grundlage - Programmiersprachen • Grafische Programmiersprachen – Vermeidung textueller Eingaben – Programm besteht aus Bausteinen – Nicht vollständig ausgereift D. Sommer Programmierung I WS 12/13 30 Grundlage - Programmiersprachen Grundprinzipien höherer Programmiersprachen – Höchster Abstraktionsgrad gewünscht – (umgangssprachliche Formulierungen gewünscht, jedoch fast nicht möglich) – Problem: CPU versteht nur Maschinencode – Lösungsansatz: Automatisches Übersetzen von Programmen in höherer Sprache direkt in Maschinencode – Einmalige Übersetzung: Compiler (einmaliger Lauf) „Text“ Höhere Sprache Compiler – Laufzeitübersetzung: Interpreter „Text“ Höhere Sprache D. Sommer Programmierung I WS 12/13 Interpreter „Exeutable“ Maschinencode (fortwährende Übersetzung) Exeutable Maschinencode 31 Grundlage - Programmiersprachen • Compilerübersetzung + schneller Code + Fehlermeldungen zum gesamten Quelltext möglich – Plattformabhängig • Interpreter + (meist) plattformunabhängig - Laufzeit der Programme: deutlich langsamer - Fehler: meist nur während Laufzeit • Neuere Plattformen : Java, .NET (kombinieren beides Compiler+Interpreter) „Text“ Höhere Sprache Compiler Interpreter „Jar“ Zwischencode „Executable“ Maschinencode 010011000101 SW-Entwicklung Vorgehen Typische Schritte in der Softwareentwicklung: • Spezifikation: (1) Beschreibung des Problems Beschreibung der zukünftigen Lösung • Algorithmus: (2) Angaben, um das Problem schrittweise zu lösen • Programm: (3) finaler Schritt- konkrete Formulierung der Algorithmik in einer gewählten Programmiersprache D. Sommer Programmierung I WS 12/13 33 SW-Entwicklung - Spezifikation • Erster Schritt, der jeder Softwareentwicklung voran gestellt werden sollte • Festlegung der Problembeschreibung (vollständig, detailliert, unzweideutig) – Vollständig: alle relevanten Rahmenbedingungen, Anforderungen, Schnittstellen, Oberflächen, etc. – Detailgrad: alle Gundaktionen und Hilfsmittel – Eindeutig: klare Kriterien, wann Lösung akzeptabel ist • Eingabespezifikation: Eigenschaften der Eingabegrößen (Umfang und Detail aller Eingabedaten) • Ausgabespezifikation (Zusicherung): Eigenschaften der Ausgabegrößen (was soll berechnet werden) D. Sommer Programmierung I WS 12/13 34 SW-Entwicklung - Spezifikation • Problembeschreibung: Bsp. Webanbindung an eine SW Webbasierte Berechnung des Alertneslevels – „Eingabespezifikation“: alle Aktivitätsprotokolle – Eingabe über Internet – „Ausgabespezifikation“: Rückgabe der Aufmerksamkeitslevels • Offene Fragen: (Spezifikation ist unzureichend!) – Vollständigkeit: Dauer und Detail der Eingabeprotokolle, sollen Daten gespeichert, zwischengespeichert, archiviert werden? Welche Zusatzdaten werden wie übergeben, etc. – Detailgrad: Welche Programmiersprachen? Welche Schnittstellen? Zusatzsoftware? Welche Umgebung, etc.? – Eindeutigkeit: Wer/Wie entscheidet über Korrektheit (Ansprechpartner); Nachvollziehbare Kriterien? D. Sommer Programmierung I WS 12/13 35 SW-Entwicklung - Spezifikation Beschreibung der Spezifikation • Perfekt, präzise und vollständig ist mathematische Logik – Formale Beschreibung: Bsp. Programm: P x := Eingabe(P) εN Ausgabe(P) := x2 εR Einfache Problematik ist beschrieben, ist eindeutig, überprüfbar.. • Praxis: weniger formale Beschreibung in natürlicher Sprache (Pflichtenheft) – Produkt aus Auftraggeber, Auftragnehmer, Entwickler – meist umfangreiche, mehrdeutig, inkonsistent – Fragestellungen für Kunden und Auftragnehmer: • Eingabespezifikation: kann Kunde alles liefern? • Ausgabespezifikation: Werden Kundenanforderung erfüllt? D. Sommer Programmierung I WS 12/13 36 SW-Entwicklung - Spezifikation Qualitätsmanagement in der Softwareentwicklung • Pflichtenheft allein nicht ausreichend • Zwischenversionen der Software • Meetings mit den Partnern • Gezieltes Softwaremanagement D. Sommer Programmierung I WS 12/13 37 SW-Entwicklung - Algorithmus • Kernbaustein jeder Software • Zwischenschritt überführt Eingaben in Ausgaben • Definitionen: Endliche, effektive, eindeutige, geordnete, diskrete, durchführbare Schritte, die Vorbedingungen in Ausgabebedingungen überführen Eindeutige Handlungsvorschrift, die in endlich viele Schritten automatisch zur Lösung eines Problems führt. D. Sommer Programmierung I WS 12/13 38 SW-Entwicklung - Algorithmus • Präzise Fassung einer Vorgehensweise / Grundregeln, kein Platz für Interpretationen, prinzipielle Vorgabe für eine Maschine. Umwandlung Binärzahl in Hexadezimalzahl 11011111000101 00 11 0111 1100 0101 3 7 C 5 1. Jeweils 4 Binärstellen entsprechen einer Hexadezimalstelle. Unterteile die Binärzahl von rechts nach links in 4er-Päckchen. 2. Fülle das am weitesten links stehende Päckchen mit weniger als 4 Ziffern mit führenden Nullen auf. 3. Wandle jedes Päckchen nach nebenstehender Tabelle in die entsprechende Hexadezimalziffer um. D. Sommer Programmierung I WS 12/13 39 SW-Entwicklung - Algorithmus Endliche, effektive, eindeutige, geordnete, diskrete, durchführbare Schritte, die Vorbedingungen in Ausgabebedingungen überführen • Geordnete Menge von Schritten: Reihenfolge der Schritte genügt Regeln. Meist sequentiell (nacheinander) • Algorithmus terminiert: hält nach endlich vielen Schritten, sofern Eingabespezifikation eingehalten ist • Verfahrensablauf ist zu jedem Zeitpunkt eindeutig vorgeschrieben. Ausführung ist zu jedem Zeitpunkt eindeutig und vollständig. Gleiche Eingaben führen zu gleichen Bedingungen bzw. zu gleichen Ausgaben. D. Sommer Programmierung I WS 12/13 40 SW-Entwicklung - Algorithmus Endliche, effektive, eindeutige, geordnete, diskrete, durchführbare Schritte, die Vorbedingungen in Ausgabebedingungen überführen • Diskrete, einfache elementare Schritte • Jeder Schritt ist effektiv (tatsächlich) durchführbar – dh. in endlicher Zeit und endlichem Speicher – Gegenbeispiel (Einzelschritte): • Summe aller natürlichen Zahlen * 0 • Erstelle eine Liste aller Primzahlen • Algorithmus muss in endlicher Vorschrift beschreibbar sein • Ausgabebedingungen müssen der Ausgabespezifikation genügen, solange Eingaben der Eingabespezifikation genügen (Korrektheit) D. Sommer Programmierung I WS 12/13 41 SW-Entwicklung – Beschreibung Zahlreiche Methoden, um Algorithmus zu notieren: – Text (bspw. Bin2Hex) • häufig lang, unübersichtlich – Diagramme • stellt Strukturen, Abläufe – Pseudocode • natürliche Sprache als Programmiersprache – Programmcode • Kompakter Ausdruck in Programmiersprache D. Sommer Programmierung I WS 12/13 42 SW-Entwicklung – Pseudocode • Strukturierte + natürlich sprachliche Notation • Keine feste Syntax, sollte jedoch intuitiv zugänglich sein • Leicht in beliebige Programmiersprache übertragbar Beispiel berechne die Fakultät von N Eingabe = N IF Eingabe == 0 Ausgabe = 1 BREAK END_IF 0! = 1 Ausgabe = 1; FOR i = Eingabe BIS 1 Ausgabe = Ausgabe * i; END_FOR D. Sommer Programmierung I WS 12/13 Algorithmus ist: geordnet Endlich durchführbar vollständig … 1! = 1 2! = 2 3! = 6 43 SW-Entwicklung – Diagramm • Aktivitätsdiagramme – Grafische Notation von Algorithmen – Leicht verständlich, standardisiert (UML, Unified Modeling Language) – Kann jedoch insbesondere bei längeren Algorithmen unübersichtlich werden – Symbole v<1 Ausgabe(„Hallo Welt“) Start Ende Beginn Stop D. Sommer Programmierung I Anweisung Aktion WS 12/13 Verzweigung Verbindung Bedingung Reihenfolge 44 SW-Entwicklung UML-Diagramm • Feststellung erhöhter Körpertemperatur (38°C - 41°C) Körpertemperatur Eingabe(T) ja Ausgabe(„Gesund“) D. Sommer Programmierung I WS 12/13 T < 38°C nein Ausgabe(„Fieber“) 45 SW-Entwicklung - Programm Überführung eines Algorithmus in ein Programm • Algorithmenentwicklung erfolgt meist ohne genaue Kenntnis der Zielplattform (Hardware) • Algorithmen sind prinzipiell automatisch ausführbar • Um Algorithmus auf Computer auszuführen, muss eine spezielle Notation der Algorithmen erfolgen • Nutzung von „Formalen Sprachen“ (weniger die Kommunikation steht im Vordergrund [natürliche Sprache], sondern mathematische Beschreibung) • Formale Beschreibung eines Algorithmus heißt Programm • Programmierung: Formulierung eines Algorithmus in computerlesbare Form • Pseudocode ist keine formale Sprache (zu viele Freiheitsgrade) D. Sommer Programmierung I WS 12/13 46 SW-Entwicklung - Programm Von der Spezifikation zum Java-Programm Spezifikation Ideen Kreativität Algorithmus Programmierung Implementation Programm Compiler Maschinencode D. Sommer Programmierung I WS 12/13 Interpreter Byte-Code (Zwischencode) 47 Java • Objektorientierte Programmiersprache: weit verbreitet • JDK, JRE: Oracle ehemals von Sun Microsystems – JRE: Java-Laufzeitumgebung (Java Runtime Environment) – JDK: Java Entwicklungsumgebung (Java Development Kit) D. Sommer Programmierung I WS 12/13 48 Java Programm – Java-Umgebung • Prüfen, ob Java installiert ist • java ist nicht installiert • javac auch nicht D. Sommer Programmierung I WS 12/13 49 • Download des Java SDK von der Oracle - Seite D. Sommer Programmierung I WS 12/13 50 • Download: speziell JDK-Paket D. Sommer Programmierung I WS 12/13 51 Installation – Java JDK D. Sommer Programmierung I WS 12/13 52 • Weiter in der Installation D. Sommer Programmierung I WS 12/13 53 • Java JDK ist installiert!! D. Sommer Programmierung I WS 12/13 54 • java läuft • java läuft javac läuft immer noch nicht!!! D. Sommer Programmierung I WS 12/13 55 Javac bekannt geben • Pfad Erweitern (ggf. helfen lassen) 1 2 3 D. Sommer Programmierung I WS 12/13 56 • Systempfad um „java/jdk/bin“ Erweitern Bspw. auf meinem Rechner unter: c:\Program Files\Java\jdk1.7.0_09\bin\ D. Sommer Programmierung I WS 12/13 57 • Systempfad erweiter um ;“c:\Program Files\Java\jdk1.7.0_09\bin\“ !!! Semikolon nicht vergessen und ggf. „“ setzen, wenn Leerzeichen im Pfad vorhanden sind D. Sommer Programmierung I WS 12/13 58 Java - JDK • javac - fertig installiert - D. Sommer Programmierung I WS 12/13 59 Aufbau eines Java Programms public class NAME { public static void main(String [] args) { …. …. } } • Geschweifte Klammern: gruppieren Programmbestandteile (Programm und Hauptroutine) • Einrückungen und Leerzeilen: nur Verbesserung der Lesbarkeit. Häufig feste Konventionen: – Leerzeilen zwischen Routinen: 1x – Einrückungen innerhalb geschweifter Klammern: 2-4 D. Sommer Programmierung I WS 12/13 60 Aufbau eines Java Programms • Programm besteht aus Anweisungen • Anweisungen enden mit Semikolon • Zu Beginn eine Anweisung zur Bildschirmausgabe System.out.println(); public class beispiel { public static void main(String [] args) { System.out.println(“Wohnungsmarkt“); System.out.println(“Friede den Mietern, Krieg den Maklern“); System.out.println(16 + 21); } } • Speichern unter beispiel.java (Dateiname und classname müssen gleich sein!!) D. Sommer Programmierung I WS 12/13 61 Speichern eines Java Quellextes D. Sommer Programmierung I WS 12/13 62 Übersetzen des Java Programms D. Sommer Programmierung I WS 12/13 63 Übersetzen des Java Programms • Zwischencode-Datei „beispiel.class“ wird angelegt D. Sommer Programmierung I WS 12/13 64 Übersetztes Java Programm • Quelltext • Zwischencode D. Sommer Programmierung I WS 12/13 65 Ausführen des Beispielprogramms • java beispiel • ! Ausgabe der 2. Zeile? D. Sommer Programmierung I WS 12/13 66