Fortran: Fortran 95: Arithmetische Ausdrücke
<<< zur Fortran-Startseite | |
<< Fortran 95 | Fortran 2003 >> |
< Felder | Logische Ausdrücke > |
Arithmetische Operatoren
[Bearbeiten]Fortran 95 kennt wie FORTRAN 77 folgende arithmetische Operatoren
Operator | Kommentar |
---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
** | Exponentiation |
Operatorenpriorität
[Bearbeiten]Die Prioriät der arithmetischen Operatoren entspricht den mathematischen Konventionen.
- 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 95 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:
Fortran 90/95-Code (free source form) |
program bsp implicit none real :: a a = 3/2 ! 3 ist ein integer und 2 ist auch ein integer, ! daher muss das Ergebnis auch ein integer sein, also 1. ! Die Zuweisung an die real-Variable a stellt das ! Ergebnis nicht mehr richtig. write(*,*) a ! Ausgabe: 1.00000 end program bsp |
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 complex |
Beispiel:
Fortran 90/95-Code (free source form) |
program bsp implicit none real :: a a = 3/2. ! 2. ist ein real. Jetzt stimmt das Ergebnis. write (*,*) a ! Ausgabe: 1.500000 end program bsp |
Explizite Typumwandlung
[Bearbeiten]Fortran 95 besitzt auch Funktionen zur expliziten Umwandlung des Datentyps. Diese werden im Kapitel Standardfunktionen näher beschrieben.
Beispiel:
Fortran 90/95-Code (free source form) |
program bsp implicit none real :: r complex :: c r = 2. c = cmplx(r) write (*,*) c ! Ausgabe: ( 2.000000 , 0.000000 ) end program bsp |
<<< zur Fortran-Startseite | |
<< Fortran 95 | Fortran 2003 >> |
< Felder | Logische Ausdrücke > |