Beispiel in Java

Werbung
Einführung in die
Programmierung
mit Java
© 2010, Université
de Fribourg
Prénom
Nom
2
Agenda
Einführung in die Programmiersprachen
2. Und Java?
3. Die Grundlagen der Programmierung
4. Unser erstes Programm in Java
1.
© 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:



Ausgabe:



Kontostand am Anfang des Jahres
Zinssatz
Abgeworfene Zinsen,
Neuer Kontostand
Algorithmus:
1.
2.
3.
Den Kontostand mit dem Zinssatz multiplizieren und durch
100 teilen
Den unter 1. erhaltenen Betrag zum Kontostand hinzufügen
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 den
Durchscnitt !

01101011001
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.
© 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.
Berechne den
Durchschnitt !
01101011001
Für alle Noten
Berechne die Summe;
Berechen die Anzahl;
Durchschnitt = Summe/Anzahl
Compiler
© 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
Einführung in die Programmiersprachen
2. Und Java?
3. Die Grundlagen der Programmierung
4. Unser erstes Programm in Java
1.
© 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





"Write Once, Run Anywhere"™

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.
© 2010, Université de Fribourg
20
Java-Plattform

Java ist ein Programmiersprache. Sie wird von einer EntwicklungsUmgebung 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
Einführung in die Programmiersprachen
2. Und Java?
3. Die Grundlagen der Programmierung
4. Unser erstes Programm in Java
1.
© 2010, Université de Fribourg
23
Grundlagen der Programmierung

Sehen wir uns nun einige
Grundkonzepte der
Programmierung an:
 Variabeln
 Zuordnung
 Kontrollstrukturen
(if...else und for)
 Funktionen
© 2010, Université de Fribourg
true
24
Variabeln
6.14

fini
x
nom
Typ
Name
Wert
réel
x
6.14
texte
nom
karin
booléen
fini
true
Variabel: Abstraktion eines
Ortes im Speicher
 durch einen Namen
identifiziert,
 man kann ihr im Laufe der
Zeit verschiedene Werte
(Information) zuordnen,
 besitzt einen Typ.
© 2010, Université de Fribourg
25
Zuordnung
6.14



x

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"
y = 0
Variable
Konstante
ohne Namen
x = 3 + Pi
Variable
Konstante
ohne Namen
Konstante
Mit Namen
© 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
Sequentielles Ausführen von
Instruktionen

27
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-Sonst
wenn Bedingung
dann Instruktion1
[sonst Instruktion2]
ende_wenn
© 2010, Université de Fribourg
29
IF Struktur

Die IF Struktur ist:
if (expression1) {
Befehle1
} else if (expression2) {
Befehle2
} else
Befehle3
}


Befehle1
Befehle2
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
Iterative Instruktion


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“).
wahr
falsch
Solange eine Bedingung erfüllt ist
solange Bedingung
mache Instruktionen
ende_solange
© 2010, Université de Fribourg
32
FOR Struktur

Die FOR Struktur erlaubt eine Instruktion n mal zu wiederholen.
wahr
falsch
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.

© 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
…
FRAGEN ?
PAUSE !
© 2010, Université de Fribourg
Herunterladen