Referent: Andreas Dissmann. §49 Abs. 7 Landesbauordnung NRW vom 21. März 2013.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen:...
-
Upload
rosalind-krause -
Category
Documents
-
view
112 -
download
3
Transcript of PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen:...
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
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.
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
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
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);
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;
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!
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!
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
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!
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)
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
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
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
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.
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
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
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
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.
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
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
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.