Computerorientierte Mathematik - TU Berlin

Werbung
Ausdruecke
"Alles, was einen Wert zurueckliefert, ist ein Ausdruck."
Konstanten, Variablen, "Formeln" oder auch Methoden koennen Werte
zurueckgeben.
Im Gegensatz zu Anweisungen; die geben keinen Wert zurueck.
(Durch Anhaengen eines Semikolons wird ein Ausdruck zu einer (einfachen)
Anweisung.)
Beispiele fuer Ausdruecke:
logischer Ausdruck
a > b
liefert boolean
a * b / c
logischer Ausdruck
liefert boolean
(a + b) * 3/2
artihmetischer Ausdruck
liefert int oder double
4
konstanter Ausdruck
Verknuepfungen von Operanden mit Operatoren
+,
-,
= , && , ...
- Auswertungsreihenfolge des Ausdrucks (z.B. "Punkt vor Strich") genau
festgelegt. (siehe Uebung)
- evtl. mit Klammerung vorgeben
(3+2)*5
(=25)
3+2*5
(=13)
Java / C / C++ unterscheiden lvalue, rvalue
steht links von einem
Gleichheitszeichen
(= kann Wert zugewiesen
bekommen)
alles, was nicht
links stehen darf,
z.B. eine Konstante
Ein Ausdruck hat einen
- Wert / "Rueckgabewert"
- Typ (wird eindeutig aus den beteiligten Operanden ermittelt)
- Effekt = Wirkung auf Speicherinhalte
Ist dieser Effekt etwas anderes als eine Zuweisung an
einen lvalue, spricht man von einem Nebeneffekt.
Beispiele
1.
a = b ;
lvalue
Zuweisungsausdruck; weist lvalue den Wert des rvalue zu.
rvalue
Wert: Wert der rechten Seite
Typ: Typ der linken Seite
Effekt: Veraenderung des Speichers, der durch a bezeichnet
wird
deswegen ok:
a = b = c ;
Mehrfachzuweisung
Wert dieses Ausdrucks
ist der Wert von c.
2.
c += 2 ;
dasselbe wie c = c + 2;
3.
if ( (a=b) > c)
c = a ;
falls b > c wird c=a ausgefuehrt
Zuweisung:
hat den Wert von b
SPARSAM MIT SEITENEFFEKTEN UMGEHEN.
4. Inkrementoperator:
a++ ;
erst auswerten, dann erhoehen
++a ;
erst erhoehen, dann auswerten
Mit a=2, b=4:
a = b++ ;
vorher:
nachher:
entsprechend: Dekrementoperator:
a
2
b
4
a
4
b
5
Seiteneffekt!
a-- ;
--a ;
Strukturierte Anweisungen
- zusammengesetzte Anweisung
- bedingte Anweisung
- bedingete
- wiederholende Anweisung
Mit Hilfe dieser Anweisungen lassen sich Kontrollstrukturen
erzeugen. Eine Kontrollstruktur ist eine Schema, das die Abarbeitungsreihenfolge
von Anweisungen innerhalb eines Programms vorgibt.
Mit ihnen wird "kontrolliert", wie ein Programm in Abhaengigkeit
von Bedingungen gesteuert wird; sie legen den "Programmfluss" fest.
programmiersprachenunabhaengige Darstellungen von Kontrollstrukturen:
- Pseudocode
- Struktogramm
graphische Beschreibungen
- Flussdiagramm
Zusammengesetzte Anweisungen, Verkettung
besteht in der Hintereinanderschaltung von Anweisungen M 1, M 2, ..., M t.
Diese werden sequentiell abgearbeitet.
Pseudocode der Verkettung:
Java-Code der Verkettung:
M1
M1 ;
1
M
M2 ;
M
t
Mt ;
}
Struktogramm der Verkettung
Flussdiagramm der Verkettung
Beispiel: Hypothekberechnung
Abloesung einer Annuitaetshypothek:
Hypothek:
Laufzeit:
Zinssatz:
b Euro
n Jahre
z %
Berechne die monatliche Ratenzahlung a zur Abloesung der Hypothek.
Falls keine Rueckzahlung erfolgen wuerde, wuechse der Betrag von b in
n Jahren auf b(1+z) n . Die Summe der monatlichen Raten plus deren Verzinsung
muss auf den gelichen Betrag fuehren, d.h.
b(1+z)n = "Summe der monatl. Raten + Verzinsung".
b(1+z)
= 12a(1+z)n-1+ 12a(1+z)n-2+ ... + 12a(1+z)0
= 12a[ (1+z)n-1 + (1+z)n-2 + ... + (1+z)0
]
n
= 12a (1+z) - 1
z
geom. Summenformel
Satz (geometrische Summenformel)
Fuer alle reellen Zahlen q ungleich 1 und alle natuerlichen n
gilt die Gleichung:
1 + q + q2 + ... + qn-1 =
q n -1
q - 1
Bemerkung: Um die Berechnung in jedem Eingabefeld ausloesen zu koennen,
ermoegli
wird an jedes Eingabefeld ein ActionListener angehaengt.
Trennung der
Trennung der
Funktionalitaeten
b
z
Beispiel:
interestRate = 3.8 %
interestFactor = 1.038
n
a
power =
n
power = 1.038
Pixel-Angaben
Selektion, Bedingte Anweisung
Prototyp: if - Anweisung
Pseudocode der if - Anweisung
if B then
S1
Java-Code fuer if - Anweisung
if (B) {
S1 ;
else
S2
S
endif
1
;
}
Struktogramm der if - Anweisung
Flussdiagramm der if -Anweisung
Der else - Teil ist OPTIONAL!
Die selektive Anweisung
"Geschachtelte" Version der if - Anweisung, die benutzt werden kann, um mehr als
zwei Faelle zu unterscheiden.
Pseudocode:
if B=c
1
Kurzform:
then
case B of
c
S1
: S
cc : S
2
2
else if B=c 2 then
S
2
In Java existiert
dafuer auch die
switch - Anweisung.
(siehe Uebung)
cn : Sn
nn
end
Sn
endif
Struktogramm der Selektion
Flussdiagramm der Selektion
Aufgrund fehlender else - Teile in geschachtelten if - Anweisungen
kann es zu Unklarheiten kommen.
Regel: Falls nicht durch Klammerung mit { ... } anders geregelt,
bezieht sich ein "haengendes" else immer uaf das letzte if,
auf das eine Zuordnung moeglich ist.
Beispiel:
if (B1)
S1 ;
if (B2)
S2 ;
else
S3 ;
else bezieht sich auf das zweite if
Zugehörige Unterlagen
Herunterladen