Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Größe: px
Ab Seite anzeigen:

Download "Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker"

Transkript

1 Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 19. Juni 2017 Der Text, die Abbildungen und Programme wurden mit größter Sorgfalt erarbeitet. Der Autor kann dennoch für möglicherweise verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Die in diesem Text erwähnten Software und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Marken und unterliegen als solche den gesetzlichen Bestimmungen. Copyright 1999, 2000, Andreas Keese. Alle Rechte vorbehalten Inhaltsverzeichnis 1 Einleitung Lehrbücher zu Java Über diesen Text Grundlagen: Wie arbeitet ein Computer? Der Aufbau eines Computers Organisation des Arbeitsspeichers Bits und Bytes Die Organisation des Arbeitsspeichers Adressen Programmierung eines Computers Zusammenfassung des Kapitels Das Java Programmiersystem JDK Bestandteile des JDK Übersetzen und Ausführen von Java-Programmen Zusammenfassung Erste Schritte die Turtlegraphik Testen der Turtlegraphik Die Bestandteile eines einfachen Java Programms Turtlebefehle

2 5 Grundlagen der Java-Syntax Grundsätzliches zur Syntax von Java Programmen Zusammenfassung Variablen und Datentypen Variablen und ihr Typ Ganze Zahlen Fließkommazahlen Logischer Datentyp Zeichen und Zeichenketten Ausdrücke Was ist ein Ausdruck? Literal Ausdrücke Ganzzahlige Literale Reellwertige Literale Litarale vom Typ boolean Zeichenliterale Zeichenketten Verwendung von Variablen Ausdrücke mit Operatoren Arithmetische Operatoren Inkrement und Dekrement Operatoren Relationale Operatoren Logische Operatoren Bitweise Operatoren Zuweisungsoperatoren Weitere Operatoren Zusammenfassung Typwandlungen Automatische Typkonvertierungen Manuelle Typkonvertierungen Zusammenfassung Anweisungen und Kontrollstrukturen Leere Anweisung Blockanweisung Variablendefinitionen Ausdrucksanweisungen If Anweisung Switch Anweisung Schleifen

3 9.7.1 Die While Schleife Die Do Schleife Die For Schleife break und continue Zusammenfassung Objekte in Java Objekte und primitive Datentypen Der Lebenszyklus eines Objektes Die Erzeugung von Objekten Die Identität eines Objektes Die Kommunikation mit Objekten Welche Botschaften versteht ein Objekt? Die Zerstörung von Objekten Zusammenfassung Arrays Definition von Arrays Verwendung von Arrays Array Literale Primitive Arrays und Objektarrays Referenztypen am Array-Beispiel Mehrdimensionale Arrays Zusammenfassung Klassen in Java Instanz- und Klassenbestandteile Zugriff auf Methoden und Attribute Die Bestandteile einer Java Klasse Attribute Definition von Methoden Mehrere Methoden mit gleichem Namen Konstruktoren Die Parameterübergabe an eine Methode Zusammenfassung Dokumentieren von Java Programmen Wie arbeitet javadoc? Zusammenfassung Vererbung Extensionen von Klassen Ein einführendes Beispiel Erweitern von Klassen Überschreiben von Methoden

4 14.4 Die super Variable Vererbung und Konstruktoren Beispiele Die Object-Klasse Abstrakte Klassen Zuweisung an Variablen und Arrays Zusammenfassung Packages Zusammenfassung Exceptions Try catch Ausnahmen werfen Exceptions in Methoden Ein paar abschließende Bemerkungen Zusammenfassung A Anhang: Unix, Editor und CIP-Pool 134 A.1 Hinweise zu weiterer Unix-Literatur A.2 Editoren A.2.1 Der nedit-editor A.2.2 Der Emacs-Editor A.3 Das Hilfe-System A.3.1 Der man-befehl A.3.2 Der Apropos-Befehl A.4 Ausgabeumleitung A.5 Trennung von Rechner und Bildschirm B Anhang: Verwendung von Java unter Unix 140 B.1 Java-Compiler und Laufzeitumgebung B.2 Kompilation B.3 Datentypen C Probleme 142 C.1 Probleme bei Verwendung von javac C.2 Probleme bei Verwendung von java D Goldene Regeln fürs Programmieren 145 D.1 Allgemeines D.2 Quelldateien D.3 Klassen D.4 Methoden D.5 Variablen, Konstanten und Literale

5 D.6 Kontrollstrukturen E Installation von Java und Turtle Graphik 149 E.1 Installation von Java E.2 Der CLASSPATH E.3 Installation der Turtle Graphik E.4 Erweitern des CLASSPATH Inhaltsverzeichnis 5

6 1 Einleitung In der Veranstaltung Einführung in das Programmieren wollen wir Sie dabei unterstützen, das Programmieren in Java 1 zu erlernen. Dabei gehen wir davon aus, daß Ihre bisherige Erfahrung im Programmieren vernachlässigbar sind. Bitte beachten Sie: Dieser Begleittext ist im Wintersemester 1999/2000 entstanden und ist auf die damalige Form dieser Veranstaltung zugeschnitten. Im Sommersemester 2000 wurde der Fokus der Veranstaltung etwas verändert. Momentan passen nur die ersten 4 Kapitel sowie die Anhänge zur momentanen Form der Veranstaltung. Es ist nicht sicher, ob wir auch die späteren Kapitel überarbeiten werden. Unabhängig davon können Sie die ersten 4 Kapitel dennoch mit Gewinn für sich nutzen. 1.1 Lehrbücher zu Java Es sollte zunächst erwähnt werden, daß Java sehr viele Bestandteile hat. Zum einen gehört zu Java die Java-Programmiersprache, zum anderen enthält Java viele Werkzeuge, die es ermöglichen, Fenster und Graphiken auf dem Monitor anzuzeigen. Es gibt Werkzeuge, mit denen der Rechner zur Tonerzeugung verwendet werden kann oder mit denen man Programme fürs Internet schreiben kann. Alle Bestandteile von Java zusammen nennt man das JDK: Java Development Kit. Die meisten Lehrbücher zu Java versuchen, alles über Java erzählen, und das geht dann zu Lasten der Erklärung der Programmiersprache meistens ist für die Grundlagen der Programmierung in diesen Büchern weniger als ein Drittel vorgesehen. Nun wollen wir Ihnen in dieser Veranstaltung aber gerade die Grundlagen des Programmierens vermitteln. Die Entwicklung von Internet-, Fenster- und Graphikanwendungen mag ja sehr interessant sein, aber bevor man derartige Programme schreibt, sollte man doch die Grundlagen der Programmierung beherrschen. Ein sich uneingeschränkt eignendes Lehrbuch zu Java für Programmieranfänger, haben wir leider nicht gefunden. Daher haben wir den vorliegenden Text erstellt. Die folgenden Lehrbücher sind bedingt empfehlenswert: Computing Concepts with JAVA Essentials Cay S. Horstmann John Wiley & Sons, 2000, 89,90, DM Computing Concepts with JAVA Essentialsßeichnet sich aus durch eine anfängerorientierte, didaktisch sehr gute Darstellung des Stoffes, die für den Studienanfänger durch die englische Sprache - mit Fachidiom der EDV und Programmiersprachen - gedämpft wird. Das Buch enthält eine Vielzahl an Programmbeispielen und stellt alle Konzepte der Sprache weitgehend umfassend und gut verständlich dar. Rückgriffe auf Rechnerarchitektur und Historie lockern den Stoff auf

7 Das Buch ist gut geeignet, die Veranstaltung im Selbststudium zu ergänzen. Auf der Webseite 2 des Authors finden Sie weitere Hinweise zum Buch. Go To Java 2 Guido Krüger Addison Wesley, 1999, ISBN , 89,90, DM Dieses Buch eignet sich sehr gut für Leser mit etwas Programmiererfahrung. Das Buch ist in einer Online Version frei erhältlich, welche wir auf unserem Server 3 spiegeln. Falls Sie an einem Rechner außerhalb des Netzes der TU Braunschweig arbeiten, können Sie das Buch auf den Seiten des Authors 4 lesen. Java in 21 Tagen Laura Lemay, Charles L. Perkins Markt u. Technik, 1999, 89,95, DM. Dieses Buch eignet sich gut für Programmieranfänger. Es ist im WWW 5 frei verfügbar. The Java Tutorial Mary Campione, Kathy Walrath Addison Wesley, 1998, 85,- DM The Java Tutorial richtet sich an Personen, die bereits programmieren können. Es beschreibt mit vielen instruktiven Beispielen, wie man in Java Fenster-, Graphik- oder Internetanwendungen programmiert. Dabei ist aufgrund der vielen Querverweise im Buch die Html-Version vermutlich besser lesbar als die gedruckte Fassung. Wir spiegeln die Online Fassung 6. Wenn Sie an einem Rechner außerhalb des Netzes der TU Braunschweig arbeiten, können Sie es auf den Seiten von Sun 7 lesen. 1.2 Über diesen Text Aufgrund der Probleme bei der Suche nach einem Lehrbuch haben wir uns entschlossen, einen Begleittext zur Veranstaltung zu schreiben. Er soll gemeinsam mit den Hausaufgabe als Leitfaden durch die Veranstaltung dienen wir werden Ihnen in den Hausaufgaben mitteilen, wann Sie welche Kapitel lesen sollen oder wann Sie auf Sekundärliteratur zurückgreifen sollen. Es ist empfehlenswert, den Text parallel zu den Hausaufgaben zu verwenden. Sie finden in den Hausaufgabenblöcken Hinweise, welche Teile im Begleittext vor oder während der Bearbeitung gelesen werden sollten. Zum Lesen des Textes noch folgende Hinweise: Jedes Kapitel endet mit einer Reihe von Fragen, die Sie nach dem Lesen des Kapitels beantworten können sollten. Sie können diese Fragen verwenden, um vor dem Lesen des Kapitels einen Eindruck von seinem Inhalt

8 zu erhalten. Außerdem können Sie anhand der Fragen prüfen, ob Sie das Kapitel verstanden haben. Wir präsentieren viele Beispiele. Bitte vollziehen Sie die Programmierbeispiele und Kommandos am Rechner nach. Kommandozeilenbefehle präsentieren, schreiben wir als > Kommando Dabei bedeutet das führende Größerzeichen, daß Sie diesen Text auf der Kommandozeile eingeben sollen. Es soll nicht mit eingetippt werden. Beim Erlernen des Programmierens in Java wünschen wir Ihnen viel Erfolg! 2 Grundlagen: Wie arbeitet ein Computer? Bevor wir auf die Programmierung von Rechnern eingehen, möchten wir sichergehen, daß Sie ein Grundverständnis vom Aufbau und von der Funktionsweise eines Rechners haben. Was es bedeutet, einen Rechner zu programmieren wollen wir Ihnen auch beschreiben. Im weiteren verwenden wir übrigens den deutschen Begriff Rechner und den englischen Begriff Computer synonym. Wenn Sie bereits eine klare Vorstellung vom Aufbau und der Funktionsweise eines Computers haben, können Sie diesen Abschnitt überfliegen oder überspringen und Ihr Wissen anhand der Zusammenfassung am Ende des Kapitels überprüfen. 2.1 Der Aufbau eines Computers Es bedarf eigentlich keines Kommentars, daß Computer heutzutage in allen Lebensbereichen eingesetzt werden. Computer berechnen, ob geplante Brücken stehenbleiben werden, sie steuern Flugzeuge, erledigen Ihre Steuererklärung und moderne Filme werden meist komplett im Computer nachbearbeitetet. Es mag vielleicht überraschen aber es gibt einen Oberbegriff für diese vielfältigen Fähigkeiten von Computern: Datenverarbeitung. Egal, was ein Computer tut, er verarbeitet immer Daten. Dabei ist ein Computer ziemlich dumm ob er Musikdaten verarbeitet, für einen Film künstliche Dinosaurier auferstehen lässt, ob er Ihre Steuereklärung bearbeitet oder Lara Croft aufregende Abenteuer bestehen läßt, ist ihm ziemlich egal. Er ist nicht dazu in der Lage, einen Unterschied zwischen all diesen verschiedenen Daten zu bemerken. Für ihn bestehen Daten nur aus Zahlen. Wir Menschen müssen ihm bis ins kleinste Detail erklären, wie all diese Zahlen verarbeitet und interpretiert werden sollen. Ob aus einer Zahlenkolonne dann ein Lied, ein Film oder eine Steuererklärung wird, wird nur durch die Datenverarbeitungsregeln durch das Programm bestimmt. Die wesentlichen Bestandteile eines Computers zeigt die folgende Graphik: 8

9 Graphik 1 : Aufbau eines Computers Benutzer schnittstelle Dateneingabe Datenausgabe Tastatur Maus Drucker Bildschirm Zentraleinheit (CPU) Speicher ROM RAM Festplatte Diskette Arbeitsspeicher Nicht flüchtiger Speicher: Die zu verarbeitenden Daten müssen dem Computer irgendwie übergeben werden jeder Computer benötigt also Dateneingabe-Möglichkeiten. Die wichtigsten Dateneingabegeräte sind die Tastatur und die Maus. Auch die Regeln, nach denen er diese Daten verarbeiten soll, müssen dem Computer irgendwie genannt werden. Da diese Regeln bzw. Programme nichts anderes als spezielle Daten sind, können sie auf dieselbe Art und Weise in den Computer eingeben werden wie alle anderen Daten auch. Da wir Menschen die vom Computer verarbeiteten Daten irgendwie weiter verwenden wollen, besitzen fast alle Computer Möglichkeiten zur Datenausgabe wie Monitor, Drucker oder Soundkarte. Die zu verarbeitenden Daten und die Programme muß sich der Computer irgendwo merken. Dies geschieht im Speicher des Computers. Wir unterscheiden flüchtigen und nicht-flüchtigen Speicher. Die im flüchtigem Speicher enthaltenen Daten werden bei jedem Ausschalten des Computers gelöscht. Unter flüchtigem Speicher versteht man vor allem den RAM Random Access Memory genannten Teil des Arbeitsspeichers. Wenn man den Computer ausschaltet, gehen alle Inhalte des RAM verloren. Dem RAM kommt eine besondere Bedeutung zu, weil in der Regel alle vom Computer zu verarbeitenden Daten und Programme vor der Verarbeitung hierher übertragen werden müssen. Die Datenverarbeitung selber geschieht mit Hilfe der CPU (Central Processing Unit = Zentraleinheit), welche auch Prozessor genannt wird. Der Prozessor ist eigentlich immer beschäftigt sobald der Computer angeschaltet wird, beginnt er damit, im Arbeitsspeicher enthaltene Programme abzuarbeiten und gönnt sich dabei (fast) keine Pause, bis man den Computer ausschaltet. Damit die Programme und Daten nicht bei jedem Anschalten des Computers neu eingetippt werden müssen, besitzt heutzutage jeder Computer auch nichtflüchtigen Speicher, also Speicher dessen Inhalt beim Ausschalten des Computers nicht verloren geht. Als wichtigste Vertreter sind hier die Festplatte, Diskettenlaufwerke und CD-Roms zu nennen. Da die Festplatte meist einer der schnellsten nicht-flüchtigen Speicher eines Rechners ist, werden häufig benötigten Daten dort gespeichert. Ein weiterer wichtiger nicht-flüchtigen Speicher ist das ROM (Read-only Memory). Das ROM ist ein nicht-beschreibbarer Teil des Arbeitsspeichers. Sie selbst 9

