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 >