Cum se programează în Fortran (cu imagini)

Cuprins:

Cum se programează în Fortran (cu imagini)
Cum se programează în Fortran (cu imagini)

Video: Cum se programează în Fortran (cu imagini)

Video: Cum se programează în Fortran (cu imagini)
Video: How to Move 12,000 Notes from Evernote to Apple Notes (with Tags): A Step-by-Step Guide 2024, Aprilie
Anonim

Mulți oameni percep Fortran ca un limbaj de programare arhaic și „mort”. Cu toate acestea, majoritatea codului științific și ingineresc este scris în Fortran. Ca atare, programarea în F77 și F90 rămâne o abilitate necesară pentru majoritatea programatorilor tehnici. Mai mult, cele mai recente standarde Fortran (2003, 2008, 2015) permit programatorului să scrie coduri extrem de eficiente cu un efort minim, utilizând în același timp toate caracteristicile limbajului modern, cum ar fi OOP (programare orientată pe obiecte). FORTRAN este un acronim pentru „FORmula TRANslation” și este cel mai potrivit pentru aplicații matematice și numerice, mai degrabă decât pentru aplicații grafice sau de baze de date. Majoritatea codurilor fortran preiau introducerea textului dintr-un fișier sau dintr-o linie de comandă, mai degrabă decât dintr-un meniu sau o interfață GUI.

Pași

Partea 1 din 4: Scrierea și compilarea unui program simplu

Programul Fortran Hello World scrie corectat
Programul Fortran Hello World scrie corectat

Pasul 1. Scrieți un program „Hello World”

Acesta este de obicei primul program care scrie în orice limbă și tipărește „Hello world” pe ecran. Scrieți următorul cod în orice editor de text și salvați-l ca helloworld.f. Fii atent că trebuie să existe exact 6 spații în fața fiecărei linii.

program helloworld implicit niciun caracter * 13 hello_string hello_string = "Bună, lume!" scrie (*, *) hello_string end program helloworld

Bacsis: Spațiile sunt necesare numai în versiunile Fortran până la FORTRAN 77. Dacă utilizați o versiune mai nouă, puteți renunța la spații. Compilați programe din versiunea mai nouă cu f95, nu f77; folosiți.f95 ca extensie de fișier în loc de doar.f.

Pasul 2. Compilați programul

Pentru a face acest lucru, tastați f77 helloworld.f în linia de comandă. Dacă acest lucru dă o eroare, probabil că nu ați instalat încă un compilator Fortran ca de exemplu gfortran.

Fortran hello world compile run
Fortran hello world compile run

Pasul 3. Rulați programul

Compilatorul a produs un fișier numit a.out. Rulați acest fișier tastând./a.out.

Pasul 4. Înțelegeți ceea ce tocmai ați scris

  • programul helloworld

    indică începutul programului „helloworld”. În mod similar,

    sfârșitul programului helloworld

  • indică sfârșitul acestuia.
  • În mod implicit, dacă nu declarați un tip de variabilă, Fortran tratează o variabilă cu un nume care începe cu o literă de la i la n ca număr întreg, iar toate celelalte ca un număr real. Se recomandă utilizarea

    nici unul implicit

  • dacă nu ai nevoie de acel comportament.
  • caracter * 13 hello_string

  • declară o serie de caractere care se numește hello_string.
  • hello_string = "Bună, lume!"

  • atribuie valoarea „Bună ziua, lume!” la matricea declarată. Spre deosebire de alte limbi precum C, acest lucru nu se poate face pe aceeași linie cu declararea matricei.
  • scrie (*, *) hello_string

  • imprimă valoarea hello_string la ieșirea standard. Primul * înseamnă să scrieți la ieșirea standard, spre deosebire de un fișier. Al doilea * înseamnă să nu utilizați nicio formatare specială.
Fortran comments
Fortran comments

Pasul 5. Adăugați un comentariu

Acest lucru nu este necesar într-un program atât de simplu, dar va fi util atunci când scrieți ceva mai complex, așa că ar trebui să știți cum să le adăugați. Există două moduri de a adăuga un comentariu.

  • Pentru a adăuga un comentariu care are o linie întreagă pe cont propriu, scrieți un c direct într-o linie nouă, fără cele 6 spații. După aceea, scrieți comentariul dvs. Ar trebui să lăsați un spațiu între c și comentariul dvs. pentru o mai bună lizibilitate, dar acest lucru nu este necesar. Rețineți că trebuie să utilizați un! în loc de un c în Fortran 95 și mai nou.
  • Pentru a adăuga un comentariu în aceeași linie cu codul, adăugați un! unde doriți să înceapă comentariul dvs. Din nou, un spațiu nu este necesar, dar îmbunătățește lizibilitatea.

Partea 2 din 4: Utilizarea intrărilor și a construcțiilor If

Fortran data types
Fortran data types

Pasul 1. Înțelegeți diferite tipuri de date

  • INTEGER este utilizat pentru numere întregi, cum ar fi 1, 3 sau -3.
  • REAL poate conține, de asemenea, un număr care nu este întreg, cum ar fi 2.5.
  • COMPLEX este folosit pentru a stoca numere complexe. Primul număr este realul și al doilea partea imaginară.
  • CARACTER este utilizat pentru caractere, cum ar fi litere sau punctuație.
  • LOGICUL poate fi fie. Adevărat. sau.false.. Acesta este ca tipul boolean în alte limbaje de programare.

Pasul 2. Obțineți informațiile utilizatorului

În programul „Hello world” pe care l-ați scris anterior, obținerea de informații a utilizatorului ar fi inutilă. Deci, deschideți un fișier nou și denumiți-l compnum.f. După ce ați terminat-o, acesta va spune utilizatorului dacă numărul pe care l-a introdus este pozitiv, negativ sau egal cu zero.

  • Introduceți liniile programului compnum și terminați programul compnum.
  • Apoi, declarați o variabilă de tip REAL. Asigurați-vă că declarația dvs. este între începutul și sfârșitul programului.
  • Explicați utilizatorului ce ar trebui să facă. Scrieți un text cu funcția de scriere.
  • Citiți intrarea utilizatorului în variabila pe care ați declarat-o cu funcția de citire.

program compnum real r write (*, *) "Introduceți un număr real:" read (*, *) r end program

Fortran if construction
Fortran if construction

Pasul 3. Procesați intrarea utilizatorului cu o construcție if

Puneți-l între

citiți (*, *) r

si

final program

  • Comparația se face cu.gt. (mai mare decât),.lt. (mai puțin de) și.eq. (egal) în Fortran.
  • Fortran acceptă if, else if și else
  • O Fortran if-construction se termină întotdeauna cu end if.

dacă (r.gt. 0) atunci scrieți (*, *) „Acest număr este pozitiv”. altfel dacă (r.lt. 0) atunci scrieți (*, *) „Acest număr este negativ”. altfel scrieți (*, *) „Acest număr este 0.” incheie daca

Bacsis: Nu trebuie să introduceți codul în interiorul construcțiilor if cu mai multe spații, dar îmbunătățește lizibilitatea.

Programul de verificare a numărului Fortran test
Programul de verificare a numărului Fortran test

Pasul 4. Compilați și rulați programul

Introduceți câteva numere pentru al testa. Dacă introduceți o literă, va apărea o eroare, dar este în regulă, deoarece programul nu verifică dacă intrarea este o literă, un număr sau altceva.

Partea 3 din 4: Utilizarea buclelor și a matricelor

Pasul 1. Deschideți un fișier nou

Deoarece acest concept este diferit, va trebui să scrieți din nou un nou program. Denumiți fișierul addmany.f. Introduceți programul corespunzător și instrucțiunile de finalizare a programului, precum și un instrument implicit. Când ați terminat, acest program va citi 10 numere și le va imprima suma.

Pasul 2. Declarați o matrice de lungime 10

Aici veți stoca numerele. Deoarece probabil doriți o sumă de numere reale, ar trebui să declarați matricea ca fiind reală. Declarați o astfel de matrice cu

numere reale (50)

(numerele este numele matricei, nu o expresie).

Pasul 3. Declarați unele variabile

Declarați numSum ca număr real. O veți folosi pentru a stoca suma mai târziu, dar din moment ce suma este deja luată de o expresie Fortran, trebuie să utilizați un nume ca numSum. Setați-l la 0. Declarați-l pe i ca întreg și nu-i atribuiți încă nicio valoare. Acest lucru se va face în buclă.

Pasul 4. Creați o buclă

Echivalentul celui din alte limbaje de programare ar fi un for-loop.

  • Un do-loop începe întotdeauna cu do.
  • Pe aceeași linie cu do, separat de acesta printr-un spațiu, se află eticheta la care va merge programul când va fi terminat. Deocamdată, scrieți doar 1, veți seta eticheta mai târziu.
  • După aceea, din nou separat doar printr-un spațiu, tastați

    i = 1, 10

    . Acest lucru va face ca variabila i, pe care ați declarat-o înainte de buclă, să treacă de la 1 la 10 în pașii de 1. Pașii nu sunt menționați în această expresie, astfel încât Fortran folosește valoarea implicită de 1. Ați fi putut, de asemenea, să scrieți

    i = 1, 10, 1

  • Introduceți un cod în buclă (indentați cu spații pentru o mai bună lizibilitate). Pentru acest program, ar trebui să măriți variabila numSum cu elementul i-al numerelor matricei. Acest lucru se face cu expresia

    numSum = numSum + număr (i)

  • Încheiați bucla cu o declarație continue care are o etichetă. Tastați doar 4 spații. După aceea, tastați un 1. Aceasta este eticheta pe care i-ați spus să se ducă la buclă după ce se termină. Apoi, tastați un spațiu și continuați. Expresia continuă nu face nimic, dar oferă un loc bun pentru a plasa o etichetă, precum și pentru a arăta că bucla de lucru sa încheiat.

Bucla dvs. ar trebui să arate acum astfel:

faceți 1 i = 1, 10 numSum = numSum + numere (i) 1 continuați

Bacsis: În Fortran 95 și versiunile ulterioare, nu este nevoie să utilizați etichete. Doar nu puneți una în instrucțiunea do și terminați bucla cu „end do” în loc de „continue”.

Fortran do loop code
Fortran do loop code

Pasul 5. Imprimați numSum

De asemenea, ar avea sens să oferim un anumit context, de exemplu „Suma numerelor tale este:”. Utilizați funcția de scriere pentru ambele. Întregul cod ar trebui să arate acum după cum urmează:

program adaugă multe implicit niciun număr real (10) numar real număr întreg i numSum = 0 scrie (*, *) "Introduceți 10 numere:" citiți (*, *) numere faceți 1 i = 1, 10 numSum = numSum + numere (i) 1 continuu să scriu (*, *) "Suma lor este:" write (*, *) numSum end program addmany

Fortran adăugați coduri de testare
Fortran adăugați coduri de testare

Pasul 6. Compilați și rulați codul

Nu uitați să-l testați. Puteți apăsa ↵ Enter după fiecare număr pe care îl introduceți sau introduceți multe numere pe aceeași linie și separați-le cu un spațiu.

Partea 4 din 4: Înțelegerea conceptelor avansate

Program în Fortran Pasul 13
Program în Fortran Pasul 13

Pasul 1. Aveți o idee bună despre ceea ce va face programul dvs

Gândiți-vă la ce fel de date sunt necesare ca intrare, cum să structurați ieșirea și includeți câteva ieșiri intermediare, astfel încât să puteți monitoriza progresul calculului. Acest lucru va fi foarte util dacă știți că calculul dvs. va rula mult timp sau implică mai mulți pași complicați.

Site-ul de referință Fortran screenshot
Site-ul de referință Fortran screenshot

Pasul 2. Găsiți o referință bună Fortran

Fortran are mult mai multe funcții decât cele explicate în acest articol și ar putea fi utile pentru programul pe care doriți să îl scrieți. O referință listează toate funcțiile pe care le are un limbaj de programare. Acesta este unul pentru Fortran 77 și acesta este unul pentru Fortran 90/95.

Subrutine Fortran exemplu
Subrutine Fortran exemplu

Pasul 3. Aflați despre subrutine și funcții

Șir de format Fortran example
Șir de format Fortran example

Pasul 4. Aflați cum să citiți și să scrieți din / în fișiere

Aflați și cum să vă formatați intrarea / ieșirea.

Exemplu modern de fortran screenshot
Exemplu modern de fortran screenshot

Pasul 5. Aflați despre noile caracteristici ale Fortran 90/95 și mai recente

Omiteți acest pas dacă știți că veți scrie / menține doar codul Fortran 77.

Amintiți-vă că Fortran 90 a introdus codul sursă „Formular liber”, permițând scrierea codului fără spații și fără limita de 72 de caractere

Cartea Fortran online screenshot
Cartea Fortran online screenshot

Pasul 6. Citiți sau căutați câteva cărți despre programarea științifică

De exemplu, cartea „Rețete numerice în Fortran” este atât un text bun asupra algoritmilor de programare științifică, cât și o introducere bună a modului de asamblare a codurilor. Edițiile mai recente includ capitole despre modul de programare într-un mediu de limbă mixtă și programare paralelă. Un alt exemplu este „Fortran modern în practică” scris de Arjen Markus. Cartea oferă o perspectivă asupra modului de a scrie programe Fortran în stilul secolului XXI, în conformitate cu cele mai recente standarde Fortran.

Programul de compilare Fortran pe mai multe files
Programul de compilare Fortran pe mai multe files

Pasul 7. Aflați cum să compilați un program răspândit pe mai multe fișiere

Să presupunem că programul dvs. Fortran este răspândit pe fișierele main.f și morestuff.f și că doriți ca binarul rezultat să fie numit allstuff. Apoi va trebui să scrieți următoarele comenzi în linia de comandă:

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

Apoi rulați fișierul tastând./allstuff.

Bacsis: Acest lucru funcționează la fel cu versiunile mai noi ale Fortran. Doar înlocuiți.f cu extensia corectă și f77 cu versiunea corectă a compilatorului.

Pasul 8. Utilizați optimizarea oferită de compilator

Majoritatea compilatoarelor includ algoritmi de optimizare care îmbunătățesc eficiența codului dvs. Acestea sunt de obicei activate prin includerea unui steag -O, -O2 sau -O3 la compilare (din nou în funcție de versiunea dvs. de fortran).

  • În general, cel mai scăzut nivel -O sau -O2 este cel mai bun. Rețineți că utilizarea opțiunii de optimizare mai agresivă poate introduce erori în codurile complexe și poate chiar să încetinească lucrurile! Testați-vă codul.

    sfaturi

    • Începeți cu programe mici. Când creați propriul cod, încercați să identificați cea mai esențială parte a problemei - este vorba de introducerea datelor sau apelarea funcțiilor, structura buclei (acestea sunt câteva exemple foarte elementare) și începeți de acolo. Apoi, construiți pe aceasta în mici trepte.
    • Fortran nu este sensibil la majuscule și minuscule. Puteți, de exemplu, să declarați o variabilă „Număr real” și să scrieți „num = 1” în următoarea linie pentru a-i atribui o valoare. Dar acesta este un stil prost, așa că evitați-l. Mai important, nici lui Fortran nu-i pasă de cazul funcțiilor și declarațiilor. Este destul de obișnuit să scrieți funcții și instrucțiuni cu majuscule și variabile cu litere mici.
    • EMACS este un bun editor de text gratuit de utilizat în locul Notepad-ului.
    • S-ar putea să vă fie mai ușor să utilizați la început un IDE online (mediu de dezvoltare integrat). O opțiune bună este Coding Ground. Veți găsi acolo o multitudine de limbaje de programare, inclusiv Fortran-95. O altă opțiune este Ideone.

Recomandat: