Wie man in Fortran programmiert (mit Bildern)

Inhaltsverzeichnis:

Wie man in Fortran programmiert (mit Bildern)
Wie man in Fortran programmiert (mit Bildern)

Video: Wie man in Fortran programmiert (mit Bildern)

Video: Wie man in Fortran programmiert (mit Bildern)
Video: Versicherungsordner mit Evernote digitalisieren 2024, April
Anonim

Viele Leute nehmen Fortran als eine archaische und "tote" Programmiersprache wahr. Die meisten wissenschaftlichen und technischen Codes sind jedoch in Fortran geschrieben. Daher bleibt die Programmierung in F77 und F90 für die meisten technischen Programmierer eine notwendige Fähigkeit. Darüber hinaus ermöglichen die neuesten Fortran-Standards (2003, 2008, 2015) dem Programmierer, mit minimalem Aufwand hocheffizienten Code zu schreiben und dabei alle modernen Sprachfeatures wie OOP (Objektorientierte Programmierung) zu nutzen. FORTRAN ist ein Akronym für "FORMula TRANslation" und eignet sich am besten für mathematische und numerische Anwendungen anstelle von Grafik- oder Datenbankanwendungen. Die meisten Fortran-Codes verwenden Texteingaben aus einer Datei oder Befehlszeile und nicht aus einem Menü oder einer GUI-Schnittstelle.

Schritte

Teil 1 von 4: Schreiben und Kompilieren eines einfachen Programms

Fortran Hello World Programm schreiben korrigiert
Fortran Hello World Programm schreiben korrigiert

Schritt 1. Schreiben Sie ein "Hello World"-Programm

Dies ist normalerweise das erste Programm, das in einer beliebigen Sprache schreibt, und es gibt nur "Hallo Welt" auf dem Bildschirm aus. Schreiben Sie den folgenden Code in einen beliebigen Texteditor und speichern Sie ihn als helloworld.f. Achten Sie darauf, dass vor jeder Zeile genau 6 Leerzeichen stehen müssen.

Programm helloworld implizit kein Zeichen*13 hello_string hello_string = "Hallo Welt!" schreiben (*, *) hello_string Programm beenden helloworld

Spitze: Die Leerzeichen sind nur in Fortran-Versionen bis FORTRAN 77 erforderlich. Wenn Sie eine neuere Version verwenden, können Sie die Leerzeichen weglassen. Kompilieren Sie Programme von neueren Versionen mit f95, nicht mit f77; Verwenden Sie.f95 als Dateierweiterung anstelle von nur.f.

Schritt 2. Kompilieren Sie das Programm

Geben Sie dazu f77 helloworld.f in die Befehlszeile ein. Wenn dies einen Fehler ausgibt, haben Sie wahrscheinlich noch keinen Fortran-Compiler wie zum Beispiel gfortran installiert.

Fortran hallo world compilieren run
Fortran hallo world compilieren run

Schritt 3. Führen Sie Ihr Programm aus

Der Compiler hat eine Datei namens a.out erzeugt. Führen Sie diese Datei aus, indem Sie./a.out eingeben.

Schritt 4. Verstehen Sie, was Sie gerade geschrieben haben

  • programm halloworld

    zeigt den Start des Programms "helloworld" an. Ähnlich,

    Programm beenden helloworld

  • weist auf sein Ende hin.
  • Wenn Sie keinen Variablentyp deklarieren, behandelt Fortran standardmäßig eine Variable mit einem Namen, der mit einem Buchstaben von i bis n beginnt, als ganze Zahl und alle anderen als reelle Zahl. Es wird empfohlen zu verwenden

    implizit keine

  • wenn Sie dieses Verhalten nicht brauchen.
  • Zeichen*13 hallo_string

  • deklariert ein Array von Zeichen, das hello_string genannt wird.
  • hello_string = "Hallo Welt!"

  • weist den Wert "Hello, world!" zum deklarierten Array. Anders als in anderen Sprachen wie C kann dies nicht in derselben Zeile wie die Deklaration des Arrays erfolgen.
  • schreibe (*, *) hello_string

  • gibt den Wert von hello_string an die Standardausgabe aus. Das erste * bedeutet, in die Standardausgabe zu schreiben, im Gegensatz zu einer Datei. Das zweite * bedeutet, keine spezielle Formatierung zu verwenden.
Fortran comments
Fortran comments

Schritt 5. Fügen Sie einen Kommentar hinzu

Dies ist in einem so einfachen Programm nicht notwendig, aber es wird nützlich sein, wenn Sie etwas komplexeres schreiben, also sollten Sie wissen, wie man sie hinzufügt. Es gibt zwei Möglichkeiten, einen Kommentar hinzuzufügen.

  • Um einen Kommentar hinzuzufügen, der eine ganze Zeile für sich hat, schreiben Sie ein c direkt in eine neue Zeile, ohne die 6 Leerzeichen. Schreiben Sie danach Ihren Kommentar. Zur besseren Lesbarkeit sollten Sie zwischen dem c und Ihrem Kommentar ein Leerzeichen lassen, dies ist jedoch nicht erforderlich. Beachten Sie, dass Sie a verwenden müssen! statt c in Fortran 95 und neuer.
  • Um einen Kommentar in derselben Zeile wie Code hinzuzufügen, fügen Sie ein ! wo Ihr Kommentar beginnen soll. Auch hier ist kein Leerzeichen erforderlich, verbessert aber die Lesbarkeit.

Teil 2 von 4: Verwenden von Eingabe- und If-Konstruktionen

Fortran-Datentypen
Fortran-Datentypen

Schritt 1. Verstehen Sie verschiedene Datentypen

  • INTEGER wird für ganze Zahlen wie 1, 3 oder -3 verwendet.
  • REAL kann auch eine Zahl enthalten, die nicht ganz ist, z. B. 2.5.
  • COMPLEX wird verwendet, um komplexe Zahlen zu speichern. Die erste Zahl ist der Real- und die zweite der Imaginärteil.
  • CHARACTER wird für Zeichen wie Buchstaben oder Satzzeichen verwendet.
  • LOGICAL kann entweder.true sein. oder.false.. Dies ist wie der boolesche Typ in anderen Programmiersprachen.

Schritt 2. Holen Sie sich die Eingabe des Benutzers

In dem Programm "Hello world", das Sie zuvor geschrieben haben, wäre es nutzlos, Benutzereingaben zu erhalten. Öffnen Sie also eine neue Datei und nennen Sie sie compnum.f. Wenn Sie damit fertig sind, wird dem Benutzer mitgeteilt, ob die eingegebene Zahl positiv, negativ oder gleich Null ist.

  • Geben Sie die Zeilen Programmkompnum und Endprogrammkompnum ein.
  • Deklarieren Sie dann eine Variable vom Typ REAL. Stellen Sie sicher, dass Ihre Deklaration zwischen dem Anfang und dem Ende des Programms steht.
  • Erklären Sie dem Benutzer, was er tun soll. Schreiben Sie einen Text mit der Schreibfunktion.
  • Lesen Sie die Eingabe des Benutzers in die Variable, die Sie mit der Funktion read deklariert haben.

Programmkompnum real r schreiben (*, *) "Geben Sie eine reelle Zahl ein:" lesen (*, *) r Programm beenden

Fortran wenn Bau
Fortran wenn Bau

Schritt 3. Verarbeiten Sie die Eingabe des Benutzers mit einer if-Konstruktion

Legen Sie es zwischen die

lesen (*, *) r

und der

Programm beenden

  • Der Vergleich erfolgt mit.gt. (größer als),.lt. (kleiner als) und.eq. (gleich) in Fortran.
  • Fortran unterstützt if, else if und else
  • Eine Fortran if-Konstruktion endet immer mit end if.

if (r.gt. 0) then schreibe (*, *) "Diese Zahl ist positiv." else if (r.lt. 0) dann schreibe (*, *) "Diese Zahl ist negativ." else schreibe (*, *) "Diese Zahl ist 0." ende wenn

Spitze: Sie müssen Code innerhalb von if-Konstruktionen nicht mit mehr Leerzeichen einrücken, aber es verbessert die Lesbarkeit.

Fortran Nummernprüfprogramm test
Fortran Nummernprüfprogramm test

Schritt 4. Kompilieren Sie Ihr Programm und führen Sie es aus

Geben Sie einige Zahlen ein, um es zu testen. Wenn Sie einen Buchstaben eingeben, wird ein Fehler ausgegeben, aber das ist in Ordnung, da das Programm nicht überprüft, ob es sich bei der Eingabe um einen Buchstaben, eine Zahl oder etwas anderes handelt.

Teil 3 von 4: Verwenden von Loops und Arrays

Schritt 1. Öffnen Sie eine neue Datei

Da dieses Konzept anders ist, müssen Sie erneut ein neues Programm schreiben. Benennen Sie die Datei addmany.f. Fügen Sie die entsprechenden Programm- und Programmende-Anweisungen sowie eine implizite None ein. Wenn Sie fertig sind, liest dieses Programm 10 Zahlen und druckt ihre Summe.

Schritt 2. Deklarieren Sie ein Array der Länge 10

Hier speichern Sie die Nummern. Da Sie wahrscheinlich eine Summe reeller Zahlen wollen, sollten Sie das Array als reell deklarieren. Sie deklarieren ein solches Array mit

reelle Zahlen (50)

(Zahlen ist der Name des Arrays, kein Ausdruck).

Schritt 3. Deklarieren Sie einige Variablen

