Java-Kurs - Informatikdidaktik

Werbung
Java-Kurs
Java-Grundlagen
Seite 1
Java – Kurs
Quelle: Dr. E. Gutknecht, Einführung in die Programmierung mit Java
Vorlesungs-Skriptum WS 2001/2002, FH Aargau
(evtl.) erhältlich beim Autor: [email protected]
Kapitel 1: Grundlagen
1.1 Das erste Java-Programm
Quellcode:
public class Hello
{
static public void main( String[] args )
{
System.out.println("Hello World!");
System.out.println("Das erste Java-Programm");
}
}
Programm-Aufbau
Jedes Programm (Applikation) ist ein eigene Klasse, deren Name beliebig gewählt werden kann:
public class ProgrammName
Die Angabe public (öffentlich) ist nötig, damit das Programm vom Java-Interpreter ausgeführt werden
kann. Jede Java-Applikation hat eine Hauptmethode main . Sie wird bei der Ausführung des
Programms aufgerufen.
System.out.println("Text")
System.out.print("Text")
Ausgabe auf dem Bildschirm und Zeilenvorschub
ohne Zeilenvorschub
Schreibweise
Gross/Kleinschrift ist wesentlich.
Leerzeichen (mehrere wie eines) und Tabulatoren zwischen Wörtern (Befehle usw.).
Return ist wie Leerzeichen.
Strichpunkte trennen Befehle.
Kommentare hinter // bis zum Zeilenende.
Compilierung und Ausführung
Text in Texteditor eingeben, Datei als Hello.java (Schreibweise!) speichern.
Übersetzung mit dem Java-Compiler mit Befehl javac Hello.java; evtl. Syntaxfehler beheben. Bei
erfolgreicher Compilation wird die Datei Hello.class erzeugt. Diese lässt sich mit dem Befehl
java Hello ausführen. Evtl. sind Pfadangaben für Befehle (javac, java und Dateien nötig.
TexPad:
Extras – Java kompilieren
Extras – Java-Programm starten
Kant. FS-Tag 02 ICT
Christoph Arnold, KSL
Java-Kurs
Java-Grundlagen
Seite 2
1.2 Variabeln, Konstanten und Ausdrücke
Grundlegende Datentypen
int
double
char
boolean
ganze Zahlen
reelle zahlen
einzelne Textzeichen
false und true (für Entscheidungen)
Definition
Jede Variable muss mit Angabe des Datentyps definiert werden.
int i;
double xWert;
int n , m;
// definiert zwei Variablen
Wertzuweisung
Mit dem Operator ‘=’ wird einer Variabeln ein Wert zugewiesen: Variable = Wert
i = 4;
xWert = -3.45;
Die Wertzuweisung kann mit der Definition erfolgen.
int i = 4;
Rechts kann ein Ausdruck stehen; dieser wird zuerst berechnet, dann erfolgt die Zuweisung:
i = i + 1;
i = i – 1;
Abgekürzt: i++
Abgekürzt: i--
Wert von i um 1 erhöhen
Wert von i um 1 vermindern
Ausdrücke
Für algebraische Ausdrücke (Terme) gelten die üblichen Regeln.
c = a*b – a
x = b / (2*a)
Konstanten
Konstanten werden wie Variablen definiert mit dem Zusatz final.
final int i = 100;
final double g = 9.81;
Bildschirmausgabe
int i = 12;
System.out.println(i);
Kant. FS-Tag 02 ICT
// gibt 12 aus
Christoph Arnold, KSL
Java-Kurs
Java-Grundlagen
Seite 3
1.3 Mathematische Funktionen
Die mathematischen Funktionen werden in Java als Methoden des Objekts Math aufgerufen.
Double w = Math.sqrt(2);
Einige Funktionen:
Wurzel
Trigonometrische Funktionen
Exponetioalfunktion ex
natürlicher Logarithmus lnx
Zufallszahl (double) zwischen 0 und 1
Konstante:
Zahl 
sqrt(x)
sin(x), cos(x), tan(x) (x im Bogenmass)
exp(x)
log(x)
random(x)
Math.PI
1.4 While-Schleife
Struktur:
while ( Bedingung )
{
Anweisungen
}
Beispiel: Ausgabe von 100 Zufallszahlen
public class ZufallsZahlen
{
static public void main(String[] arg)
{
int i = 1;
while (i<=10)
{
System.out.println(Math.random());
i++;
}
}
}
Erklärungen:
Zuerst wird die Bedingung geprüft, dann werden die Anweisung ausgeführt. Dies wiederholt sich,
solange die Bedingung erfüllt ist. Die Bedingung ist ein Ausdruck, der true (wahr) oder false (falsch)
ist, ein sogenannter Boolescher Ausdruck.
Vergleichsoperatoren:
Operator
<
<=
==
!=
>=
>
Bedeutung
kleiner
kleiner oder gleich
gleich (Achtung: = für Zuweisung)
ungleich
grösser oder gleich
grösser
Kant. FS-Tag 02 ICT
Christoph Arnold, KSL
Java-Kurs
Java-Grundlagen
Seite 4
1.5 Entscheidungen
Struktur:
if ( Bedingung )
{
Anweisungen
}
else
{
Anweisungen
}
Bemerkungen:
Wenn nur eine Anweisung, keine Klammer nötig.
Der else-Teil kann weggelassen werden.
Beispiel: 100 Münzenwürfe, Anzahl Kopf ? Anzahl Zahl?
public class Muenze
{
static public void main(String[] arg)
{
final int nWuerfe = 100;
int i = 0;
int nKopf = 0;
double x;
while (i<=nWuerfe)
{
x = Math.random();
if (x<=0.5)
nKopf++;
i++;
}
System.out.print("Anzahl Wuerfe mit Kopf: ");
System.out.println(nKopf);
System.out.print("Anzahl Wuerfe mit Zahl: ");
System.out.println(nWuerfe-nKopf);
}
}
Kant. FS-Tag 02 ICT
Christoph Arnold, KSL
Java-Kurs
Java-Grundlagen
Seite 5
1.6 Neue Methoden
Das Geheimnis der Kunst der Programmentwicklung ist die Aufteilung einer Aufgabe in
Teilaufgaben, die von Unterprogrammen ausgeführt werden. Unterprogramme heissen in Java
Methoden.
Man unterscheidet zwei Arten von Methoden: Funktionen und Prozeduren
Funktionen sind Methoden, die einen Wert als Resultat abgeben. Das Resultat kann z.B. einer
Variablen als Wert zugewiesen werden.
z.B. y = Math.sqrt(x)
Prozeduren sind Methoden, die eine bestimme Aufgabe erfüllen, aber keinen Wert ab geben.
z.B. System.out.println("Hello World!");
Definition und Verwendung von Methoden: Funktion
Beispiel: Münzenwurf mit Funktion werfeMuenze
public class Muenze
{
static int werfeMuenze()
{
double x = Math.random();
if (x<=0.5)
return 0;
else
return 1;
}
static public void main(String[] arg)
{
final int nWuerfe = 100;
int i = 0;
int nKopf = 0;
while (i<=nWuerfe)
{
if (werfeMuenze()==0)
nKopf++;
i++;
}
System.out.print("Anzahl Wuerfe mit Kopf: ");
System.out.println(nKopf);
System.out.print("Anzahl Wuerfe mit Zahl: ");
System.out.println(nWuerfe-nKopf);
}
}
Erklärungen
Definition der Funktion mit Attribut ‚static’ und Definition des Datentyps des Resultats.
runde Klammern immer nötig (vgl. Parameter).
Rückgabe des Funktionswerts mit return.
Aufruf der Funktion in der main-Methode mit werfeMuenze().
Kant. FS-Tag 02 ICT
Christoph Arnold, KSL
Java-Kurs
Java-Grundlagen
Seite 6
Lokale Variablen
Die in einer Methode definierten Variablen sind nur innerhalb der betreffenden Methode bekannt,
darum heissen sie lokale Variable.
Parameter
Mit Parametern können einer Methode beim Aufruf Werte übergeben werden. Ein Parameter ist eine
lokale Variable der Methode, die beim Aufruf der Methode vom aufrufenden Programm einen Wert
erhält.
Beispiel:
static double mittel(double a, double b)
{
return (a + b)/2;
}
Aufruf der Funktion z.B. mit
double x = 10;
double y = -5;
double m = mittel(x,y);
Prozeduren
Bei der Definition einer Prozedur wird als Resultat-Typ das Schlüsselwort ‚void’ (leerer Datentyp)
angegeben. Ein Return-Befehl ist nicht nötig.
Beispiel: Wiederholte Ausgabe eine Charakters
static void linie(char ch, int laenge)
{
int i=0;
while (i<laenge)
{
System.out.print(ch);
i++;
}
System.out.println("");
}
Aufruf der Methode z.B. mit linie("*",20)
Kant. FS-Tag 02 ICT
Christoph Arnold, KSL
Java-Kurs
Java-Grundlagen
Seite 7
1.7 Eigene Input/Output-Methoden
Die Standard-Methoden der Java Library (Sammlung der Java-Befehle) sind leider ungenügend. Daher
verwenden wir selber (nicht E. Gutknecht) geschriebene Methoden, welche in der Datei InOut.java
definiert sind. Die Datei muss im gleichen Verzeichnis sein. Bei der ersten Kompilation eines
Programms, das eine Methode von InOut aufruft, wird das File InOut.java automatisch kompiliert.
Input
Einlese-Methode für numerische Werte:
int n;
double x;
n = InOut.getInt();
x = InOut.geDouble();
// ganze Zahl einlesen
// reelle Zahl einlesen
Bei der Ausführung der Funktionen wartet das Programm, bis der Benutzer eine Eingabe gemacht hat,
abgeschlossen mit der Return-Taste. Der Eingabewert wird der betreffenden Variable übergeben.
Formatierte Bildschirmausgabe
Ausgabe von Ganzzahlen für Tabellen
int = 10;
InOut.print(n,8);
// rechtsbündig in Feld von 8 Stellen
Werte mit Dezimalstellen
double x = Math.PI;
InOut.print(x,8,4);
// 8 Stellen vor dem Dezimalpunkt, 4 Dezimalstellen
Beispiel: Eingabe: Kreisradius r. Berechnung des Umfangs und der Fläche des Kreises.
public class Kreis
{
static double umfang(double r)
{
return 2*r*Math.PI;
}
static double flaeche(double r)
{
return r*r*Math.PI;
}
static public void main(String[] arg)
{
double radius;
System.out.print("Geben Sie den Radius ein: ");
radius = InOut.getDouble();
System.out.print("Umfang: ");
InOut.println(umfang(radius),4,2);
System.out.print("Fläche: ");
InOut.print(flaeche(radius),4,2);
System.out.println("");
}
}
Kant. FS-Tag 02 ICT
Christoph Arnold, KSL
Java-Kurs
Java-Grundlagen
Seite 8
1.8 Aufgaben zu Java-Grundlagen
zu 1.1: Aufgabe 1
a) Erstellen Sie das Programm Hello.
b) Verändern Sie das Programm so, dass ein mehrzeiliger veränderter Text ausgegeben wird.
zu 1.2: Aufgabe 2
Erstellen Sie ein Programm, das aus zwei Zahlen a und b (Variable) den Mittelwert berechnet und
ausgibt.
zu 1.3: Aufgabe 3
a) Erstellen Sie ein Programm, das eine Zahl (Variable) und ihre Wurzel ausgibt.
b) Erstellen Sie ein Programm das aus dem Kreisradius r (Variable) den Umfang und die Fläche des
Kreises berechnet und ausgibt.
zu 1.4: Aufgabe 4
Erstellen Sie das Programm ZufallsZahlen.
Aufgabe 5
Erstellen Sie ein Programm, das alle Quadratzahlen ausgibt, die kleiner als 200 sind.
Aufgabe 6
Erstellen Sie ein Programm Potenzen, das die Potenzen von 2 für Hochzahlen von 1 bis 20 ausgibt.
Hinweis: Verwende eine int-Variable potenz , die bei jedem Schritt verdoppelt wird.
zu 1.5 und 1.6: Aufgabe 7
a) Erstellen Sie das Programm Muenze.
b) Verändern Sie das Programm so, dass eine Funktion werfeMuenze verwendet wird.
Aufgabe 8
Erstellen Sie ein Programm, das 100 Zufallszahlen erzeugt und dabei die kleinste und grösste
bestimmt.
Hinweis: Verwenden Sie zwei Variablen min und max, die während der Schleife laufend den bisher
kleinsten bzw. grössten Wert enthalten.
Aufgabe 9
a) Erstellen Sie ein Programm figur mit der Prozedur linie, das als Figur eine Linie von 20 Sternchen
ausgibt.
b) Verändern Sie das Programm so, dass ein ausgefülltes Rechteck von Sternchen ausgegeben wird.
c) Verändern Sie das Programm so, dass ein nicht ausgefülltes Rechteck von Sternchen ausgegeben
wird.
d) Verändern Sie das Programm so, dass ein ausgefülltes Dreieck von Sternchen ausgegeben wird.
e) Verändern Sie das Programm so, dass eine Figur eigener Wahl erzeugt wird.
zu 1.7: Aufgabe 10
a) Verbessern Sie das Kreisberechnungsprogramm so, dass der Radius eingegeben werden kann und
die Ausgabe 'schön' erfolgt.
b) Ergänzen Sie das Programm mit einer Schleife, die es erlaubt, dass der Benutzer wählen kann, ob
er noch eine Berechnung machen will.
Aufgabe 11
Verbessern Sie alle gemachten Programme so, dass Eingaben gemacht werden können und die
Ausgabe 'schön' gestaltet ist.
Kant. FS-Tag 02 ICT
Christoph Arnold, KSL
Herunterladen