Kako programirati u Fortranu (sa slikama)

Sadržaj:

Kako programirati u Fortranu (sa slikama)
Kako programirati u Fortranu (sa slikama)

Video: Kako programirati u Fortranu (sa slikama)

Video: Kako programirati u Fortranu (sa slikama)
Video: Лучшее приложение для создания заметок — что такое Evernote, как им пользоваться 2024, Travanj
Anonim

Mnogi ljudi Fortran doživljavaju kao arhaičan i "mrtav" programski jezik. Međutim, većina znanstvenih i inženjerskih kodova napisana je na Fortranu. Kao takvo, programiranje u F77 i F90 ostaje neophodna vještina za većinu tehničkih programera. Štoviše, najnoviji Fortran standardi (2003., 2008., 2015.) omogućuju programeru da s minimalnim naporom napiše visoko učinkovit kôd, koristeći pritom sve moderne jezične značajke, poput OOP-a (objektno orijentirano programiranje). FORTRAN je kratica za "FORmula TRANslation" i najprikladniji je za matematičke i numeričke aplikacije, a ne za grafičke ili baze podataka. Većina fortran kodova unosi tekst iz datoteke ili naredbenog retka, a ne iz izbornika ili sučelja grafičkog sučelja.

Koraci

1. dio od 4: Pisanje i sastavljanje jednostavnog programa

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

Korak 1. Napišite program "Hello World"

Ovo je obično prvi program koji piše na bilo kojem jeziku i samo ispisuje "Hello world" na zaslon. Upišite bilo koji kôd u bilo koji uređivač teksta i spremite ga kao helloworld.f. Obratite pažnju da ispred svakog retka mora biti točno 6 razmaka.

program helloworld implicitno nema znakova*13 hello_string hello_string = "Zdravo, svijet!" write (*, *) hello_string završni program helloworld

Savjet: Razmaci su potrebni samo u verzijama Fortrana do FORTRANA 77. Ako koristite noviju verziju, razmake možete ispustiti. Prevesti programe iz novije verzije s f95, a ne f77; koristite.f95 kao ekstenziju datoteke umjesto samo.f.

Korak 2. Sastavite program

Da biste to učinili, u naredbeni redak upišite f77 helloworld.f. Ako ovo daje pogrešku, vjerojatno još niste instalirali Fortran kompajler kao što je na primjer gfortran.

Fortran hello world compile run
Fortran hello world compile run

Korak 3. Pokrenite svoj program

Prevoditelj je proizveo datoteku pod nazivom a.out. Pokrenite ovu datoteku upisivanjem./a.out.

Korak 4. Shvatite što ste upravo napisali

  • program helloworld

    označava početak programa "helloworld". Slično,

    kraj programa helloworld

  • označava njegov kraj.
  • Prema zadanim postavkama, ako ne deklarirate vrstu varijable, Fortran varijablu tretira imenom koje počinje slovom od i do n kao cijeli broj, a sve ostale kao realan broj. Preporuča se korištenje

    implicitno ništa

  • ako vam takvo ponašanje nije potrebno.
  • znak*13 hello_string

  • deklarira niz znakova koji se naziva hello_string.
  • hello_string = "Zdravo, svijete!"

  • dodjeljuje vrijednost "Hello, world!" na deklarirani niz. Za razliku od drugih jezika poput C -a, to se ne može učiniti na istom retku kao i deklariranje niza.
  • upišite (*, *) hello_string

  • ispisuje vrijednost hello_string na standardni izlaz. Prvi * znači pisanje na standardni izlaz, za razliku od neke datoteke. Drugi * znači ne koristiti posebno oblikovanje.
Fortran comments
Fortran comments

Korak 5. Dodajte komentar

To nije potrebno u tako jednostavnom programu, ali bit će korisno kada napišete nešto složenije, pa biste ih trebali znati dodati. Postoje dva načina za dodavanje komentara.

  • Da biste dodali komentar koji ima cijeli redak, upišite c izravno u novi redak, bez 6 razmaka. Nakon toga napišite svoj komentar. Ostavite razmak između c i komentara radi bolje čitljivosti, ali to nije potrebno. Imajte na umu da morate koristiti a! umjesto c u Fortranu 95 i novijem.
  • Da biste dodali komentar u isti redak s kodom, dodajte! gdje želite da počne vaš komentar. Opet, prostor nije potreban, ali poboljšava čitljivost.

Dio 2 od 4: Korištenje unosa i If-konstrukcija

Fortran tipovi podataka
Fortran tipovi podataka

Korak 1. Shvatite različite vrste podataka

  • INTEGER se koristi za cijele brojeve, poput 1, 3 ili -3.
  • REAL može sadržavati i broj koji nije cijeli, poput 2,5.
  • COMPLEX se koristi za spremanje složenih brojeva. Prvi broj je realan, a drugi imaginarni dio.
  • CHARACTER se koristi za znakove, poput slova ili interpunkcije.
  • LOGIČKO može biti bilo.istina. ili.false.. Ovo je poput boolean tipa u drugim programskim jezicima.

Korak 2. Dobijte unos korisnika

