COMA Übung 3 T.Bosse, A.Griewank COMA Übung 3 Vorschau JAVA Eine JAVA Einführung Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg T.Bosse A.Griewank Quellcode: ... Anweisung(en)1 Wiederhole: Anweisung(en) 2 Einfache Befehle Schleifen (z.B. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Anweisung(en) 3 ... aus Verzweigungen (z.B. If-then-else) COMA Übung 3 Babylonisches Sprachgewirr T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate Mensch vs. Computer JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Intelligenz Geschwindigkeit+Speicher Deutsch/Englisch/. . . 0101100101011001 COMA Übung 3 Wir sind Lehrer T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Aufgabe Berechne die Summe n X k=0 qk = 1 − q n+1 mit q = 0.5 und n = 20. 1−q → ’Anstrengend’ für uns, ’leicht’ für den Computer, → aber eine Eingabe der Frage in den Computer gibt (noch) keine Antwort. COMA Übung 3 Wir sind Lehrer T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Aufgabe Berechne die Summe n X k=0 qk = 1 − q n+1 mit q = 0.5 und n = 20. 1−q → ’Anstrengend’ für uns, ’leicht’ für den Computer, → aber eine Eingabe der Frage in den Computer gibt (noch) keine Antwort. → Wir müssen es dem Computer erst beibringen. COMA Übung 3 Java ist (k)eine Insel T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Mensch Deutsch, Englisch, ... Lesbarer Quellcode JAVA, C/++, Fortran, ... Kompiler javac, gcc/g++, gfortran,... Computercode mv 0*AbF0 , 0101111011 (Interpreter) (java) Computer 010111011 Viel Erfolg COMA Übung 3 Hilfsmittel - der Kate Editor T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg ( einen Editor und Benötigen einen eine Konsole =⇒ Kate hat beides: COMA Übung 3 Kompilieren und Ausführen T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Programmieren Programme werden mit dem Editor in einer Datei geschrieben und gespeichert. Dabei empfiehlt es sich die Dateien wieder sinnvoll zu benennen: Programmname.java, z.B. GeometrischeReihe.java Kompilieren und Ausführen In der Konsole kompilieren durch: javac Programmname.java (Enter) Ausführen des kompilierten Programms durch: java Programmname [opt. Argument1] [opt. Argument2] . . . (Enter) COMA Übung 3 Kompilieren und Ausführen T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate Programmieren Programme werden mit dem Editor in einer Datei geschrieben und gespeichert. Dabei empfiehlt es sich die Dateien wieder sinnvoll zu benennen: JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Programmname.java, z.B. GeometrischeReihe.java Kompilieren und Ausführen In der Konsole kompilieren durch: javac Programmname.java (Enter) Ausführen des kompilierten Programms durch: java Programmname [opt. Argument1] [opt. Argument2] . . . (Enter) Viel Erfolg Hinweis • Der Computer prüft nur, ob die Eingabe syntaxgemäß ist. (Falls nicht, so liefert er beim Kompilieren entspr. Warnungen) • Er prüft nicht, ob das Programm seine Aufgabe richtig erfüllt. (Liefert evtl. falsche Werte) COMA Übung 3 JAVA - Struktur T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg JAVA- Programme haben ’immer’ die folgende Grundstruktur: class Programmname { public static void main(String[] args) { ... } } dabei entspricht der Programmname (nach class) immer dem Dateinamen, in welcher der Code gespeichert ist. Genaue Erklärung der einzelnen ’Befehle’ in der VL (→ vgl. LATEX). Der eigentliche Quellcode steht dann anstelle der Punkte 0 . . .0 . Dieser beinhaltet dann − Kommentare (zeilenweise beginnend mit \\ → Lesbarkeit), − Anweisungsblöcke (for-loops, if-then-else,... → später mehr), − und Befehle der Form: (Rückgabewert) = Befehlsname(Argument1, Argument2,...) COMA Übung 3 Java - Befehle T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg (Rückgabewert) = Befehlsname(Argument1, Argument2,...) Die Befehle werden nacheinander ausgeführt, dabei hört jeder Befehle immer mit ’;’ auf. Befehle können eine Reihe von Argumenten erhalten (in Klammern) und einen Rückgabewert zurückliefern. Eine erstes Beispiel ... double Zahl; Zahl=3.0; int Exponent; Exponent=4; double Potenz; Potenz=java.lang.Math.pow(Zahl,Exponent) System.out.println("Ergebnis:"+Potenz); ... COMA Übung 3 T.Bosse, A.Griewank Eine erstes Beispiel Vorschau JAVA ... double Zahl; Zahl=3.0; int Exponent; Exponent=4; double Potenz; Potenz=Math.pow(Zahl,Exponent); System.out.println("Ergebnis:"+Potenz); ... Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Erklärung - Teil 1 double Zahl definiert eine Variable mit Namen ’Zahl’ vom Typ double Zahl=3; weist der Variablen Zahl den Wert 3.0 zu. int Exponent def. eine Var. mit Namen ’Exponent’ vom Typ integer Exponent=4; weist der Variablen Exponent den Wert 4 zu. double Potenz def. eine Var. mit Namen ’Potenz’ vom Typ double Hinweis: double ≈ Gleitkommazahlen und integer ≈ Ganze Zahlen COMA Übung 3 T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate Eine erstes Beispiel ... Potenz=Math.pow(Zahl,Exponent); System.out.println("Ergebnis:"+Potenz); ... JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Erklärung - Teil 2 Der Befehl Math.pow(Zahl,Exponent) berechnet den Wert ’Zahl hoch Exponent’ und gibt diesen zurück. In diesem Fall wird der Wert der Variablen Potenz zugewiesen, d.h., Math.pow(Zahl,Exponent) ist ein Befehl mit zwei Argumenten (Zahl und Exponent) und einem Rückgabewert vom Typ double. Der Ausgabe-Befehl System.out.println("Ergebnis:"+Potenz); hat keinen Rückgabewert und nur ein Argument ˝Ergebnis:˝+Potenz, welches in diesem Fall aus zwei Teilen besteht. Genauer: Der Befehl gibt das Wort Ergebnis: aus, gefolgt von dem Wert der Variablen Potenz aus. Was passiert bei Zahl+Exponent+Potenz anstatt ˝Ergebnis:˝+Potenz? COMA Übung 3 T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Der komplette Quellcode (EinfachesBeispiel.java) // Das ist ein Kommentar im Quellcode class EinfachesBeispiel { public static void main(String[] args) { double Zahl; Zahl=3.0; int Exponent; Exponent=4; double Potenz; Potenz=Math.pow(Zahl,Exponent); System.out.println("Ergebnis:"+Potenz); } } Hinweis: Nutzen Sie Einrückungen und Kommentare zur besseren Lesbarkeit. COMA Übung 3 Block-/ AnweisungenAnweisungblöcke T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate Quellcode: ... JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Anweisung(en)1 Wiederhole: Anweisung(en) 2 Einfache Befehle Schleifen (z.B. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Aufgaben Anweisung(en) 2 Viel Erfolg sonst führe Anweisung(en) 3 ... aus Verzweigungen (z.B. If-then-else) COMA Übung 3 for-schleifen T.Bosse, A.Griewank Vorschau JAVA Eine einfache Schleife Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg for(int k=0;k<=n;k++) { ... } Wiederholt alles, was anstelle von ’...’ steht. (→ siehe Tafel) Eine kleines Beispiel ... W iederhole für k = 0, . . . , 4 for(int k=0;k<5;k++) { System.out.println("Hallo Nr."+k); Ausgabe in Konsole } ... Resultat in der Konsole (nach Kompiliern und Ausführen): Hallo Hallo Hallo Hallo Hallo Nr.0 Nr.1 Nr.2 Nr.3 Nr.4 COMA Übung 3 JAVA T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Eine weiteres kleines Beispiel ... double Ergebnis; Ergebnis=0.0; int n=20; Def. double Variable Ergebnis Setze Wert von Ergebnis = 0.0 Def. integer Variable n mit Wert n = 20 for(int k=1;k<=n;k++) Wiederhole für k = 1, 2, . . . , n { Ergebnis=Ergebnis+1.0/k; Addiere zu Ergebnis den Wert 1 k } System.out.print(Ergebnis); Gibt den Wert von Ergebnis aus. ... Resultat in der Konsole (nach Kompiliern und Ausführen): 3.5977 Hinweis: print und println unterscheiden sich nur durch Zeilenumbruch COMA Übung 3 T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Der komplette Quellcode (WeiteresBeispiel.java) // Berechnet die harmonische Reihe (bis zum 20.ten Glied) class WeiteresBeispiel { public static void main(String[] args) { double Ergebnis; Ergebnis=0.0; int n=20; for(int k=1;k<=n;k++) { Ergebnis=Ergebnis+1.0/k; } System.out.print(Ergebnis); Aufgaben Viel Erfolg } } Hinweis: Nutzen Sie Einrückungen und Kommentare zur besseren Lesbarkeit. COMA Übung 3 Ein kleiner Test - Schleifen in Schleifen T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else class Blackbox { public static void main(String[] args) { int result; int n=5; int m=6; for(int k=1;k<=n;k++) { for(int i=0;i<m;i++) { result=i*k+k; System.out.print(result+" "); } System.out.println(); } Aufgaben Viel Erfolg } } Hinweis: Versuchen Sie zu verstehen, was dieser Code macht. Überprüfen Sie ihre Vermutung durch Kompilieren und Ausführen des Programms. COMA Übung 3 T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg if-else-Abfrage Eine if-then-else Abfrage ... int n=20; if (n%2==0) { System.out.println("n ist gerade."); } else if (n%5==0) { System.out.println("n ist durch 5 teilbar."); } else { System.out.println("n ist ungerade."); } ... Binäre Operationen : &, && |, || ==, != <, >, <=, >= and or equals, not equals less, greater, less equal, greater equal COMA Übung 3 (Optionale) Aufgaben T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate Aufgabe 1 Schreiben Sie ein Programm, welches Ihren Namen und Ihre Immatrikulationsnummer ausgibt. JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgabe 2 Schreiben Sie ein Programm, welches Ihnen den Wert 1 − q n+1 mit q = 0.5 und n = 20 1−q berechnet und ausgibt. Aufgaben Viel Erfolg Aufgabe 3 Schreiben Sie ein Programm, welches die geometrische Reihe n X q k mit q = 0.5 und k = 20. k=0 für den Wert q = 0.5 und n = 20 berechnet. COMA Übung 3 T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg Danke für die Aufmerksamkeit. COMA Übung 3 T.Bosse, A.Griewank Vorschau JAVA Programme Sprachen Kate JAVA Kompilieren und Ausführen Struktur Befehle Block-/ Anweisungen forschleifen Beispiele if-then-else Aufgaben Viel Erfolg ⇒ Fragen?