Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Nicolas Gauger, René Lamour Wintersemester 2008/2009 Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung I Berechnung einer Formel y = x + 5, 6 kann als Vorschrift interpretiert werden, y zu berechnen, wenn x gegeben ist. I Im allgemeinen benötigt ein Computerprogramm Eingabedaten (x) und erzeugt daraus Ausgabedaten (y). I Unser erstes Programm hat nur Ausgabedaten. Es soll die Namen ihrer Programmiergruppe ausgeben. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung I Berechnung einer Formel y = x + 5, 6 kann als Vorschrift interpretiert werden, y zu berechnen, wenn x gegeben ist. I Im allgemeinen benötigt ein Computerprogramm Eingabedaten (x) und erzeugt daraus Ausgabedaten (y). I Unser erstes Programm hat nur Ausgabedaten. Es soll die Namen ihrer Programmiergruppe ausgeben. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung I Berechnung einer Formel y = x + 5, 6 kann als Vorschrift interpretiert werden, y zu berechnen, wenn x gegeben ist. I Im allgemeinen benötigt ein Computerprogramm Eingabedaten (x) und erzeugt daraus Ausgabedaten (y). I Unser erstes Programm hat nur Ausgabedaten. Es soll die Namen ihrer Programmiergruppe ausgeben. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung Programmieren bedeutet: 1. Algorithmische Aufbereitung des zu programmierenden Prozesses (z.B: in welcher Reihenfolge berechne ich was?) 2. Schreiben des Quelltextes <name>.java nach den Regeln der Programmiersprache mit einem Texteditor (empfohlen kate) 3. Compilieren (übersetzen) und evtl. linken (verbinden) des Programmes: java5c <name>.java 4. Starten des Programmes mittels java5 <name> Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung Programmieren bedeutet: 1. Algorithmische Aufbereitung des zu programmierenden Prozesses (z.B: in welcher Reihenfolge berechne ich was?) 2. Schreiben des Quelltextes <name>.java nach den Regeln der Programmiersprache mit einem Texteditor (empfohlen kate) 3. Compilieren (übersetzen) und evtl. linken (verbinden) des Programmes: java5c <name>.java 4. Starten des Programmes mittels java5 <name> Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung Programmieren bedeutet: 1. Algorithmische Aufbereitung des zu programmierenden Prozesses (z.B: in welcher Reihenfolge berechne ich was?) 2. Schreiben des Quelltextes <name>.java nach den Regeln der Programmiersprache mit einem Texteditor (empfohlen kate) 3. Compilieren (übersetzen) und evtl. linken (verbinden) des Programmes: java5c <name>.java 4. Starten des Programmes mittels java5 <name> Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung Programmieren bedeutet: 1. Algorithmische Aufbereitung des zu programmierenden Prozesses (z.B: in welcher Reihenfolge berechne ich was?) 2. Schreiben des Quelltextes <name>.java nach den Regeln der Programmiersprache mit einem Texteditor (empfohlen kate) 3. Compilieren (übersetzen) und evtl. linken (verbinden) des Programmes: java5c <name>.java 4. Starten des Programmes mittels java5 <name> Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Programmierung - Einführung Programmierung - Einführung Programmieren bedeutet: 1. Algorithmische Aufbereitung des zu programmierenden Prozesses (z.B: in welcher Reihenfolge berechne ich was?) 2. Schreiben des Quelltextes <name>.java nach den Regeln der Programmiersprache mit einem Texteditor (empfohlen kate) 3. Compilieren (übersetzen) und evtl. linken (verbinden) des Programmes: java5c <name>.java 4. Starten des Programmes mittels java5 <name> Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Texteditor kate kate I Befehl kate & - Bitte starten Sie diesen Befehl! I Vorteile: Worthervorhebung: → Einstellungen → Kate einrichten → Editor → Hervorhebungen → Quellen/Java integriertes Terminal: automatisches Wechseln zum geöffneten Dokument Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Texteditor kate kate I Befehl kate & - Bitte starten Sie diesen Befehl! I Vorteile: Worthervorhebung: → Einstellungen → Kate einrichten → Editor → Hervorhebungen → Quellen/Java integriertes Terminal: automatisches Wechseln zum geöffneten Dokument Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Texteditor kate kate I Befehl kate & - Bitte starten Sie diesen Befehl! I Vorteile: Worthervorhebung: → Einstellungen → Kate einrichten → Editor → Hervorhebungen → Quellen/Java integriertes Terminal: automatisches Wechseln zum geöffneten Dokument Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel My first JAVA code Beim Programmieren ist eine gewisse Struktur des Programmtextes einzuhalten. Der minimal nötige Rahmen ist durch folgende Zeilen gegeben: public class <name> { public static void main(String[] args){ <programmtext> } } Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel My first JAVA code public class <name> { public static void main(String[] args){ <programmtext> } } Übertragen Sie obige Zeilen mit einem Editor (z.B. kate) in die Datei <name>.java. Wählen Sie einen <name> und lassen Sie den <programmtext> noch leer. Speichern Sie die Datei in Ihrem neuen Ordner in P-WRI ab. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel My first JAVA code Zeichenketten (Text) werden als String bezeichnet. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel My first JAVA code Zeichenketten (Text) werden als String bezeichnet. Dazu werden die Zeichen in Anführungszeichen eingeschlossenen. Bsp: ”das ist ein String”. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel My first JAVA code Zeichenketten (Text) werden als String bezeichnet. Ein Ausgabebefehl (output) von Strings in die Standardausgabe ist: System.out.println(String); Strings können durch + zusammengefügt werden: Bsp. ”Vorname ”+”Nachname” ∼ = ”Vorname Nachname”. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel My first JAVA code Ein Ausgabebefehl (output) von Strings in die Standardausgabe ist: System.out.println(String); Strings können durch + zusammengefügt werden: Bsp. ”Vorname ”+”Nachname” ∼ = ”Vorname Nachname”. Ergänzen Sie in Ihrem File <name>.java den <programmtext> durch einen Ausgabebefehl mit den Namen Ihrer Programmiergruppe. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel My first JAVA code Ein Ausgabebefehl (output) von Strings in die Standardausgabe ist: System.out.println(String); Strings können durch + zusammengefügt werden: Bsp. ”Vorname ”+”Nachname” ∼ = ”Vorname Nachname”. Ergänzen Sie in Ihrem File <name>.java den <programmtext> durch einen Ausgabebefehl mit den Namen Ihrer Programmiergruppe. Compilieren Sie <name>.java und starten Sie das Programm. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel Grundelemente von Java ist eine objektorientierte, Hardware-unabhängige Programmiersprache, die für numerische Rechnungen gut geeignet ist. Sehr gut, wenn sie schneller wäre. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 JAVA ist auch eine Insel Grundelemente von Java ist eine objektorientierte, Hardware-unabhängige Programmiersprache, die für numerische Rechnungen gut geeignet ist. Sehr gut, wenn sie schneller wäre. Es gibt zwei Arten von Java-Programmen: Applets - laufen innerhalb von Internetseiten und Applikationen - sind normal ausführbare Programme. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Zeichensatz - Unicode (2 Byte) Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Zeichensatz - Unicode (2 Byte) Zeichen in Java \u3055 Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Zeichensatz - Unicode (2 Byte) Wir beschränken uns auf die Zeichen der Tabelle C0 Controls and Basics Latin. Warum? Da manche Rechner nur ”englisch” installiert haben, sind dort z.B. die Umlaute nicht darstellbar. Umlaute (beispielweise ä) in Zeichenketten werden mit ae oder \u00e4 dargestellt. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Zeichensatz - Unicode (2 Byte) Wir beschränken uns auf die Zeichen der Tabelle C0 Controls and Basics Latin. Warum? Da manche Rechner nur ”englisch” installiert haben, sind dort z.B. die Umlaute nicht darstellbar. Umlaute (beispielweise ä) in Zeichenketten werden mit ae oder \u00e4 dargestellt. Umlaute bzw. entsprechende Sonderzeichen im Java-Quelltext werden als Fehler geahndet. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes Der Quelltext ist an kein Format gebunden, schreiben Sie aber Ihre Programme zur besseren Lesbarkeit strukturiert I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes Der Quelltext ist an kein Format gebunden, schreiben Sie aber Ihre Programme zur besseren Lesbarkeit strukturiert Nicht: public class <name> { public static void main(String[] args){ <programmtext> } } I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare : Java kennt drei Schreibweisen // Kommentar in einer Zeile /* Kommentar , der sich über viele Zeilen hinzieht */ /** Kommentar zur Auswertung mittels javadoc */ I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I I I Format des Java-Quelltextes Kommentare Primitive Datentypen Datentyp boolean char byte short int long float Standardwert false \u0000 0 0 0 0 0 Beschreibung wahr oder falsch Unicode-Zeichen ±8-bit Integer ±16-bit Integer ±32-bit Integer ±64-bit Integer 32-bit Gleitkommazahl double 0 64-bit Gleitkommazahl I I Bezeichnernamen Ausgabe der Werte primitiver Datentypen Bemerkungen true 42L (auch 42l) 0.0001F (auch f), 1e-4f 1. .1e+1 1.1e-1 0.0001, 1e-4 (auch d bzw. D möglich) Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I I I Format des Java-Quelltextes Kommentare Primitive Datentypen Datentyp boolean char byte short int long float Standardwert false \u0000 0 0 0 0 0 Beschreibung wahr oder falsch Unicode-Zeichen ±8-bit Integer ±16-bit Integer ±32-bit Integer ±64-bit Integer 32-bit Gleitkommazahl double 0 64-bit Gleitkommazahl I I Bezeichnernamen Ausgabe der Werte primitiver Datentypen Bemerkungen true 42L (auch 42l) 0.0001F (auch f), 1e-4f 1. .1e+1 1.1e-1 0.0001, 1e-4 (auch d bzw. D möglich) Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen : Objekte müssen deklariert werden - sie bekommen einen Namen und evtl. gleich einen Anfangswert. I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen : Objekte müssen deklariert werden - sie bekommen einen Namen und evtl. gleich einen Anfangswert. Wir schreiben im Quelltext: datentyp Objektname ; I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen : Objekte müssen deklariert werden - sie bekommen einen Namen und evtl. gleich einen Anfangswert. Für die Namenswahl bestehen folgende Regeln: I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I I I I Format des Java-Quelltextes Kommentare Primitive Datentypen Bezeichnernamen : Objekte müssen deklariert werden - sie bekommen einen Namen und evtl. gleich einen Anfangswert. Für die Namenswahl bestehen folgende Regeln: 1. Das erste Zeichen muss ein Buchstabe, underscore ( ) oder $-Zeichen sein. 2. Danach dürfen weitere Buchstaben (auch und $) und Zahlen folgen. 3. Groß- und Kleinschreibung werden unterschieden. 4. Der Name darf kein reserviertes Wort von JAVA sein. 5. Der Name endet mit einem Trennzeichen: Leer-, Zeilenendezeichen, Zeilenvorschub, Tabulator, Kommentar oder =. 6. Wählen Sie sinnvolle Namen! I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen : Objekte müssen deklariert werden - sie bekommen einen Namen und evtl. gleich einen Anfangswert. Für primitive Datentypen erfolgt die Zuweisung eines Anfangswertes durch datentyp Objektname = wert; I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen : Objekte müssen deklariert werden - sie bekommen einen Namen und evtl. gleich einen Anfangswert. Für primitive Datentypen erfolgt die Zuweisung eines Anfangswertes durch datentyp Objektname = wert; Beispiel: double radius = 2.6e+2; I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Der Ausgabestring kann direkt durch Nutzung des Bezeichners erzeugt werden. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java I Format des Java-Quelltextes I Kommentare I Primitive Datentypen I Bezeichnernamen I Ausgabe der Werte primitiver Datentypen Der Ausgabestring kann direkt durch Nutzung des Bezeichners erzeugt werden. Beispiel: System.out.println(”Radius = ”+radius); Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben und mit einem ; abgeschlossen. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben und mit einem ; abgeschlossen. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert aus der Speicherzelle von x zu holen, zu 5.6 zu addieren und in der Speicherzelle von y abzuspeichern. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Die Arithmetischen Operatoren + − ∗ / % wirken, wie aus der Mathematik bekannt. Der Divisionsoperator / liefert im Falle zweier ganzzahliger Operanden den ganzzahligen Anteil. Den Divisionsrest liefert der Modulo-Operator %. + und − werden auch wie üblich als Vorzeichen benutzt. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Die Arithmetischen Operatoren + − ∗ / % wirken, wie aus der Mathematik bekannt. Der Divisionsoperator / liefert im Falle zweier ganzzahliger Operanden den ganzzahligen Anteil. Den Divisionsrest liefert der Modulo-Operator %. + und − werden auch wie üblich als Vorzeichen benutzt. Ergänzen Sie Ihr Programm so, dass für zwei ganzzahlige Variable vom Typ (int) mit den Anfangswerten 5 und 7 deren Summe, Differenz, Produkt und Quotient berechnet und ausgegeben werden. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Vergleichs-Operatoren Um zu entscheiden, ob Vergleiche den boolschen Wert false oder true liefern, werden Vergleichsoperatoren benötigt. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Vergleichs-Operatoren Um zu entscheiden, ob Vergleiche den boolschen Wert false oder true liefern, werden Vergleichsoperatoren benötigt. Seien x und y Objekte des gleichen Grunddatentypes: Operator Bedeutung x==y x! =y x<y x<=y x>y x>=y true, true, true, true, true, true, falls falls falls falls falls falls x x x x x x und y gleich sind. und y ungleich sind. kleiner y ist. kleiner oder gleich y ist. größer y ist. größer oder gleich y ist. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Vergleichs-Operatoren Mit den Vergleichsoperatoren können wir einfache Vergleiche abtesten. Wie aber testen wir z.B., ob 0≤x ≤7 gilt? Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Vergleichs-Operatoren Mit den Vergleichsoperatoren können wir einfache Vergleiche abtesten. Wie aber testen wir z.B., ob 0≤x ≤7 gilt? Hier müssen wir testen, ob 0 ≤ x und gleichzeitig x ≤ 7 ist. Dazu brauchen wir die Verknüpfung logischer Ausdrücke. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Logische Operatoren Logische Operatoren ! | & ˆ && || erlauben es, Verknüpfungen zwischen logischen Werten herzustellen und somit komplexe logische Ausdrücke zu erstellen. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Logische Operatoren Logische Operatoren ! | & ˆ && || erlauben es, Verknüpfungen zwischen logischen Werten herzustellen und somit komplexe logische Ausdrücke zu erstellen. Dabei gilt, falls bool1 und bool2 logische Ausdrücke sind Operator Bedeutung ! bool1 bool1 | bool2 bool1 & bool2 Negation von bool1 Logisches Oder, true wenn bool1 oder bool2 true sind. Logisches Und, true wenn bool1 und bool2 true sind. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Logische Operatoren Logische Operatoren ! | & ˆ && || erlauben es, Verknüpfungen zwischen logischen Werten herzustellen und somit komplexe logische Ausdrücke zu erstellen. Die anderen drei Operatoren werden seltener benötigt - bitte im Selbststudium erarbeiten! Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Logische Operatoren Logische Operatoren ! | & ˆ && || erlauben es, Verknüpfungen zwischen logischen Werten herzustellen und somit komplexe logische Ausdrücke zu erstellen. Der logische Ausdruck unseres Beispiels 0 ≤ x ≤ 7 würde nun lauten: 0 <= x & x <= 7. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Logische Operatoren Der logische Ausdruck unseres Beispiels 0 ≤ x ≤ 7 würde nun lauten: 0 <= x & x <= 7. Es ist nicht verkehrt Klammern zu setzen: (0 <= x) & (x <= 7) Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Logische Operatoren Formulieren Sie einen logischen Ausdruck für die Tatsache, dass höchstens doppelt so viele Studenten im Raum sind wie Computer, aber mindestens ein Student da ist. Übungen zur Vorlesung ”Wissenschaftliches Rechnen I” Übung 1 Grundelemente von Java Logische Operatoren Formulieren Sie einen logischen Ausdruck für die Tatsache, dass höchstens doppelt so viele Studenten im Raum sind wie Computer, aber mindestens ein Student da ist. student <= 2∗computer & student > 0