U programu "Hello world" koji ste ranije napisali dobivanje korisničkog unosa bilo bi beskorisno. Zato otvorite novu datoteku i dajte joj ime compnum.f. Kad završite, korisnik će reći je li broj koji je unio pozitivan, negativan ili jednak nuli.

  • Unesite programski dodatak redaka i završni programski dodatak.
  • Zatim deklarirajte varijablu tipa REAL. Provjerite je li vaša deklaracija između početka i kraja programa.
  • Objasnite korisniku što bi trebao učiniti. Napišite tekst s funkcijom pisanja.
  • Pročitajte unos korisnika u varijablu koju ste deklarirali s funkcijom čitanja.

program compnum real r write (*, *) "Unesite stvarni broj:" read (*, *) r kraj programa

Fortran if construction
Fortran if construction

Korak 3. Obradite korisnički unos s if-konstrukcijom

Stavite ga između

pročitati (*, *) r

i

završiti program

  • Usporedba se vrši s.gt. (veće od),.lt. (manje od) i. ekv. (jednako) u Fortranu.
  • Fortran podržava if, else if, and else
  • Fortranova konstrukcija if uvijek završava s krajem ako.

if (r.gt. 0) tada napišite (*, *) "Taj je broj pozitivan." inače if (r.lt. 0) tada napišite (*, *) "Taj je broj negativan." else write (*, *) "Taj broj je 0." završi ako

Savjet: Ne morate uvlačiti kôd unutar if-konstrukcija s više razmaka, ali poboljšava čitljivost.

Fortran program za provjeru broja test
Fortran program za provjeru broja test

Korak 4. Sastavite i pokrenite svoj program

Unesite neke brojeve da biste to testirali. Ako unesete slovo, pojavit će se pogreška, ali to je u redu jer program ne provjerava je li unos slovo, broj ili nešto drugo.

3. dio od 4: Korištenje petlji i nizova

Korak 1. Otvorite novu datoteku

Budući da je ovaj koncept drugačiji, morat ćete ponovno napisati novi program. Imenujte datoteku addmany.f. Umetnite odgovarajuće programske i završne izraze programa, kao i implicitnu nijednu. Kada završite, ovaj program će pročitati 10 brojeva i ispisati njihov zbroj.

Korak 2. Deklarirajte niz duljine 10

Ovdje ćete pohraniti brojeve. Budući da vjerojatno želite zbroj realnih brojeva, polje biste trebali proglasiti stvarnim. Takav niz deklarirate s

stvarni brojevi (50)

(brojevi su naziv niza, a ne izraz).

Korak 3. Deklarirajte neke varijable

Navedite numSum kao realan broj. Koristit ćete ga za kasnije spremanje zbroja, ali budući da je zbir već uzet u izraz Fortran, morate koristiti naziv poput numSum. Postavite ga na 0. Proglasite i kao cijeli broj i još mu nemojte dodijeliti nikakvu vrijednost. To će se učiniti u do-petlji.

Korak 4. Napravite do-petlju

Ekvivalent tome u drugim programskim jezicima bio bi for-loop.

  • Do-petlja uvijek počinje s do.
  • Na istom retku kao i do, odvojen razmakom, nalazi se oznaka na koju će program otići kada završi. Za sada samo napišite 1, oznaku ćete postaviti kasnije.
  • Nakon toga, opet samo odvojeno razmakom, upišite

    i = 1,10

    . Time će se varijabla i, koju ste naveli prije petlje, kretati od 1 do 10 u koracima od 1. Koraci se ne spominju u ovom izrazu, pa Fortran koristi zadanu vrijednost 1. Mogli ste također napisati

    i = 1, 10, 1

  • Umetnite neki kod unutar petlje (uvlačenje s razmacima za bolju čitljivost). Za ovaj program trebate povećati varijablu numSum s i-tim elementom brojeva niza. To je učinjeno izrazom

    numSum = numSum + broj (i)

  • Završite petlju naredbom continue koja ima oznaku. Upišite samo 4 razmaka. Nakon toga upišite 1. To je oznaka na koju ste rekli do-petlji da ide nakon što završi. Zatim upišite razmak i nastavite. Izraz continue ne radi ništa, ali daje dobro mjesto za postavljanje oznake, kao i pokazivanje da je do-petlja završila.

Vaša petlja do sada bi trebala izgledati ovako:

do 1 i = 1, 10 numSum = numSum + brojevi (i) 1 nastavi

Savjet: U Fortranu 95 i novijim ne morate koristiti oznake. Samo nemojte stavljati jedan u naredbu do i završiti petlju s "end do" umjesto "continue".

Fortran do loop code
Fortran do loop code

Korak 5. Ispišite numSum

Također, ima smisla dati neki kontekst, na primjer "Zbir vaših brojeva je:". Koristite funkciju pisanja za oboje. Cijeli vaš kôd sada bi trebao izgledati ovako:

program dodaje mnogo implicitnih nema realnih brojeva (10) real numSum cijeli broj i numSum = 0 write (*, *) "Unesite 10 brojeva:" čitajte (*, *) brojeve do 1 i = 1, 10 numSum = numSum + brojevi (i) 1 continue write (*, *) "Njihov zbroj je:" write (*, *) numSum kraj programa addmany

Fortran dodajte brojeve kod test
Fortran dodajte brojeve kod test

Korak 6. Sastavite i pokrenite svoj kôd

Ne zaboravite ga testirati. Možete pritisnuti ↵ Enter nakon svakog unesenog broja ili unijeti više brojeva u isti redak i odvojiti ih razmakom.

4. dio od 4: Razumijevanje naprednih koncepata

Program u Fortranu Korak 13
Program u Fortranu Korak 13

Korak 1. Dobro zamislite što će vaš program učiniti

Razmislite o tome koji su podaci potrebni kao ulazni podaci, kako strukturirati izlaz i uključite neki međuprodukt kako biste mogli pratiti napredak vašeg izračuna. To će biti vrlo korisno ako znate da će se vaš izračun dugo izvoditi ili uključuje više složenih koraka.

Fortran referentna web stranica screenshot
Fortran referentna web stranica screenshot

Korak 2. Pronađite dobru referencu za Fortran

Fortran ima mnogo više funkcija nego što je objašnjeno u ovom članku, a mogle bi biti korisne za program koji želite napisati. Referenca navodi sve funkcije koje programski jezik ima. Ovo je jedan za Fortran 77, a ovaj za Fortran 90/95.

Primjer podprograma Fortran
Primjer podprograma Fortran

Korak 3. Saznajte više o potprogramima i funkcijama

Primjer niza formata Fortran
Primjer niza formata Fortran

Korak 4. Naučite čitati i pisati iz/u datoteke

Također naučite kako formatirati ulaz/izlaz.

Primjer modernog fortrana screenshot
Primjer modernog fortrana screenshot

Korak 5. Saznajte više o novim značajkama Fortrana 90/95 i novijih

Preskočite ovaj korak ako znate da ćete pisati/održavati samo Fortran 77 kôd.

Upamtite da je Fortran 90 uveo izvorni kôd "Free Form", koji omogućuje pisanje koda bez razmaka i bez ograničenja od 72 znaka

Fortran book online screenshot
Fortran book online screenshot

Korak 6. Pročitajte ili potražite neke knjige o znanstvenom programiranju

Na primjer, knjiga "Numerički recepti u Fortranu" je i dobar tekst o algoritmima za znanstveno programiranje i dobar uvod u sastavljanje kodova. Novija izdanja uključuju poglavlja o tome kako programirati u okruženju mješovitog jezika i paralelno programiranje. Drugi primjer je "Moderni Fortran u praksi" koji je napisao Arjen Markus. Knjiga daje uvid u to kako napisati Fortran programe u stilu dvadeset prvog stoljeća u skladu s najnovijim Fortran standardima.

Fortran program za kompajliranje na više datoteka
Fortran program za kompajliranje na više datoteka

Korak 7. Saznajte kako sastaviti program raspoređen na više datoteka

Pretpostavimo da je vaš Fortran program raširen po datotekama main.f i morestuff.f, te da želite da rezultirajuća binarna datoteka bude imenovana allstuff. Zatim ćete morati unijeti sljedeće naredbe u naredbeni redak:

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

Zatim pokrenite datoteku upisivanjem./allstuff.

Savjet: Ovo radi na isti način s novijim verzijama Fortrana. Samo zamijenite.f ispravnim nastavkom i f77 ispravnom verzijom prevoditelja.

Korak 8. Upotrijebite optimizaciju koju nudi vaš prevoditelj

Većina prevoditelja uključuje algoritme za optimizaciju koji poboljšavaju učinkovitost vašeg koda. Oni se obično uključuju uključivanjem zastavice -O, -O2 ili -O3 prilikom sastavljanja (opet ovisno o vašoj verziji fortrana).

  • Općenito, najniža razina -O ili -O2 je najbolja. Imajte na umu da upotreba agresivnije opcije optimizacije može unijeti pogreške u složene kodove i čak usporiti stvari! Testirajte svoj kôd.

    Savjeti

    • Počnite s malim programima. Prilikom izrade vlastitog koda pokušajte identificirati najvažniji dio problema - radi li se o unosu podataka ili pozivanju funkcija, strukturi petlje (ovo su neki vrlo elementarni primjeri) i krenite odatle. Zatim gradite na tome u malim koracima.
    • Fortran ne razlikuje velika i mala slova. Možete, na primjer, proglasiti varijablu "stvarni broj" i napisati "num = 1" u sljedećem retku kako biste joj dodijelili vrijednost. Ali to je loš stil, stoga ga izbjegavajte. Što je još važnije, Fortran ne mari ni za slučaj funkcija i izjava. Uobičajeno je da se funkcije i izrazi pišu velikim slovom, a varijable malim slovima.
    • EMACS je dobar besplatni uređivač teksta koji se koristi umjesto Notepada.
    • Možda će vam u početku biti lakše koristiti mrežni IDE (integrirano razvojno okruženje). Dobra opcija je Coding Ground. Tamo ćete pronaći mnoštvo programskih jezika, uključujući Fortran-95. Druga mogućnost je Ideone.

Preporučeni: