Die Multiplikation »…*…« in Java
Einführendes Beispiel
Der Stern »*« ist uns schon von den Kommentaren »/* ... */« her bekannt.
In Java wird der Stern als Multiplikationsoperator verwendet.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 2 * 6 ); }}java.lang.System.out
12
- Java
2 * 6
- auf deutsch
- ● „Zwei mal Sechs“
- ● „Das Produkt von Zwei und Sechs“
- in der Mathematik
- 2 · 6
- 2 × 6
Syntax
Ist m ein Multiplikativausdruck und v ein Vorzeichenausdruck, so ist »m *v « wieder ein Multiplikativausdruck (und damit eine Ausdruck), das Produkt von m und v. Dabei wird m auch Multiplikand und v Multiplikator genannt. (Merkhilfe: „-nd“ und „-or“ haben dieselbe Reihenfolge wie bei der Division [„Dividend“ und „Divisor“], und diese ist alphabetisch [„n“ kommt vor „o“].)
Die Multiplikation »*« ist linksassoziativ. Ihre Priorität ist wie die der Division.
Wir erweitern das Syntaxdiagramm für Ausdrücke um den Multiplikationsoperator »*« (Multiplikativausdruck).
- Neue, erweiterte Syntax (Syntaxdiagramm)
Primaerausdruck
.-. .----------. .-.
--->.--->( ( )--->| Ausdruck |--->( ) )--->.--->
| '-' '----------' '-' ^
| .----------. |
'------------>| Literal |-------------'
'----------'Vorzeichenausdruck
.--------------------.
---.------------>| Primaerausdruck |----.---->
| '--------------------' ^
| .-. .--------------------. |
'--->( - )--->| Vorzeichenausdruck |----'
| '-' '--------------------' |
| .-. .--------------------. |
'--->( + )--->| Vorzeichenausdruck |----'
'-' '--------------------'Multiplikativausdruck
.-----------------------.
---.--->| Vorzeichenausdruck |--------------------------------------.--->
| '-----------------------' ^
| .-----------------------. .-. .--------------------. |
'--->| Multiplikativausdruck |--->( * )--->| Vorzeichenausdruck |---'
| '-----------------------' '-' '--------------------' |
| .-----------------------. .-. .--------------------. |
'--->| Multiplikativausdruck |--->( / )--->| Vorzeichenausdruck |---'
'-----------------------' '-' '--------------------'Ausdruck
.------------------------.
--->| Multiplikativausdruck |--->
'------------------------'
Da man mit den beiden Operatoren »*« und »/« einen Multiplikativausdruck schreiben kann, werden diese beiden Operatoren auch multiplikative Operatoren genannt.
Typanforderung
Die Typanforderungen der Multiplikation sind wie die der Division.
Typregeln
Die Typregeln der Multiplikation sind wie die der Division.
Semantik
Bei der Auswertung einer Multiplikation werden zunächst beide Operanden ausgewertet. Der Wert das Multiplikativausdrucks ist dann das Produkt der erhaltenen Werte der Operanden.
Hat mindestens ein Operand den Typ »double«, so erfolgt die Multiplikation mit Nachkommastellen.
(Falls das mathematisch korrekte Ergebnis im Wertebereich des Datentyps des Ergebnisses nicht darstellbar ist, wird an Stelle des mathematisch korrekten Ergebnisses ein Wert aus dem Wertebereich des Datentyps des Ergebnisses verwendet. Das Ergebnis ist dann nicht mathematisch korrekt. Die Details dieses Verfahrens sollen an dieser Stelle des Kurses noch nicht vertieft werden.)
Beispiel Prozentrechnung
Es gibt keinen speziellen Operator für Prozentrechnung, aber diese kann mit Hilfe der Grundrechenarten ausgedrückt werden. Das folgende Programm berechnet 11 Prozent von 70.
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 0.11 * 70 ); }}- Protokoll
7.7
Übungsfragen
? Lexikalische Einheiten _
Eine lexikalische Einheit ist eine Literal oder Operator, der Klammeroperator besteht jedoch aus zwei lexikalischen Einheiten.
Aus wie vielen lexikalischen Einheiten besteht der folgende Ausdruck?
- Ausdruck
2*(3+14)
? Übungsfrage
Welche Typen und Werte haben die folgenden Ausdrücke jeweils?
- A »19 / 2*3«
- B »9 * 2/3«
Übungsaufgaben
/ Produkt
Geben Sie eine Textdarstellung des Produktes von Drei und Vier mit Hilfe eines Java -Programms aus. (Es sollte »12« ausgegeben werden.)
/ Terme
Berechnen Sie den Wert des folgenden Terms mit Hilfe von Java. (Obwohl kein Teil des Terms im Kopf ausgerechnet werden soll, soll der Term so umgeformt werden, daß das Potenzieren durch die bisher vorgestellten Operatoren ausgedrückt wird.)
- Term (Drei Quadrat durch Vier hoch Drei, mathematisches Ergebnis: ‹ 0,140625 ›)
3²
------
4³
/ KMI
Berechnen Sie den Körpermasseindex einer Person, die 1,72 Meter groß und 75,2 Kilogramm schwer ist.
/ Rechnungen ⃗
Berechnen Sie mit Java, wieviel Millimeter 20 Zentimeter sind (mathematisches Ergebnis: ‹ 200 ›).
Berechnen Sie mit Java, wieviel Euro 25 Cent sind (mathematisches Ergebnis: ‹ 0,25 ›).
Berechnen Sie mit Java, den Rechnungsbetrag mit Mehrwertsteuer bei einem Warenwert von 20 Euro.
/ Rechnungen (1) ⃗ ⃗
Ein Läufer benötigt 50 Minuten und 20 Sekunden für eine Strecke von 12 Kilometern. Berechnen Sie seine durchschnittliche Geschwindigkeit in km/h und m/s.
/ Rechnungen (2) ⃗
Schreiben Sie Ausdrücke, die den folgenden sprachlichen Bezeichnungen entsprechen!
- Zwei mal Sieben
- Das Doppelte von 18
- Sieben Prozent von 180
- Der Preis von 2 kg, wenn 3 kg 6,50 Euro kosten
- 140 Kelvin in Grad Celsius
- Der Rechnungsbetrag mit Mehrwertsteuer (aktueller voller Satz) bei einem Warenwert von 49,24 Euro
/ Übungsaufgabe *
Schreiben Sie ein Beispiel für ein Alpha auf, das nach dem folgenden Syntaxdiagramm gebildet ist.
- Syntaxdiagramm
Alpha
.----------. .-. .----------. .-. .----------.
--->| Ausdruck |--->( ? )--->| Ausdruck |--->( : )--->| Ausdruck |--->
'----------' '-' '----------' '-' '----------'
Dabei kann für einen Ausdruck das folgende Syntaxdiagramm herangezogen werden (Die Bedeutung von »Literal« ist wie in einer früheren Lektion behandelt).
- Syntaxdiagramm
Ausdruck
.----------.
---.------------>| Literal |----.---->
| '----------' |
| .-. .----------. |
'--->( - )--->| Literal |----'
| '-' '----------' |
| .-. .----------. |
'--->( + )--->| Literal |----'
'-' '----------'