Fortran: FORTRAN 77: Arithmetische Ausdrücke

Aus testwiki
Zur Navigation springen Zur Suche springen

Fortran:Vorlage: NavigationUS


Arithmetische Operatoren

FORTRAN 77 kennt folgende arithmetische Operatoren

Operator Kommentar Mathematische Entsprechung
A + B Addition A+B
A - B Subtraktion AB
A * B Multiplikation AB
A / B Division AB
A ** B Exponentiation AB

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

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

  • 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

Operanden gleichen Datentyps

Bei Operanden gleichen Datentyps erhält das Ergebnis den Datentyp der Operanden.

Beispiel: Fortran:Vorlage: Pre1

Implizite Typumwandlung bei Operanden gemischten Datentyps

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: Fortran:Vorlage: Pre1

Explizite Typumwandlung

FORTRAN 77 besitzt auch Funktionen zur expliziten Umwandlung des Datentyps. Diese werden im Kapitel Standardfunktionen näher beschrieben.

Beispiel: Fortran:Vorlage: Pre1


Fortran:Vorlage: NavigationUS