Eigenschaften des Additionsoperators in Java (Eigenschaften des Additionsoperators in Java), Lektion, Seite 723713
https://www.purl.org/stefan_ram/pub/komplexe_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Eigenschaften des Additionsoperators in Java 

Die Addition »+« ist linksassoziativ. »2+4+2« dasselbe wie »(2+4)+2«.

Die Priorität  der Addition ist niedriger  als die der anderen bisher vorgestellten Operatoren. Daher bedeutet »2+4/2« dasselbe wie »2+(4/2)«.

Formatierung

Formatierung  ist die Gestaltung von Quelltext durch Einfügen, Entfernen oder Gestalten von Leerraum.

Leerraum kann frei verwendet werden, um Ausdrücke übersichtlich  zu schreiben.

In »2 + 4/2« wird die höhere Priorität  der Division durch die Zusammenschreibung  ausgedrückt.

Beispiele

2+4/2

2 + 4/2

2 + 4 / 2

Beispiele

(2+4)/2

( 2 + 4 )/ 2

( 2 + 4 ) / 2

Beispiel eines Ausdrucks, der über 3 Zeilen geht
( 2 + 4 ) 
/
2

Häufig wird Leerraum um binäre  Operatoren herum eingesetzt, aber nicht zwischen unären  Operatoren und ihren Operanden.

Literale, die Operatorzeichen enthalten ⃗

Wenn ein double-Numerale mit der E-Schreibweise geschrieben wird, so darf hinter dem »E« auch ein Vorzeichen für den Exponenten stehen, wie beispielsweise in »2E+3« für ‹ 2 × 10⁺³ › (mit demselben Wert wie »2E3«, nämlich ‹ 2 × 10³ ›)

Das Literal »2E+3« ist also keine  Summe, sondern eher ein Produkt, denn es bedeutet ‹ 2 × 10⁺³ ›. Um Summen deutlich von dieser Art von Literalen mit einem inneren Pluszeichen oder einem inneren Minuszeichen zu unterscheiden, bietet es sich an, die binären Operatoren »+« und »-« mit einem umgebenden Leerzeichen zu verwenden.

Beispiele

2+2E+3+3

2 + 2E+3 + 3

Hier hilft die Formatierung (also die Gestaltung des Quelltextes mit Hilfe von Leerraum) wirklich beim Lesen!

Unäre und binäre Operatoren ⃗

In einem Ausdruck kann man immer erkennen, wann eine lexikalische Einheit für einen unären  und wann sie für einen binären  Operator steht, so daß Ausdrücke in dieser Hinsicht immer eindeutig interpretierbar sind.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 1 + + 2 ); }}
Protokoll
3

Im obigen Ausdruck muß das erste Plus »+« binär sein, da nur ein binäres Plus einem Ausdruck (hier: dem Ausdruck »1«) direkt folgen darf. Würde man das zweite Plus »+« als binär ansehen, so müßte »1 +« sein erster Operand sein, was aber nicht geht, da dies ja gar kein Ausdruck ist, und ein Operand immer ein Ausdruck sein muß.

Gemischte Zahlen ⃗

Eine Schreibweise wie ‹  1½ › nennt man eine gemischte Zahl. ‹  › bedeutet ‹ 1 + ½ › und nicht : ‹  1 × ½ ›. Das folgende Programm gibt den Wert jener gemischten Zahl aus.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 1. + 1./2 ); }}
Protokoll
1.5

Übungsfragen _

?   Ausdrücke _

Welcher der folgenden Ausdrücke hat denselben Wert wie »1 / 2+3«?

»1/( 2+3 )«   Anton
»( 1/2 )+ 3«  Berta

?   Ausdrücke _

Welche Werte haben die folgenden Ausdrücke jeweils?

A »1/2. + 1/2«
B »1/( 1. + 1 )«

?   Ausdrücke _

Was ist der Wert  des ersten Operanden des Additionsoperators »+« in »1/2 + 3«?

Was ist der erste Operand  des Additionsoperators »+« in »1/2 + 3«? (Hier wird nach einem Ausdruck  gefragt! Die Antwort sollte also ein Teil des Textes »1/2 + 3« sein.)

?   Verständnis von Fachbegriffen ⃗

Welchen Wert hat der Ausdruck »12/4+2«?

Angenommen die Addition hätte keine niedrigere  Priorität als die Division, sondern eine höhere. Welchen Wert hätte dann der Ausdruck »12/4+2«?

?   Verständnis von Fachbegriffen ⃗

Welchen Wert hat der Ausdruck »12 / 4 / 2«?

Angenommen die Division »/« wäre nicht  linksassoziativ, sondern rechtsassoziativ. Welchen Wert hätte dann der Ausdruck »12 / 4 / 2«?

?   Ausgabe von Programmen *

Können Sie die Ausgabe der folgenden beiden Programme vorhersagen?

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 4 / //
+2 ); }}
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println
( 4 ///
+2 ); }}

Übungsaufgaben

/   Übungsaufgabe

Schreiben Sie einen Ausdruck für die Summe von 2 und 7.

Die Lösung soll auf einer von Leerzeilen umgebenden Zeile für sich stehen.

/   Übungsaufgabe _

Schreiben Sie eine Inkarnation der Kategorie »Additivausdruck« des folgenden Syntaxdiagramms mit dem Additivausdruck »2/3« und dem Multiplikativausdruck »4« (in dieser Reihenfolge).

Die Lösung soll auf einer von Leerzeilen umgebenden Zeile für sich stehen.

Syntax (Syntaxdiagramm)

Primaerausdruck
.-. .----------. .-.
--->.--->( ( )--->| Ausdruck |--->( ) )--->.--->
| '-' '----------' '-' ^
| .----------. |
'------------>| Literal |-------------'
'----------'

Vorzeichenausdruck
.--------------------.
---.------------>| Primaerausdruck |----.---->
| '--------------------' ^
| .-. .--------------------. |
'--->( - )--->| Vorzeichenausdruck |----'
| '-' '--------------------' |
| .-. .--------------------. |
'--->( + )--->| Vorzeichenausdruck |----'
'-' '--------------------'

Multiplikativausdruck
.-----------------------.
---.--->| Vorzeichenausdruck |--------------------------------------.--->
| '-----------------------' ^
| .-----------------------. .-. .--------------------. |
'--->| Multiplikativausdruck |--->( * )--->| Vorzeichenausdruck |---'
| '-----------------------' '-' '--------------------' |
| .-----------------------. .-. .--------------------. |
'--->| Multiplikativausdruck |--->( / )--->| Vorzeichenausdruck |---'
'-----------------------' '-' '--------------------'

Additivausdruck
.-----------------------.
---.--->| Multiplikativausdruck |-----------------------------------------.--->
| '-----------------------' ^
| .-----------------------. .-. .-----------------------. |
'--->| Additivausdruck |--->( + )--->| Multiplikativausdruck |---'
'-----------------------' '-' '-----------------------'

/   Terme _

Die in der Mathematik vorkommenden Schreibweisen für Werte werden Terme  genannt. In Java  verwendet man keine Terme. Die Ausdrücke  von Java  haben aber Ähnlichkeit mit Termen. Viele Terme lassen sich auch als Ausdruck schreiben und umgekehrt.

Schreiben Sie möglichst kurze Ausdrücke für die folgenden Terme, ohne vorher irgendwelche Teile der Terme im Kopf auszurechnen. Die Werte der Ausdrücke sollten den mathematischen Werten der vorgegebenen Terme möglichst nahe kommen, also den Werten, die man in der Grundschule als Werte der Terme ansehen würde.

Term (Ein Halb plus drei Viertel, als richtig gilt ein Ergebnis von zirka »1.25«)
 1       3
--- + ---
2 4
Term (Drei plus Vier im Zähler und Fünf plus Sechs im Nenner, als richtig gilt ein Ergebnis von zirka »0.6363636363636364«)
  3 + 4
---------
5 + 6

(Falls beim Lösen der zweiten Übungsaufgabe die Lösung der ersten Übungsaufgabe noch aufbewahrt werden soll, so ist es am besten, die Lösung der ersten Übungsaufgabe in eine extra Textdatei zu kopieren, damit die Lösung der zweiten Übungsaufgabe übersichtlich bleibt. Es spricht aber auch nichts dagegen, wenn beim Lösen der zweiten Übungsaufgabe die Lösung der ersten Übungsaufgabe wieder verloren geht.)

Zusatzaufgaben *

/   Zusatzaufgabe *

Die Kreiszahl ‹ π › ist gleich ‹ 4·( 1 − 1/3 + 1/5 − 1/7 + 1/9 − 1/11 + 1/13 − 1/15 + … ) ›.

Schreiben Sie ein Programm, welches unter Verwendung dieser Gleichheit eine möglichst gute Näherung für ‹ π › ausgibt. Dabei dürfen nur die bisher im Kurs vorgestellten Sprachmittel verwendet werden.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723713 stefan_ram:723713 Eigenschaften des Additionsoperators in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723713, slrprddef723713, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/komplexe_java