Kapitel 1 - Universität Paderborn
Transcription
Kapitel 1 - Universität Paderborn
Inhalt 1. Einführung und Motivation 2.7 Klassen 2. Grundlagen der Programmierung 2.1 Einfache Programme 2.2 Syntax, Semantik und Simulation 2.3 Verzweigungen 2.4 Schleifen 2.5 Primitive Datentypen 2.6 Felder (Arrays) 2.8 Methoden Rainer Feldmann Universität Paderborn 2.9 Rekursion 2.10 Dateien 2.11 Objektorientierung 2.12 Dynamische Datenstrukturen 2.13 Vererbung Technische Informatik für Ingenieure (TIFI) WS 09/10 3 Literatur • Hanspeter Mössenböck. Sprechen Sie Java? Eine Einführung in das systematische Programmieren. dpunkt.verlag, 3. Auflage 2005. • Dietmar Ratz, Jens Scheffler, Detlef Seese. Grundkurs Programmierung in Java, Bd. 1. Hanser Verlag, 2. Auflage, 2004. • Klaus Echtle, Michael Goedicke. Lehrbuch der Programmierung mit Java. dpunkt.verlag, 1. Auflage 2000. Darüber hinaus gibt es viele weitere gute Einführungen in die Programmierung und die Programmiersprache Java. Sehen Sie sich verschiedene Bücher an, bevor Sie sich zum Kauf eines Buches entscheiden. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 6 1. Einführung und Motivation Ziele der Veranstaltung • Rolle der Software- und Informationstechnik im Maschinenbau verstehen • Grundkonzepte der Programmierung beherrschen – Programme verstehen – Programme entwickeln – Programmiersprache erlernen (hier: Java) • Aufbau von Computern kennenlernen Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 7 Warum soll ich Programmieren lernen ? ¾ » Programmieren fand ich in der Schule schon doof! ” Deshalb studiere ich doch Ingenieurwissenschaften und nicht Informatik!“ ½ Rainer Feldmann Universität Paderborn ¼ Technische Informatik für Ingenieure (TIFI) WS 09/10 8 Warum soll ich Programmieren lernen ? » ¾ Programmieren fand ich in der Schule schon doof! ” Deshalb studiere ich doch Ingenieurwissenschaften und nicht Informatik!“ ½ ¼ Gute Argumente für das Erlernen der Programmierung: • Computer befinden sich in fast allen Produkten des Maschinenbaus (Fahrzeugtechnik, Beleuchtungstechnik, ...) Lernen Sie wie Computer arbeiten! • Oft in sicherheitskritischen bzw. gewinnkritischen Systemen (Atomkraftwerke, Flugzeugen, Produktionssysteme) Lernen Sie die Risiken des Computereinsatzes kennen! • Viele moderne maschinenbauliche Produkte werden in enger Zusammenarbeit zwischen Ingenieuren und Informatikern entwickelt (z.B. mechatronische Systeme). Kenntnisse über Programmierung von Computern sind Teil einer gemeinsamen Sprache von Ingenieuren und Informatikern. • ... und viele andere mehr Lernen Sie Computer effizient zu nutzen! Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 8 Einige dramatische Softwarefehler (http://www5.informatik.tu-muenchen.de/˜huckle/bugse.html) F16 (1979) Kampfjet des US Militärs. Fehler im Programm des Autopiloten: das Flugzeug flog in der südlichen Erdhalbkugel auf dem Kopf“. ” Therac-25 (1985-1987) Bestrahlungsmaschine für Krebspatienten. Aufgrund von Fehlern in ihren Computerprogrammen wurden einige Patienten mit tödlichen Dosen bestrahlt. Ariane 5 (1996) Europäische Weltraumrakete. Explodierte kurz nach dem Start, weil Computerprogramme der Ariane 4 die höhere Geschwindigkeit der Ariane 5 nicht verarbeiten konnten. USS Yorktown (1998) Kriegsschiff der US Marine. Ein Crewmitglied gab versehentlich eine 0“ als Eingabe in ein schiffseigenes Computersystem ein. Das Compu” terprogramm nahm die 0“ an, teilte später durch 0“ und legte durch diesen Fehler das Antriebssystem des ” ” Kriegsschiffes für mehrere Stunden lahm. Mars Climate Orbiter (1999) Amerikanischer Satellit. Zwei Programmierteams verwendeten zwei unterschiedliche Masseinheiten für die Navigation im Weltall. Nach Datenaustausch wurde keine Konversion durchgeführt. Der Satellit ist im Weltall verschollen. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 9 Warum passieren Fehler beim Einsatz von Computern und Computerprogrammen ? "Verdammt, er sagt ’Ich denke, also bin ich!’ " Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 10 Warum passieren Fehler beim Einsatz von Computern und Computerprogrammen ? • Computer sind (noch) grenzenlos dumm, denn – ... sie machen nur das, was man ihnen befohlen hat. (kein Nachdenken über Anweisungen, keine Eigeninitiative) – ... sie machen immer das, was man ihnen befohlen hat. (kein Nachdenken über ihre Handlungen, kein Auslassen unsinniger Anweisungen) "Verdammt, er sagt ’Ich denke, also bin ich!’ " Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 10 Warum passieren Fehler beim Einsatz von Computern und Computerprogrammen ? • Computer sind (noch) grenzenlos dumm, denn – ... sie machen nur das, was man ihnen befohlen hat. (kein Nachdenken über Anweisungen, keine Eigeninitiative) – ... sie machen immer das, was man ihnen befohlen hat. (kein Nachdenken über ihre Handlungen, kein Auslassen unsinniger Anweisungen) "Verdammt, er sagt ’Ich denke, also bin ich!’ " Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 10 Warum passieren Fehler beim Einsatz von Computern und Computerprogrammen ? • Computer sind (noch) grenzenlos dumm, denn – ... sie machen nur das, was man ihnen befohlen hat. (kein Nachdenken über Anweisungen, keine Eigeninitiative) – ... sie machen immer das, was man ihnen befohlen hat. (kein Nachdenken über ihre Handlungen, kein Auslassen unsinniger Anweisungen) Also: ' $ Computer machen keine Fehler! Computer führen nur die fehlerhaften Anweisungen aus, die ihnen die Menschen einprogrammiert haben! & Rainer Feldmann Universität Paderborn % Technische Informatik für Ingenieure (TIFI) WS 09/10 10 1.1 Wichtige Begriffe Wir werden in den nächsten Wochen immer wieder mit den folgenden Begriffen arbeiten: • • • • • Informatik Daten, Information Algorithmus Programm Programmiersprache Was bedeutet das alles ? Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 11 Informatik Wikipedia Informatik ist die Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere der automatischen Verarbeitung mit Hilfe von Rechenanlagen. Informatik Duden Informatik ist die Wissenschaft von der Darstellung, Verarbeitung, Speicherung, Übertragung und Wiedergewinnung von Information – insbesondere von der automatischen Verarbeitung durch digitale Rechner. Was ist Information ? Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 12 Daten und Information Informatik Duden: Information umfasst eine (kodierte?) Nachricht und ihre Bedeutung. (Anmerkung: eine unbefriedigende Definition) Beispiel: Kodierung 1111000 Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 13 Daten und Information Informatik Duden: Information umfasst eine (kodierte?) Nachricht und ihre Bedeutung. (Anmerkung: eine unbefriedigende Definition) Beispiel: Datum Kodierung = 1111000 + + + + + + Interpretation À Repräsentation = Rainer Feldmann Universität Paderborn 1 · 64 1 · 32 1 · 16 1·8 0·4 0·2 0·1 120 Technische Informatik für Ingenieure (TIFI) WS 09/10 13 Daten und Information Informatik Duden: Information umfasst eine (kodierte?) Nachricht und ihre Bedeutung. (Anmerkung: eine unbefriedigende Definition) Beispiel: Information = Mein Auto fährt 120 km/h“ ” Datum Kodierung = 1111000 + + + + + + Interpretation À Repräsentation = Rainer Feldmann Universität Paderborn 1 · 64 1 · 32 1 · 16 1·8 0·4 0·2 0·1 120 Bedeutung Interpretation À Repräsentation = Geschwindgkeit eines Autos ? Technische Informatik für Ingenieure (TIFI) WS 09/10 13 Daten und Information • Computer können keine Informationen verarbeiten sondern nur Daten. • Durch die Interpretation von Daten wird letztendlich Information verarbeitet. Wie können Computer denn Daten verarbeiten ? Computer können ... • ... Daten einlesen (von Peripheriegeräten wie Tastatur, Maus, CD/DVD, etc.) • ... Daten speichern (im Hauptspeicher und in externen Speichern) • ... Daten manipulieren (im Prozessor) • ... Daten anzeigen (auf Peripheriegeräten wie Bildschirm, Drucker, Kopfhörer, etc.) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 14 Wie können Computer denn Daten verarbeiten ? • Alle Daten im Rechner und den Speichern werden digital binär kodiert, d.h. alle Daten sind einfach Folgen von Nullen und Einsen (Bits): z.B. werden – ... ganze Zahlen als Binärzahlen mit 32 oder sogar 64 Bits dargestellt, z.B. . 97 = 1 · 26 + 1 · 25 + 1 · 20 = ...01100001 (Oft wird die Zweikomplementdarstellung verwendet, die wir hier nicht betrachten) – ... Textzeichen als Folge von 8 Bits kodiert (ASCII-Kodierung), z.B. ist . 0 0 . A = 01000001 = bin(65), 0a0 = 01100001 = bin(97), 0 0 . 0 = 00110000 = bin(48). – ... Bildpunkte auf dem Bildschirm durch binäre Kodierung ihrer Farbe repräsentiert. • Computer können diese digitalen binären Daten dann manipulieren, so dass sich z.B. – ... für ganze Zahlen Addition, Subtraktion, Multiplikation und Division umsetzen läßt. – ... für Texte Konkatenation, Teiltextsuche, etc. umsetzen läßt. – ... ein Drucker ein Foto ausdrucken kann. – ... ein Bildschirm einen Film anzeigen kann. Wie sagt man einem Computer wie er seine Daten zu manipulieren hat ? Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 15 Algorithmus Wikipedia Unter einem Algorithmus versteht man eine genau definierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen in endlich vielen Schritten. Lehrbuch über Algorithmen (CLR90) : An Algorithm is any well-defined computational procedure that takes some value as input and produces some value as output. oder hier: Ein Algorithmus ist eine präzise Verarbeitungsvorschrift zur systematischen Lösung eines Problems durch Ausführung elementarer Einzelschritte. Der Name Algorithmus“ leitet sich von dem arabi” schen Mathematiker Abu Abdullah Muhammad ibn Musa al-Chwarizmi (ca. 780-850) her. Denkmal in Khiwa/Usbek. Briefmarke UdSSR Beispiele (?) • Kochrezept • Strickmuster • Notenblatt Rainer Feldmann Universität Paderborn • Baupläne – Lego – Möbel Technische Informatik für Ingenieure (TIFI) • Rechenregeln (z.B. schriftliche Addition) • Computerprogramme WS 09/10 16 Beispiel: Verdoppeln einer Zahl Schreib die zahl vor dich mach eine Linien darunter heb an zu forderst Duplir die erste Figur. Kompt eine zahl die du mit einer Figur schreiben magst so setz die unden Wo mit zweyen schreib die erste Die ander behalt im Sinn. Darnach duplir die ander und gib darzu das du behalten hast und schreib abermals die erste Figur wo zwo vorhanden und duplir fort biß zur letzten die schreibe ganz auf. (Adam Ries, Rechenbuch, 1574) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 17 Beispiel: Verdoppeln einer Zahl Schreib die zahl vor dich mach eine Linien darunter heb an zu forderst Duplir die erste Figur. Kompt eine zahl die du mit einer Figur schreiben magst so setz die unden Wo mit zweyen schreib die erste Die ander behalt im Sinn. Darnach duplir die ander und gib darzu das du behalten hast und schreib abermals die erste Figur wo zwo vorhanden und duplir fort biß zur letzten die schreibe ganz auf. 5 8 9 2 "Zahl vor dich" (Adam Ries, Rechenbuch, 1574) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 17 Beispiel: Verdoppeln einer Zahl Schreib die zahl vor dich mach eine Linien darunter heb an zu forderst Duplir die erste Figur. Kompt eine zahl die du mit einer Figur schreiben magst so setz die unden Wo mit zweyen schreib die erste Die ander behalt im Sinn. Darnach duplir die ander und gib darzu das du behalten hast und schreib abermals die erste Figur wo zwo vorhanden und duplir fort biß zur letzten die schreibe ganz auf. 5 8 9 2 "Zahl vor dich" "Linien darunter" (Adam Ries, Rechenbuch, 1574) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 17 Beispiel: Verdoppeln einer Zahl Schreib die zahl vor dich mach eine Linien darunter heb an zu forderst Duplir die erste Figur. Kompt eine zahl die du mit einer Figur schreiben magst so setz die unden Wo mit zweyen schreib die erste Die ander behalt im Sinn. Darnach duplir die ander und gib darzu das du behalten hast und schreib abermals die erste Figur wo zwo vorhanden und duplir fort biß zur letzten die schreibe ganz auf. 5 8 9 2 "Zahl vor dich" "Linien darunter" 4 "unden" (Adam Ries, Rechenbuch, 1574) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 17 Beispiel: Verdoppeln einer Zahl Schreib die zahl vor dich mach eine Linien darunter heb an zu forderst Duplir die erste Figur. Kompt eine zahl die du mit einer Figur schreiben magst so setz die unden Wo mit zweyen schreib die erste Die ander behalt im Sinn. Darnach duplir die ander und gib darzu das du behalten hast und schreib abermals die erste Figur wo zwo vorhanden und duplir fort biß zur letzten die schreibe ganz auf. 5 8 9 2 1 "Zahl vor dich" "im Sinn" "Linien darunter" 8 4 "unden" (Adam Ries, Rechenbuch, 1574) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 17 Beispiel: Verdoppeln einer Zahl Schreib die zahl vor dich mach eine Linien darunter heb an zu forderst Duplir die erste Figur. Kompt eine zahl die du mit einer Figur schreiben magst so setz die unden Wo mit zweyen schreib die erste Die ander behalt im Sinn. Darnach duplir die ander und gib darzu das du behalten hast und schreib abermals die erste Figur wo zwo vorhanden und duplir fort biß zur letzten die schreibe ganz auf. 5 1 8 9 2 1 7 "Zahl vor dich" "im Sinn" "Linien darunter" 8 4 "unden" (Adam Ries, Rechenbuch, 1574) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 17 Beispiel: Verdoppeln einer Zahl Schreib die zahl vor dich mach eine Linien darunter heb an zu forderst Duplir die erste Figur. Kompt eine zahl die du mit einer Figur schreiben magst so setz die unden Wo mit zweyen schreib die erste Die ander behalt im Sinn. Darnach duplir die ander und gib darzu das du behalten hast und schreib abermals die erste Figur wo zwo vorhanden und duplir fort biß zur letzten die schreibe ganz auf. 5 1 1 1 8 9 2 1 7 "Zahl vor dich" "im Sinn" "Linien darunter" 8 4 "unden" (Adam Ries, Rechenbuch, 1574) Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/10 17 Beispiel: Schriftliche Addition 1 1 1 0 Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) Zwischen werte Ausgabe 12037 Eingabe 5892 6145 WS 09/10 18