10 können im ROM Ihres Computers also keine Daten ablegen. Trotzdem könnte kein Computer ohne ROM arbeiten. Der Grund hierfür ist, daß ein Computer nichts tun kann, das man ihm nicht in allen Einzelheiten erklärt. Er benötigt sogar ein Programm, das ihm erklärt, wie er zu starten hat. Beim Start muß der Computer nämlich alle angeschlossenen Geräte erkennen und in Gang setzen, und wie er das zu tun hat, ist im ROM beschrieben. Außerdem muß der Computer direkt nach dem Anschalten das Betriebssystem starten, auch OS (Operating System) oder DOS (Disk Operating System) genannt. Ein Betriebssystem ist ein sehr umfangreiches Programm, welches den Computer durch Menschen benutzbar macht. Das Betriebssystem ermöglicht dem Computer, mit seinen Benutzern zu kommunizieren (wichtige Betriebssysteme sind MS DOS, MS Windows, das Mac-OS sowie Unix-Betriebssysteme wie Linux oder Solaris). Ohne Betriebssystem wüsste der Computer nicht, was er auf dem Bildschirm anzeigen soll, und man könnte ihn weder per Maus noch per Tastatur bedienen. Wie wird das Betriebssystem gestartet? Beim Anschalten weiß der Computer noch gar nicht, wie er das Betriebssystem von der Festplatte laden und starten soll. Deshalb hat der Hersteller des Computers die hierfür benötigten Programme im ROM abgelegt. Beim Start befolgt der Computer zunächst das im ROM gespeicherte Startprogramm und startet dabei das Betriebssystem. Die Rechner, an denen Sie im CIP-Pool während des Kurses arbeiten werden, laufen übrigens alle unter einer Variante des Betriebssystems Unix, welche von der Firma IBM unter dem Namen AIX vertrieben wird. Beim Bearbeiten der ersten Hausaufgabe werden Sie einige Dinge über Unix lernen. 2.2 Organisation des Arbeitsspeichers Bits und Bytes Alle Daten und Programme müssen vor ihrer Verarbeitung im RAM abgelegt werden. Auf der physikalischen Ebene ist das RAM aus unzähligen elektrischen Kondensatoren und Transistoren aufgebaut. Ein Kondensator kann dabei in einem von zwei Zuständen sein: entweder trägt er elektrische Ladung oder er ist entladen. Zustände, in denen Kondensatoren nur teilweise aufgeladen sind, werden heutzutage nicht berücksichtigt. Eine Speichereinheit, die nur zwei Zustände annehmen kann, nennen wir Bit, und die beiden Zustände eines Bits beziffern wir mit 0 und 1. Zum Beispiel könnte dem durch einen ungeladenen bzw. geladenen Kondensator repräsentierten Bit der Wert 0 bzw. 1 zugeordnet werden. Da ein Bit nur sehr kleine Informationsmengen speichern kann, werden mehrere Bits zu größeren Einheiten gruppiert. Beispiel: Sicher haben auch Sie schon Werbeslogans gehört, in welchen für 32-Bit-Betriebssysteme oder 32-Bit-Prozessoren geworben wird. Ein 32-Bit-Prozessor ist in der Lage, immer 32 Bit auf einmal aus dem Speicher zu lesen und als eine Einheit zu verarbeiten. Ein älterer 16-Bit-Prozessor hingegen verarbeitet Daten immer in 16-Bit- Portionen. Da ein 16-Bit-Prozessor nur 16 Bit auf einmal verarbeiten kann, müsste er zweimal auf den Speicher zugreifen, um 32 Bit zu lesen, und er müsste zwei Operationen ausführen, um 32-Bit zu verarbeiten. Die Anzahl von Bits, die ein Prozessor auf einmal aus dem Speicher holen 10

11 und verarbeiten kann, nennt man übrigens die Bus-Breite des Prozessores (ein Bus ist ein Bündel von Leitungen, über das Daten transportiert werden). Wenn die zu verarbeitenden Daten in größeren Gruppen als 16 Bit vorliegen, kann ein 32-Bit-Prozessor also tatsächlich schneller sein als ein 16-Bit-Prozessor. Allerdings müssen die benutzten Programme dazu auch wirklich eine Verarbeitung in 32-Bit-Portionen vorsehen. Bevor wir darauf eingehen, zu was für Gruppen man Bits zusammenfaßt, wollen wir uns überlegen, wie viele Zustände man mit einer vorgegebenen Anzahl von Bits darstellen kann. Beispiel: Wenn wir ein Bit verwenden, können wir nur die zwei Zustände 0 und 1 darstellen. Wenn wir zwei Bits verwenden, können wir die vier Zustände 00, 01, 10, 11 darstellen. Drei Bits können die acht Zustände 000,001,010,011,100,101,110,111 darstellen. Es ist sehr leicht zu sehen, daß n Bits genau 2 n verschiedene Zustände annehmen können. Will man also N verschiedene Zustände beschreiben, benötigt man eine Anzahl von Bits, die sich durch Aufrunden von log 2 N ergibt. Beispiel: Um jede Zahl von 0 bis 15 darstellen zu können, benötigt man log 2 16 = 4 Bits. Zur Darstellung der Zahlen sind 7 Bits nötig (log = 6, 66). Die wichtigsten Einheit, zu denen Bits zusammengefaßt werden, sind: Byte: Word: Ein Byte besteht aus 8 Bit und kann 2 8 = 256 Zustände annehmen. Die Größe eines Word hängt vom verwendeten Computer ab. Es besteht in der Regel aus sovielen Bits, wie der Computer zugleich verarbeiten kann. Heutzutage versteht man unter einem Word meist 8 Byte oder 64 Bit. Meist verwendet man die Begriffe Byte oder Word, um einen einzelnen Zahlenwert zu beschreiben. Jedem Zustand eines Bytes oder Words kann man eine Dezimalzahl zuweisen. Dazu fasst man die Zustände der einzelnen Bits als Binärzahl auf. Der Dezimalwert einer Binärzahl berechnet sich wie folgt: Die Bits der Zahl werden von rechts beginnend und mit der Zahl 0 startend durchnumeriert. Anschließend bildet man eine Summe, in welcher man für jedes an der Position i gesetzte Bit die Zahl 2 i einsetzt. Beispiel: Zum Beispiel hat die Binärzahl 010 die Dezimaldarstellung 2 1 = 2. Die Zahl die Dezimaldarstellung =

12 Beispiel: Ein weiteres Beispiel: Computer verwenden meist Byte-Werte, um Buchstaben und andere Zeichen zu beschreiben. Dabei wird jedem Zeichen ein anderer Zahlenwert zugewiesen. Auf meinem Rechner sehen einige Beispiele für diese Zuordnung so aus: Zeichen Zahlenwert Darstellung in Bits a b c A # Prüfen Sie bitte nach, ob die dezimale Darstellung und die Bit-Darstellung zusammenpaßt. Wir haben nun die Grundeinheiten kennengelernt, mit denen ein Computer operiert. Diese Einheiten werden Ihnen auch bei der Programmierung mit Java immer wieder begegnen, denn auch wenn Sie in Java mit Zahlen rechnen, müssen Sie manchmal angeben, in welcher Grundeinheit die Zahlen gespeichert werden sollen. Will man beschreiben, wieviele Daten ein Computer speichern kann, benützt man noch größere Einheiten: KB, Kilo Byte: 1 KB (Ein Kilo Byte) sind 2 10 = 1024 Byte. MB, Mega Byte: 1 MB (Ein Mega Byte) sind 2 10 Kilo Byte oder 2 20 = Byte. GB, Giga Byte: 1 GB (Ein Giga Byte) sind 2 10 Mega Byte oder 2 30 = Byte. TB, Tera Byte: 1 TB (Ein Tera Byte) sind 2 10 Giga Byte bzw Byte. Beispiel: Neue Rechner für den Heimgebrauch oder fürs Büro haben heutzutage in der Regel 128 MB Arbeitsspeicher oder mehr und einige GB Festplattenspeicher; Höchstleistungsrechner haben mehrere GB Arbeitsspeicher und mehrere hundert GB Festplattenspeicher. 2.3 Die Organisation des Arbeitsspeichers Adressen Sie haben erfahren, daß der Arbeitsspeicher eines Rechners aus vielen Bits besteht, die zu Bytes oder größeren Gruppierungen zusammengefaßt werden. Obwohl Sie dies zur Programmierung mit Java nicht unbedingt wissen müssen, möchten wir Ihnen dennoch ganz kurz erzählen, wie der Prozessor Daten im Arbeitsspeicher verwendet. Jedes Byte des Arbeitsspeichers hat eine eindeutige Nummer die Nummer eines Bytes nennt man seine Adresse. Der Prozessor kann über die Adresse Daten im Arbeitsspeicher auslesen und Daten in den Arbeitsspeicher schreiben. Beispiel: Wir können dem Prozessor befehlen, eine Zahl in dem Byte an der Adresse 100 und eine weitere Zahl in dem an der Adresse 200 beginnenden Word zu speichern. Anschließend können wir ihn anweisen, die 12

13 beiden Zahlen zu addieren und das Ergebnis an der Adresse 300 abzulegen. Da hierbei ein Byte und ein Word addiert wird, sollte das Ergebnis mindestens Word-Größe haben. 2.4 Programmierung eines Computers Nachdem Sie nun eine gewisse Vorstellung davon haben, wie ein Computer aufgebaut ist, folgt nun die Erklärung, wie ein Computer Programme verarbeitet. Es ist hoffentlich bereits klar geworden sein, daß Programme nichts anderes sind als Regeln, die einem Computer bis ins allerkleinste Detail erklären, wie er gewisse Daten verarbeiten soll. Es stellt sich nun die Frage, wie man dem Computer derartige Regeln mitteilen soll. Vorher stellt sich aber die Frage, was für Regeln man einem Computer mitteilen kann. Hier sollten Sie sich merken, daß die Regeln, die man einem Computer angibt, immer eindeutig sein müssen. Regeln, die exakt und eindeutig sagen, was zu tun ist, nennt man einen Algorithmus. Ein Computer kann nur Algorithmen verarbeiten. Beispiel: Die Regeln, nach welchen die Dezimaldarstellung einer Binärzahl mit den Bits b n,..., b 0 berechnet werden, könnte umgangssprachlich so beschrieben werden wie im vorigen Kapitel (Seite 2.2): Der Dezimalwert einer Binärzahl berechnet sich wie folgt: Die Bits der Zahl werden von rechts beginnend und mit der Zahl 0 startend durchnumeriert. Anschließend bildet man eine Summe, in welcher man für jedes an der Position i gesetzte Bit die Zahl 2 i einsetzt. Allerdings kann diese Beschreibung mißverstanden werden. Sie ist auch kein Algorithmus, da sie nicht eindeutig ist. Es ist zum Beispiel nicht festgelegt, in welcher Reihenfolge die Summe gebildet werden soll. Ein Computer benötigt immer eine Vorgehensvorschrift, in der jedes Detail genau beschrieben wird. Vor allem darf die Regel nicht den geringsten Entscheidungsspielraum lassen und muß eindeutig sein. Eine Umsetzung der obigen umgangssprachlichen Regel in einen Algorithmus könnte so aussehen: Gegeben sei eine Binärzahl mit den Bits b n,..., b 0. Setze dezimal := 0 Lasse i jeden Wert zwischen 0 und n aufsteigend durchlaufen und Setze für jeden Wert von i dezimal := dezimal + b i 2 i dezimal enthält nun die Dezimaldarstellung der Binärzahl b n,..., b 0 Da die zweite Umrechenregel des obigen Beispiels eindeutig ist, könnte man sie nun in ein Programm für einen Computer umsetzen. Ein Programm ist die Formulierung eines Algorithmus in einer Programmiersprache. Wie schon erwähnt, ist ein Computer ziemlich dumm er versteht nur eine ganz spezielle, für Menschen ungeeignete Sprache, die Maschinensprache. Maschinensprache ist eine Sprache, die nur aus Zahlen besteht. 13

14 Beispiel: Um Sie von Maschinensprache abzuschrecken, zeigen wir Ihnen ein Maschinensprache-Programm. Dabei zeigen wir Ihnen nicht die Zahlen, aus denen das Programm besteht sondern eine textliche Darstellung, in der jeder Zahl ein kurzes Wort wie movl oder imull zugeordnet wurde: movl movl movl imull 30,12345(%ebp) 50,23456(%ebp) 3456(%ebp),%eax 0xfffffff8(%ebp),%eax Dieses Programm multipliziert die Zahlen 30 und 50. Dazu legt es in der ersten Zeile mit dem Befehl movl die Zahl 30 an der Adresse ab. Dann legt es in der zweiten Zeile die Zahl 50 an der Adresse Zahl ab. In der dritten Zeile merkt es sich, daß das Ergebnis der Rechnung an der Adresse 3456 gespeichert werden soll. Schließlich multipliziert es in der vierten Zeile durch den imull-befehl die Zahlen und legt das Ergebnis an Adresse 3456 ab. Sie sehen an diesem Beispiel, daß in Maschinensprache die einfachsten Dinge recht umfangreich werden. Außerdem hat Maschinensprache einen Riesennachteil jeder Prozessor hat eine andere Maschinensprache, und einen PC mit Intel-Prozessor in Maschinensprache zu programmieren, ist etwas ganz anders, als einen Macintosh-Rechner zu programmieren. Wenn Sie Maschinensprache verwenden wollten, müssten Sie für jeden Rechnertyp, auf dem Ihr Programm laufen soll, ein völlig anderes Programm erstellen. Daher wird heutzutage eigentlich nur noch in höheren Programmiersprachen wie Pascal, C, Pascal, C++ oder Java programmiert höhere Programmiersprachen heißen so, weil Sie einen höheren Abstraktionsgrad vom Prozessor haben als Maschinensprache. Nur ein paar wenige Freaks, Hacker und Spieleprogrammier programmieren heutzutage noch in Maschinensprache. Die höheren Programmiersprachen bieten den großen Vorteil, daß man sich nicht selbst darum kümmern muß, an welcher Adresse der Computer Daten ablegen soll, außerdem entspricht ein einzelner Befehl in einer höheren Programmiersprachen einer ganzen Reihe von Befehlen in Maschinensprache. Die höheren Programmiersprachen kommen dabei umgangssprachlichen Formulierungen sehr nahe: Beispiel: Zum Beispiel könnten die Regeln zur Umwandlung einer Binärin eine Dezimalzahl in Java so lauten: /* die Bits der Binärzahl seien in b[0], b[1]... bis in b[n] * gespeichert */ dezimal = 0; for( i = 0; i < n ; i++ ) { dezimal = dezimal + b[i] * 2^i; return dezimal; Sie sehen, daß diese Regeln fast unserem umgangssprachlichen Algorithmus entsprechen. In Maschinensprache sähe das sehr viel komplizierter aus. 14

15 Nun hatten wir vorhin doch erwähnt, daß ein Computer nur Maschinensprache versteht wie kann er dann Programme höherer Programmiersprachen verstehen? Eigentlich ist die Antwort offensichtlich immer wenn ein Computer etwas tun soll, benötigt er eine Vorgehensvorschrift. Damit ein Computer Programme höherer Programmiersprachen verstehen kann, muß ihm ein Programm geben, das für ihn als Übersetzer arbeitet und den Programmtext in Maschinensprache übersetzt. Ein solches Programm nennt sich Compiler. Für jede Programmiersprache gibt es für jeden Rechnertyp einen speziellen Compiler, der gültige Texte der Programmiersprache zu Maschinencode des jeweiligen Rechners kompiliert (kompilieren == übersetzen). Der Compiler dient dem Computer quasi als Dolmetscher für die von uns Menschen erstellten Textdateien. Um ein Programm zu entwickeln und ablaufen zu lassen, sind also die folgenden Schritte nötig: 1. Es muß analysiert werden, was die Problemstellung genau beinhaltet und welche Ziele mit der Programmentwicklung verfolgt werden sollen (Analysephase). 2. Es muß geplant werden, wie die Problemstellung in ein Programm umgesetzt werden soll. Insbesondere müssen die Regeln, nach denen das Programm arbeiten soll, umgangssprachlich formuliert werden. Berechnungsvorschriften müssen hierbei als Algorithmus formuliert werden (Design Phase). 3. Dann muß das Programm in einer Programmiersprache programmiert werden, man sagt auch: implementiert werden (Programmier Phase). 4. Dann muß das Programm kompiliert werden und kann kann anschließend getestet oder verwendet werden. Graphik 2 : Entwicklung eines Programms Programmvorhaben in umgangssprachlicher Fassung Analyse und Entwurf Eindeutige umgangssprachliche Formulierung (Algorithmus) Programmieren Formulierung in höherer Programmiersprache Kompilieren Maschinensprache 2.5 Zusammenfassung des Kapitels Sie sollten nun die folgenden Fragen beantworten können: 15

16 Wie unterscheidet ein Computer Musik-, Graphik- und andere Daten? Was sind Dateneingabe, Zentraleinheit, Speicher, Datenausgabe? Was sind RAM und ROM? Was ist ein Betriebssystem? Wie ist das RAM aufgebaut? Was sind Bits, Bytes, Words, Kilobytes, Megabytes? Warum sind Binärzahlen für Computer wichtig? Was zeichnet einen Algorithmus aus? Was ist der Unterschied zwischen einem Algorithmus und einem Programm? Warum programmiert man Computer meistens nicht in Maschinensprache? Welche Beziehung besteht zwischen Maschinensprache, höherer Programmiersprache und Compiler? 3 Das Java Programmiersystem JDK Im vorigen Kapitel haben Sie erfahren, daß ein Computer nicht in der Lage ist, von Menschen lesbare Programme direkt zu verstehen. Der Computer benötigt einen Dolmetscher, der das für Menschen verständliche Programm in seine Sprache übersetzt. Zum Java Programmiersystem gehören sogar zwei solche Dolmetscher der Java Compiler und die sogenannte Java Virtual Machine. Bevor wir auf die Programmierung von Java eingehen, müssen wir Sie mit dem Java Programmiersystem und speziell mit diesen beiden Dolmetschern vertraut machen. 3.1 Bestandteile des JDK Schon in der Einleitung wurde erwähnt, daß Java 8 nicht nur aus einer Programmiersprache besteht. Alles, was man zur Java-Programmierung benötigt, wurde von den Schöpfern von Java, der Firma Sun 9, in einem Paket zusammengeschnürt, das sich JDK: Java Development Kit nennt. Das JDK enthält folgende Dinge: Eine umfangreiche Sammlung von Programmbausteinen. Im JDK sind bereits sehr viele Programmbausteine, sogenannte Klassen, enthalten. Wenn man diese Bausteine in eigene Programme einbaut, kann man mit Java relativ einfach Internet-, Graphik- oder Fenster-Anwendungen erzeugen. Wir werden Ihnen in dieser Veranstaltung nur ganz wenige dieser Programmbausteine vorstellen, da wir zum Programmieren lernen lieber selbst einfache Programme bauen wollen als komplizierte Programme aus diesen Programmbausteinen zu erstellen

17 Umfangreiche Dokumentation: Für all diese fertigen Programmbausteine (Klassen) und alle anderen Werkzeuge von Java liegt umfangreiche Dokumentation von HTML Dateien vor, welche mit einem WWW Browser betrachtet werden kann. Um die von Java bereitgestellten Programmbausteine zu verwenden, muß man viel mit dieser Dokumentation arbeiten. Daher werden wir im Rahmen dieser Veranstaltung ein paar Aufgaben stellen, bei denen Sie sich in der Dokumentation zurechtfinden müssen. Einige Werkzeuge, zum Beispiel ein Werkzeug, das Ihre Programme liest und die enthaltene Dokumentation in HTML-Dokumenten zusammenfasst. Dieses Werkzeug werden Sie hier auch kennenlernen. Java Compiler und Java Virtual Machine. Diese Programme sind die Dolmetscher zwischen Ihnen und dem Computer. 3.2 Übersetzen und Ausführen von Java-Programmen Ein Java Programm besteht aus einem oder mehreren Programmbausteinen, welche Klassen genannt werden. Jede Klasse ist in der Regel in einer eigenen Textdatei beschrieben und wird mit einem Text-Editor erstellt. Bevor Sie weiterlesen, sollten Sie daher mit einem Text-Editor umgehen können. Sie sollten auch mit der Kommandozeile von Unix umgehen können; Hinweise hierzu finden Sie im Anhang A und in der ersten Hausaufgabe. Wenn Sie unter anderen Betriebssystemen als Unix arbeiten wollen, beschaffen Sie sich die entsprechenden Informationen bitte selbst. Beispiel: In dem untenstehenden Kasten sehen Sie ein sehr einfaches Java Programm. Wenn man es startet, gibt es den Text Hallo, Welt aus. Bitte tippen Sie das Programm in Ihrem Text Editor ab und speichern es in einer Datei namens Hallo.java. Beachten Sie hierbei bitte, daß die Zeilennummern nicht zum Programm gehören wenn wir Beispielprogramme abdrucken, numerieren wir die Zeilen durch, um auf die einzelnen Programmteile eingehen zu können. Außerdem achten Sie beim Abtippen bitte auf die Groß- und Kleinschreibung. Für Java besteht zwischen großgeschriebenen und kleingeschriebenen Buchstaben überhaupt keine Verbindung so ist das Wort class für Java etwas völlig anderes als das Wort Class. Beispiel: Einfache Java Klasse 1 class Hallo 2 { 3 public static void main(string[] args) 4 { 5 System.out.println("Hallo, Welt"); 6 7 Da in diesem Kapitel nur der Java Compiler behandelt werden soll, wollen wir hier auf die Funktionsweise von Java Programmen noch nicht eingehen. Sie brauchen noch überhaupt nicht zu verstehen, was die ganzen 17

18 kryptischen Symbole in dem Programm bedeuten; im nächsten Kapitel wird das alles viel klarer werden. Sie sollten nun eine Textdatei namens Hallo.java mit dem Text des vorigen Beispiels in ihrem Arbeitsverzeichnis besitzen. Als nächstes soll aus dieser Textdatei ein vom Computer ausführbares Programm erzeugt werden. Dazu verwendet man den Java-Compiler. In Kapitel 2.4 wurde ja bereits erläutert, daß ein Compiler ein für Menschen verständliches Programm in ein für Computer verständliches Programm umwandelt. Bevor Sie den Compiler verwenden können, muß auf Ihrem Computer die Java- Programmierumgebung installiert und laufbereit sein. Falls Sie im CIP-Pool der TU Braunschweig arbeiten, dann ist das kein Problem hier ist alles schon fertig installiert. Wenn Sie jedoch zuhause arbeiten möchten, müssen Sie selbst dafür sorgen, daß die Java Umgebung funktioniert. Dabei helfen Ihnen vielleicht unsere im WWW verfügbaren Tips weiter (siehe auch WWW-Seite? ). Wir gehen im weiteren davon aus, daß Sie eine funktionsfähige Java-Programmierumgebung haben. Aber nun zum Java Compiler dieser ist ein Programm namens javac. Um durch ihn, die zuvor von Ihnen erstellte Datei Hallo.java übersetzen zu lassen, wechseln Sie bitte auf einer Kommandozeile in das Verzeichnis, in welchem Sie die Datei abgespeichert haben. Dort geben Sie dann bitte ein: > javac Hallo.java Der Compiler prüft darauf zunächst, ob die Textdatei Hallo.java ein gültiges Java Programm enthält. Java Programme müssen einen ganz bestimmten Aufbau haben, damit sie vom Compiler übersetzt werden können. Nur wenn die Datei tatsächlich ein gültiges Programm enthält, übersetzt der Compiler sie in eine dem Computer verständliche Form und dient so als Dolmetscher zwischen uns und dem Computer. Wenn Sie die Klasse korrekt abgetippt haben, sollte das Kompilier Kommando zu keiner Bildschirmausgabe führen. Der Compiler ist auch kleinsten Tippfehlern gegenüber sehr ungnädig selbst wenn Sie beim Abtippen des Programms nur kleine Fehler gemacht haben, kann es ihnen passieren, daß der Compiler ihr Programm mit einer Fehlermeldung ablehnt. Falls Ihnen das beim Compiler Aufruf passiert ist, prüfen Sie bitte, ob Sie das Beispielprogramm exakt abgetippt haben, korrigieren es, speichern die Änderungen (!) und probieren dann erneut den Aufruf des Compilers. Wenn das nicht hilft, lesen Sie bitte unsere Hinweise zu Fehlermeldungen in Anhang C. Wenn Sie auch damit nicht weiterkommen, holen Sie sich bitte einen Hiwi zur Hilfe. Wir gehen im folgenden davon aus, daß der Aufruf des Compilers funktioniert hat. In diesem Fall hat der Compiler Ihr Programm übersetzt und die übersetzte Fassung in einer neuen Datei namens Hallo.class gespeichert. Schauen Sie bitte nach, ob diese Datei tatsächlich erzeugt wurde 10. Die neu erzeugte Datei Hallo.class enthält die für einen Computer verständliche Version unserer Klasse. Wenn Sie diese Datei mit dem cat-kommando auf den Bildschirm ausgeben, erhalten Sie eine ganz wilde Ausgabe außerdem 10 Wenn Sie nicht wissen, wie das geht, haben Sie vermutlich Anhang A noch nicht gelesen 18

19 müssen Sie danach möglicherweise eine neue Kommandozeile öffnen, weil Ihre alte Kommandozeile nur noch komische Zeichen anzeigt. Wir Menschen können mit dem Inhalt der erzeugten Datei Hallo.class also nicht viel anfangen. Wir haben Ihnen bisher aber nur die halbe Wahrheit erzählt es ist zwar tatsächlich so, daß der Java Compiler die Textdatei Hallo.java in eine Maschinnensprache Datei Hallo.class umgewandelt hat. Es kann jedoch kein tatsächlich existierender Computer die vom Java Compiler benutzte Maschinensprache direkt verstehen. Der Java Compiler übersetzt nämlich jedes Programm in eine künstliche Maschinensprache, den Java Bytecode. Java Bytecode ist eine Art Computer Esperanto. Kein Computer versteht es direkt, doch es ähnelt den meisten Computermaschinensprachen. Soll ein Computer das in einer Java Bytecode Datei enthaltene Programm abarbeiten, so benötigt er einen weiteren Dolmetscher, der den Java Bytecode für ihn übersetzt. Dieser zweite Dolmetscher nennt sich Bytecode-Interpreter 11. Man tut im übrigen so, als wäre Bytecode tatsächlich eine Maschinensprache und stellt sich gerne vor, daß irgendwo ein Computer existieren könnte, der den Bytecode direkt versteht. Da dieser Computer aber nur durch den Bytecode- Dolmetscher existiert, nennt man den Bytecode-Dolmetscher auch Java Virtual Machine (JVM) (virtueller Java-Computer). Natürlich können Java-Programme damit nicht so schnell sein wie Programme anderer Programmiersprachen, welche für den jeweilige Computer direkt verständlichen Programmcode erzeugen. Der Prozessor Ihres Computes führt ja kompilierte Java Programme niemals direkt aus sondern benutzt immer seinen Bytecode Dolmetscher. Der Umweg über den Java Bytecode ist aber auch ein sehr großer Vorteil und hat den Einsatz von Java im Internet erst ermöglicht hierdurch werden Java-Programme nämlich systemunabhängig. In der Theorie läuft jedes Java- Programm auf jeder Hardware und auf jedem Betriebssystem, für das eine virtuelle Java Maschine existiert. Man muß sich also nicht mehr entscheiden, ob man ein Programm für Windows, Macintosh, Unix oder sonst ein Betriebssystem kompiliert. Wenn die virtuelle Java-Maschine auf diesem Betriebssystem vorhanden ist, läuft hierauf jedes kompilierte Java Programm. Das Programm, welches die virtuelle Maschine simuliert, heißt java. Um die kompilerte Datei Hallo.class auszuführen, geben Sie bitte auf der Kommandozeile das Kommando > java Hallo ein. Daraufhin führt der Bytecode-Interpreter den in Hallo.class enthaltenen Bytecode aus. Es sollte folgende Meldung am Bildschirm erscheinen: Gratuliere, Ihr erstes Java--Programm funktioniert. Ein Hinweis noch: Beachten Sie, daß die Endung.class beim Aufruf des Bytecode-Interpreters nicht mit angegeben werden darf. Hingegen muß beim Aufruf des Compilers javac immer die Endung.java mit angegeben werden. 11 Das englische Wort Interpreter heißt auf deutsch Dolmetscher 19

20 3.3 Zusammenfassung Was ist das JDK? Warum benötigt man einen Compiler? Sie sollten den Java-Compiler aufrufen können. Was erzeugt der Java-Compiler? Was ist ein Bytecode-Interpreter, und warum wird er benötigt? Wie unterscheiden sich Java-Compiler und Bytecode-Interpreter bezüglich der Endung von Dateinamen? Überlegen Sie sich, wieso der Bytecode Java so gut für die Verwendung im Internet geeignet macht berücksichtigen Sie hierbei, daß für Menschen verständlicher Programmtext meist als Geschäftsgeheimnis angesehen wird. 4 Erste Schritte die Turtlegraphik Dieses Kapitel soll Sie anhand von einfachen Programmen mit einigen zentralen Begriffen von Java vertraut machen, insbesondere dem Objekt und Klassenbegriff. 4.1 Testen der Turtlegraphik Bei der Einführung dieser Begriffe werden wir uns auf eine von uns erstellte Java Erweiterung beziehen, auf eine sogenannte Turtlegraphik. Die Idee der Turtlegraphik stammt übrigens aus der Programmiersprache Logo da die Turtlegraphik mit sehr einfachen Mitteln die Erstellung ansprechender Graphiken ermöglicht und die graphische Ausgabe die Arbeitsweise eines Programms verdeutlicht, wird sie ein wichtiger Bestandteil dieser Veranstaltung sein. Der Turtlegraphik liegt die Vorstellung zugrunde, auf dem Bildschirm krabbele ein kleines Tierchen herum, z.b. eine Schildkröte (engl. Turtle). Diesem Tierchen kann man befehlen, eine gewisse Anzahl von Schritten vorwärts oder rückwärts entlang seiner Blickrichtung zu gehen. Man kann ihm auch befehlen, sich nach rechts oder links zu drehen und so seine Blickrichtung zu ändern. Die Turtle trägt mit sich viele verschiedenfarbige Stifte herum, und man kann es dazu auffordern, einen Stift auszuwählen und ihn abzusetzen oder anzuheben. Wenn sich die Turtle bei abgesetztem Stift bewegt, zeichnet sie eine Linie in der Stiftfarbe. In den CIP Pools der TU ist die Turtlegraphik bereits installiert. Dennoch müssen Sie gewisse Vorbereitungen treffen, um die Turtle zu verwenden (siehe erste Hausaufgabe). Wenn Sie die Hausaufgaben und den Begleittext jedoch zuhause bearbeiten wollen, müssen Sie sie sich dort erst noch installieren. Eine Installationsanleitung finden Sie im Anhang E. Testen Sie bitte zuerst, ob die Turtlegraphik bei Ihnen korrekt installiert ist, indem Sie auf der Kommandozeile > java eip.turtledemo eingeben. Falls das nicht funktioniert, schauen Sie bitte in den soeben genannten Anhang. 20

21 Auf dem Bildschirm sollte sich ein zweigeteiltes Fenster öffnen. Im oberen Bereich des Fensters sehen Sie eine Schrift sowie ein dreieckiges Symbol, und im unteren, dunkleren Bereich sehen Sie Knöpfe, welche mit Step, Run Slow, Stop und Quit betitelt sind. Drücken Sie nun einige Male auf den Step Knopf. Sie werden feststellen, daß sich das dreieckige Symbol bei jedem Druck bewegt und dabei Striche malt, welche eine Art Baum ergeben. Das dreieckige Symbol werden wir im weiteren eine Turtle nennen Sie können sich das so vorstellen, daß auf dem Bildschirm eine kleine Schildkröte herumkrabbelt und dabei Striche zieht. Nach einigen Schritten wird das Drücken des Knopfes mühselig drücken Sie dann den Run Slow Knopf. Die Turtle läuft nun selbstständig über den Bildschirm, ohne auf weitere Knopfdrücke zu warten. Durch einen Druck auf den Stop Knopf können Sie sie jederzeit anhalten. Probieren Sie das und drücken Sie dann den Run Knopf. Nun läuft die Turtle so schnell, daß sie gar nicht mehr zu sehen ist. Auch hier können Sie jederzeit den Stop Knopf drücken. Wenn Sie das Programm verlassen wollen, können Sie jederzeit den Quit Knopf verwenden. 4.2 Die Bestandteile eines einfachen Java Programms Bitte tippen Sie das folgende Beispiel ab und speichern es in einer Datei namens Kreuz.java: Kreuz.java a a Siehe Anschließend kompilieren Sie es bitte durch > javac Kreuz.java und starten es dann mit dem Befehl > java Kreuz Sie sehen nun das Fenster, welches Sie bereits kennen, und wenn Sie die Turtle wie in Abschnitt 4.1 beschrieben laufen lassen, sollte ein Kreuz gezeichnet werden. Lassen Sie uns die einzelnen Bestandteile dieses Programms Zeile für Zeile untersuchen Sie werden sicher nicht alle Erläuterungen verstehen. Lesen Sie bitte die Ausführungen dennoch, um einen ersten Eindruck der Programmierung in Java zu erhalten. In Zeile 1 3 steht ein durch die Zeichen /* und */ eingeschlossener Text. Dies ist ein Kommentar. Der Java Compiler ignoriert jeden so umschlossenen Text, auch wenn er aus mehreren Zeilen besteht. Kommentare dienen dazu, Programme lesbarer zu machen man kann in Kommentare Texte schreiben, welche beim Verständnis der nebenstehenden Programmbefehle helfen. 21

22 Zeile 4 In Zeile 5 6 ist leer. Leerzeilen dienen der besseren Lesbarkeit des Programmes für Menschen. Für Java haben Leerzeilen gar keine Bedeutung. wird Java angewiesen, die Programmbausteine eip.turtlescreen und eip.turtle zu importieren. Jedes Java Programm setzt sich aus kleineren Bausteinen zusammen, sogenannten Klassen. Einige Klassen sind in Java fest eingebaut und müssen Java nicht erst bekannt gemacht werden. Die Klassen TurtleScreen und Turtle sind von uns erstellt worden und sind Java normalerweise nicht bekannt. Will man sie verwenden, muß man Java daher zuerst mitteilen, wo sie auf der Festplatte zu finden sind. Dies geschieht durch Angabe eines Verzeichnispfades, gefolgt vom Namen des Programmbausteins. Wenn wir hier den Befehl import eip.turtlescreen verwenden, so sagen wir Java damit: Wir möchten gerne die Klasse TurtleScreen verwenden, die im Pfad eip zu finden ist. Java sucht darauf in gewissen Verzeichnissen 12 nach einer Datei TurtleScreen.class und macht den enthaltenen Programmbaustein für uns nutzbar. In Zeile 8 sehen Sie den Text class Kreuz {. So teilen wir dem Java Compiler mit, daß wir nun selbst einen Programmbaustein, nämlich die Klasse Kreuz, definieren. Java verlangt, daß der Name einer Programmdatei gleich dem Namen der enthaltenen Klasse, ergänzt um das Anhängsel.java ist. Die Klasse Kreuz muss also zwingend in einer Datei namens Kreuz.java enthalten sein. Eine Klasse (ein Programmbaustein) besteht aus vielen Java Befehlen. Immer, wenn in Java mehrere Anweisungen zu größeren Einheiten gruppiert werden müssen, benutzt man dazu geschweifte Klammern. Die geschweifte Klammer in Zeile 8 wird von der geschweiften Klammer in Zeile 22 geschlossen. So wird der Text der Zeilen 9 21 zusammengefasst. Java interpretiert so allen Text innerhalb dieses Klammerpaares als Bestandteil der Klasse Kreuz. Geschweifte Klammerpaare samt Inhalt nennt man Block. Blöcke enthalten oft andere Blöcke. In unserem Beispiel enthält dieser die Klasse definierende Block noch einen anderen Block, der sich über die Zeilen erstreckt. In Zeile 10 sehen Sie den Beginn des Hauptprogramms der Kreuz Klasse. Jede Klasse besteht aus vielen kleineren Programmstücken. Dabei übernimmt jedes der kleineren Programmstücke eine spezielle Aufgabe innerhalb der Klasse. Diese kleineren Programmstücke heissen in Java übrigens Methoden. 12 In welchen Verzeichnissen gesucht wird, müssen Sie hier nicht wissen falls es Sie interessiert, können Sie es im Anhang?? nachlesen. 22

23 Zeile 11 Zeile 12 Will man etwa ein Programm schreiben, welches zwei Kreuze zeichnet, so würde man zuerst ein Programmstück (eine Methode) schreiben, welches ein Kreuz zeichnet und dann eine weitere Methode, welche die erste Methode zweimal verwendet. Die Aufteilung eines Programms in viele kleine Stücke ist eine sehr gute Sache, da sie Programme überschaubarer und leichter zu erweitern macht. Es stellt sich die Frage, welche Methode ablaufen soll, wenn man ein Programm von der Kommandozeile startet (etwa durch den Befehl java Kreuz ). In Java ist das so gelöst, daß immer die sogenannte main Methode gestartet wird, welche durch den Text public static void main(string[] args) gekennzeichnet ist. Eine Methode besteht aus einer Reihe von Anweisungen, welche durch geschweifte Klammern zusammengefasst werden. Im vorliegenden Beispiel erkennen Sie ein Klammerpaar, welches in Zeile 10 beginnt und in Zeile 21 geschlossen wird. Die main Methode besteht daher aus allen Anweisungen in den Zeilen 11 bis 20. Zeile 11 ist die erste Zeile des Hauptprogramms der Kreuz Klasse. Wenn Sie die Kreuz Klasse von der Kommandozeile starten, beginnt hier die Ausführung des Programms. In Zeile 11 wird auf der rechten Seite des Gleichheitszeichens durch den Text new TurtleScreen() ein neuer TurtleScreen erzeugt. Ein TurtleScreen ist ein Fenster, in welchem die Turtle umherläuft. Der Befehl new TurtleScreen() öffnet hier ein neues Fenster auf dem Bildschirm Ihres Computers. Vorher, in Zeile 5, hatten wir Java mitgeteilt, wo es den Programmbaustein TurtleScreen finden kann. Hätten wir das nicht getan, wüsste Java mit Zeile 11 nichts anzufangen. Damit wir mit Java über den neu angelegten TurtleScreen reden können, müssen wir ihm einen Namen geben. Dies geschieht auf der linken Seite des Gleichheitszeichens, wo wir eine Variable namens ts erzeugen. Zeile 11 ist somit die programmtechnische Formulierung des Befehls Öffne ein neues TurtleScreen Fenster und benenne es mit ts. Zeile 12 ähnelt Zeile 11. Durch den Befehl new Turtle(ts) wird eine neue Turtle angelegt, welche auf den in Zeile 11 angelegten TurtleScreen gesetzt wird. Diese wird daraufhin als dreieckiges Symbol auf dem Bildschirmfenster angezeigt. Die neue Turtle erhält dabei den Namen t. In Zeile werden der in Zeile 12 erzeugten Turtle Botschaften geschickt. In Zeile 14 steht beispielsweise der Programmbefehl t.pd(); 23

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 19. Juni 2017 Der Text, die Abbildungen und Programme wurden

Mehr

2 Grundlagen: Wie arbeitet ein Computer?

2 Grundlagen: Wie arbeitet ein Computer? 2 Grundlagen: Wie arbeitet ein Computer? Bevor wir auf die Programmierung von Rechnern eingehen, möchten wir sichergehen, daß Sie ein Grundverständnis vom Aufbau und von der Funktionsweise eines Rechners

Mehr

Wissenschaftliches Rechnen I

Wissenschaftliches Rechnen I Wissenschaftliches Rechnen I Vorlesung im WS 06/07 von Prof. Dr. Nicolas Gauger Humboldt Universität zu Berlin Institut für Mathematik Zimmer 2.403 Email: gauger@mathematik.hu-berlin.de Tel.: 030 2093-5833

Mehr

Wissenschaftliches Rechnen I

Wissenschaftliches Rechnen I Wissenschaftliches Rechnen I Vorlesung im WS 07/08 von Prof. Dr. Nicolas Gauger Humboldt Universität zu Berlin Institut für Mathematik Zimmer 2.424 Email: nicolas.gauger@dlr.de Tel.: 030 2093-5833 und

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

4 Erste Schritte die Turtlegraphik

4 Erste Schritte die Turtlegraphik 4 Erste Schritte die Turtlegraphik Dieses Kapitel soll Sie anhand von einfachen Programmen mit einigen zentralen Begriffen von Java vertraut machen, insbesondere dem Objekt und Klassenbegriff. 4.1 Testen

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann

Mehr

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 17. November 2014 Der Text, die Abbildungen und Programme

Mehr

1.3.1 Java-Compiler installieren

1.3.1 Java-Compiler installieren 1 Java 1.3.1 Java-Compiler installieren Der Java-Compiler ist, wie auch die Java Virtual Machine, Teil des Java Development Kit (JDK) und kann kostenlos auf der Website von Oracle heruntergeladen werden.

Mehr

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Informatik I - Einstiegskurs

Informatik I - Einstiegskurs Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und

Mehr

Kapitel. Platzhalter. Was sind Platzhalter?

Kapitel. Platzhalter. Was sind Platzhalter? Kapitel 3 Was sind? sind ganz wichtige Elemente bei der Programmierung. Alle Programme, die du schon kennst (wie beispielsweise die Textverarbeitung WORD oder ein Programm zum Verschicken von E-Mails),

Mehr

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dr. Thomas Scheidl Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz scheidl@pervasive.jku.at Java Einführung Java

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

Einführung in Java. Ausgewählte Quellen zu Java

Einführung in Java. Ausgewählte Quellen zu Java Einführung in Java Wesentliche Eigenschaften und Merkmale der Programmiersprache Java Prof. Dr. Stefan Böttcher Universität Paderborn im Rahmen der Vorlesung: Webbasierte Informationssysteme SS 2004 Einführung

Mehr

8 Typwandlungen. 8.1 Automatische Typkonvertierungen

8 Typwandlungen. 8.1 Automatische Typkonvertierungen 8 Typwandlungen Hier geben wir Ihnen weitere Informationen zu Goto Java 2, die Sie ergänzend zu Hausaufgabe 3 lesen sollten. Sie sollten für die weiteren Ausführungen zunächst in Go To Java Kapitel 4.6

Mehr

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache 2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir

Mehr

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise Coma I Einleitung 1 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise 2 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Eclipse Tutorial.doc

Eclipse Tutorial.doc Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik Eclipse Tutorial 2005, HTI Burgdorf R. Weber Dateiname: Eclipse

Mehr

Algorithmen versus Programmiersprachen

Algorithmen versus Programmiersprachen Coma I Einleitung Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen

Mehr

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 02 Java was, wann, warum, wieso Java, eine objektorientierte Programmiersprache Java ist eine objektorientierte Programmiersprache und als solche ein eingetragenes Warenzeichen der Firma Sun Microsystems.

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Programmieren lernen mit Perl

Programmieren lernen mit Perl Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: 26.10.2015 Besprechung: 27.10.

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: 26.10.2015 Besprechung: 27.10. Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik Institut für Informatik Prof. Dr. E.-G. Schukat-Talamazzini http://www.minet.uni-jena.de/fakultaet/schukat/ Prof. Dr. P. Dittrich

Mehr

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14

Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuÿ, Henning Timm Übungsblatt 2

Mehr

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

Installationsanweisungen

Installationsanweisungen Installationsanweisungen für den EXMARaLDA Partitur-Editor Version 1.3.2 (11-Jul-2005) Um EXMARaLDA erfolgreich auf Ihrem Rechner zu installieren, ist es wichtig, dass Sie die die folgenden Installationshinweise

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 2 Java: Java-Einführung 2 Java: Java-Einführung 2.1 Java-Entwicklungsgeschichte 2.2 Java Eigenschaften 2.3 Java-Entwicklungsumgebung 2.4 Application vs. Applet 2.5 Ein erstes Programm 2.1 2.1 Java - Entwicklungsgeschichte

Mehr

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife 303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013.

Informatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013. Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VIII Einstieg in Java II Michael Roth (h_da) Informatik

Mehr

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte mit Greenfoot 1 Starten Sie Greenfoot. (Wenn Sie Greenfoot das erste Mal öffnen, erscheint ein Dialogfenster,

Mehr

Prozedurale Programmierung (PPG)

Prozedurale Programmierung (PPG) Prozedurale Programmierung (PPG) HS 2009 Praktikum 3: Einführung in Java und BlueJ Im diesem Praktikum machen Sie ihren Computer bereit für die folgenden Praktikas und erhalten einen ersten Einblick wie

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Linux gefahrlos testen

Linux gefahrlos testen Seite 1 von Cage Linux gefahrlos testen In diesem Artikel wird beschrieben, wie man Linux in einer virtuellen Maschine unter Windows installiert. 1 Grundlegende Informationen Um diesen Artikel zu verstehen,

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Linux-Einführung Übung

Linux-Einführung Übung Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

3. Das erste eigene Programm mit Greenfoot: Litte Crab

3. Das erste eigene Programm mit Greenfoot: Litte Crab Eigenes Programm: Little Crab1, Seite 1 von 5 3. Das erste eigene Programm mit Greenfoot: Litte Crab 3.1. Quelltext bearbeiten Nachdem Sie etwas Erfahrungen in der Bedienung von Greenfoot gewonnen haben,

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

Übung U02 (WS 2005/06) U02

Übung U02 (WS 2005/06) U02 Übung U02 (WS 2005/06) U02 Inhalt der Übung Grundlegende objektorientierte Begriffe (Objekt, Klasse, Attribut, Methode/Operation) am Beispiel von Java Erste Schritte im Schreiben von Java-Programmen Erzeugen

Mehr

Einführung in die Programmierung für NF MI. Übung 07

Einführung in die Programmierung für NF MI. Übung 07 Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare

Mehr

Methoden und Wrapperklassen

Methoden und Wrapperklassen Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)

Mehr

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich 252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung

Mehr

Grundsoftware üblicher Computersysteme

Grundsoftware üblicher Computersysteme Informatik 1 für Nebenfachstudierende Grundmodul Grundsoftware üblicher Computersysteme Kai-Steffen Hielscher Folienversion: 22. November 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2.

Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG. EXTRA: E-Book inside. dirk LOUIS peter MÜLLER. 2. dirk LOUIS peter MÜLLER 2. Auflage Android DER SCHNELLE UND EINFACHE EINSTIEG IN DIE PROGRAMMIERUNG UND ENTWICKLUNGSUMGEBUNG EXTRA: E-Book inside Im Internet: Beispiele, Tutorials, JRE und Android-Bundle

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung

Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung Seite 1 Allgemeines Dozent Dr. Th. Letschert Lernziel Einführung in die Software-Entwicklung und Programmierung Kenntnisse einer

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software

Mehr

9 Anweisungen und Kontrollstrukturen

9 Anweisungen und Kontrollstrukturen 9 Anweisungen und Kontrollstrukturen Hier beziehen wir uns auf Kapitel 6 von Go To Java 2. Die Steuerung des Programmablaufs geschieht durch sogenannte Anweisungen. Jede Anweisung bewirkt irgendwelche

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines

Mehr

Programmierung mit Java Teil 1

Programmierung mit Java Teil 1 JUSTUS-LIEBIG-UNIVERSITÄT GIESSEN ALLG. BWL UND WIRTSCHAFTSINFORMATIK UNIV.-PROF. DR. AXEL C. SCHWICKERT Informationen zur Lehrveranstaltung Programmierung mit Java Teil 1 Übung im Master-Modul Systems

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen L AKTUEL ZU fritz JOBST JAVA 8 PROGRAMMIEREN IN JAVA 7. Auflage Im Internet: Alle Beispielprogramme und Lösungen 4 1 Der Einstieg in Java keinem Fall zulässig. Die Schreibweisen Hello.java für den Namen

Mehr

Objektorientiertes Programmieren mit Suse Linux

Objektorientiertes Programmieren mit Suse Linux Objektorientiertes Programmieren mit Suse Linux Zum Programmieren werden 2 Komponenten benötigt: 1. einen Editor zur Eingabe des Quellcodes 2. einen Compiler, der den Quellcode in die Maschinensprache

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 13. März 2017 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:

Mehr

Was passiert eigentlich im Computer wenn ich ein Programm starte

Was passiert eigentlich im Computer wenn ich ein Programm starte . Das Programm- Icon Auf dem Desktop deines Computers siehst du Symbolbildchen (Icons), z.b. das Icon des Programms Rechner : Klicke mit der rechten Maustaste auf das Icon: Du siehst dann folgendes Bild:

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Wir wollen uns heute dem Thema Variablen widmen und uns damit beschäftigen, wie sich

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Erste Schritte zum lauffähigen Java Programm

Erste Schritte zum lauffähigen Java Programm Erste Schritte zum lauffähigen Java Programm Diese kleine Einführung ist eine Hilfe für Studenten der Vorlesung SWT I zur Meisterung der sich ergebenden Hürden bei der Erstellung eines ersten kleinen Java-Programms.

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend

Mehr

Java. CoMa-Übung II TU Berlin. CoMa-Übung II (TU Berlin) Java / 28

Java. CoMa-Übung II TU Berlin. CoMa-Übung II (TU Berlin) Java / 28 Java CoMa-Übung II TU Berlin 24.10.2012 CoMa-Übung II (TU Berlin) Java 24.10.2012 1 / 28 Themen der Übung 1 Java-Installation 2 Hello World 3 Temperature CoMa-Übung II (TU Berlin) Java 24.10.2012 2 / 28

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr

Java: Eine kurze Einführung an Beispielen

Java: Eine kurze Einführung an Beispielen Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse

Mehr

Felder, Zeiger und Adreßrechnung

Felder, Zeiger und Adreßrechnung Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche

Mehr

Kapitel 3. Mein erstes C-Programm

Kapitel 3. Mein erstes C-Programm Kapitel 3 Mein erstes C-Programm 1 Gliederung Kapitel 3 Mein erstes C-Programm 3.1 Einleitung 3.2 Mein erstes C-Programm 3.3 Zusammenfassung 2 Problem Algorithmus Mittelwert für Messwerte berechnen DGL

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

Praktikum 1: Einführung, BMI Rechner

Praktikum 1: Einführung, BMI Rechner Praktikum 1: Einführung, BMI Rechner Aufgabe 1: Erstellen und Ausführen einer Java Konsolen-Anwendung Für dieses Semester können Sie wieder NetBeans verwenden. Sie sollten Java auch schon installiert haben.

Mehr

GNU Assembler & GCC. Eine virtuelle Maschine aufsetzen. Zunächst muss eine neue virtuelle Maschine erstellt werden.

GNU Assembler & GCC. Eine virtuelle Maschine aufsetzen. Zunächst muss eine neue virtuelle Maschine erstellt werden. GNU Assembler & GCC Mit der VirtualBox von Oracle ( www.virtualbox.org ) Eine virtuelle Maschine aufsetzen Zunächst muss eine neue virtuelle Maschine erstellt werden. Der Assistent will ein paar Dinge

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Programmierung mit Java

Programmierung mit Java JUSTUS-LIEBIG-UNIVERSITÄT GIESSEN ALLG. BWL UND WIRTSCHAFTSINFORMATIK UNIV.-PROF. DR. AXEL C. SCHWICKERT Übungsaufgaben zur Lehrveranstaltung Programmierung mit Java Übung im Master-Modul Systems Engineering

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr