Πώς να προγραμματίσετε στο Fortran (με εικόνες)

Πίνακας περιεχομένων:

Πώς να προγραμματίσετε στο Fortran (με εικόνες)
Πώς να προγραμματίσετε στο Fortran (με εικόνες)

Βίντεο: Πώς να προγραμματίσετε στο Fortran (με εικόνες)

Βίντεο: Πώς να προγραμματίσετε στο Fortran (με εικόνες)
Βίντεο: 30 Ultimate Windows 10 Συμβουλές και κόλπα για το 2020 2024, Μάρτιος
Anonim

Πολλοί άνθρωποι αντιλαμβάνονται το Fortran ως μια αρχαϊκή και «νεκρή» γλώσσα προγραμματισμού. Ωστόσο, ο περισσότερος επιστημονικός και μηχανικός κώδικας είναι γραμμένος στο Fortran. Ως εκ τούτου, ο προγραμματισμός σε F77 και F90 παραμένει απαραίτητη δεξιότητα για τους περισσότερους τεχνικούς προγραμματιστές. Επιπλέον, τα τελευταία πρότυπα Fortran (2003, 2008, 2015) επιτρέπουν στον προγραμματιστή να γράφει πολύ αποδοτικό κώδικα με ελάχιστη προσπάθεια, ενώ χρησιμοποιεί όλες τις σύγχρονες γλωσσικές δυνατότητες, όπως το OOP (αντικειμενοστραφής προγραμματισμός). Το FORTRAN είναι ακρωνύμιο του "FORMula TRANslation" και είναι πιο κατάλληλο για μαθηματικές και αριθμητικές εφαρμογές και όχι για γραφικά ή εφαρμογές βάσεων δεδομένων. Οι περισσότεροι κωδικοί fortran λαμβάνουν εισαγωγή κειμένου από ένα αρχείο ή γραμμή εντολών και όχι από ένα μενού ή διεπαφή GUI.

Βήματα

Μέρος 1 από 4: Σύνταξη και σύνταξη ενός απλού προγράμματος

Fortran hello world program write corrected
Fortran hello world program write corrected

Βήμα 1. Γράψτε ένα πρόγραμμα "Hello World"

Αυτό είναι συνήθως το πρώτο πρόγραμμα που γράφει σε οποιαδήποτε γλώσσα και απλώς εκτυπώνει το "Hello world" στην οθόνη. Γράψτε τον ακόλουθο κώδικα σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου και αποθηκεύστε τον ως helloworld.f. Προσέξτε ότι πρέπει να υπάρχουν ακριβώς 6 κενά μπροστά από κάθε γραμμή.

πρόγραμμα helloworld σιωπηρός κανένας χαρακτήρας*13 hello_string hello_string = "Γεια σου κόσμο!" γράψτε (*, *) hello_string end program helloworld

Υπόδειξη: Τα κενά είναι απαραίτητα μόνο σε εκδόσεις του Fortran έως FORTRAN 77. Εάν χρησιμοποιείτε νεότερη έκδοση, μπορείτε να αφήσετε τα κενά. Μεταγλωττίστε προγράμματα από νεότερη έκδοση με f95, όχι f77. χρησιμοποιήστε.f95 ως επέκταση αρχείου αντί μόνο για.f.

Βήμα 2. Μεταγλωττίστε το πρόγραμμα

Για να το κάνετε αυτό, πληκτρολογήστε f77 helloworld.f στη γραμμή εντολών. Εάν αυτό δίνει σφάλμα, πιθανότατα δεν έχετε εγκαταστήσει έναν μεταγλωττιστή Fortran όπως για παράδειγμα το gfortran ακόμα.

Fortran hello world compile run
Fortran hello world compile run

Βήμα 3. Εκτελέστε το πρόγραμμά σας

Ο μεταγλωττιστής έχει δημιουργήσει ένα αρχείο που ονομάζεται a.out. Εκτελέστε αυτό το αρχείο πληκτρολογώντας./a.out.

Βήμα 4. Κατανοήστε αυτό που μόλις γράψατε

  • πρόγραμμα helloworld

    υποδεικνύει την έναρξη του προγράμματος "helloworld". Ομοίως,

    τέλος προγράμματος helloworld

  • δείχνει το τέλος του.
  • Από προεπιλογή, εάν δεν δηλώσετε έναν τύπο μεταβλητής, το Fortran μεταχειρίζεται μια μεταβλητή με ένα όνομα που ξεκινά με ένα γράμμα από το i ως το n ως ακέραιο και όλα τα άλλα ως πραγματικό αριθμό. Συνιστάται η χρήση

    σιωπηρή καμία

  • αν δεν χρειάζεστε αυτή τη συμπεριφορά.
  • χαρακτήρας*13 hello_string

  • δηλώνει μια σειρά χαρακτήρων που ονομάζεται hello_string.
  • hello_string = "Γεια σου κόσμο!"

  • εκχωρεί την τιμή "Hello, world!" στον δηλωμένο πίνακα. Σε αντίθεση με άλλες γλώσσες όπως το C, αυτό δεν μπορεί να γίνει στην ίδια γραμμή με τη δήλωση του πίνακα.
  • γράψτε (*, *) hello_string

  • εκτυπώνει την τιμή του hello_string στην τυπική έξοδο. Το πρώτο * σημαίνει εγγραφή στην τυπική έξοδο, σε αντίθεση με κάποιο αρχείο. Το δεύτερο * σημαίνει ότι δεν χρησιμοποιείτε κάποια ειδική μορφοποίηση.
Fortran comments
Fortran comments

Βήμα 5. Προσθέστε ένα σχόλιο

Αυτό δεν είναι απαραίτητο σε ένα τόσο απλό πρόγραμμα, αλλά θα είναι χρήσιμο όταν γράφετε κάτι πιο περίπλοκο, οπότε θα πρέπει να ξέρετε πώς να τα προσθέσετε. Υπάρχουν δύο τρόποι για να προσθέσετε ένα σχόλιο.

  • Για να προσθέσετε ένα σχόλιο που έχει μια ολόκληρη γραμμή από μόνη της, γράψτε ένα c απευθείας σε μια νέα γραμμή, χωρίς τα 6 κενά. Μετά από αυτό, γράψτε το σχόλιό σας. Θα πρέπει να αφήσετε ένα διάστημα μεταξύ του c και του σχολίου σας για καλύτερη αναγνωσιμότητα, αλλά αυτό δεν απαιτείται. Σημειώστε ότι πρέπει να χρησιμοποιήσετε ένα! αντί για c στο Fortran 95 και νεότερο.
  • Για να προσθέσετε ένα σχόλιο στην ίδια γραμμή με τον κώδικα, προσθέστε ένα! από όπου θέλετε να ξεκινήσει το σχόλιό σας. Και πάλι, δεν απαιτείται χώρος, αλλά βελτιώνει την αναγνωσιμότητα.

Μέρος 2 από 4: Χρήση Input και If-Constructions

Τύποι δεδομένων Fortran
Τύποι δεδομένων Fortran

Βήμα 1. Κατανοήστε διαφορετικούς τύπους δεδομένων

  • Το INTEGER χρησιμοποιείται για ακέραιους αριθμούς, όπως 1, 3 ή -3.
  • Το REAL μπορεί επίσης να περιέχει έναν αριθμό που δεν είναι ακέραιος, όπως 2.5.
  • Το COMPLEX χρησιμοποιείται για την αποθήκευση μιγαδικών αριθμών. Ο πρώτος αριθμός είναι ο πραγματικός και ο δεύτερος το φανταστικό μέρος.
  • Ο ΧΑΡΑΚΤΗΡΑΣ χρησιμοποιείται για χαρακτήρες, όπως γράμματα ή σημεία στίξης.
  • Η ΛΟΓΙΚΗ μπορεί να είναι είτε.αλήθεια. ή.false.. Αυτό είναι σαν το boolean τύπο σε άλλες γλώσσες προγραμματισμού.

Βήμα 2. Λάβετε την είσοδο του χρήστη

Στο πρόγραμμα "Hello world" που γράψατε πριν, η λήψη πληροφοριών από τους χρήστες θα ήταν άχρηστη. Ανοίξτε λοιπόν ένα νέο αρχείο και ονομάστε το compnum.f. Όταν το ολοκληρώσετε, θα πει στον χρήστη εάν ο αριθμός που έχει εισαγάγει είναι θετικός, αρνητικός ή ίσος με μηδέν.

  • Εισαγάγετε το πρόγραμμα γραμμών compnum και τέλος πρόγραμμα compnum.
  • Στη συνέχεια, δηλώστε μια μεταβλητή του τύπου REAL. Βεβαιωθείτε ότι η δήλωσή σας βρίσκεται μεταξύ της αρχής και του τέλους του προγράμματος.
  • Εξηγήστε στον χρήστη τι πρέπει να κάνει. Γράψτε λίγο κείμενο με τη λειτουργία εγγραφής.
  • Διαβάστε την εισαγωγή του χρήστη στη μεταβλητή που δηλώσατε με τη συνάρτηση ανάγνωσης.

program compnum real r write (*, *) "Enter a real number:" read (*, *) r end program

Fortran if construction
Fortran if construction

Βήμα 3. Επεξεργαστείτε την είσοδο του χρήστη με μια κατασκευή if

Βάλτε το ανάμεσα στο

διαβάζω (*, *) r

και το

τέλος προγράμματος

  • Η σύγκριση γίνεται με.gt. (μεγαλύτερο από),.lt. (λιγότερο από) και.εκ. (ισούται) στο Fortran.
  • Το Fortran υποστηρίζει εάν, αλλιώς εάν, και αλλιώς
  • Μια κατασκευή Fortran if τελειώνει πάντα με τέλος if.

εάν (r.gt. 0) τότε γράψτε (*, *) "Αυτός ο αριθμός είναι θετικός." αλλιώς αν (r.lt. 0) τότε γράψτε (*, *) "Αυτός ο αριθμός είναι αρνητικός." αλλιώς γράψτε (*, *) "Αυτός ο αριθμός είναι 0." τέλος εαν

Υπόδειξη: Δεν χρειάζεται να κάνετε εσοχή σε κώδικα εντός των κατασκευών if με περισσότερους χώρους, αλλά βελτιώνει την αναγνωσιμότητα.

Πρόγραμμα ελέγχου αριθμού Fortran test
Πρόγραμμα ελέγχου αριθμού Fortran test

Βήμα 4. Μεταγλωττίστε και εκτελέστε το πρόγραμμά σας

Εισαγάγετε μερικούς αριθμούς για να το δοκιμάσετε. Εάν εισαγάγετε ένα γράμμα, θα εμφανιστεί ένα σφάλμα, αλλά αυτό είναι εντάξει επειδή το πρόγραμμα δεν ελέγχει εάν η είσοδος είναι ένα γράμμα, ένας αριθμός ή κάτι άλλο.

Μέρος 3 από 4: Χρήση βρόχων και συστοιχιών

Βήμα 1. Ανοίξτε ένα νέο αρχείο

Δεδομένου ότι αυτή η έννοια είναι διαφορετική, θα πρέπει να γράψετε ξανά ένα νέο πρόγραμμα. Ονομάστε το αρχείο addmany.f. Εισαγάγετε τις αντίστοιχες δηλώσεις προγράμματος και τερματισμού προγράμματος, καθώς και μια σιωπηρή καμία. Όταν τελειώσετε, αυτό το πρόγραμμα θα διαβάσει 10 αριθμούς και θα εκτυπώσει το άθροισμά τους.

Βήμα 2. Δηλώστε έναν πίνακα μήκους 10

Εδώ θα αποθηκεύσετε τους αριθμούς. Δεδομένου ότι πιθανώς θέλετε ένα σύνολο πραγματικών αριθμών, θα πρέπει να δηλώσετε τον πίνακα ως πραγματικό. Δηλώνετε έναν τέτοιο πίνακα με

πραγματικοί αριθμοί (50)

(οι αριθμοί είναι το όνομα του πίνακα, όχι μια έκφραση).

Βήμα 3. Δηλώστε ορισμένες μεταβλητές

