Fortran: Fortran 95: Datentypen

Aus Wikibooks
Zur Navigation springen Zur Suche springen
<<< zur Fortran-Startseite
<< Fortran 95 Fortran 2003 >>
< Programmaufbau Felder >


Dieses Kapitel handelt von Datentypen, Variablen, Konstanten und der Wertzuweisung.

Datentypen[Bearbeiten]

Arithmetische Datentypen[Bearbeiten]

Datentyp Kommentar Beispiele (Konstanten)
integer Ganzzahlen 15, -6500, 200000000
real Gleitkommazahlen einfacher Genauigkeit 3.1415, -5.5, .7e3, 12.5E-5
(double precision) Gleitkommazahlen doppelter Genauigkeit (aus FORTRAN 77) 3.1415D0, -5.5D0, .7d3, 12.5D-5
complex Komplexe Zahlen (zwei real-Zahlen) (3.1415, -5.5), (1.4, 7.1E4)

double precision ist in Fortran 95 nur noch aus historischen Gründen (FORTRAN 77) vorhanden. Fortran 95 bietet für Datentypen höherer Genauigkeit bzw. mit größerem Zahlenbereich andere Sprachmittel. Diese Thematik wird später erläutert (Datentypen höherer Genauigkeit).

Binär-, Oktal- oder Hexadezimalzahlen können als "boz literal constants" angegeben werden:

Schreibweise 1 Schreibweise 2 Kommentar
B"zahl" B'zahl' Binäre Zahl
O"zahl" O'zahl' Oktalzahl
Z"zahl" Z'zahl' Hexadezimalzahl

Beispiel:

Fortran 90/95-Code (free source form)
program bsp
  implicit none
 
  integer :: a 
  
  a = Z"AB1C"
  write(*,*) a
  ! Ausgabe: 43804
 
  a = O"7134"
  write(*,*) a
  ! Ausgabe: 3676
 
  a = B'101110110001'
  write(*,*) a
  ! Ausgabe: 2993
end program bsp

Logischer Datentyp[Bearbeiten]

Datentyp Kommentar Mögliche Werte
logical Logischer Datentyp (wahr oder falsch) .TRUE., .FALSE.

Zeichenketten[Bearbeiten]

Datentyp Kommentar Beispiel (Konstante)
character(n) Zeichenkette (String) mit einer Länge von n Zeichen 'Hallo, Welt!', "Hallo, Welt!"
character(len=n) -"-
character*n -"- (FORTRAN 77-Stil, sollte nicht mehr verwendet werden)
character Zeichenkette (String) mit einer Länge von einem Zeichen 'H', "h"


Beachte: Zeichenketten können in Fortran 95 in Apostrophe oder Anführungszeichen eingeschlossen werden.

Beispiel:

"Wie geht's?"
'Er sagte: "Hallo"'

Variablen[Bearbeiten]

Eine Variable ist charakterisiert durch einen

  • symbolischen Namen
  • Datentyp
  • Wert
  • Speicherplatz

Beim Programmstart hat eine Variable keinen definierten Wert. Eine Variable kann ihren Datentyp auf zwei Arten erhalten, durch implizite oder explizite Typanweisung.

Implizite Typanweisung[Bearbeiten]

Bei der impliziten Typanweisung bestimmt der Anfangsbuchstabe des Variablenbezeichners den Datentyp.

Datentyp Anfangsbuchstabe der Variablen
integer Buchstaben I bis N (oder i bis n)
real restliche Buchstaben

Beispiel:

Fortran 90/95-Code (free source form)
program bsp      
  b1 = 8.9
  c1 = 3.
  i1 = B1/C1  
      
  write (*,*) i1
  ! Das Ergebnis ist 2, da i1 implizit als integer definiert ist  
end program bsp


Die Standardzuordnung der Anfangsbuchstaben kann durch das Schlüsselwort implicit auch geändert werden. Infolge der durch implizite Typanweisung entstehenden Fehlermöglichkeiten ist es sinnvoll, die implizite Typanweisung komplett auszuschalten. Dies wird durch die Anweisung

implicit none

gleich nach der program-Anweisung erreicht. Dann muss der Datentyp jeder Variablen explizit festgelegt werden.

Explizite Typanweisung[Bearbeiten]

Beispiel:

Fortran 90/95-Code (free source form)
program bsp
  implicit none
 
  real :: b
  real :: c
  real :: i
  ! alternativ auch als real :: b, c, i 
 
  b = 8.9
  c = 3.
  i = b/c  
      
  write (*,*) i
  ! Das Ergebnis ist 2.966666
end program bsp

Benannte Konstanten[Bearbeiten]

Benannte Konstanten werden in Fortran 95 folgendermaßen festgelegt:

datentyp, parameter :: symname = wert


Beispiele:

real, parameter:: PI = 3.1415, PIFAC = PI/2.0
character(5), parameter :: str = 'Hallo'

Der zugewiesene Wert kann eine Konstante (Literal) oder eine schon definierte benannte Konstante sein.

Für die Zeichenkettenlänge ist bei benannten Konstanten auch eine *-Schreibweise möglich. Dies erspart die explizite Angabe der Stringlänge.

Beispiel:

Fortran 90/95-Code (free source form)
program bsp
  implicit none
     
  character(*), parameter :: a = 'Jetzt wird auch die Stringlaenge festgelegt'
      
  write(*,*) a
  ! Ausgabe: Jetzt wird auch die Stringlaenge festgelegt
end program bsp

Wertzuweisung[Bearbeiten]

Wertzuweisungen haben wir schon kennengelernt:

variable = ausdruck


Beispiel:

k = 1
k = k + 2

Die Wertzuweisung an eine Variable ist, wie am vorigen und auch am nächsten Beispiel zu ersehen, nicht zu verwechseln mit einer mathematischen Gleichung. Der Ausdruck

k + 2 = 5 

wäre zwar mathematisch korrekt. Als Wertzuweisung in einem Fortran-Programm ist dies aber keine mögliche Formulierung. k+2 ist kein zulässiger Ausdruck auf der linken Seite des Zuweisungsoperators (L-Wert).

In Fortran ist auch keine Kette von Wertzuweisungen möglich. Der folgende Ausdruck ist nicht erlaubt und liefert eine Fehlermeldung.

i = j = k = 1.5
! Fehler

<<< zur Fortran-Startseite
<< Fortran 95 Fortran 2003 >>
< Programmaufbau Felder >