COMA Übung 3 - Eine JAVA Einführung

Werbung
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?
Herunterladen