Skip to content
Snippets Groups Projects
Commit 8ef2e273 authored by Felix Hilsky's avatar Felix Hilsky
Browse files

Beginn einführung zu interfaces und typen

parent 385f8a70
Branches
No related tags found
No related merge requests found
„in Blatt 5 werden Module um weitere Features ergänzt
Typen: wir wissen: Variablen haben Typen, z.B. INTEGER, REAL, CHARACTER, LOGICAL
neu: wir können eigene Typen deklarieren. Variablen von selbstdefinierten Typen
bestehen aus mehreren Werten, z.B.“
MODULE quaternionen
IMPLICIT NONE
TYPE quat ! Quaternionen, sowas aehnliches wie komplexe Zahlen mit 4 Dimensionen
REAL :: reell, imag, jmag, kmag
END TYPE
CONTAINS
END MODULE
„um eine Variable von diesem Typ zu deklarieren, nutze TYPE(quaternionen),
z.B. für Modulvariablen
Um ein Objekt von diesem Typ zu erstellen, nutze den Konstruktor mit dem Namen
des Typs und als Argumente die Werte der Bestandteile“
MODULE quaternionen
...
TYPE (quat), PARAMETER :: eins = quat(1, 0, 0, 0)
TYPE (quat), PARAMETER :: i = quat(0, 1, 0, 0)
TYPE (quat), PARAMETER :: j = quat(0, 0, 1, 0)
TYPE (quat), PARAMETER :: k = quat(0, 0, 0, 1)
CONTAINS
END MODULE
„Quaternionen sind ein Körper, die man addieren und multiplizieren können möchte
Um auf Bestandteile von selbstdefinierten Typen zurückzugreifen, nutze %“
MODULE
...
CONTAINS
FUNCTION add(a, b)
TYPE(quaternionen), INTENT(IN) :: a, b
TYPE(quaternionen) :: add
add%reell = a%reell + b%reell
add%imag = a%imag + b%imag
add%jmag = a%jmag + b%jmag
add%kmag = a%kmag + b%kmag
END FUNCTION
Interfaces
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment