Sådan programmeres i Fortran (med billeder)

Indholdsfortegnelse:

Sådan programmeres i Fortran (med billeder)
Sådan programmeres i Fortran (med billeder)

Video: Sådan programmeres i Fortran (med billeder)

Video: Sådan programmeres i Fortran (med billeder)
Video: Working With Evernote | Ep 24 | Duplicating a Note 2024, April
Anonim

Mange mennesker opfatter Fortran som et arkaisk og "dødt" programmeringssprog. Den mest videnskabelige og tekniske kode er dog skrevet i Fortran. Som sådan er programmering i F77 og F90 fortsat en nødvendig færdighed for de fleste tekniske programmører. Desuden giver de nyeste Fortran-standarder (2003, 2008, 2015) programmereren mulighed for at skrive yderst effektiv kode med minimal indsats, samtidig med at alle moderne sprogfunktioner udnyttes, f.eks. OOP (objektorienteret programmering). FORTRAN er et akronym for "FORmula TRANslation", og er bedst egnet til matematiske og numeriske applikationer frem for grafik eller databaseapplikationer. De fleste fortran-koder tager tekstindtastning fra en fil eller kommandolinje frem for fra en menu eller GUI-grænseflade.

Trin

Del 1 af 4: Skrivning og kompilering af et simpelt program

Fortran hej verden program skriv korrigeret
Fortran hej verden program skriv korrigeret

Trin 1. Skriv et "Hello World" -program

Dette er normalt det første program til at skrive på et hvilket som helst sprog, og det udskriver bare "Hej verden" til skærmen. Skriv følgende kode i en hvilken som helst tekstredigerer, og gem den som helloworld.f. Vær opmærksom på, at der skal være præcis 6 mellemrum foran hver linje.

program helloworld implicit ingen karakter*13 hello_string hello_string = "Hej, verden!" skriv (*, *) hello_string afslut program helloworld

Tip: Mellemrummene er kun nødvendige i versioner af Fortran op til FORTRAN 77. Hvis du bruger en nyere version, kan du slippe mellemrummene. Kompiler programmer fra nyere version med f95, ikke f77; brug.f95 som filtypenavn i stedet for bare.f.

Trin 2. Kompilér programmet

For at gøre dette skal du skrive f77 helloworld.f i kommandolinjen. Hvis dette giver en fejl, har du sandsynligvis ikke installeret en Fortran -kompilator som f.eks. Gfortran endnu.

Fortran hej verden kompilere run
Fortran hej verden kompilere run

Trin 3. Kør dit program

Kompilatoren har produceret en fil kaldet a.out. Kør denne fil ved at skrive./a.out.

Trin 4. Forstå, hvad du lige har skrevet

  • program helloworld

    angiver starten på programmet "helloworld". Tilsvarende

    afslutte programmet helloworld

  • angiver dens slutning.
  • Som standard, hvis du ikke erklærer en variabeltype, behandler Fortran en variabel med et navn, der begynder med et bogstav fra i til n som heltal og alle andre som et reelt tal. Det anbefales at bruge

    implicit ingen

  • hvis du ikke har brug for den adfærd.
  • tegn*13 hej_streng

  • erklærer en række tegn, der kaldes hello_string.
  • hello_string = "Hej, verden!"

  • tildeler værdien "Hej, verden!" til det deklarerede array. I modsætning til andre sprog som C kan dette ikke gøres på samme linje som at deklarere arrayet.
  • skriv (*, *) hello_string

  • udskriver værdien af hello_string til standardoutput. Den første * betyder at skrive til standardoutput, i modsætning til nogle filer. Den anden * betyder ikke at bruge nogen særlig formatering.
Fortran comments
Fortran comments

Trin 5. Tilføj en kommentar

Dette er ikke nødvendigt i et så enkelt program, men det vil være nyttigt, når du skriver noget mere komplekst, så du bør vide, hvordan du tilføjer dem. Der er to måder at tilføje en kommentar.

  • Hvis du vil tilføje en kommentar, der har en hel linje alene, skal du skrive c direkte i en ny linje uden de 6 mellemrum. Herefter skriver du din kommentar. Du bør efterlade et mellemrum mellem c og din kommentar for bedre læsbarhed, men dette er ikke påkrævet. Bemærk, at du skal bruge en! i stedet for en c i Fortran 95 og nyere.
  • Hvis du vil tilføje en kommentar i samme linje som kode, skal du tilføje en! hvor du vil have din kommentar til at begynde. Igen kræves der ikke plads, men forbedrer læsbarheden.

Del 2 af 4: Brug af input og if-konstruktioner

Fortran datatyper
Fortran datatyper

Trin 1. Forstå forskellige datatyper

  • INTEGER bruges til hele tal, f.eks. 1, 3 eller -3.
  • REAL kan også indeholde et tal, der ikke er helt, f.eks. 2.5.
  • COMPLEX bruges til at gemme komplekse tal. Det første tal er det reelle og det andet den imaginære del.
  • KARAKTER bruges til tegn, f.eks. Bogstaver eller tegnsætning.
  • LOGISK kan være enten. Sand. eller.false.. Dette er ligesom den boolske type i andre programmeringssprog.

Trin 2. Få brugerens input

I programmet "Hej verden", som du skrev før, ville det være nytteløst at få brugerinput. Så åbn en ny fil, og navngiv den compnum.f. Når du er færdig med det, vil det fortælle brugeren, om det indtastede tal er positivt, negativt eller lig med nul.

  • Indtast linjerne programkomp. Og afslut programkomp.
  • Angiv derefter en variabel af typen REAL. Sørg for, at din erklæring er mellem programmets begyndelse og slutning.
  • Forklar brugeren, hvad de skal gøre. Skriv noget tekst med skrivefunktionen.
  • Læs brugerens input til den variabel, du erklærede med læsefunktionen.

program compnum reel r skrive (*, *) "Indtast et reelt tal:" læs (*, *) r afslut program

Fortran if construction
Fortran if construction

Trin 3. Behandl brugerens input med en if-konstruktion

Sæt det mellem

læs (*, *) r

og

afslutte program

  • Sammenligning foretages med.gt. (større end),.lt. (mindre end) og.ekv. (lig) i Fortran.
  • Fortran understøtter if, else if, og else
  • En Fortran if-konstruktion slutter altid med ende hvis.

hvis (r.gt. 0) så skriv (*, *) "Det tal er positivt." ellers hvis (r.lt. 0) så skriv (*, *) "Det tal er negativt." ellers skriv (*, *) "Det tal er 0." Afslut Hvis

Tip: Du behøver ikke at indrykke kode inde i if-konstruktioner med flere mellemrum, men det forbedrer læsbarheden.

Fortran nummerkontrolprogram test
Fortran nummerkontrolprogram test

Trin 4. Kompilér og kør dit program

Indtast nogle tal for at teste det. Hvis du indtaster et bogstav, vil det medføre en fejl, men det er okay, fordi programmet ikke kontrollerer, om input er et bogstav, et tal eller noget andet.

Del 3 af 4: Brug af loops og arrays

Trin 1. Åbn en ny fil

Da dette koncept er anderledes, bliver du nødt til at skrive et nyt program igen. Navngiv filen addmany.f. Indsæt det tilhørende program og afslut programudsagn, samt et implicit ingen. Når du er færdig, vil dette program læse 10 tal og udskrive deres sum.

Trin 2. Angiv en matrix med længde 10

Det er her, du vil gemme numrene. Da du sandsynligvis vil have en sum af reelle tal, bør du erklære arrayet som reelt. Du erklærer sådan en matrix med

reelle tal (50)

(tal er navnet på arrayet, ikke et udtryk).

Trin 3. Angiv nogle variabler

Angiv numSum som et reelt tal. Du vil bruge den til at gemme summen senere, men da summen allerede er taget af et Fortran -udtryk, skal du bruge et navn som numSum. Indstil det til 0. Deklarér i som et helt tal, og tildel det ikke nogen værdi endnu. Det vil blive gjort i do-loop.

Trin 4. Opret en do-loop

Tilsvarende for det i andre programmeringssprog ville være en for-loop.

  • En do-loop starter altid med do.
  • På samme linje som do, adskilt fra det med et mellemrum, er etiketten, som programmet vil gå til, når det er færdigt. For nu skal du bare skrive en 1, du sætter etiketten senere.
  • Efter det, igen kun adskilt af et mellemrum, skriv

    jeg = 1, 10

    . Dette får variablen i, som du havde erklæret før sløjfen, til at gå fra 1 til 10 i trin på 1. Trinene nævnes ikke i dette udtryk, så Fortran bruger standardværdien på 1. Du kunne også have skrevet

    i = 1, 10, 1

  • Læg en kode inde i sløjfen (indryk med mellemrum for bedre læsbarhed). For dette program skal du øge variablen numSum med det i-th element i matrixnumrene. Dette gøres med udtrykket

    numSum = numSum + nummer (i)

  • Afslut løkken med en fortsæt -sætning, der har en etiket. Skriv kun 4 mellemrum. Derefter skriver du en 1. Det er etiketten, som du fortalte do-loop at gå til, når den er færdig. Indtast derefter et mellemrum og fortsæt. Fortsæt-udtrykket gør ingenting, men det giver et godt sted at placere en etiket, samt viser, at do-loop sluttede.

Din do loop skal nu se sådan ud:

gør 1 i = 1, 10 numSum = numSum + tal (i) 1 fortsæt

Tip: I Fortran 95 og nyere behøver du ikke bruge etiketter. Bare læg ikke en i do -sætningen, og afslut loop med "end do" i stedet for "fortsæt".

Fortran do loop code
Fortran do loop code

Trin 5. Udskriv numSum

Det ville også være fornuftigt at give en kontekst, f.eks. "Summen af dine tal er:". Brug skrivefunktionen til begge. Hele din kode skal nu se sådan ud:

program addmany implicit ingen reelle tal (10) reelt numSum heltal i numSum = 0 skriv (*, *) "Indtast 10 tal:" læs (*, *) tal gør 1 i = 1, 10 numSum = numSum + tal (i) 1 fortsæt med at skrive (*, *) "Deres sum er:" skriv (*, *) numSum slut program addmany

Fortran tilføjer numre kode test
Fortran tilføjer numre kode test

Trin 6. Kompilér og kør din kode

Glem ikke at teste det. Du kan enten trykke på ↵ Enter efter hvert nummer, du indtaster, eller indtaste mange tal på den samme linje og adskille dem med et mellemrum.

Del 4 af 4: Forståelse for avancerede begreber

Program i Fortran Trin 13
Program i Fortran Trin 13

Trin 1. Hav en god idé om, hvad dit program vil gøre

Tænk over, hvilken slags data der er brug for som input, hvordan du strukturerer output, og inkluder noget mellemliggende output, så du kan overvåge fremdriften i din beregning. Dette vil være meget nyttigt, hvis du ved, at din beregning vil køre i lang tid eller involverer flere komplicerede trin.

Fortran referencewebsted screenshot
Fortran referencewebsted screenshot

Trin 2. Find en god Fortran -reference

Fortran har mange flere funktioner end forklaret i denne artikel, og de kan være nyttige til det program, du vil skrive. En reference viser alle funktioner, som et programmeringssprog har. Dette er et til Fortran 77, og dette er et til Fortran 90/95.

Fortran subroutines example
Fortran subroutines example

Trin 3. Lær om underrutiner og funktioner

Fortran format string eksempel
Fortran format string eksempel

Trin 4. Lær at læse og skrive fra/til filer

Lær også, hvordan du formaterer dit input/output.

Moderne fortran -eksempel screenshot
Moderne fortran -eksempel screenshot

Trin 5. Lær mere om de nye funktioner i Fortran 90/95 og nyere

Spring dette trin over, hvis du ved, at du kun skriver/vedligeholder Fortran 77 -kode.

Husk, at Fortran 90 introducerede kildekoden "Free Form", så kode kan skrives uden mellemrum og uden grænsen på 72 tegn

Fortran bog online screenshot
Fortran bog online screenshot

Trin 6. Læs eller slå nogle bøger om videnskabelig programmering op

For eksempel er bogen "Numeriske opskrifter i Fortran" både en god tekst om videnskabelige programmeringsalgoritmer og en god introduktion til, hvordan man sammensætter koder. Nyere udgaver inkluderer kapitler om, hvordan man programmerer i et blandet sprogmiljø og parallel programmering. Et andet eksempel er "Modern Fortran in Practice" skrevet af Arjen Markus. Bogen giver et indblik i, hvordan man skriver Fortran-programmer i enogtyvende århundredes stil i overensstemmelse med de nyeste Fortran-standarder.

Fortran kompilerer program på tværs af flere filer
Fortran kompilerer program på tværs af flere filer

Trin 7. Lær, hvordan du kompilerer et program spredt over flere filer

Lad os antage, at dit Fortran -program er spredt over filerne main.f og morestuff.f, og at du vil have den resulterende binære til at blive navngivet allstuff. Derefter skal du skrive følgende kommandoer i kommandolinjen:

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

Kør derefter filen ved at skrive./allstuff.

Tip: Dette fungerer på samme måde med nyere versioner af Fortran. Bare erstat.f med den korrekte udvidelse og f77 med den korrekte kompilerversion.

Trin 8. Brug den optimering, din kompilator giver

De fleste kompilatorer indeholder optimeringsalgoritmer, der forbedrer effektiviteten af din kode. Disse tændes typisk ved at inkludere et -O, -O2 eller -O3 flag ved kompilering (igen afhængigt af din version af fortran).

  • Generelt er det laveste niveau -O eller -O2 -niveau bedst. Vær opmærksom på, at brug af den mere aggressive optimeringsmulighed kan indføre fejl i komplekse koder og endda kan bremse tingene ned! Test din kode.

    Tips

    • Start med små programmer. Når du laver din egen kode, skal du prøve at identificere den væsentligste del af problemet - er det dataindtastningen eller kaldet til funktionerne, loopens struktur (dette er nogle meget elementære eksempler) og start derfra. Byg derefter på det i små trin.
    • Fortran er ikke store og små bogstaver. Du kan for eksempel erklære en variabel "reelt Num" og skrive "num = 1" i den næste linje for at tildele en værdi til den. Men det er en dårlig stil, så undgå det. Endnu vigtigere er Fortran heller ikke ligeglad med sagen om funktioner og udsagn. Det er ret almindeligt at skrive funktioner og udsagn i STORE og variabler i små bogstaver.
    • EMACS er en god gratis tekstredigerer at bruge i stedet for Notesblok.
    • Du finder det måske lettere at bruge et online IDE (integreret udviklingsmiljø) i starten. En god mulighed er Coding Ground. Du finder et væld af programmeringssprog der, herunder Fortran-95. En anden mulighed er Ideone.

Anbefalede: