Fortran: FORTRAN 77: Arithmetische Ausdrücke
<<< zur Fortran-Startseite | |
<< FORTRAN 77 | Fortran 90/95 >> |
< Felder | Logische Ausdrücke > |
Arithmetische Operatoren Bearbeiten
FORTRAN 77 kennt folgende arithmetische Operatoren
Operator | Kommentar | Mathematische Entsprechung |
---|---|---|
A + B |
Addition | |
A - B |
Subtraktion | |
A * B |
Multiplikation | |
A / B |
Division | |
A ** B |
Exponentiation |
Mit dem Exponentiationsoperator (Potenzierung) war und ist FORTRAN 77 anderen Programmiersprachen einen Schritt voraus. Andererseits kennt FORTRAN 77 den aus vielen anderen Programmiersprachen bekannten Modulo-Operator nicht. Als Überkompensation gibt es für diesen Zweck die MOD()
-Funktion sowohl für Ganzzahlen, wie auch für Fließkommazahlen.
Operatorenpriorität Bearbeiten
Die Prioriät der arithmetischen Operatoren entspricht den mathematischen Gesetzmäßigkeiten.
- Klammerung vor allem anderen, z. B.
(A+B)*C
A*C+B*C
- Exponentiation vor Punktrechnung, z. B.
A*B**C
A*(B**C)
- Punktrechnung vor Strichrechnung, z. B.
A+B*C
A+(B*C)
Berechnungsfolge bei gleicher Priorität Bearbeiten
- Klammerung, Punktrechnung und Strichrechnung:
Beispiel:A*B/C*D
((A*B)/C)*D
- Exponentiation:
Beispiel:A**B**C
A**(B**C)
Außerdem ist zu beachten, dass niemals zwei Operatoren direkt aufeinander folgen dürfen.
Beispiel: Der Ausdruck 1.5**-1
ist in FORTRAN 77 falsch und führt zu einer Fehlermeldung. Richtig ist 1.5**(-1)
Ergebnisdatentyp Bearbeiten
Operanden gleichen Datentyps Bearbeiten
Bei Operanden gleichen Datentyps erhält das Ergebnis den Datentyp der Operanden.
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP REAL A A = 3/2 C 3 ist ein INTEGER und 2 ist auch ein INTEGER, C daher muss das Ergebnis auch ein INTEGER sein, also 1. C Die Zuweisung an die REAL-Variable A stellt das C Ergebnis nicht mehr richtig. WRITE (*,*) A C Ausgabe: 1.00000 END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Implizite Typumwandlung bei Operanden gemischten Datentyps Bearbeiten
Weisen die Operanden unterschiedliche Datentypen auf, so wird bei jeder Operation, falls nötig, das Ergebnis dem höherwertigen Datentyp angepasst.
INTEGER REAL DOUBLE PRECISION COMPLEX |
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP REAL A A = 3/2. C 2. ist ein REAL. Jetzt stimmt das Ergebnis. WRITE (*,*) A C Ausgabe: 1.500000 END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Explizite Typumwandlung Bearbeiten
FORTRAN 77 besitzt auch Funktionen zur expliziten Umwandlung des Datentyps. Diese werden im Kapitel Standardfunktionen näher beschrieben.
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP REAL R COMPLEX C R = 2 C = CMPLX(R) WRITE (*,*) C C Ausgabe: ( 2.000000 , 0.000000 ) END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
<<< zur Fortran-Startseite | |
<< FORTRAN 77 | Fortran 90/95 >> |
< Felder | Logische Ausdrücke > |