• Keine Ergebnisse gefunden

Einführung in die Programmierung

N/A
N/A
Protected

Academic year: 2023

Aktie "Einführung in die Programmierung"

Copied!
908
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

Sie können Ihre Lösungen zu den Übungen über UniWorX versenden und erhalten die Korrekturen zurück. Wenn Sie zu Hause arbeiten möchten, benötigen Sie das Java Development Kit (JDK 6), das Sie kostenlos unter http://java.sun.com/javase/downloads/index.jsp herunterladen können. Das Haupttool für Java ist die General Purpose Documentation (API) unter http://java.sun.com/javase/6/docs/api/.

Eine Sammlung von Sun-Tutorials finden Sie unter http://java.sun.com/docs/books/tutorial/. Zur Vertiefung der in der Vorlesung besprochenen Konzepte erscheint jeden Freitag (ab 17.10.2008) ein Übungsblatt. Zu Beginn des Semesters können Sie den Termin des Praktikums auswählen, an dem Sie teilnehmen möchten – dann können Sie sich für diesen Termin in UniWorX anmelden.

Bei Problemen empfehlen wir Ihnen, das Training nächste Woche zu absolvieren. Sie sollten in der Lage sein, theoretische Fragen zu beantworten und praktische Aufgaben zu lösen (z. B. mit einem Java-Programm).

Einführung

Hinweis: Notieren Sie sich die genaue Position der Lampenfassung im Verhältnis zur Schraube, indem Sie die Markierungen zählen und auf beiden Seiten die gleiche Größe einstellen. Bohren Sie nun mit einem Metallbohrer (Ø 7 mm) ein Loch für die Kabel unter der vorhandenen Kennzeichenbeleuchtung. Bitte beachten Sie: Wählen Sie für die Bohrung hinter dem Nummernschild einen Ort, der von innen zugänglich ist und später von der Flächenbeleuchtung verdeckt wird.

Montage der Nummernschilder im Stoßfänger: Mit einem Metallbohrer (Ø 7 mm) ein Loch für die Kabel unter der vorhandenen Nummernschildbeleuchtung bohren. Nehmen Sie die Original-Kennzeichenbeleuchtung (erforderlich nach StVZO) außer Betrieb, indem Sie beide Kennzeichenbeleuchtungslampen durch die mitgelieferten Lastwiderstände 4 ersetzen. Sollten in Ihrem Fahrzeug andere Leuchten verwendet werden, nehmen Sie die werkseitig eingebaute Kennzeichenbeleuchtung durch den Ausbau der Leuchten außer Betrieb.

Programmiersprache: Formale (eindeutige) Sprache, die insbesondere elementare Verarbeitungsschritte und klar definierte Datentypen für die Ein-/Ausgabe bereitstellt. Das JDK beinhaltet JRE, daher benötigen Sie das JDK für die Übungen zu dieser Vorlesung.

Daten und Algorithmen

Offensichtlich können führende Nullen (d. h. führende Ziffern 0, d. h. z0) immer weggelassen werden, mit Ausnahme der Notation „0“ für die Zahl „Null“. Ganzzahlen lassen sich mit dem Alphabet A2={0,1} auch problemlos intern als Zeichenfolge kodieren (mehr dazu erfahren Sie in der Vorlesung „Computerarchitektur“). Es steht also nur eine endliche Anzahl von Bits zur Darstellung von Daten zur Verfügung.

Dieser Aspekt der maschinenfreundlichen Darstellung von Daten kann auch bei der Entwicklung von Algorithmen wichtig sein. 5 Ein Algorithmus heißt deterministisch, wenn die Wirkung und Reihenfolge der einzelnen Schritte klar definiert ist, andernfalls nicht deterministisch. 6 Ein Algorithmus heißt deterministisch, wenn das Verarbeitungsergebnis für jede einzelne Anwendung eindeutig bestimmt wird, andernfalls ist er nicht deterministisch.

1 Ein Algorithmus ist teilweise korrekt, wenn das Ergebnis aller gültigen Eingaben mit der Spezifikation des Algorithmus übereinstimmt. 2 Ein Algorithmus ist (vollständig) korrekt, wenn der Algorithmus teilweise korrekt ist und für alle gültigen Eingaben endet. Im Allgemeinen wird man nach einer kompakten Darstellung suchen, bei der das zu bestimmende Bild geeigneterweise aus einfachen (elementar auswertbaren) Bildern zusammengesetzt ist.

Alle Elemente in der Ergebnismenge sind nummeriert, um die Anzahl der entsprechenden Elemente anzuzeigen, d. h. tatsächlich kann das Prinzip der Rekursion auch in der operativen Sicht der Algorithmen 1-3 eingestellt werden und einen ähnlichen Effekt wie die Iteration erzielen.

Mathematische Grundlagen

Beispiel: Für S={7,8,9,10,Bube,Dame,König,Ass} und F={Kreuz,Pik,Herz,Karo} können wir einen Kartensatz als Array F×S definieren. Die Relation R ist für alle Tupel a mit a∈R und nur für diese Tupel erfüllt (oder wahr). Wie können wir sicher sein, dass p für alle Zahlen in N0 gilt, wenn p(0) gilt und wir für jedes feste n∈N0 von p(n) auf p(n+1) schließen können?

Anscheinend beschreibt der Ausdruck „a+5“ die Addition einer Variablen mit einer Konstanten, der Ausdruck „blau & gelb“ beschreibt eine Farbmischung. Eindeutigkeit ohne Klammern kann in der Infixform dadurch erreicht werden, dass den Operatoren unterschiedliche Bindungsstärken zugewiesen werden.

Imperative Programmierung

Induktion, Rekursion und der Begriff (induktiv definierter) Ausdrücke sind Funktionsbegriffe und als solche vertiefen wir sie in der Einführungsvorlesung „Programmierung und Modellierung“. Wir wissen bereits, dass es in Java grundlegende Datentypen (auch atomare oder primitive Typen) für B, CHAR, eine Teilmenge von Z und eine Teilmenge von R gibt, aber es gibt keinen separaten Basisdatentyp für N. Java hat vier Datentypen für ganze Zahlen: Byte (Länge: 8 Bit), Short (Länge: 16 Bit), Int (Länge: 32 Bit) und Long (Länge: 64 Bit).

Wir können in Java auch Ausdrücke aus Operatoren erstellen (zunächst ohne Variablen), wie im vorherigen Kapitel besprochen. Der Compiler konvertiert den Ausdruck 6 automatisch vom Typ in in einen Ausdruck vom Typ double, also die Operation. Wenn Sie eine Typkonvertierung in einen spezielleren Typ durchführen möchten, müssen Sie dies explizit in Java angeben.

Erzwingen Sie in Java die Konvertierung eines Typs in einen spezifischeren Typ, indem Sie (type) voranstellen. Konvertiert einen Ausdruck in einen Ausdruck vom Typ Typ. Der Operatortyp ist z.B.:. int) : char∪byte∪short∪int∪long∪float∪double→int (float) : char∪byte∪short∪int∪long∪float∪double→float. Im Allgemeinen wird das Konzept der Konvertierung eines Ausdrucks eines Typs in einen Ausdruck eines anderen Typs als Typkonvertierung bezeichnet.

In vielen Programmiersprachen gibt es eine automatische Typkonvertierung, meist vom spezifischeren zum allgemeineren Typ. Eine Typkonvertierung vom allgemeineren zum spezifischeren Typ muss (sofern erlaubt) immer explizit mit Hilfe von a erfolgen.

Referenzen

ÄHNLICHE DOKUMENTE