PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen:...

22
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: • Schlüsselwörter • Sonderzeichen • Bezeichner • Kommentare • Texte • Zahlen • Es gelten feste Regeln für den syntaktischen Aufbau! = Grammatik von Java

Transcript of PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen:...

Page 1: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/1Stefan Dissmann

Zusammenfassung Vorwoche

Programm besteht aus mehreren Bestandteilen:• Schlüsselwörter• Sonderzeichen• Bezeichner• Kommentare • Texte• Zahlen

• Es gelten feste Regeln für den syntaktischen Aufbau! = Grammatik von Java

Page 2: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/2Stefan Dissmann

Zusammenfassung Vorwoche

JAVA-Programme besitzen eine festen Rahmen:

public class ??Bezeichner?? {

public static void main(String[] args) {

??Anweisungen??

}

????

}

bis auf weiteres gilt: der Rahmen wird so hingenommen, an ???? wird programmiert.

Page 3: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/3Stefan Dissmann

Variable

public class EinErstesProgramm {

public static void main(String[] args) {

System.out.println("Ergebnis: " + (5 + 7));

}

}

Ziel:Ergebnisse aufbewahren

Verwendetes Konzept:Variable

ist ein Bezeichner, der für (einen) Wert steht, der sich ändern kann

Page 4: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/4Stefan Dissmann

Variable

public class EinErstesProgramm {

public static void main(String[] args) {

int zz1;

zz1 = 1;

System.out.println("Ergebnis: " + (zz1 + 7));

}

}

Vereinbarung

Zuweisung

Wertabfrage

Page 5: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/5Stefan Dissmann

Variable

Vereinbarungmacht den Bezeichner als Variable im Programm

bekannt!int zz1;

Zuweisung weist den Wert der rechten Seite der Variablen zu!zz1 = 1;

Wertabfrage liefert den Wert der Variablen!System.out.println(zz1 + 7);

Page 6: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/6Stefan Dissmann

Vereinbarung

Variablen in JAVA sind getypt:Variable kann nur Werte einer bestimmten Wertemenge aufbewahren!Die Wertemenge heißt Typ der Variablen.

int zz1;

int (für Integer) bezeichnet ein Intervall der ganzen Zahlen.Nur Zahlen aus diesem Intervall dürfen zz1 zugewiesen werden.

auch erlaubt: int zz1, zz2, nochEineVariable;

Page 7: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/7Stefan Dissmann

Zuweisung

Zuweisung erfolgt von rechts nach links.

Symbol: =

int zz1, zz2, nochEineVariable;

zz1 = 1; zz1 hat jetzt den Wert 1.

zz1 = 5;

jetzt hat zz1 den Wert 5.

Zuweisung ist eine Anweisung!

Page 8: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/8Stefan Dissmann

Zuweisung

zz2 = 4 + 3;

zz2 hat den Wert 7.

zz1 = zz2 + 7;

zz1 auf 14.zz1 = zz1 + 1;

zz1 um 1 erhöht: 15.zz1 = zz2 = 27;

zz1 und zz2 erhalten den Wert 27.

aber: zz2 = 27 liefert ein Ergebnis!also: Zuweisung ist auch ein Ausdruck!

Page 9: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/9Stefan Dissmann

Initialisierung

Eigenes Sprachkonzept:Zuweisung eines Wertes bei Vereinbarung

int zz1 = 0;

int zz2 = 26;

int zz3 = 2, zz4;

Vorteile:• kürzer• übersichtlicher

Page 10: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/10Stefan Dissmann

Wertabfrage

Name der Variablen steht für ihren aktuellen Wert!

int zz1 = 1;

System.out.println(zz1);

Zeigt 1 an!zz1 = 4;

System.out.println(zz1);

Zeigt 4 an!zz1 = zz1 + 5;

System.out.println(zz1);

Zeigt 4 +5 (=9) an!

Page 11: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/11Stefan Dissmann

Problemstellung

Berechne die Summe der Quadrate aller natürlichen Zahlen bis

zu einer vorgegebenen Zahl (bspw. 100)!

Oder mathematisch:

Berechne z=1

100

z2

= z=1

100

z * z

= 1*1 + 2*2 + 3*3 + 4*4 + … + 100*100

= …((((1*1) + 2*2) + 3*3) + 4*4) + … + 100*100)

Page 12: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/12Stefan Dissmann

Konzeption der Lösung

Aufgabe:

Berechne …((((1*1) + 2*2) + 3*3) + 4*4) + … + 100*100)

1. Algorithmus einer Lösung:

(1) fange mit z = 1 an;(2) berechne das Quadrat von z;(3) bestimme die neue Zwischensumme:

alte Zwischensumme + berechnetes Quadrat(4) erhöhe z um 1;(5) prüfe ob z > 100 ist, sonst gehe wieder zu (2)(6) gib die Zwischensumme aus

Page 13: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/13Stefan Dissmann

Konzeption der Lösung

1. Algorithmus einer Lösung:(1) fange mit z = 1 an;(2) berechne das Quadrat von z;(3) bestimme die neue Zwischensumme:

alte Zwischensumme + berechnetes Quadrat(4) erhöhe z um 1;(5) prüfe ob z > 100 ist, sonst gehe wieder zu (2)(6) gib die Zwischensumme aus

2. Algorithmus einer Lösung:(1) fange mit z = 1 an;

(neu) prüfe ob z <= 100 ist, sonst gehe zu (6) (vergleiche mit 5)(2) berechne das Quadrat von z;(3) bestimme die neue Zwischensumme

alte Zwischensumme + berechnetes Quadrat(4) erhöhe z um 1;

(neu) gehe zu (2)(6) gib die Zwischensumme aus

Page 14: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/14Stefan Dissmann

Lösung mit JAVA

public class summeQuads {

public static void main(String[] args) {

int z = 1; // (1)

int summe = 0;

while(z <= 100) { // (neu)

summe = summe + z * z; // (2) und (3)

z = z + 1; // (4)

} // (neu)

System.out.println("Summe Quadratzahlen: " + summe); //(6)

}

}

Ausgabe:Summe Quadratzahlen: 338350

Page 15: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/15Stefan Dissmann

While-Anweisung

Syntaktischer Aufbau:while(Bedingung)

Anweisung;

Semantik (Bedeutung):Wiederhole Anweisung solange,bis Bedingung falsch ergibt.

Bedingungen müssen wahr (true) oder falsch (false) liefern.

Page 16: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/16Stefan Dissmann

While-Anweisung

Mehrere Anweisungen wiederholen?Zusammenfassen als Block

while(Bedingung){

Anweisung-1;

Anweisung-n;

}

Bezeichnung: Schleife, while-SchleifeAnmerkung: Formatierung spielt keine Rolle!

Blockanfa

ng

Blockende

Page 17: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/17Stefan Dissmann

Neue Aufgabe

Bestimme die natürliche Zahl n, für die sich die größte Summe

der Quadrate aller natürlichen Zahlen bis zu dieser Zahl

ergibt, die kleiner als ein vorgegebener Wert (bspw. 200000) bleibt!

Oder mathematisch:Bestimme n, so dass

Berechne z=1

n

z2 <= 200000 und z=1

n+1

z2 > 200000

Page 18: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/18Stefan Dissmann

Lösung mit JAVA

public class summeQuads2 {

public static void main(String[] args) {

int z = 1;

int summe = 0;

while(summe <= 200000) {

summe = summe + z * z;

z = z + 1;

}

System.out.println("gesuchte Zahl: " + (z - 1));

}

}

Ausgabe:gesuchte Zahl: 84

Korrektur

notwendig

Page 19: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/19Stefan Dissmann

Erweiterung der Aufgabe

zusätzlich:Ausgeben der Summe vor Überschreiten von 200000

Auswirkung:Korrektur wird aufwändig, da z*z subtrahiert werden

muss.

Page 20: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/20Stefan Dissmann

Lösung mit JAVA

public class summeQuads3 { public static void main(String[] args) { int z = 1; int summe =0, testsumme = 0; while(testsumme <= 200000) { summe = testsumme; testsumme = summe + z * z; z = z + 1; } System.out.println("gesuchte Zahl: " + (z - 1)); System.out.println("Summe Quadrate: " + summe); }}

Ausgabe: gesuchte Zahl: 84

Summe Quadrate: 194054

vorläufig

er Wert

Page 21: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/21Stefan Dissmann

Zusammenfassung

Variable• stehen für (einen) Wert,• der sich im Programmablauf ändern kann.

Variablen besitzen einen Typ.

Konzepte für Variablen:• Vereinbarung,• Initialisierung,• Zuweisung,• Wertabfrage

Page 22: PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.

PKJ 2005/22Stefan Dissmann

Zusammenfassung

While-Schleife• wiederholt eine Anweisung oder• einen Block von Anweisungen• aufgrund einer Bedingung.

Syntax:while(Bedingung) while(Bedingung)

{ Anweisung; Anweisungen

}

Bedingungliefert bei ihrer Auswertung true oder false.