Δηλώστε το numSum ως πραγματικό αριθμό. Θα το χρησιμοποιήσετε για να αποθηκεύσετε το άθροισμα αργότερα, αλλά επειδή το άθροισμα έχει ήδη ληφθεί από μια έκφραση Fortran, πρέπει να χρησιμοποιήσετε ένα όνομα όπως το numSum. Ορίστε το στο 0. Δηλώστε i ως ακέραιο και μην του δώσετε ακόμη τιμή. Αυτό θα γίνει στο do-loop.

Βήμα 4. Δημιουργήστε ένα βρόχο

Το αντίστοιχο σε άλλες γλώσσες προγραμματισμού θα ήταν for-loop.

  • Ένας κύκλος εκκίνησης ξεκινά πάντα με do.
  • Στην ίδια γραμμή με το do, χωρισμένο από αυτό με ένα κενό, είναι η ετικέτα στην οποία θα πάει το πρόγραμμα όταν τελειώσει. Προς το παρόν, απλά γράψτε ένα 1, θα ορίσετε την ετικέτα αργότερα.
  • Μετά από αυτό, πάλι διαχωρίζεται μόνο με ένα κενό, πληκτρολογήστε

    i = 1, 10

    Το Αυτό θα κάνει τη μεταβλητή i, την οποία είχατε δηλώσει πριν από τον βρόχο, να πάει από το 1 στο 10 σε βήματα του 1. Τα βήματα δεν αναφέρονται σε αυτήν την έκφραση, οπότε το Fortran χρησιμοποιεί την προεπιλεγμένη τιμή του 1. Θα μπορούσατε επίσης να έχετε γράψει

    i = 1, 10, 1

  • Βάλτε λίγο κώδικα μέσα στο βρόχο (εσοχή με κενά για καλύτερη αναγνωσιμότητα). Για αυτό το πρόγραμμα, θα πρέπει να αυξήσετε τη μεταβλητή numSum με το i-th στοιχείο των αριθμών πίνακα. Αυτό γίνεται με την έκφραση

    numSum = numSum + αριθμός (i)

  • Τερματίστε τον βρόχο με μια δήλωση συνέχισης που έχει ετικέτα. Πληκτρολογήστε μόνο 4 κενά. Μετά από αυτό, πληκτρολογήστε ένα 1. Αυτή είναι η ετικέτα στην οποία είπατε να κάνει το βρόχο μετά την ολοκλήρωσή του. Στη συνέχεια, πληκτρολογήστε ένα κενό και συνεχίστε. Η συνέχεια έκφρασης δεν κάνει τίποτα, αλλά δίνει ένα καλό σημείο για να τοποθετήσετε μια ετικέτα, καθώς επίσης δείχνει ότι ο κύκλος εργασιών τελείωσε.

Ο βρόχος σας θα πρέπει τώρα να μοιάζει με αυτόν:

κάνω 1 i = 1, 10 numSum = numSum + αριθμοί (i) 1 συνέχεια

Υπόδειξη: Στο Fortran 95 και νεότερα, δεν χρειάζεται να χρησιμοποιείτε ετικέτες. Απλώς μην βάλετε ένα στη δήλωση do και τελειώστε το βρόχο με "τέλος κάνε" αντί για "συνέχεια".

Fortran do loop code
Fortran do loop code

Βήμα 5. Εκτύπωση numSum

Επίσης, θα ήταν λογικό να δώσετε κάποιο πλαίσιο, για παράδειγμα "Το άθροισμα των αριθμών σας είναι:". Χρησιμοποιήστε τη λειτουργία εγγραφής και για τα δύο. Ολόκληρος ο κωδικός σας πρέπει τώρα να έχει την ακόλουθη μορφή:

πρόγραμμα addmany πολλοί σιωπηλοί κανένας πραγματικοί αριθμοί (10) πραγματικός αριθμόςΑριθμός ακέραιος i numSum = 0 εγγραφή (*, *) "Πληκτρολογήστε 10 αριθμούς:" οι αριθμοί διαβάζουν (*, *) έως 1 i = 1, 10 numSum = numSum + αριθμούς (i) 1 συνέχεια εγγραφή (*, *) "Το άθροισμά τους είναι:" γράψτε (*, *) numSum τέλος προγράμματος addmany

