Prénom Nom© 2010, Université de Fribourg
Einführung in die Programmierung mit Java
© 2010, Université de Fribourg
2
Agenda
1. Einführung in die Programmiersprachen
2. Und Java?
3. Die Grundlagen der Programmierung
4. Unser erstes Programm in Java
© 2010, Université de Fribourg
3
Einführung in die Programmiersprachen
Was ist ein Algorithmus? Welche Sprache versteht ein Computer? Was ist ein Programm? Was ist eine Programmiersprache? …und Java? Was macht Java hier?
© 2010, Université de Fribourg
4
Definitionen
Algorithmus: endliche Reihe von Regeln welche in einer bestimmten Ordnung auf eine endliche Menge von Daten angewandt wird, um nach einer endlichen Anzahl Schritte zu einem Resultat zu gelangen.
Daten: strukturierte Form der Informationen. Programm: übersetzte Form eines Algorithmus in eine vom
Computer verstandene Sprache.Ein Programm ist eine Reihe von Anweisungen, welche die Operationen die auf die Daten angewandt werden, definiert.
Problem Methode Algorithmus Programm
© 2010, Université de Fribourg
5
Algorithmus
Das Wort Algorithmus stammt aus dem Mittelalter und ist der lateinische Name des persischen Mathematikers al-Khuwārizmī (~783-850).
Das Prinzip eines Algorithmus ist hingegen schon seit der Antike bekannt (Bsp: Euklidischer Algorithmus, bekannt seit 300 v. Chr.).
© 2010, Université de Fribourg
6
Beispiel aus dem täglichen Leben
Wie macht man Kaffee?1. Wasser zum sieden bringen.
2. Kaffee in die Tasse geben.
3. Heisses Wasser in die Tasse geben.
Kochrezept
© 2010, Université de Fribourg
7
Eigenschaften von Algorithmen
Algorithmen sind unabhängig vom Computer der sie ausführt.
Algorithmen sind unabhängig von der Sprache in die sie übersetzt werden.
Man kann sie auf Deutsch formulieren, mit Hilfe von Diagrammen oder als pseudo-code.
© 2010, Université de Fribourg
8
Beispiel eines Algorithmus
Problem:Wie berechnet man die Zinsen und den Kontostand nach einem Jahr mit festem Zinssatz?
Eingabe: Kontostand am Anfang des Jahres Zinssatz
Ausgabe: Abgeworfene Zinsen, Neuer Kontostand
Algorithmus: 1. Den Kontostand mit dem Zinssatz multiplizieren und durch
100 teilen2. Den unter 1. erhaltenen Betrag zum Kontostand hinzufügen3. Die Resultate von 1. und 2. ausgeben.
© 2010, Université de Fribourg
9
Algorithmen definieren
Das vorangegangene Beispiel zeigt drei Schritte, die in den meisten Problemlösungen vorkommen:
1. Das Problem verstehen und die Daten (Input) erkennen.
2. Definieren welche Antwort (Output) man erwartet.
3. Festlegen wie die Daten behandelt werden müssen, um das gewünschte Resultat zu erhalten.
Problem Methode Algorithmus Programm
© 2010, Université de Fribourg
10
Algorithmen: Methodik
Eine Technik um komplizierte Probleme lösen zu können, ist die top-down Methode.
Prinzip: Zerkleinern des Problems in kleinere Einheiten die
einfacher sind und separat behandelt werden; Jede dieser Einheiten wird ihrerseits wieder in kleiner Stücke
aufgeteilt. Es ist wichtig zu wissen wann man aufhören muss! Sobald der Algorithmus steht, muss man ihn noch in eine
von Computer verstandene Sprache übersetzen?
Problem Methode Algorithmus Programm
© 2010, Université de Fribourg
11
Die Maschinensprache
Der Prozessor spricht eine spezielle Sprache, die Maschinensprache. Dabei handelt es sich um Daten wie sie beim Prozessor ankommen, das heisst eine Folge von 0 und 1 (man nennt sie auch binär-daten).
Berechne denDurchscnitt !
Wir können diese Sprache nicht verstehen. Deshalb brauchen wir eine andere Sprache, mit der wir mit dem Computer kommunizieren können. Diese Zwischensprache
nennt man Programmiersprache.
01101011001
© 2010, Université de Fribourg
12
Compiler
Kode der in dieser Zwischensprache geschrieben ist, muss in Maschinensprache übersetzt werden, bevor der Prozessor den Anweisungen folgen kann.
Diese Programme werden vom Compiler in Maschinensprache übersetzt.
Eine Programmiersprache ist für uns Menschen ein Mittel, um einem Computer Anweisungen zu geben.
Compiler
Für alle NotenBerechne die Summe;Berechen die Anzahl;Durchschnitt = Summe/Anzahl
Berechne denDurchschnitt !
01101011001
© 2010, Université de Fribourg
13
Programme
Ein Informatik Programm ist eine Folge von Anweisungen, welche vom Computer ausgeführt werden. Die Anweisungen werden eine nach der anderen ausgeführt.
Die Anweisungen werden in einer Programmiersprache geschrieben.
Wie man ein Programm schreibt, hängt stark von der gewählten Programmiersprache ab, denn es gibt viele Programmiersprachen.
Zusätzlich muss der richtige Compiler ausgewählt werden. Jede Programmiersprache hat ihren eigenen Compiler.
© 2010, Université de Fribourg
14
Quellkode
Ein Programm ist eine einfache Textdatei, geschrieben mit einem Editor oder Textverarbeitungsprogramm. Man nennt diese Datei Quelldatei.
Die Quelldatei enthält mehrere Linien Kode. Man nennt diese Linien Quellkode. Die Quelldatei muss kompilierbar sein.
Der Compiler baut eine ausführbare Datei. Sie enthält alles was es braucht um selbständig zu funktionieren (unter Microsoft Windows enden diese Dateien mit .exe).
© 2010, Université de Fribourg
15
Agenda
1. Einführung in die Programmiersprachen
2. Und Java?
3. Die Grundlagen der Programmierung
4. Unser erstes Programm in Java
© 2010, Université de Fribourg
16
Die Sprache Java
Java ist eine Programmiersprache Die wurde von den Angestellten der Sun
Microsystems kreiert, unter anderem von James Gosling.
Java wurde erstmals am 23 Mai 1995 offiziell präsentiert.
"Duke" ist das Maskottchen der Programmiersprache Java.
Java ist ein enormer technischer Erfolg. Die Sprache Java wird seit mindestens 10 Jahren in der ganzen Welt gebraucht.
Natürlich auch in der Schweiz…
© 2010, Université de Fribourg
17
Java ist überall
Heutzutage ist Java überall. Man findet Java auf über 2 Billionen Maschinen in der ganzen Welt.
© 2010, Université de Fribourg
18
Der Java Ansatz
Java ist anders: Quellcode (.java) wird in Bytecode (.class) übersetzt. Bytecode ist eine Zwischensprache und ist portabel auf andere Betriebssysteme.
Eine Maschine versteht Java, wenn sie die virtuelle Maschine von Java (JVM) installiert hat.
© 2010, Université de Fribourg
19
Die virtuelle Maschine von Java
Quellcode wird in eine .java Datei geschrieben.
Der Compiler übersetzt den Quellcode in Bytecode und speichert ihn in einer .class Datei.
Dieser Bytecode wird von der virtuellen Maschine Java (JVM) ausgeführt.
Die JVM ist für alles Betriebssysteme verfügbar.
Ein Java Programm wird demnach einmal geschrieben und kompiliert und kann dann beliebig ausgeführt werden.
Man sagt dass Java portabel ist."Write Once, Run Anywhere"™
© 2010, Université de Fribourg
20
Java-Plattform
Java ist ein Programmiersprache. Sie wird von einer Entwicklungs-Umgebung begleitet die aus folgenden Teilen besteht: Die virtuelle Maschine Ein Compiler Eine Kollektion von Bibliotheken (wiederverwendbare(r)
Kode/Programme die dem Entwickler zur Verfügung stehen) Werkzeuge, Beispiele, Umgebungen und vieles mehr…
Man nennt eine solche Umgebung Plattform.
© 2010, Université de Fribourg
21
Java-Plattform
Java EE – Enterprise Edition:Umfasst “Client - Server” Technologien.
Java SE – Standard Edition:Umfasst Technologien um Einzelplatz-Anwendung zu schreiben.
Java ME – Micro Edition:Umfasst Technologien welche es erlauben tragbare Geräte zu programmieren (Natel, PDA usw.). Diese Geräte haben meistens begrenze Ressourcen.
© 2010, Université de Fribourg
22
Agenda
1. Einführung in die Programmiersprachen
2. Und Java?
3. Die Grundlagen der Programmierung
4. Unser erstes Programm in Java
© 2010, Université de Fribourg
23
Grundlagen der Programmierung
Sehen wir uns nun einige Grundkonzepte der Programmierung an:VariabelnZuordnungKontrollstrukturen
(if...else und for)Funktionen
© 2010, Université de Fribourg
24
Variabeln
Variabel: Abstraktion eines Ortes im Speicherdurch einen Namen
identifiziert,man kann ihr im Laufe der
Zeit verschiedene Werte (Information) zuordnen,
besitzt einen Typ.x
nom
fini
Name
6.14
karin
true
Wert
réel
texte
booléen
Typ
karint
rue
6.14
x
nom
fini
© 2010, Université de Fribourg
25
Zuordnung
Zuordnung: Operation die einen Wert in einer Variable speichert.
Der gespeicherte Wert ist oft das Resultat der Evaluation eines Ausdrucks (Expression).
Eine Variable dient dazu, eine Information für einen späteren Gebrauch zu speichern.
So liesst es sich:y = 0 liesst sich "y wird der Wert 0 zugeschrieben"
x = 3 + Pi
Konstanteohne Namen
Variable KonstanteMit Namen
y = 0
Konstanteohne Namen
Variable
6.14
x
© 2010, Université de Fribourg
26
Beispiele in Java
Deklarieren einer Variable: ihr einen Namen und einen Typ geben int x; int y; int sum;
Einer Variable einen Wert zuordnen: x = 3; y = 4; sum = x + y;
© 2010, Université de Fribourg
27Sequentielles Ausführen von Instruktionen
Der normale Ausführungsfluss ist sequentiell: nach dem Ausführen einer elementaren
Instruktion, wird anschliessend die gleich darauffolgende Instruktion im Programm aktiv.
Mit der Hilfe von Kontrollinstruktionen ist es möglich, diesen linearen Verlauf abzuändern: bedingte (konditionelle) Instruktionen Instruktionen für „Repetition“ oder „Iteration“
oder Schlaufen
© 2010, Université de Fribourg
28
Bedingte (konditionelle) Instruktion
Durch die Evaluation einer Bedingung (Kondition) wird bestimmt, ob der folgende Instruktionsblock ausgeführt wird oder nicht.
Das Resultat der Bedingung ist typischerweise boolesch (true / false).
Weiche: Wenn-Dann-Sonstwenn Bedingung
dann Instruktion1
[sonst Instruktion2]
ende_wenn
© 2010, Université de Fribourg
29
Befehle1
Befehle2
Befehle3
IF Struktur
Die IF Struktur ist:
if (expression1) { Befehle1} else if (expression2) { Befehle2} else Befehle3}
if expression1 liesst sich „wenn expression1 wahr ist".
Die Abschnitte else if und else sind optional.
© 2010, Université de Fribourg
30
Beispiel in Java
Algorithmus „Maximum zweier ganzen Zahlen":
int x; int y; int max; x = 123; y = 456;if (x > y) {
max = x;} else {
max = y;}
© 2010, Université de Fribourg
31
wah
r
fals
chIterative Instruktion
Solange eine Bedingung erfüllt istsolange Bedingung
mache Instruktionen ende_solange
Erlaubt es, den gleichen Instruktionsblock mehrmals hintereinander auszuführen.
Diese Instruktion evaluiert eine Repetitionsbedingung die entscheidet, ob der Instruktionsblock noch einmal ausgeführt wird oder nicht („man geht aus der Schlaufe“).
© 2010, Université de Fribourg
32
FOR Struktur
Die FOR Struktur erlaubt eine Instruktion n mal zu wiederholen.
for (Initialisierung; Bedingung; Inkrement) {Befehle
}
Initialisierung wird einmal am Anfang der Schlaufe ausgeführt.
Solange Bedingung wahr ist, werden die Befehle ausgeführt.
Das Inkrement wird nach jeder Iteration ausgeführt; oft inkrementiert dieser Ausdruck einen Wert.
wah
r
fals
ch
© 2010, Université de Fribourg
33
Beispiele in Java
Algorithmus „die n ersten Zahlen aufsummieren“:int sum;sum = 0;for (int i = 1; i < 6; i++) {
sum = sum + i;}
Algorithmus „Anzahl e‘s in einem Wort ":String s;s = "Donaudampfschiffahrtsgesellschaft";
int count;count = 0;for ( int i = 0; i < s.length(); i++ ) {
if ( s.charAt(i) == 'e' ) {count++;
}}
© 2010, Université de Fribourg
34
Methoden
Man kann einen Teil eines Kodes als Methode oder Funktion definieren.
Eine Funktion ist also ein Unterprogramm, das Eingaben (Parameter oder Input) und eine Ausgabe (Output) hat.
Die Funktionen erlauben ein Programm zu zerlegen und zu strukturieren.
Funktionen werden auch Methoden oder Prozeduren genannt.
Eine Programmiersprache stellt mehrere Funktionen zur Verfügung (mathematisch, Umgang mit Daten, …).
© 2010, Université de Fribourg
35
Deklaration einer Methode
Eine Methode wird wie folgt deklariert:returnType methodName(paramType p, ...) { commands} returnType ist der Typ des Rückgabewerts der
Methode methodName ist der Name der Methode paramType und p sind der Typ und Name des ersten
Parameters der Methode (formeller Parameter) commands repräsentiert den Körper der Methode, das
sind die Instruktionen die in dieser Methode ausgeführt werden.
Danach kann die Methode aufgerufen werden, indem man ihr aktuelle Parameter übergibt:methodName(x,…);
© 2010, Université de Fribourg
36
Beispiele in Java
Deklaration der Methode, die den grösseren Wert zweier ganzer Zahlen zurückgibt:
int max(int a, int b) {if (a > b) {
return a;} else {
return b;}
} Aufruf der Methode:
max(123, 456); Andere Beispiele:
boolean isEven(int x);String reverse(String s);int average(int a, int b);
© 2010, Université de Fribourg
37
…
PAUSE !
FRAGEN ?