Deklarieren Sie numSum als reelle Zahl. Sie werden es später verwenden, um die Summe zu speichern, aber da sum bereits von einem Fortran-Ausdruck verwendet wird, müssen Sie einen Namen wie numSum verwenden. Setzen Sie es auf 0. Deklarieren Sie i als Integer und weisen Sie ihm noch keinen Wert zu. Das wird in der Do-Schleife gemacht.

Schritt 4. Erstellen Sie eine Do-Schleife

Das Äquivalent dazu in anderen Programmiersprachen wäre eine for-Schleife.

  • Eine Do-Schleife beginnt immer mit do.
  • In derselben Zeile wie das do, durch ein Leerzeichen davon getrennt, befindet sich das Label, zu dem das Programm nach Beendigung gehen wird. Schreiben Sie vorerst einfach eine 1, Sie legen das Label später fest.
  • Geben Sie danach, wiederum nur durch ein Leerzeichen getrennt, ein

    ich = 1, 10

    . Dadurch wird die Variable i, die Sie vor der Schleife deklariert haben, in Schritten von 1 von 1 auf 10 verschoben. Die Schritte werden in diesem Ausdruck nicht erwähnt, daher verwendet Fortran den Standardwert 1. Sie hätten auch schreiben können

    i = 1, 10, 1

  • Fügen Sie etwas Code in die Schleife ein (einrücken Sie zur besseren Lesbarkeit mit Leerzeichen). Für dieses Programm sollten Sie die Variable numSum mit dem i-ten Element der Array-Nummern erhöhen. Dies geschieht mit dem Ausdruck

    numSum = numSum + Zahl(i)

  • Beenden Sie die Schleife mit einer continue-Anweisung mit einem Label. Geben Sie nur 4 Leerzeichen ein. Geben Sie danach eine 1 ein. Das ist das Label, zu dem Sie die Do-Schleife nach Beendigung angewiesen haben. Geben Sie dann ein Leerzeichen ein und fahren Sie fort. Der Continue-Ausdruck macht nichts, aber er bietet eine gute Stelle, um ein Label zu platzieren, und zeigt auch an, dass die Do-Schleife beendet wurde.

Ihre do-Schleife sollte nun so aussehen:

do 1 i = 1, 10 numSum = numSum + Zahlen(i) 1 weiter

Spitze: In Fortran 95 und höher müssen Sie keine Labels verwenden. Fügen Sie einfach keine in die do-Anweisung ein und beenden Sie die Schleife mit "end do" anstelle von "continue".

Fortran do loop code
Fortran do loop code

Schritt 5. numSum ausgeben

Es wäre auch sinnvoll, einen Kontext anzugeben, zum Beispiel "Die Summe Ihrer Zahlen ist:". Verwenden Sie die Schreibfunktion für beide. Ihr gesamter Code sollte nun wie folgt aussehen:

Programm addmany implizit keine reelle Zahlen(10) real numSum integer i numSum = 0 schreiben (*, *) "Geben Sie 10 Zahlen ein:" lesen (*, *) Zahlen do 1 i = 1, 10 numSum = numSum + numbers(i) 1 weiter schreiben (*, *) "Ihre Summe ist:" schreiben (*, *) numSum Programm beenden addmany

Fortran Nummerncode hinzufügen test
Fortran Nummerncode hinzufügen test

Schritt 6. Kompilieren Sie Ihren Code und führen Sie ihn aus

Vergessen Sie nicht, es zu testen. Du kannst entweder nach jeder eingegebenen Zahl auf ↵ Enter drücken oder viele Zahlen in derselben Zeile eingeben und mit einem Leerzeichen trennen.

Teil 4 von 4: Erweiterte Konzepte verstehen

Programm in Fortran Schritt 13
Programm in Fortran Schritt 13

Schritt 1. Machen Sie sich eine gute Vorstellung davon, was Ihr Programm tun wird

Denken Sie darüber nach, welche Art von Daten als Eingabe benötigt werden, wie Sie die Ausgabe strukturieren und einige Zwischenausgaben einbeziehen, damit Sie den Fortschritt Ihrer Berechnung überwachen können. Dies ist sehr nützlich, wenn Sie wissen, dass Ihre Berechnung über einen längeren Zeitraum ausgeführt wird oder mehrere komplizierte Schritte umfasst.

Fortran-Referenzwebsite screenshot
Fortran-Referenzwebsite screenshot

Schritt 2. Finden Sie eine gute Fortran-Referenz

Fortran hat viel mehr Funktionen, als in diesem Artikel beschrieben, und sie können für das Programm, das Sie schreiben möchten, nützlich sein. Eine Referenz listet alle Funktionen auf, die eine Programmiersprache hat. Dies ist eine für Fortran 77 und dies ist eine für Fortran 90/95.

Fortran-Unterroutinen example
Fortran-Unterroutinen example

Schritt 3. Erfahren Sie mehr über Unterprogramme und Funktionen

Fortran-Formatzeichenfolge example
Fortran-Formatzeichenfolge example

Schritt 4. Erfahren Sie, wie Sie Dateien lesen und schreiben

Erfahren Sie auch, wie Sie Ihre Eingabe/Ausgabe formatieren.

Modernes Fortran-Beispiel screenshot
Modernes Fortran-Beispiel screenshot

Schritt 5. Erfahren Sie mehr über die neuen Funktionen von Fortran 90/95 und neuer

Überspringen Sie diesen Schritt, wenn Sie wissen, dass Sie nur Fortran 77-Code schreiben/pflegen.

Denken Sie daran, dass Fortran 90 den Quellcode "Free Form" eingeführt hat, der es ermöglicht, Code ohne Leerzeichen und ohne die Begrenzung von 72 Zeichen zu schreiben

Fortran Buch online screenshot
Fortran Buch online screenshot

Schritt 6. Lesen Sie Bücher über wissenschaftliche Programmierung oder schlagen Sie sie nach

Das Buch "Numerical Recipes in Fortran" zum Beispiel ist sowohl ein guter Text zu wissenschaftlichen Programmieralgorithmen als auch eine gute Einführung in die Zusammenstellung von Codes. Neuere Ausgaben enthalten Kapitel zur Programmierung in einer gemischtsprachigen Umgebung und zur parallelen Programmierung. Ein weiteres Beispiel ist "Modern Fortran in Practice" von Arjen Markus. Das Buch gibt einen Einblick, wie man Fortran-Programme im Stil des 21. Jahrhunderts nach den neuesten Fortran-Standards schreibt.

Fortran-Kompilierungsprogramm für mehrere Dateien
Fortran-Kompilierungsprogramm für mehrere Dateien

Schritt 7. Erfahren Sie, wie Sie ein auf mehrere Dateien verteiltes Programm kompilieren

Nehmen wir an, Ihr Fortran-Programm ist auf die Dateien main.f und morestuff.f verteilt und die resultierende Binärdatei soll allstuff heißen. Dann müssen Sie folgende Befehle in die Befehlszeile schreiben:

f77 -c morestuff.f f77 -c main.f f77 -c morestuff.f f77 -o allstuff main.o morestuff.f

Führen Sie dann die Datei aus, indem Sie./allstuff eingeben.

Spitze: Dies funktioniert auf die gleiche Weise mit neueren Versionen von Fortran. Ersetzen Sie einfach.f durch die richtige Erweiterung und f77 durch die richtige Compilerversion.

Schritt 8. Verwenden Sie die Optimierung, die Ihr Compiler bietet

Die meisten Compiler enthalten Optimierungsalgorithmen, die die Effizienz Ihres Codes verbessern. Diese werden normalerweise aktiviert, indem beim Kompilieren ein -O, -O2 oder -O3 Flag eingefügt wird (wiederum abhängig von Ihrer Fortran-Version).

  • Im Allgemeinen ist die niedrigste Stufe -O oder -O2 am besten. Beachten Sie, dass die Verwendung der aggressiveren Optimierungsoption zu Fehlern in komplexen Codes führen und die Dinge sogar verlangsamen kann! Testen Sie Ihren Code.

    Tipps

    • Beginnen Sie mit kleinen Programmen. Wenn Sie Ihren eigenen Code erstellen, versuchen Sie, den wichtigsten Teil des Problems zu identifizieren - ist es die Dateneingabe oder der Aufruf der Funktionen, die Struktur der Schleife (dies sind einige sehr elementare Beispiele) und beginnen Sie von dort aus. Darauf bauen Sie dann in kleinen Schritten auf.
    • Fortran unterscheidet nicht zwischen Groß- und Kleinschreibung. Sie könnten zum Beispiel eine Variable "real Num" deklarieren und in die nächste Zeile "num = 1" schreiben, um ihr einen Wert zuzuweisen. Aber das ist ein schlechter Stil, also vermeide ihn. Noch wichtiger ist, dass Fortran sich auch nicht um Funktionen und Anweisungen kümmert. Es ist durchaus üblich, Funktionen und Anweisungen in GROSSBUCHSTABEN und Variablen in Kleinbuchstaben zu schreiben.
    • EMACS ist ein guter kostenloser Texteditor, der anstelle von Notepad verwendet werden kann.
    • Möglicherweise finden Sie es zunächst einfacher, eine Online-IDE (integrierte Entwicklungsumgebung) zu verwenden. Eine gute Option ist Coding Ground. Dort finden Sie eine Vielzahl von Programmiersprachen, darunter Fortran-95. Eine andere Option ist Ideone.

Empfohlen: