Hvordan programmere i Fortran (med bilder)

Innholdsfortegnelse:

Hvordan programmere i Fortran (med bilder)
Hvordan programmere i Fortran (med bilder)

Video: Hvordan programmere i Fortran (med bilder)

Video: Hvordan programmere i Fortran (med bilder)
Video: Working With Evernote | Ep 24 | Duplicating a Note 2024, April
Anonim

Mange oppfatter Fortran som et arkaisk og "dødt" programmeringsspråk. Imidlertid er den mest vitenskapelige og ingeniørkoden skrevet i Fortran. Som sådan er programmering i F77 og F90 fortsatt en nødvendig ferdighet for de fleste tekniske programmerere. Videre tillater de nyeste Fortran-standardene (2003, 2008, 2015) programmereren å skrive svært effektiv kode med minimal innsats, mens han bruker alle de moderne språkfunksjonene, for eksempel OOP (objektorientert programmering). FORTRAN er et akronym for "FORmula TRANslation", og er best egnet for matematiske og numeriske applikasjoner i stedet for grafikk eller databaseapplikasjoner. De fleste fortran-koder tar tekstinndata fra en fil eller kommandolinje i stedet for fra en meny eller GUI-grensesnitt.

Trinn

Del 1 av 4: Skrive og kompilere et enkelt program

Fortran hallo world program skrive korrigert
Fortran hallo world program skrive korrigert

Trinn 1. Skriv et "Hello World" -program

Dette er vanligvis det første programmet som skriver på et hvilket som helst språk, og det skrives bare ut "Hei verden" til skjermen. Skriv følgende kode i en hvilken som helst tekstredigerer og lagre den som helloworld.f. Vær oppmerksom på at det må være nøyaktig 6 mellomrom foran hver linje.

program helloworld implisitt ingen karakter*13 hello_string hello_string = "Hei, verden!" skriv (*, *) hello_string sluttprogram helloworld

Tips: Mellomrommene er bare nødvendige i versjoner av Fortran opp til FORTRAN 77. Hvis du bruker en nyere versjon, kan du slippe mellomrommene. Kompiler programmer fra nyere versjon med f95, ikke f77; bruk.f95 som filtypen i stedet for bare.f.

Trinn 2. Kompiler programmet

For å gjøre dette, skriv f77 helloworld.f i kommandolinjen. Hvis dette gir en feil, har du sannsynligvis ikke installert en Fortran -kompilator som for eksempel gfortran ennå.

Fortran hei verden kompilere run
Fortran hei verden kompilere run

Trinn 3. Kjør programmet

Kompilatoren har produsert en fil som heter a.out. Kjør denne filen ved å skrive./a.out.

Trinn 4. Forstå hva du nettopp skrev

  • program helloworld

    indikerer starten på programmet "helloworld". På samme måte,

    avslutte programmet helloworld

  • indikerer slutten.
  • Som standard, hvis du ikke deklarerer en variabeltype, behandler Fortran en variabel med et navn som begynner med en bokstav fra i til n som heltall, og alle andre som et reelt tall. Det anbefales å bruke

    implisitt ingen

  • hvis du ikke trenger den oppførselen.
  • karakter*13 hallo_streng

  • erklærer en rekke tegn som kalles hello_string.
  • hello_string = "Hei, verden!"

  • tildeler verdien "Hei, verden!" til den deklarerte matrisen. I motsetning til andre språk som C, kan dette ikke gjøres på samme linje som å deklarere matrisen.
  • skriv (*, *) hello_string

  • skriver ut verdien av hello_string til standardutgangen. Den første * betyr å skrive til standard utdata, i motsetning til noen filer. Den andre * betyr ikke å bruke noen spesiell formatering.
Fortran comments
Fortran comments

Trinn 5. Legg til en kommentar

Dette er ikke nødvendig i et så enkelt program, men det vil være nyttig når du skriver noe mer komplekst, så du bør vite hvordan du legger dem til. Det er to måter å legge til en kommentar.

  • Hvis du vil legge til en kommentar som har en hel linje på egen hånd, skriver du en c direkte inn i en ny linje, uten de seks mellomrommene. Etter det, skriv din kommentar. Du bør legge igjen et mellomrom mellom c og kommentaren din for bedre lesbarhet, men dette er ikke nødvendig. Vær oppmerksom på at du må bruke a! i stedet for c i Fortran 95 og nyere.
  • For å legge til en kommentar på samme linje som kode, legg til en! hvor du vil at kommentaren din skal begynne. Igjen er det ikke nødvendig med plass, men forbedrer lesbarheten.

Del 2 av 4: Bruke inndata og If-konstruksjoner

Fortran datatyper
Fortran datatyper

Trinn 1. Forstå forskjellige datatyper

  • INTEGER brukes for hele tall, som 1, 3 eller -3.
  • REAL kan også inneholde et tall som ikke er helt, som 2.5.
  • COMPLEX brukes til å lagre komplekse tall. Det første tallet er det virkelige og det andre den imaginære delen.
  • TEGN brukes til tegn, som bokstaver eller tegnsetting.
  • LOGISK kan være enten.sant. eller.false.. Dette er som den boolske typen i andre programmeringsspråk.

Trinn 2. Få brukerens innspill

I "Hei verden" -programmet som du skrev før, ville det være ubrukelig å få brukerinngang. Så åpne en ny fil og gi den navnet compnum.f. Når du er ferdig med den, vil den fortelle brukeren om tallet de skrev inn er positivt, negativt eller lik null.

  • Skriv inn linjene programkomp. Og sluttprogramkomp.
  • Deretter deklarerer du en variabel av typen REAL. Sørg for at erklæringen er mellom begynnelsen og slutten av programmet.
  • Forklar brukeren hva de skal gjøre. Skriv litt tekst med skrivefunksjonen.
  • Les brukerens input til variabelen du deklarerte med lesefunksjonen.

program compnum real r skrive (*, *) "Skriv inn et reelt tall:" les (*, *) r avslutte programmet

Fortran if construction
Fortran if construction

Trinn 3. Behandle brukerens input med en if-konstruksjon

Sett den mellom

les (*, *) r

og

avslutte programmet

  • Sammenligning er gjort med.gt. (større enn),.lt. (mindre enn) og.ekv. (lik) i Fortran.
  • Fortran støtter if, else if, og else
  • En Fortran if-konstruksjon slutter alltid med slutten hvis.

hvis (r. g. 0) så skriv (*, *) "Det tallet er positivt." ellers hvis (r.lt. 0) så skriv (*, *) "Det tallet er negativt." ellers skriv (*, *) "Det tallet er 0." slutt om

Tips: Du trenger ikke å innrykke koden inne i if-konstruksjoner med flere mellomrom, men det forbedrer lesbarheten.

Fortran nummer sjekk program test
Fortran nummer sjekk program test

Trinn 4. Kompiler og kjør programmet

Skriv inn noen tall for å teste det. Hvis du skriver inn en bokstav, vil det føre til en feil, men det er greit fordi programmet ikke sjekker om inngangen er en bokstav, et tall eller noe annet.

Del 3 av 4: Bruke sløyfer og matriser

Trinn 1. Åpne en ny fil

Siden dette konseptet er annerledes, må du skrive et nytt program igjen. Gi filen navnet addmany.f. Sett inn det tilsvarende programmet og avslutt programerklæringer, så vel som en implisitt ingen. Når du er ferdig, vil dette programmet lese 10 tall og skrive ut summen.

Trinn 2. Angi en matrise med lengde 10

Det er her du vil lagre tallene. Siden du sannsynligvis vil ha en sum av reelle tall, bør du erklære matrisen som ekte. Du erklærer en slik matrise med

reelle tall (50)

(tall er navnet på matrisen, ikke et uttrykk).

Trinn 3. Deklarere noen variabler

Angi numSum som et reelt tall. Du vil bruke den til å lagre summen senere, men siden summen allerede er tatt av et Fortran -uttrykk, må du bruke et navn som numSum. Sett den til 0. Deklarere i som et heltall og ikke tilordne det noen verdi ennå. Det vil bli gjort i do-loop.

Trinn 4. Lag en do-loop

Tilsvarende til det på andre programmeringsspråk ville være en for-loop.

  • En do-loop starter alltid med do.
  • På samme linje som do, atskilt fra den med et mellomrom, er etiketten som programmet vil gå til når det er ferdig. For nå er det bare å skrive en 1, du setter etiketten senere.
  • Etter det, igjen bare atskilt med et mellomrom, skriv

    jeg = 1, 10

    . Dette vil gjøre at variabelen i, som du hadde erklært før sløyfen, går fra 1 til 10 i trinn på 1. Trinnene er ikke nevnt i dette uttrykket, så Fortran bruker standardverdien på 1. Du kunne også ha skrevet

    i = 1, 10, 1

  • Legg litt kode inne i sløyfen (innrykk med mellomrom for bedre lesbarhet). For dette programmet bør du øke variabelen numSum med i-elementet i matrisenumrene. Dette gjøres med uttrykket

    numSum = numSum + tall (i)

  • Avslutt løkken med en fortsett -setning som har en etikett. Skriv bare 4 mellomrom. Etter det skriver du inn 1. Det er etiketten du fortalte do-loop å gå til etter at den er ferdig. Skriv deretter inn et mellomrom og fortsett. Fortsett-uttrykket gjør ingenting, men det gir et godt sted å plassere en etikett, i tillegg til at det viser at do-loop ble avsluttet.

Din do loop skal nå se slik ut:

gjør 1 i = 1, 10 numSum = numSum + tall (i) 1 fortsetter

Tips: I Fortran 95 og nyere trenger du ikke bruke etiketter. Bare ikke legg en i do -setningen og avslutt løkken med "end do" i stedet for "fortsett".

Fortran do loop code
Fortran do loop code

Trinn 5. Skriv ut numSum

Det ville også være fornuftig å gi litt kontekst, for eksempel "Summen av tallene dine er:". Bruk skrivefunksjonen for begge. Hele koden din skal nå se slik ut:

program addmany implisitt ingen reelle tall (10) reelt numSum heltall i numSum = 0 skrive (*, *) "Skriv inn 10 tall:" les (*, *) tall gjør 1 i = 1, 10 numSum = numSum + tall (i) 1 fortsett å skrive (*, *) "Summen deres er:" skriv (*, *) numSum sluttprogram addmany

Fortran legge til tallkode test
Fortran legge til tallkode test

Trinn 6. Kompiler og kjør koden din

Ikke glem å teste den. Du kan enten trykke på ↵ Enter etter hvert tall du skriver inn eller skrive inn mange tall på samme linje og skille dem med et mellomrom.

Del 4 av 4: Forstå avanserte begreper

Program i Fortran trinn 13
Program i Fortran trinn 13

Trinn 1. Ha en god ide om hva programmet ditt vil gjøre

Tenk på hva slags data som er nødvendig som inndata, hvordan du strukturerer utdataene, og inkluder noen mellomliggende utdata slik at du kan overvåke fremdriften i beregningen. Dette vil være veldig nyttig hvis du vet at beregningen din vil gå over lang tid eller innebærer flere kompliserte trinn.

Fortran referanse nettsted screenshot
Fortran referanse nettsted screenshot

Trinn 2. Finn en god Fortran -referanse

Fortran har mange flere funksjoner enn forklart i denne artikkelen, og de kan være nyttige for programmet du vil skrive. En referanse viser alle funksjonene et programmeringsspråk har. Dette er en for Fortran 77 og denne for Fortran 90/95.

Fortran subroutines example
Fortran subroutines example

Trinn 3. Lær om underrutiner og funksjoner

Fortran format streng eksempel
Fortran format streng eksempel

Trinn 4. Lær hvordan du leser og skriver fra/til filer

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

Moderne fortran -eksempel screenshot
Moderne fortran -eksempel screenshot

Trinn 5. Lær om de nye funksjonene i Fortran 90/95 og nyere

Hopp over dette trinnet hvis du vet at du bare skal skrive/vedlikeholde Fortran 77 -koden.

Husk at Fortran 90 introduserte kildekoden "Free Form", slik at kode kan skrives uten mellomrom og uten begrensningen på 72 tegn

Fortran book online screenshot
Fortran book online screenshot

Trinn 6. Les eller slå opp noen bøker om vitenskapelig programmering

For eksempel er boken "Numerical Recipes in Fortran" både en god tekst om vitenskapelige programmeringsalgoritmer og en god introduksjon til hvordan man setter sammen koder. Nyere utgaver inkluderer kapitler om hvordan man programmerer i et blandet språk og parallell programmering. Et annet eksempel er "Modern Fortran in Practice" skrevet av Arjen Markus. Boken gir et innblikk i hvordan man skriver Fortran-programmer i tjueførste århundre-stil i samsvar med de nyeste Fortran-standardene.

Fortran kompilerer program på tvers av flere filer
Fortran kompilerer program på tvers av flere filer

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

La oss anta at Fortran -programmet ditt er spredt over filene main.f og morestuff.f, og at du vil at den resulterende binæren skal hete allstuff. Deretter må 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

Kjør deretter filen ved å skrive./allstuff.

Tips: Dette fungerer på samme måte med nyere versjoner av Fortran. Bare erstatt.f med riktig utvidelse og f77 med riktig kompilatorversjon.

Trinn 8. Bruk optimaliseringen av kompilatoren

De fleste kompilatorer inkluderer optimaliseringsalgoritmer som forbedrer effektiviteten til koden din. Disse blir vanligvis slått på ved å inkludere et -O, -O2 eller -O3 flagg ved kompilering (igjen avhengig av din versjon av fortran).

  • Vanligvis er det laveste nivå -O eller -O2 -nivå best. Vær oppmerksom på at bruk av det mer aggressive optimaliseringsalternativet kan føre til feil i komplekse koder og kan til og med bremse ting! Test koden din.

    Tips

    • Start med små programmer. Når du lager din egen kode, kan du prøve å identifisere den viktigste delen av problemet - er det datainnmatingen eller kallingen til funksjonene, strukturen til sløyfen (dette er noen veldig elementære eksempler) og start derfra. Bygg deretter på det i små trinn.
    • Fortran er ikke store og små bokstaver. Du kan for eksempel deklarere en variabel "reelt tall" og skrive "num = 1" på neste linje for å tilordne en verdi til den. Men det er en dårlig stil, så unngå det. Enda viktigere er at Fortran heller ikke bryr seg om funksjoner og uttalelser. Det er ganske vanlig å skrive funksjoner og utsagn i STORE OG variabler i små bokstaver.
    • EMACS er en god gratis tekstredigerer å bruke i stedet for Notisblokk.
    • Du vil kanskje finne det lettere å bruke et online IDE (integrert utviklingsmiljø) med det første. Et godt alternativ er Coding Ground. Du finner et mangfold av programmeringsspråk der, inkludert Fortran-95. Et annet alternativ er Ideone.

Anbefalt: