A B Z a z Buchstabe Ziffer 0 1 8 9 Java Syntaxdiagramme
A B Z a z
Buchstabe
Ziffer
0 1 8 9
Java Syntaxdiagramme
Java Syntaxdiagramme
Buchstabe
Buchstabe
Ziffer
_
$Name
Java Syntaxdiagramme
+
-
Nichtnullziffer
Ziffer
0
0x
0X
Oktalziffer
Hexziffer
l
L
0
Ganze Zahl
Java Syntaxdiagramme
Hexadezimalziffer
a b f A F
Ziffer
Nichtnullziffer
1 2 8 9
Oktalziffer
0 1 6 7
/
Name
Zahl
Ausdruck Ausdruck( )+
-
*
Ausdruck
Java Syntaxdiagramme
Alternative Darstellungsformen:
1. Kontext-freie Grammatik. Ersetzungsregeln <Name> = <Buchstabe> <Zeichenliste> <Zeichenliste> = (leeres Wort) <Zeichenliste> = <Buchstabe> <Zeichenliste> <Zeichenliste> = <Ziffer> <Zeichenliste> <Zeichenliste> = '_' <Zeichenliste> <Zeichenliste> = '$' <Zeichenliste>
2. Backus-Naur-Form. <Name> = <Buchstabe>(<Buchstabe>|<Ziffer>|'_'|'$')*
höhere ProgrammiersprachenJava - Beispiel
c = a + b;
höhere ProgrammiersprachenJava - Beispiel
int a, b, c;
c = a + b;
Variablendeklaration
höhere ProgrammiersprachenJava - Beispiel
public static void main (String argv[])
{
int a, b, c;
c = a + b;
}
Variablendeklaration
Hauptprogramm
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel
{
public static void main (String argv[])
{
int a, b, c;
c = a + b;
}
}
Dateiname: Beispiel.java
Variablendeklaration
Hauptprogramm
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel
{
public static void main (String argv[])
{
int a, b, c;
c = a + b;
}
}
Dateiname: Beispiel.java
Variablendeklaration
Hauptprogramm
Datentyp:int
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel
{
public static void main (String argv[])
{
int a, b, c;
c = a + b;
}
}
Dateiname: Beispiel.java
Variablendeklaration
Hauptprogramm
Datentyp:int
Zuweisung
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel
{
public static void main (String argv[])
{
int a, b, c;
c = a + b;
}
}
Dateiname: Beispiel.java
Variablendeklaration
Hauptprogramm
Datentyp:int
Zuweisung Addition
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel
{
public static void main (String argv[])
{
int a, b, c;
c = a + b;
}
}
Dateiname: Beispiel.java
Variablendeklaration
Hauptprogramm
Datentyp:int
Zuweisung Addition
Anweisungen werden mit einem Strichpunkt abgeschlossen
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel
{
public static void main (String argv[])
{
int a, b, c;
c = a + b;
}
}
Dateiname: Beispiel.java
Variablendeklaration
Hauptprogramm
Datentyp:int
Zuweisung Addition
Anweisungen werden mit einem Strichpunkt abgeschlossen
Beginn
Ende
höhere ProgrammiersprachenJava
Datentypen (ganze Zahlen):
• byte -128 ... 127
• short -32768 ... 32767
• int -2147483648 ... 2147483647
• long -9223372036854775808 ...
9223372036854775807
Datentypen (Kommazahlen):
• float ±1.4023E-45 ...
±3.4028E+38 (10 Stellen)
• double ±4.9406E-324 ...
±1.7976E+308 (20 Stellen)
Datentypen:
• char einzelnes Zeichen, z.B. ‘a‘
• String Zeichenkette, z.B. “Java“
• boolean Wahrheitswert (true oder false)
höhere ProgrammiersprachenJava - Beispiel
int a;
a = -23;
double d = 2.3456;
float f;
f = -5.4321;
boolean b = true;
char ch = ‘E‘;
String st = “test“;
Variablennamen: bestehen aus
Zeichen, Ziffern, und _ , darf
nicht mit einer Ziffer beginnen.
höhere ProgrammiersprachenJava
Arithmetische Operationen:
+ - * / für ganze Zahlen und Kommazahlen
+ auch für Strings (concatenate)
% nur für ganze Zahlen (modulo)
= Zuweisung, kein Vergleich
Vergleiche (ergibt immer einen boolean):
== alle Datentypen, außer String (Gleichheit)
!= alle Datentypen, außer String (Ungleichheit)
< > <= >= alle Datentypen, außer String und boolean
höhere ProgrammiersprachenJava
Verzweigung:
if (Bedingung)
{
Anweisungen1;
}
else
{
Anweisungen2;
}
Bedingung ist ein Ausdruck vom Typ boolean (z.B. ein Vergleich)
Anweisungen1 sind eine Folge vonAnweisungen, die ausgeführt werdenwenn die Bedingung erfüllt ist(bei einer Anweisung können die Klammern entfallen)
Anweisungen2 sind eine Folge vonAnweisungen, die ausgeführt werdenwenn die Bedingung nicht erfüllt ist(der else - Teil kann entfallen)
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel2
{
public static void main (String argv[])
{
int a, b, c;
c = 12;
if (c < 0)
{
a = 3;
b = 7;
c = 2 * a + b;
}
else
c = 2 * c;
}
}
höhere ProgrammiersprachenJava
Eingabe:
• über Parameter (später)
• von der Tastatur (schwierig)
höhere ProgrammiersprachenJava
Eingabe:
• über Parameter (später)
• von der Tastatur (schwierig)Entsprechende Funktionen werden vorgegeben.
höhere ProgrammiersprachenJava
Eingabe:
• über Parameter (später)
• von der Tastatur (schwierig)
Ausgabe:
• System.out.print(String);
• System.out.println(String);
Entsprechende Funktionen werden vorgegeben.
höhere ProgrammiersprachenJava
Eingabe:
• über Parameter (später)
• von der Tastatur (schwierig)
Ausgabe:
• System.out.print(String);
• System.out.println(String);
Variablen, die nicht vom Typ String sindkönnen ausgegeben werden, indem sie mit einem String konkateniert werden.
Entsprechende Funktionen werden vorgegeben.
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel3
{
public static void main (String argv[])
{
int a = 23;
double d = 17.98;
System.out.println(“Hello World“);
System.out.print(““+d);
System.out.println(“a = “+a);
}
}
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel3
{
public static void main (String argv[])
{
int a = 23;
double d = 17.98;
System.out.println(“Hello World“);
System.out.print(““+d);
System.out.println(“a = “+a);
}
}
““ ist der leere String
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel4
{
Input in = new Input();
public static void main (String argv[])
{
int a, b, c;
a = in.readInt();
b = in.readInt();
c = a + b;
System.out.println(“a + b =“+c);
}
}
class Input
{
...
}
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel4
{
Input in = new Input();
public static void main (String argv[])
{
int a, b, c;
a = in.readInt();
b = in.readInt();
c = a + b;
System.out.println(“a + b =“+c);
}
}
class Input
{
...
}
Die Klasse Input stellt uns die FunktionenreadInt(), readDouble(), readString() zurVerfügung.
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel4
{
Input in = new Input();
public static void main (String argv[])
{
int a, b, c;
a = in.readInt();
b = in.readInt();
c = a + b;
System.out.println(“a + b =“+c);
}
}
class Input
{
...
}
Die Klasse Input stellt uns die FunktionenreadInt(), readDouble(), readString() zurVerfügung.
in ist eine Variable vom Typ Input
höhere ProgrammiersprachenJava - Beispiel
public class Beispiel4
{
Input in = new Input();
public static void main (String argv[])
{
int a, b, c;
a = in.readInt();
b = in.readInt();
c = a + b;
System.out.println(“a + b =“+c);
}
}
class Input
{
...
}
Die Klasse Input stellt uns die FunktionenreadInt(), readDouble(), readString() zurVerfügung.
in ist eine Variable vom Typ Input
Mit in.readInt() wird die FunktionreadInt() der Klasse Input aufgerufen.Diese liest ein ganze Zahl ein.
höhere ProgrammiersprachenJava
Klassen:
• hat Methoden (Funktionen) und Daten (Variablen)• es kann mehrere Klassen geben• nur eine Klasse darf public sein
Informatik I : Software
höhere ProgrammiersprachenJava
Klassen:
• hat Methoden (Funktionen) und Daten (Variablen)• es kann mehrere Klassen geben• nur eine Klasse darf public sein• Variablen müssen mit new angelegt werden. Input in = new Input();• Funktionen werden Variablenname.Funktionsname aufgerufen in.readInt() oder in.readDouble()
Informatik I : Software
höhere ProgrammiersprachenJava
Klassen:
• hat Methoden (Funktionen) und Daten (Variablen)• es kann mehrere Klassen geben• nur eine Klasse darf public sein• Variablen müssen mit new angelegt werden. Input in = new Input();• Funktionen werden Variablenname.Funktionsname aufgerufen in.readInt() oder in.readDouble()• alle Datentypen außer boolean, byte, char, short, int, long, float, double sind Klassen• die Klasse String ist eine Ausnahme (kein new erforderlich)
Informatik I : Software
Java – Programmiersprache
Verknüpfung von Bedingungen:
• && and (und)
• | | or (oder)
• ! not (nicht)
Informatik I : Software
Java – Programmiersprache
Verknüpfung von Bedingungen:
• && and (und)
• | | or (oder)
• ! not (nicht)
if ((Bed1) && (Bed2))
{ ... }
if ((Bed1) || (Bed2))
{ ... }
if (!(Bedingung))
{ ... }
Informatik I : Software
Java – Programmiersprache
Beispiele:
if ((a <= 0) && (a >= -20))
{ ... }
if ((a < 0) || (a > 0))
{ ... }
if (((a % 250) == 0) ||
(((a % 5) == 0) && (!((a % 50) == 0)))))
{ ... }
Informatik I : Software
Java – Programmiersprache
Beispiele:
...
System.out.println(“1*1 = “+(1*1));
System.out.println(“2*2 = “+(2*2));
System.out.println(“3*3 = “+(3*3));
System.out.println(“4*4 = “+(4*4));
System.out.println(“5*5 = “+(5*5));
System.out.println(“6*6 = “+(6*6));
System.out.println(“7*7 = “+(7*7));
System.out.println(“8*8 = “+(8*8));
...
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Gibt die Quadratzahlen von 1 bis 8 aus
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Gibt die Quadratzahlen von 1 bis 8 aus
Wie gebe ich die Quadratzahlen von 1 bis 100 aus?
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Gibt die Quadratzahlen von 1 bis 8 aus
Wie gebe ich die Quadratzahlen von 1 bis 100 aus?
• Copy and Paste (Zeilen kopieren und anpassen)
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Gibt die Quadratzahlen von 1 bis 8 aus
Wie gebe ich die Quadratzahlen von 1 bis 100 aus?
• Copy and Paste (Zeilen kopieren und anpassen)Ziemlich aufwendig,nicht akzeptabel
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Gibt die Quadratzahlen von 1 bis 8 aus
Wie gebe ich die Quadratzahlen von 1 bis 100 aus?
• Copy and Paste (Zeilen kopieren und anpassen)
• Schleifen
Ziemlich aufwendig,nicht akzeptabel
Informatik I : Software
Java – Programmiersprache
for – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
Informatik I : Software
Java – Programmiersprache
for – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
startaktion wird einmalam Anfang durchgeführt(Initialisierung der Schleife)
Informatik I : Software
Java – Programmiersprache
for – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
startaktion wird einmalam Anfang durchgeführt(Initialisierung der Schleife)
bedingung wird jedesmal vor der Ausführung von Anweisungen; geprüft.(Also auch nach startaktion)
Informatik I : Software
Java – Programmiersprache
for – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
startaktion wird einmalam Anfang durchgeführt(Initialisierung der Schleife)
bedingung wird jedesmal vor der Ausführung von Anweisungen; geprüft.(Also auch nach startaktion)
Anweisungen; werden solange ausgeführtbis bedingung nicht mehr erfüllt
Informatik I : Software
Java – Programmiersprache
for – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
startaktion wird einmalam Anfang durchgeführt(Initialisierung der Schleife)
bedingung wird jedesmal vor der Ausführung von Anweisungen; geprüft.(Also auch nach startaktion)
Anweisungen; werden solange ausgeführtbis bedingung nicht mehr erfüllt
iteraktion wird jedesmal nachAnweisungen;ausgeführt
Informatik I : Software
Java – Programmiersprache
Beispiel:
...
int i;
for (i = 1;i <= 8;i = i + 1)
System.out.println(i+“*“+i+“ = “+(i*i));
...
Informatik I : Software
Java – Programmiersprache
Beispiel:
...
int i;
for (i = 1;i <= 8;i = i + 1)
System.out.println(i+“*“+i+“ = “+(i*i));
...
Quadratzahlen von 1 bis 8
Informatik I : Software
Java – Programmiersprache
Beispiel:
...
int i;
for (i = 1;i <= 100;i = i + 1)
System.out.println(i+“*“+i+“ = “+(i*i));
...
Quadratzahlen von 1 bis 100
Informatik I : Software
Java – Programmiersprache
Beispiele:
int i;
double d;
for (i = 0; i < 10; i = i + 1)
{ ... }
for (d = 13.5; d > 1.5; d = d / 2)
{ ... }
for (i = 0; i < 10; i = i – 2)
{ ... }
Informatik I : Software
Java – Programmiersprache
Beispiele:
int i;
double d;
for (i = 0; i < 10; i = i + 1)
{ ... }
for (d = 13.5; d > 1.5; d = d / 2)
{ ... }
for (i = 0; i < 10; i = i – 2)
{ ... }
auch Kommazahlenmöglich
Informatik I : Software
Java – Programmiersprache
Beispiele:
int i;
double d;
for (i = 0; i < 10; i = i + 1)
{ ... }
for (d = 13.5; d > 1.5; d = d / 2)
{ ... }
for (i = 0; i < 10; i = i – 2)
{ ... }
auch Kommazahlenmöglich
Vorsicht: Endlosschleife
Informatik I : Software
Java – Programmiersprache
abkürzende Schreibweisen:
i = i + 1;
i = i – 1;
d = d – 2;
d = d / 3.2;
d = d * 1.09;
i = i + 5;
Informatik I : Software
Java – Programmiersprache
abkürzende Schreibweisen:
i = i + 1; i++; oder ++i;
i = i – 1;
d = d – 2;
d = d / 3.2;
d = d * 1.09;
i = i + 5;
Informatik I : Software
Java – Programmiersprache
abkürzende Schreibweisen:
i = i + 1; i++; oder ++i;
i = i – 1; i--; oder --i;
d = d – 2;
d = d / 3.2;
d = d * 1.09;
i = i + 5;
Informatik I : Software
Java – Programmiersprache
abkürzende Schreibweisen:
i = i + 1; i++; oder ++i;
i = i – 1; i--; oder --i;
d = d – 2; d-=2;
d = d / 3.2;
d = d * 1.09;
i = i + 5;
Informatik I : Software
Java – Programmiersprache
abkürzende Schreibweisen:
i = i + 1; i++; oder ++i;
i = i – 1; i--; oder –-i;
d = d – 2; d-=2;
d = d / 3.2; d/=3.2;
d = d * 1.09; d*=1.09;
i = i + 5; i+=5;
Informatik I : Software
Java – Programmiersprache
Schleifentypen:
• for – Schleife
Informatik I : Software
Java – Programmiersprache
Schleifentypen:
• for – Schleife kennen wir bereits
Informatik I : Software
Java – Programmiersprache
Schleifentypen:
• for – Schleife
• while – Schleife
kennen wir bereits
Informatik I : Software
Java – Programmiersprache
Schleifentypen:
• for – Schleife
• while – Schleife
kennen wir bereits
allgemeinere Form der for - Schleife
Informatik I : Software
Java – Programmiersprache
Schleifentypen:
• for – Schleife
• while – Schleife
• do – while – Schleife
kennen wir bereits
allgemeinere Form der for - Schleife
Informatik I : Software
Java – Programmiersprache
Schleifentypen:
• for – Schleife
• while – Schleife
• do – while – Schleife
kennen wir bereits
allgemeinere Form der for - Schleife
andere SchleifenformBedingung am Ende
Informatik I : Software
Java – Programmiersprache
while – Schleife:
while (bedingung)
{
Anweisungen;
}
Informatik I : Software
Java – Programmiersprache
while – Schleife:
while (bedingung)
{
Anweisungen;
}
Solange bedingung erfüllt ist
Informatik I : Software
Java – Programmiersprache
while – Schleife:
while (bedingung)
{
Anweisungen;
}
Solange bedingung erfüllt istwerden Anweisungen; ausgeführt
Informatik I : Software
Java – Programmiersprache
while – Schleife:
while (bedingung)
{
Anweisungen;
}
Solange bedingung erfüllt istwerden Anweisungen; ausgeführt
Anweisungen; müssen derart sein, daß bedingung irgendwann einmalnicht mehr erfüllt ist.
Informatik I : Software
Java – Programmiersprache
for – Schleife vs. while – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
Informatik I : Software
Java – Programmiersprache
for – Schleife vs. while – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
while (bedingung)
{
Anweisungen;
}
Informatik I : Software
Java – Programmiersprache
for – Schleife vs. while – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
while (bedingung)
{
Anweisungen;
iteraktion;
}
Informatik I : Software
Java – Programmiersprache
for – Schleife vs. while – Schleife:
for (startaktion; bedingung; iteraktion)
{
Anweisungen;
}
startaktion;
while (bedingung)
{
Anweisungen;
iteraktion;
}
Informatik I : Software
Java – Programmiersprache
Beispiele:
int i = 0;
boolean b = false;
while (i < 10)
{ ...; i++; }
while (b == true)
{ ... }
i = 0;
while (i >= 0);
{ ...; i--; }
Informatik I : Software
Java – Programmiersprache
Beispiele:
int i = 0;
boolean b = false;
while (i < 10)
{ ...; i++; }
while (b == true)
{ ... }
i = 0;
while (i >= 0);
{ ...; i--; }
Vorsicht: EndlosschleifeDer Strichpunkt hinterder Bedingung muss weg.Häufiger Fehler!
Informatik I : Software
Java – Programmiersprache
do – while – Schleife:
do {
Anweisungen;
} while (bedingung);
Informatik I : Software
Java – Programmiersprache
do – while – Schleife:
do {
Anweisungen;
} while (bedingung); Anweisungen; werden ausgeführt,
Informatik I : Software
Java – Programmiersprache
do – while – Schleife:
do {
Anweisungen;
} while (bedingung); Anweisungen; werden ausgeführt,solange bedingung erfüllt.
Informatik I : Software
Java – Programmiersprache
do – while – Schleife:
do {
Anweisungen;
} while (bedingung); Anweisungen; werden ausgeführt,solange bedingung erfüllt.
Anweisungen; werden mindestens einmal ausgeführt
Informatik I : Software
Java – Programmiersprache
Beispiele:
int i = 0;
boolean b = false;
do {
i++;
...;
} while (i <= 10);
do {
...;
} while (b != true);
Informatik I : Software
Java – Programmiersprache
Beispiele:
int wert1, wert2, wert3, wert4, wert5, wert6;
wert1 = in.readInt();
wert2 = in.readInt();
wert3 = in.readInt();
wert4 = in.readInt();
wert5 = in.readInt();
wert6 = in.readInt();
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Eine Reihe von Messwerten einlesen?
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Eine Reihe von Messwerten einlesen?
Was fällt auf?
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Eine Reihe von Messwerten einlesen?
Was fällt auf?
• Alle Messwerte haben den denselben Datentyp
• Schleifen sind so nicht anwendbar
Informatik I : Software
Java – Programmiersprache
Was tut dieser Programmausschnitt?
• Eine Reihe von Messwerten einlesen?
Was fällt auf?
• Alle Messwerte haben den denselben Datentyp
• Schleifen sind so nicht anwendbar
Eine neue Art vonDatentyp, eine ArtAnsammlung vonVariablen des selbenDatentyps wäre gut.
Informatik I : Software
Java – Programmiersprache
Arrays (Felder):
• Deklaration: datentyp[] variablenname;
Informatik I : Software
Java – Programmiersprache
Arrays (Felder):
• Deklaration: datentyp[] variablenname;
• Speicher reservieren: variablenname = new datentyp[größe];
Informatik I : Software
Java – Programmiersprache
Arrays (Felder):
• Deklaration: datentyp[] variablenname;
• Speicher reservieren: variablenname = new datentyp[größe];
• Arraygröße: variablenname.length
Informatik I : Software
Java – Programmiersprache
Arrays (Felder):
• Deklaration: datentyp[] variablenname;
• Speicher reservieren: variablenname = new datentyp[größe];
• Arraygröße: variablenname.length
• Elementzugriff: variablenname[element]
Informatik I : Software
Java – Programmiersprache
Arrays (Felder):
• Deklaration: datentyp[] variablenname;
• Speicher reservieren: variablenname = new datentyp[größe];
• Arraygröße: variablenname.length
• Elementzugriff: variablenname[element]
• Elemente: variablenname[0] ... variablenname[größe-1]
Informatik I : Software
Java – Programmiersprache
Beispiele:
...
int[] i_ar;
int i = 10;
i_ar = new int[20];
String[] st_ar;
st_ar = new String[i];
for (i = 0; i < st_ar.length; i ++)
st_ar[i] = in.readInt();
...
Informatik I : Software
Java – Programmiersprache
Beispiele:
int[] wert;
int i;
wert = new int[6];
for (i = 0; i < 6; i++)
wert[i] = in.readInt();
Informatik I : Software
Java – Programmiersprache
Beispiele:...
int[] tage_pro_monat = {31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31};
int monat, tag;
boolean datum = false;
monat = in.readInt();
tag = in.readInt();
if ((monat >= 1) && (monat <= 12))
{
if ((tag >= 1) && (tag <= tage_pro_monat[monat-1]))
datum = true;
}
...