Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Physische Geographie Uni Augsburg Der Aufbau einer Quelltext-Datei - Header/Kopfzeile.....................program main - Anweisungen: Deklarationen....implicit.

Ähnliche Präsentationen


Präsentation zum Thema: "Physische Geographie Uni Augsburg Der Aufbau einer Quelltext-Datei - Header/Kopfzeile.....................program main - Anweisungen: Deklarationen....implicit."—  Präsentation transkript:

1 Physische Geographie Uni Augsburg Der Aufbau einer Quelltext-Datei - Header/Kopfzeile.....................program main - Anweisungen: Deklarationen....implicit none ausführbare A....write(*,*)“hallo“ - Ende...........................................end program main Anweisungen - nicht ausführbare Anweisungen / Deklarationen: es werden Vereinbarungen festgelegt (Bsp. implicit none) - ausführbare Anweisungen: es werden Aktionen ausgeführt (Bsp. write(*,*)“hallo“)

2 Physische Geographie Uni Augsburg Der Aufbau einer Quelltext-Datei Syntaxkonventionen: - in einer Zeile steht normalerweise nur eine Anweisung - Zeilenumbrüche werden mit & am Ende (und & am Anfang der Fortsetzungszeile) gekennzeichnet - nach einem ; kann in der selben Zeile eine 2. Anweisung stehen - Das ! leitet einen Kommentar für den Rest der Zeile ein: alles was in einer Zeile nach dem ! steht wird vom Compiler nicht beachtet (ist ein Kommentar)

3 Physische Geographie Uni Augsburg Variablen Eine Variable ist ein Platzhalter in dem ein bestimmter Wert steht! (tatsächlich steht jede Variable für einen Teil des Arbeitsspeichers) Der Wert einer Variable kann verändert werden Eine Variable hat einen Namen Eine Variable muss am Anfang des Programms deklariert werden Einen Variable hat einen bestimmten Variablentyp: character: Textzeichen integer:Ganzzahlen real:Fließkommazahlen logical:logische Zustände: falsch (.false.) oder wahr (.true.)

4 Physische Geographie Uni Augsburg Beispiel für Variablen program main implicit none character(len=10) :: textvar textvar=“hallo“ write(*,*)textvar end program main Heade r lasse nur vereinbarte Variablen zu deklariere eine Textvariable mit 10 Zeichen namens „textvar“ weise den Wert „hallo“ zu gebe den Wert der Variablen textvar aus End e

5 Physische Geographie Uni Augsburg Variablendeklaration implicit none bedeutet: falls im Programm ein Variablenname verwendet wird der nicht deklariert wurde (z.B. Tippfehler texvar), gib eine Fehlermelung aus! (ansonsten wird texvar als neue Variable angenommen) character(len=10) :: textvar ( ) :: Beispiele für Variablendeklarationen (eine oder mehrere pro Zeile): character(len=10) :: textvar,zweitetextvar integer :: ganzzahl real :: bruchzahl logical :: stimmt

6 Physische Geographie Uni Augsburg Variablendeklaration weitere Möglichkeiten bei der Deklaration: bei character: Anzahl der Zeichen (Länge des Wortes) character(len=5) :: name bei real: Genauigkeit, Bsp. doppelt genau (8 bytes), einfach (4 bytes) real(kind=8) :: doppelt bei integer, Bsp. kurze integer (1 byte), normal (4 bytes = 32bit) integer(kind=1) :: ishort Zahlenmodelle: bits können nur 1 (T, magnetisiert) oder 0 (F) sein! Jedes Muster aus 0 und 1 steht für eine Zahl: Bitmuster:00000000 = 0 (das erste bit: 0=pos, 1=neg) 00000001 = 1... 11111111 =-1 => 2 8 = 256 Zahlen (-128 bis 127)

7 Physische Geographie Uni Augsburg Exkurs: Zahlenmodelle im Dualsystem Bitmuster:00000000 = 0 (das erste bit: 0=pos, 1=neg) 10000000 = -128... 11111111 = -1 => 2 8 = 256 Zahlen (-128 bis 127) Dualsystem: = bit2·2 6 + bit3·2 5 + bit4·2 4 + bit5·2 3 + bit6·2 2 + bit7·2 1 + bit8·2 0 ; falls Vorzeichenbit=1: (Komplementzahl+1)·(-1) = Zweierkomplement Bsp: -127 = [10000001] 2 => Vorzeichenbit=1 => ([1111110] 2 + 1) · (-1) 1·2 6 = 64 1·2 5 = 32 1·2 4 = 16 1·2 3 = 8 1·2 2 = 4 1·2 1 = 2 0·2 0 = 0(Summe=126 + 1) · (-1) = 127 · (-1) = -127

8 Physische Geographie Uni Augsburg Kodierungskonventionen für character: American Standard Code for Information Interchange American National Standards Institute (nur Zeichen 32 bis 127 identisch) de Lange 2006 Exkurs: Zahlenmodelle im Dualsystem

9 Physische Geographie Uni Augsburg Kodierungskonvention für Integer: Dualsystem (statt Dezimalsystem) = Stellenwertsystem mit Basis 2 (statt 10): 123 10 = 3*1 0 + 2*10¹ + 1*10³ (dezimal) 123 10 = 1*2 0 + 1*2¹ + 0*2² + 1*2³ + 1*2 4 + 1*2 5 + 1*2 6 (binär/dual) 123 10 = 1111011 2 → Bitmuster ist kürzer als 3 * 8 bits für char → schneller, weniger Speicher Paketweise Verarbeitung: 8 Bits = 1 Byte (1024 Bytes = 1Kb,...): 00000000 2 = 0 10 00000001 2 = 1 10 00000011 2 = 3 10 01111111 2 = 127 10 → signed Integer: erstes Bit = Vorzeichenbit Exkurs: Zahlenmodelle im Dualsystem

10 Physische Geographie Uni Augsburg Kodierungskonvention für signed Integer: Dualsystem: = bit2·2 6 + bit3·2 5 + bit4·2 4 + bit5·2 3 + bit6·2 2 + bit7·2 1 + bit8·2 0 falls Vorzeichenbit (bit1) = 1 => (Komplement + 1) · (-1) “Zweierkomplement” Bsp.: -127 10 = [10000001] 2 => [1111110] 2 + 1 · (-1) 1·2 6 = 64 1·2 5 = 32 1·2 4 = 16 1·2 3 = 8 1·2 2 = 4 1·2 1 = 2 0·2 0 = 0= (126 + 1) · (-1) = -127 10 Exkurs: Zahlenmodelle im Dualsystem

11 Physische Geographie Uni Augsburg Zahlenmodelle für Integer Integerzahlenmodell Byte: 1-byte-Werte Wertebereich: -127 - 128 (signed) oder 0 - 255 (unsigned) Integerzahlenmodell Short: 2-byte-Werte Wertebereich: -32768 - 32768 (signed) oder 0 - 65535 Integerzahlenmodell: 4-byte-Werte (standard) Wertebereich: -2,147,483,648 – 2,147,483,647 Integerzahlenmodell: Long: 8-byte-Zahlen Wertebereich: -9,223,372,036,854,775,808 -... Exkurs: Zahlenmodelle im Dualsystem

12 Physische Geographie Uni Augsburg Kodierungskonvention für Gleitkommazahlen / float / real: Standardnorm: IEEE 754 (Institute for Electrical and Electronics Engineers) Darstellung durch: Vorzeichen · Mantisse · (Basis=2) Exponent Mantisse und Exponent als binäre Integer Exponent: legt Zahlenbereich fest 4-byte +- 3403·10 38 8-byte +- 1798·10 308 Mantisse: legt Genauigkeit fest 4-byte: ca. 7-8 Stellen 8-byte: ca. 15-16 Stellen Exkurs: Zahlenmodelle im Dualsystem

13 Physische Geographie Uni Augsburg Zahlenmodelle für Gleitkommazahlen: Realzahlenmodell: single precision (4byte) 1 bit für Vorzeichen, 8 bit für Exponenent (Bereich), 23 bit für Mantisse (Genauigkeit) => Bereich +- 3403·10 38 Genauigkeit: 7-8 Stellen Realzahlenmodell: double precision (8byte) 1 bit für Vorzeichen, 11 bit für Exponenent (Bereich), 52 bit für Mantisse (Genauigkeit) => Bereich: +- 1798·10 308 Genauigkeit: 15-16 Stellen Exkurs: Zahlenmodelle im Dualsystem

14 Physische Geographie Uni Augsburg Regeln für Variablennamen Zulässig: - Großbuchstaben: A-Z - Kleinbuchstaben: a-z (groß/klein wird i.A. nicht unterschieden) - Ziffern: 0-9 (nicht am Anfang des Namens!) - Underline: _ Unzulässig: - Leerzeichen (blank) - Zeichen mit besonderer Bedeutung: ! & ( ). ::, - Rechenoperatoren: = + - * / ** - logische Vergleichsoperatoren: == = ! Wertzuweisung = textvar = „hallo“ ganzzahl = 1 zahl = 0.5 stimmt =.true.

15 Physische Geographie Uni Augsburg Rechenanweisungen/Verknüpfung von Variablen: = kann direkt angegeben werden oder mittels einer Variablen. Beispiele: zahl = 0.5 + 0.5 ganzzahl = 1 zahl = ganzahl + 0.5 zahl = 0.5 zahl = zahl + 0.5 Es wird immer erst die Seite rechts des = ausgewertet und dieser Wert anschließend in die Variable links des = geschrieben

16 Physische Geographie Uni Augsburg Operatoren zur Verknüpfung zweier Werte: Verknüpfung von Zahlen: + := Addition - := Subtraktion * := Multiplikation / := Division ** := Potenzierung Verknüpfung von Textvariablen: // := Aneinanderketten von character-Variablen Verknüpfen von logischen Variablen:.and. := logisches „und“ (wahr falls beides wahr).or. := logisches „oder“ (wahr falls eines wahr).eqv. := wahr falls beide gleich.neqv.:= wahr falls unterschiedlich

17 Physische Geographie Uni Augsburg Operatoren zur Verknüpfung zweier Werte: Auswertungshierarchie: 1.) () 2.)** 3.) */ 4.)+- 5.)== /=>>=<<= 6.).not..and..or..eqv..neqv.

18 Physische Geographie Uni Augsburg Übung im Kurs: Eingabe von auf Meeresniveau reduzierten Luftdruckwerten und Umrechnung in ursprünglich gemessenen Luftdruck Eingabe von Werten mit: read(unit=*,fmt=*)variable Formel zur Umrechnung: p = pressure [hPa] SLP = sea level pressure [hPa] h = height = 523 [m]

19 Physische Geographie Uni Augsburg Umwandlung von Werten unterschiedlicher Variablentypen - bei Operationen mit gleichartigen Variablentypen, liegt das Ergebnis als Wert gleichen Typs vor! Bsp.: integer integer => integer - Verknüpfung zwischen real und integer: real integer => real - Funtionen zur Umwandlung zwischen Variablentypen: = FLOAT(integer) oder REAL(int) oder SNGL(int) = DBLE(integer|real) = AINT(real) „abgehackt“ [auch DINT] = ANINT(real) „gerundet“ [auch DNINT]

20 Physische Geographie Uni Augsburg Übungsaufgabe „ fortran2009I_u03_ “ : Schreiben Sie ein Programm für: 1.) die Eingabe dreier Werte über die Konsole (read(*,*)var) 2.) die Berechnung des Mittelwerts aus den 3 Variablen 3.) Ausgabe des Mittelwerts auf die Konsole Benennen Sie die Quellcode-Datei nach dem Schema: u03.f90 Schicken Sie den Quellcode als Anhang bis einschl. 10.11.08

21 Physische Geographie Uni Augsburg Funktionen zur Verarbeitung von Werten: Funktionen für numerische Variablen: sin(var) := Sinus, var muss in Rad vorliegen cos(var) := Cosinus, - „ - sqrt(var) := Wurzel abs(var):= Absolutwert (ohne Vorzeichen) log10(var):= Logarithmus zur Basis 10 log(var):= natürlicher Logarithmus exp(var):= Exponentialfunktion zu e (2.718281) max(var,var[,...]) := Maximum der Argumente... Funktionen für Textvariablen: trim(var) := schneidet bis zum ersten Zeichen ab len(var) := liefert Anzahl der Stellen...


Herunterladen ppt "Physische Geographie Uni Augsburg Der Aufbau einer Quelltext-Datei - Header/Kopfzeile.....................program main - Anweisungen: Deklarationen....implicit."

Ähnliche Präsentationen


Google-Anzeigen