Το Fortran προσθέτει αριθμούς κώδικα test
Το Fortran προσθέτει αριθμούς κώδικα test

Βήμα 6. Μεταγλωττίστε και εκτελέστε τον κώδικά σας

Μην ξεχάσετε να το δοκιμάσετε. Μπορείτε είτε να πατήσετε ↵ Enter μετά από κάθε αριθμό που εισάγετε είτε να εισαγάγετε πολλούς αριθμούς στην ίδια γραμμή και να τους διαχωρίσετε με κενό.

Μέρος 4 από 4: Κατανόηση προηγμένων εννοιών

Πρόγραμμα στο Fortran Βήμα 13
Πρόγραμμα στο Fortran Βήμα 13

Βήμα 1. Έχετε μια καλή ιδέα για το τι θα κάνει το πρόγραμμά σας

Σκεφτείτε τι είδους δεδομένα χρειάζονται ως είσοδο, πώς να δομήσετε την έξοδο και συμπεριλάβετε κάποια ενδιάμεση έξοδο, ώστε να μπορείτε να παρακολουθείτε την πρόοδο του υπολογισμού σας. Αυτό θα είναι πολύ χρήσιμο εάν γνωρίζετε ότι ο υπολογισμός σας θα εκτελεστεί για μεγάλο χρονικό διάστημα ή περιλαμβάνει πολλά περίπλοκα βήματα.

Ιστότοπος αναφοράς Fortran screenshot
Ιστότοπος αναφοράς Fortran screenshot

Βήμα 2. Βρείτε μια καλή αναφορά Fortran

Το Fortran έχει πολλές περισσότερες λειτουργίες από αυτές που περιγράφονται σε αυτό το άρθρο και μπορεί να είναι χρήσιμες για το πρόγραμμα που θέλετε να γράψετε. Μια αναφορά παραθέτει όλες τις λειτουργίες που έχει μια γλώσσα προγραμματισμού. Αυτό είναι ένα για το Fortran 77 και αυτό για το Fortran 90/95.

Υπορουτίνες Fortran example
Υπορουτίνες Fortran example

Βήμα 3. Μάθετε σχετικά με τις υπορουτίνες και τις λειτουργίες

Μορφή συμβολοσειράς Fortran example
Μορφή συμβολοσειράς Fortran example

Βήμα 4. Μάθετε πώς να διαβάζετε και να γράφετε από/σε αρχεία

Μάθετε επίσης πώς να διαμορφώσετε την είσοδο/έξοδο.

Σύγχρονο παράδειγμα fortran screenshot
Σύγχρονο παράδειγμα fortran screenshot

Βήμα 5. Μάθετε για τις νέες δυνατότητες του Fortran 90/95 και νεότερες

Παραλείψτε αυτό το βήμα εάν γνωρίζετε ότι θα γράφετε/διατηρείτε μόνο τον κώδικα Fortran 77.

Θυμηθείτε ότι το Fortran 90 εισήγαγε τον πηγαίο κώδικα "Ελεύθερη φόρμα", επιτρέποντας την εγγραφή του κώδικα χωρίς κενά και χωρίς όριο 72 χαρακτήρων

Βιβλίο Fortran online screenshot
Βιβλίο Fortran online screenshot

Βήμα 6. Διαβάστε ή αναζητήστε μερικά βιβλία για τον Επιστημονικό Προγραμματισμό

Για παράδειγμα, το βιβλίο "Numerical Recipes in Fortran" είναι τόσο ένα καλό κείμενο για τους αλγόριθμους επιστημονικού προγραμματισμού όσο και μια καλή εισαγωγή στο πώς να συνθέσουμε κώδικες. Πιο πρόσφατες εκδόσεις περιλαμβάνουν κεφάλαια για τον τρόπο προγραμματισμού σε περιβάλλον μικτής γλώσσας και παράλληλο προγραμματισμό. Ένα άλλο παράδειγμα είναι το "Modern Fortran in Practice" γραμμένο από τον Arjen Markus. Το βιβλίο δίνει μια εικόνα για τον τρόπο γραφής προγραμμάτων Fortran σε στυλ εικοστού πρώτου αιώνα σύμφωνα με τα πιο πρόσφατα πρότυπα Fortran.

Το πρόγραμμα μεταγλώττισης Fortran σε πολλά αρχεία
Το πρόγραμμα μεταγλώττισης Fortran σε πολλά αρχεία

Βήμα 7. Μάθετε πώς μπορείτε να μεταγλωττίσετε ένα πρόγραμμα σε πολλά αρχεία

Ας υποθέσουμε ότι το πρόγραμμα Fortran απλώνεται στα αρχεία main.f και morestuff.f και ότι θέλετε το δυαδικό αρχείο που προκύπτει να ονομάζεται allstuff. Στη συνέχεια, θα πρέπει να γράψετε τις ακόλουθες εντολές στη γραμμή εντολών:

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

Στη συνέχεια, εκτελέστε το αρχείο πληκτρολογώντας./allstuff.

Υπόδειξη: Αυτό λειτουργεί με τον ίδιο τρόπο με τις νεότερες εκδόσεις του Fortran. Απλώς αντικαταστήστε το.f με τη σωστή επέκταση και το f77 με τη σωστή έκδοση μεταγλωττιστή.

Βήμα 8. Χρησιμοποιήστε τη βελτιστοποίηση που παρέχει ο μεταγλωττιστής σας

Οι περισσότεροι μεταγλωττιστές περιλαμβάνουν αλγόριθμους βελτιστοποίησης που βελτιώνουν την αποδοτικότητα του κώδικα σας. Αυτά συνήθως ενεργοποιούνται με τη συμπερίληψη σημαίας -O, -O2 ή -O3 κατά τη μεταγλώττιση (και πάλι ανάλογα με την έκδοση του fortran).

  • Γενικά, το χαμηλότερο επίπεδο -O ή -O2 είναι το καλύτερο. Λάβετε υπόψη ότι η χρήση της πιο επιθετικής επιλογής βελτιστοποίησης μπορεί να εισαγάγει σφάλματα σε πολύπλοκους κώδικες και μπορεί ακόμη και να επιβραδύνει τα πράγματα! Δοκιμάστε τον κωδικό σας.

    Συμβουλές

    • Ξεκινήστε με μικρά προγράμματα. Όταν δημιουργείτε τον δικό σας κώδικα, προσπαθήστε να προσδιορίσετε το πιο ουσιαστικό μέρος του προβλήματος - είναι η εισαγωγή δεδομένων ή η κλήση των συναρτήσεων, η δομή του βρόχου (αυτά είναι μερικά πολύ βασικά παραδείγματα) και ξεκινήστε από εκεί. Στη συνέχεια, βασιστείτε σε αυτό με μικρές αυξήσεις.
    • Το Fortran δεν κάνει διάκριση πεζών-κεφαλαίων. Θα μπορούσατε, για παράδειγμα, να δηλώσετε μια μεταβλητή "real Num" και να γράψετε "num = 1" στην επόμενη γραμμή για να της αντιστοιχίσετε μια τιμή. Αλλά αυτό είναι ένα κακό στυλ, οπότε αποφύγετε το. Το πιο σημαντικό, το Fortran δεν ενδιαφέρεται ούτε για την περίπτωση των συναρτήσεων και των δηλώσεων. Είναι πολύ συνηθισμένο να γράφουμε συναρτήσεις και δηλώσεις με ΜΕΓΑΛΑ και μεταβλητές με πεζά.
    • Το EMACS είναι ένας καλός δωρεάν επεξεργαστής κειμένου για χρήση αντί για Σημειωματάριο.
    • Mightσως να είναι πιο εύκολο να χρησιμοποιήσετε ένα διαδικτυακό IDE (ολοκληρωμένο περιβάλλον ανάπτυξης) στην αρχή. Μια καλή επιλογή είναι το Coding Ground. Θα βρείτε πολλές γλώσσες προγραμματισμού εκεί, συμπεριλαμβανομένου του Fortran-95. Μια άλλη επιλογή είναι η Ideone.

Συνιστάται: