Kako programirati v Fortranu (s slikami)

Kazalo:

Kako programirati v Fortranu (s slikami)
Kako programirati v Fortranu (s slikami)

Video: Kako programirati v Fortranu (s slikami)

Video: Kako programirati v Fortranu (s slikami)
Video: Как правильно работать с силиконом? Делаем аккуратный шов! Распространенные ошибки! 2024, Marec
Anonim

Mnogi ljudje dojemajo Fortran kot arhaičen in "mrtev" programski jezik. Vendar je večina znanstvenih in inženirskih kodeksov napisanih v Fortranu. Tako programiranje v F77 in F90 ostaja nujna veščina za večino tehničnih programerjev. Poleg tega najnovejši standardi Fortran (2003, 2008, 2015) omogočajo programerju, da z minimalnimi napori napiše visoko učinkovito kodo, pri tem pa uporabi vse sodobne jezikovne funkcije, kot je OOP (objektno usmerjeno programiranje). FORTRAN je kratica za "FORmula TRANslation" in je najbolj primeren za matematične in numerične aplikacije, ne pa za grafične ali baze podatkov. Večina kod Fortran vnaša besedilo iz datoteke ali ukazne vrstice in ne iz menija ali vmesnika grafičnega vmesnika.

Koraki

1. del od 4: Pisanje in sestavljanje enostavnega programa

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

Korak 1. Napišite program "Hello World"

To je ponavadi prvi program, ki piše v katerem koli jeziku, in na zaslon natisne samo "Hello world". Naslednjo kodo napišite v kateri koli urejevalnik besedil in jo shranite kot helloworld.f. Bodite pozorni, da mora biti pred vsako vrstico točno 6 presledkov.

program helloworld implicitno brez znakov*13 hello_string hello_string = "Pozdravljeni, svet!" write (*, *) hello_string zaključni program helloworld

Nasvet: Presledki so potrebni le v različicah Fortrana do FORTRAN 77. Če uporabljate novejšo različico, lahko presledke izpustite. Sestavite programe iz novejše različice s f95, ne f77; uporabite.f95 kot pripono datoteke namesto.f.

Korak 2. Sestavite program

Če želite to narediti, v ukazno vrstico vnesite f77 helloworld.f. Če pride do napake, verjetno še niste namestili prevajalnika Fortran, kot je na primer gfortran.

Fortran hello world compile run
Fortran hello world compile run

Korak 3. Zaženite program

Prevajalnik je izdelal datoteko z imenom a.out. Zaženite to datoteko tako, da vnesete./a.out.

Korak 4. Razumeti, kaj ste pravkar napisali

  • program helloworld

    označuje začetek programa "helloworld". Podobno,

    končajte program helloworld

  • označuje njen konec.
  • Privzeto, če ne deklarirate vrste spremenljivke, Fortran obravnava spremenljivko z imenom, ki se začne s črko od i do n kot celo število, vse ostale pa kot resnično število. Priporoča se uporaba

    implicitno nič

  • če tega vedenja ne potrebujete.
  • znak*13 hello_string

  • razglasi niz znakov, ki se imenuje hello_string.
  • hello_string = "Pozdravljeni, svet!"

  • dodeli vrednost "Pozdravljeni, svet!" v deklarirano matriko. Za razliko od drugih jezikov, kot je C, tega ni mogoče narediti v isti vrstici kot razglasitev matrike.
  • write (*, *) hello_string

  • natisne vrednost hello_string na standardni izhod. Prvi * pomeni pisanje v standardni izhod, v nasprotju z neko datoteko. Drugi * pomeni, da ne uporabljate posebnega oblikovanja.
Fortran comments
Fortran comments

Korak 5. Dodajte komentar

V tako preprostem programu to ni nujno, vendar bo koristno, če napišete kaj bolj zapletenega, zato morate vedeti, kako jih dodati. Komentar lahko dodate na dva načina.

  • Če želite dodati komentar, ki ima sam celo vrstico, vnesite c neposredno v novo vrstico, brez 6 presledkov. Po tem napišite svoj komentar. Za boljšo berljivost morate pustiti presledek med c in vašim komentarjem, vendar to ni potrebno. Upoštevajte, da morate uporabiti a! namesto c v Fortranu 95 in novejšem.
  • Če želite dodati komentar v isto vrstico kot kodo, dodajte znak! kjer želite, da se začne vaš komentar. Spet prostor ni potreben, vendar izboljša berljivost.

2. del od 4: Uporaba vhodnih in če-konstrukcij

Fortran podatkovni tipi
Fortran podatkovni tipi

Korak 1. Razumeti različne vrste podatkov

  • INTEGER se uporablja za cela števila, na primer 1, 3 ali -3.
  • REAL lahko vsebuje tudi številko, ki ni cela, na primer 2,5.
  • COMPLEX se uporablja za shranjevanje kompleksnih številk. Prva številka je resnična, druga pa namišljena.
  • CHARACTER se uporablja za znake, na primer črke ali ločila.
  • LOGIČNO je lahko. ali.false.. To je kot boolean tip v drugih programskih jezikih.

Korak 2. Pridobite vnos uporabnika

V programu "Hello world", ki ste ga napisali prej, bi bilo pridobivanje uporabniškega vnosa neuporabno. Odprite torej novo datoteko in jo poimenujte compnum.f. Ko končate, bo uporabniku povedal, ali je vneseno število pozitivno, negativno ali enako nič.

  • Vnesite compnum programa line in compnum programa.
  • Nato razglasite spremenljivko tipa REAL. Prepričajte se, da je vaša izjava med začetkom in koncem programa.
  • Pojasnite uporabniku, kaj naj naredi. Napišite nekaj besedila s funkcijo pisanja.
  • Preberite uporabnikov vnos v spremenljivko, ki ste jo deklarirali s funkcijo branja.

program compnum real r write (*, *) "Enter real number:" read (*, *) r končaj program

Fortran if construction
Fortran if construction

Korak 3. Obdelajte uporabnikov vnos s konstrukcijo if

Postavite med

preberi (*, *) r

in

zaključni program

  • Primerjava je narejena z.gt. (več kot),.lt. (manj kot) in. ekv. (enako) v Fortranu.
  • Fortran podpira if, else if, and else
  • Fortranova konstrukcija if se vedno konča s koncem if.

če (r.gt. 0) potem napišite (*, *) "Ta številka je pozitivna." sicer, če (r.lt. 0) potem napišite (*, *) "Ta številka je negativna." else write (*, *) "To število je 0." konec če

Nasvet: Ni vam treba zamikati kode znotraj konstrukcij if z več presledki, vendar izboljša berljivost.

Program za preverjanje številk Fortran test
Program za preverjanje številk Fortran test

Korak 4. Prevedite in zaženite program

Vnesite nekaj številk, da ga preizkusite. Če vnesete črko, bo nastala napaka, vendar je to v redu, ker program ne preveri, ali je vnos črka, številka ali kaj drugega.

3. del 4: Uporaba zank in nizov

Korak 1. Odprite novo datoteko

Ker je ta koncept drugačen, boste morali znova napisati nov program. Poimenujte datoteko addmany.f. Vstavite ustrezne izjave programa in zaključek programa ter implicitnega nič. Ko končate, bo ta program prebral 10 številk in natisnil njihovo vsoto.

Korak 2. Razglasite niz dolžine 10

Tu boste shranili številke. Ker verjetno želite vsoto realnih števil, morate matriko razglasiti za resnično. Takšno matriko razglasite z

realne številke (50)

(številke so ime matrike, ne izraz).

Korak 3. Razglasite nekaj spremenljivk

Navedite numSum kot realno število. Uporabili ga boste za shranjevanje vsote pozneje, ker pa vsota že jemlje izraz Fortran, morate uporabiti ime, kot je numSum. Nastavite ga na 0. Razglasite i kot celo število in mu še ne dodelite nobene vrednosti. To bo storjeno v do-zanki.

Korak 4. Ustvarite do-zanko

Enakovreden v drugih programskih jezikih bi bil for-loop.

  • Do-zanka se vedno začne z do.
  • V isti vrstici kot do, ločena s presledkom, je oznaka, na katero bo šel program, ko bo končan. Zaenkrat samo napišite 1, oznako boste nastavili kasneje.
  • Po tem, spet samo ločeno s presledkom, vnesite

    i = 1,10

    . Tako bo spremenljivka i, ki ste jo deklarirali pred zanko, prešla od 1 do 10 v korakih po 1. Koraki v tem izrazu niso omenjeni, zato Fortran uporablja privzeto vrednost 1. Lahko bi tudi zapisali

    i = 1, 10, 1

  • V zanko vnesite nekaj kode (za boljšo berljivost zamaknite s presledki). Za ta program bi morali spremenljivko numSum povečati z i-tim elementom številk matrike. To se naredi z izrazom

    numSum = numSum + število (i)

  • Zanko zaključite z stavkom continue z oznako. Vnesite samo 4 presledke. Nato vnesite a 1. To je oznaka, na katero ste do-zanki povedali, naj gre po koncu. Nato vnesite presledek in nadaljujte. Izraz continue ne naredi ničesar, vendar daje dobro mesto za postavitev oznake in pokaže, da se je do-zanka končala.

Vaša zanka do bi morala izgledati tako:

do 1 i = 1, 10 numSum = numSum + številke (i) 1 nadaljuj

Nasvet: V Fortranu 95 in novejših vam ni treba uporabljati nalepk. Samo ne dajte enega v stavek do in končajte zanko z "end do" namesto "continue".

Fortran do zanka code
Fortran do zanka code

Korak 5. Natisnite numSum

Prav tako bi bilo smiselno podati nekaj konteksta, na primer "Vsota vaših številk je:". Za oboje uporabite funkcijo pisanja. Celotna koda bi morala izgledati tako:

program doda veliko implicitnih nobenih realnih števil (10) realno numSum celo število i numSum = 0 write (*, *) "Vnesite 10 številk:" preberite (*, *) številke do 1 i = 1, 10 numSum = numSum + številke (i) 1 continue write (*, *) "Njihova vsota je:" write (*, *) numSum konec programa addmany

Fortran doda številčno kodo test
Fortran doda številčno kodo test

Korak 6. Sestavite in zaženite kodo

Ne pozabite ga preizkusiti. Lahko pritisnete ↵ Enter po vsaki vneseni številki ali vnesete več številk v isto vrstico in jih ločite s presledkom.

4. del od 4: Razumevanje naprednih konceptov

Program v Fortranu Korak 13
Program v Fortranu Korak 13

Korak 1. Dobro si predstavljajte, kaj bo vaš program naredil

Pomislite, kakšni podatki so potrebni kot vhodni podatki, kako strukturirati izhodne podatke in vključite nekaj vmesnih izhodov, da boste lahko spremljali napredek svojega izračuna. To bo zelo koristno, če veste, da bo vaš izračun trajal dlje časa ali vključuje več zapletenih korakov.

Referenčno spletno mesto Fortran screenshot
Referenčno spletno mesto Fortran screenshot

Korak 2. Poiščite dobro referenco Fortrana

Fortran ima veliko več funkcij, kot je razloženo v tem članku, in bi bile lahko koristne za program, ki ga želite napisati. Sklic navaja vse funkcije, ki jih ima programski jezik. To je eno za Fortran 77 in to je za Fortran 90/95.

Fortran podprogrami example
Fortran podprogrami example

Korak 3. Spoznajte podprograme in funkcije

Fortran format niz example
Fortran format niz example

Korak 4. Naučite se brati in pisati iz/v datoteke

Naučite se tudi formatirati vhod/izhod.

Primer sodobnega fortrana screenshot
Primer sodobnega fortrana screenshot

Korak 5. Spoznajte nove funkcije Fortrana 90/95 in novejših

Ta korak preskočite, če veste, da boste pisali/vzdrževali samo kodo Fortran 77.

Ne pozabite, da je Fortran 90 uvedel izvorno kodo "Free Form", ki omogoča pisanje kode brez presledkov in brez omejitve 72 znakov

Fortran book online screenshot
Fortran book online screenshot

Korak 6. Preberite ali poiščite nekaj knjig o znanstvenem programiranju

Na primer, knjiga "Številčni recepti v Fortranu" je hkrati dobro besedilo o algoritmih znanstvenega programiranja in dober uvod v sestavljanje kod. Novejše izdaje vključujejo poglavja o programiranju v mešanem jezikovnem okolju in vzporednem programiranju. Drug primer je "Modern Fortran in Practice", ki ga je napisal Arjen Markus. Knjiga daje vpogled v to, kako napisati fortranske programe v slogu enaindvajsetega stoletja v skladu z najnovejšimi fortranškimi standardi.

Fortran prevaja program za več datotek
Fortran prevaja program za več datotek

Korak 7. Naučite se sestaviti program, ki se razprostira po več datotekah

Predpostavimo, da je vaš program Fortran razširjen po datotekah main.f in morestuff.f in da želite, da se nastala binarna datoteka imenuje allstuff. Nato morate v ukazno vrstico zapisati naslednje ukaze:

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

Nato zaženite datoteko tako, da vnesete./allstuff.

Nasvet: To deluje na enak način z novejšimi različicami Fortrana. Zamenjajte.f s pravilno razširitvijo in f77 s pravilno različico prevajalnika.

Korak 8. Uporabite optimizacijo, ki jo ponuja prevajalnik

Večina prevajalnikov vključuje optimizacijske algoritme, ki izboljšajo učinkovitost vaše kode. Ti se običajno vklopijo z vključitvijo zastavice -O, -O2 ali -O3 pri sestavljanju (spet odvisno od vaše različice fortrana).

  • Na splošno je najnižja raven -O ali -O2 najboljša. Zavedajte se, da lahko uporaba agresivnejše možnosti optimizacije povzroči napake v zapletenih kodah in lahko celo upočasni stvari! Preizkusite svojo kodo.

    Nasveti

    • Začnite z majhnimi programi. Ko izdelujete svojo kodo, poskusite prepoznati najpomembnejši del težave - ali gre za vnos podatkov ali klic funkcij, strukturo zanke (to je nekaj zelo osnovnih primerov) in začnite od tam. Nato na tem gradite v majhnih korakih.
    • Fortran ne razlikuje med velikimi in malimi črkami. Lahko bi na primer razglasili spremenljivko "real Num" in v naslednjo vrstico zapisali "num = 1", da bi ji dodelili vrednost. Ampak to je slab slog, zato se mu izogibajte. Še pomembneje je, da Fortran ne skrbi niti za primere funkcij in izjav. Pogosto je pisanje funkcij in stavkov z velikimi tiskanimi črkami, spremenljivke pa z malimi črkami.
    • EMACS je dober brezplačen urejevalnik besedil namesto Beležnice.
    • Morda boste sprva lažje uporabljali spletno IDE (integrirano razvojno okolje). Dobra možnost je Coding Ground. Tam boste našli številne programske jezike, vključno s Fortran-95. Druga možnost je Ideone.

Priporočena: