Fortran: Fortran 95: Arithmetische Ausdrücke

Aus Wikibooks
<<< 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 >