Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte."—  Präsentation transkript:

1 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

2 PKJ 2005/2 Stefan Dissmann Zusammenfassung Vorwoche J AVA-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.

3 PKJ 2005/3 Stefan 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

4 PKJ 2005/4 Stefan Dissmann Variable public class EinErstesProgramm { public static void main(String[] args) { int zz1; zz1 = 1; System.out.println("Ergebnis: " + (zz1 + 7)); } Vereinbarung Zuweisung Wertabfrage

5 PKJ 2005/5 Stefan Dissmann Variable Vereinbarung macht 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);

6 PKJ 2005/6 Stefan 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;

7 PKJ 2005/7 Stefan 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!

8 PKJ 2005/8 Stefan 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!

9 PKJ 2005/9 Stefan Dissmann Initialisierung Eigenes Sprachkonzept: Zuweisung eines Wertes bei Vereinbarung int zz1 = 0; int zz2 = 26; int zz3 = 2, zz4; Vorteile: kürzer übersichtlicher

10 PKJ 2005/10 Stefan 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!

11 PKJ 2005/11 Stefan Dissmann Problemstellung Berechne die Summe der Quadrate aller natürlichen Zahlen bis zu einer vorgegebenen Zahl (bspw. 100)! Oder mathematisch: Berechne z=1 100 z 2 = 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)

12 PKJ 2005/12 Stefan 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

13 PKJ 2005/13 Stefan 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

14 PKJ 2005/14 Stefan 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

15 PKJ 2005/15 Stefan 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.

16 PKJ 2005/16 Stefan Dissmann While-Anweisung Mehrere Anweisungen wiederholen? Zusammenfassen als Block while(Bedingung){ Anweisung-1; … Anweisung-n; } Bezeichnung: Schleife, while-Schleife Anmerkung: Formatierung spielt keine Rolle! Blockanfang Blockende

17 PKJ 2005/17 Stefan 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 z 2 200000

18 PKJ 2005/18 Stefan 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

19 PKJ 2005/19 Stefan Dissmann Erweiterung der Aufgabe zusätzlich: Ausgeben der Summe vor Überschreiten von 200000 Auswirkung: Korrektur wird aufwändig, da z*z subtrahiert werden muss.

20 PKJ 2005/20 Stefan 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äufige r Wert

21 PKJ 2005/21 Stefan 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

22 PKJ 2005/22 Stefan Dissmann Zusammenfassung While-Schleife wiederholt eine Anweisung oder einen Block von Anweisungen aufgrund einer Bedingung. Syntax: while(Bedingung)while(Bedingung) { Anweisung; Anweisungen } Bedingung liefert bei ihrer Auswertung true oder false.


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

Ähnliche Präsentationen


Google-Anzeigen