Kuinka ohjelmoida Fortranissa (kuvilla)

Sisällysluettelo:

Kuinka ohjelmoida Fortranissa (kuvilla)
Kuinka ohjelmoida Fortranissa (kuvilla)

Video: Kuinka ohjelmoida Fortranissa (kuvilla)

Video: Kuinka ohjelmoida Fortranissa (kuvilla)
Video: 10 suosituinta Windows 10 -sovellusta 2024, Maaliskuu
Anonim

Monet ihmiset pitävät Fortrania vanhanaikaisena ja "kuolleena" ohjelmointikielenä. Useimmat tieteelliset ja tekniset koodit on kuitenkin kirjoitettu Fortranissa. Ohjelmointi F77: ssä ja F90: ssä on edelleen välttämätön taito useimmille teknisille ohjelmoijille. Lisäksi uusimmat Fortran-standardit (2003, 2008, 2015) antavat ohjelmoijalle mahdollisuuden kirjoittaa erittäin tehokasta koodia pienellä vaivalla hyödyntäen samalla kaikkia nykyaikaisia kielitoimintoja, kuten OOP (olio-ohjelmointi). FORTRAN on lyhenne sanoista "FORmula TRANslation", ja se sopii parhaiten matemaattisiin ja numeerisiin sovelluksiin grafiikan tai tietokantasovellusten sijasta. Useimmat fortran-koodit käyttävät tekstinsyöttöä tiedostosta tai komentoriviltä eikä valikosta tai graafisesta käyttöliittymästä.

Askeleet

Osa 1/4: Yksinkertaisen ohjelman kirjoittaminen ja kokoaminen

Fortran Hello World -ohjelma kirjoita korjattu
Fortran Hello World -ohjelma kirjoita korjattu

Vaihe 1. Kirjoita "Hello World" -ohjelma

Tämä on yleensä ensimmäinen ohjelma, joka kirjoittaa millä tahansa kielellä, ja se tulostaa vain "Hello world" ruudulle. Kirjoita seuraava koodi mihin tahansa tekstieditoriin ja tallenna se helloworld.f. Huomaa, että jokaisen rivin edessä on oltava täsmälleen 6 välilyöntiä.

ohjelma helloworld implicit none character*13 hello_string hello_string = "Hei, maailma!" kirjoittaa (*, *) hello_string end program helloworld

Kärki: Välit ovat välttämättömiä vain Fortran -versioissa FORTRAN 77. Jos käytät uudempaa versiota, voit pudottaa välilyönnit. Kokoa ohjelmat uudemmasta versiosta, jossa on f95, ei f77; käytä.f95 -tiedostotunnistetta vain.f -tiedoston sijaan.

Vaihe 2. Kokoa ohjelma

Voit tehdä tämän kirjoittamalla komentoriville f77 helloworld.f. Jos tämä antaa virheen, et todennäköisesti ole vielä asentanut Fortran -kääntäjää, kuten esimerkiksi gfortran.

Fortran hello world kääntää run
Fortran hello world kääntää run

Vaihe 3. Suorita ohjelma

Kääntäjä on tuottanut tiedoston nimeltä a.out. Suorita tämä tiedosto kirjoittamalla./a.out.

Vaihe 4. Ymmärrä mitä kirjoitit

  • ohjelma helloworld

    osoittaa "helloworld" -ohjelman alkua. Samoin,

    lopeta helloworld -ohjelma

  • osoittaa sen lopun.
  • Jos et ilmoita muuttujatyyppiä, Fortran käsittelee oletusarvoisesti muuttujan, jonka nimi alkaa kirjaimella i: stä n: ään kokonaislukuna ja kaikki muut reaaliluvuna. On suositeltavaa käyttää

    epäsuorasti ei mitään

  • jos et tarvitse sellaista käytöstä.
  • merkki*13 hello_string

  • ilmoittaa merkkijonon, jota kutsutaan hello_stringiksi.
  • hello_string = "Hei, maailma!"

  • määrittää arvon "Hei, maailma!" ilmoitettuun taulukkoon. Toisin kuin muilla kielillä, kuten C, tätä ei voida tehdä samalla rivillä kuin taulukon ilmoittaminen.
  • kirjoita (*, *) hello_string

  • tulostaa hello_string -arvon vakioulostuloon. Ensimmäinen * tarkoittaa kirjoittamista vakiolähtöön, toisin kuin jotkut tiedostot. Toinen * tarkoittaa, että et käytä mitään erityistä muotoilua.
Fortran kommentit
Fortran kommentit

Vaihe 5. Lisää kommentti

Tämä ei ole välttämätöntä tällaisessa yksinkertaisessa ohjelmassa, mutta siitä on hyötyä, kun kirjoitat jotain monimutkaisempaa, joten sinun pitäisi tietää, kuinka lisätä ne. Voit lisätä kommentin kahdella tavalla.

  • Jos haluat lisätä kommentin, jossa on kokonainen rivi, kirjoita c suoraan uudelle riville ilman 6 välilyöntiä. Kirjoita sen jälkeen kommenttisi. Jätä välilyönti c: n ja kommenttisi väliin paremman luettavuuden vuoksi, mutta tämä ei ole pakollista. Huomaa, että sinun on käytettävä a! c: n sijasta Fortran 95: ssä ja uudemmissa.
  • Jos haluat lisätä kommentin samalla rivillä koodin kanssa, lisää! mistä haluat kommenttisi alkavan. Jälleen tilaa ei tarvita, mutta se parantaa luettavuutta.

Osa 2/4: Syötteen ja If-rakenteiden käyttäminen

Fortran -tietotyypit
Fortran -tietotyypit

Vaihe 1. Ymmärrä eri tietotyypit

  • INTEGERiä käytetään kokonaislukuihin, kuten 1, 3 tai -3.
  • REAL voi sisältää myös luvun, joka ei ole kokonainen, kuten 2.5.
  • COMPLEX käytetään kompleksilukujen tallentamiseen. Ensimmäinen numero on todellinen ja toinen kuvitteellinen osa.
  • CHARACTER -merkkiä käytetään merkkeihin, kuten kirjaimiin tai välimerkkeihin.
  • LOGINEN voi olla joko.tosi. tai.false.. Tämä on kuin boolean -tyyppi muilla ohjelmointikielillä.

Vaihe 2. Hanki käyttäjän mielipide

Aiemmin kirjoittamassasi "Hello world" -ohjelmassa käyttäjän syötteen saaminen olisi hyödytöntä. Joten avaa uusi tiedosto ja anna sille nimi compnum.f. Kun olet valmis, se kertoo käyttäjälle, onko syöttämäsi luku positiivinen, negatiivinen vai nolla.

  • Syötä rivit ohjelmayhdistelmä ja lopeta ohjelman kokoonpano.
  • Ilmoita sitten REAL -tyyppinen muuttuja. Varmista, että ilmoituksesi on ohjelman alussa ja lopussa.
  • Selitä käyttäjälle, mitä hänen pitäisi tehdä. Kirjoita tekstiä kirjoitustoiminnolla.
  • Lue käyttäjän syöte lukutoiminnolla ilmoittamaasi muuttujaan.

ohjelma compnum real r write (*, *) "Anna reaaliluku:" read (*, *) r end program

Fortran jos rakentaminen
Fortran jos rakentaminen

Vaihe 3. Käsittele käyttäjän syöttämä if-rakenne

Laita se väliin

lue (*, *) r

ja

lopeta ohjelma

  • Vertailu tehdään.gt. (suurempi kuin),.lt. (alle) ja.eq (yhtä) Fortranissa.
  • Fortran tukee if, else if ja else
  • Fortranin if-rakentaminen päättyy aina loppuun, jos.

jos (r.gt. 0), kirjoita (*, *) "Tämä luku on positiivinen." muuten jos (r.lt. 0) kirjoita (*, *) "Tämä luku on negatiivinen." muuten kirjoita (*, *) "Tämä luku on 0." loppu Jos

Kärki: Sinun ei tarvitse lisätä sisennystä koodiin if-rakenteissa, joissa on enemmän välilyöntejä, mutta se parantaa luettavuutta.

Fortran -numeroiden tarkistusohjelma test
Fortran -numeroiden tarkistusohjelma test

Vaihe 4. Kokoa ja suorita ohjelma

Syötä joitain numeroita testataksesi sitä. Jos kirjoitat kirjaimen, se aiheuttaa virheen, mutta se ei haittaa, koska ohjelma ei tarkista, onko syöte kirjain, numero vai jotain muuta.

Osa 3/4: Silmukoiden ja matriisien käyttö

Vaihe 1. Avaa uusi tiedosto

Koska tämä käsite on erilainen, sinun on kirjoitettava uusi ohjelma uudelleen. Nimeä tiedosto addmany.f. Lisää vastaava ohjelma- ja lopetusohjelmalausunto sekä implisiittinen lausunto. Kun olet valmis, tämä ohjelma lukee 10 numeroa ja tulostaa niiden summan.

Vaihe 2. Ilmoita taulukko, jonka pituus on 10

Tähän tallennat numerot. Koska haluat todennäköisesti reaalilukujen summan, sinun on ilmoitettava taulukko todelliseksi. Ilmoitat tällaisen taulukon kanssa

todelliset luvut (50)

(numerot ovat taulukon nimi, ei lauseke).

Vaihe 3. Ilmoita muuttujat

Ilmoita numSum reaaliluvuksi. Käytät sitä summan tallentamiseen myöhemmin, mutta koska summa on jo otettu Fortran -lausekkeesta, sinun on käytettävä nimeä, kuten numSum. Aseta arvoksi 0. Ilmoita i kokonaisluvuksi äläkä anna sille vielä mitään arvoa. Se tehdään do-loopissa.

Vaihe 4. Luo do-loop

Vastaava muilla ohjelmointikielillä olisi for-loop.

  • Do-loop alkaa aina do: lla.
  • Samalla rivillä kuin do, välilyönnillä erotettuna, on tarra, johon ohjelma siirtyy, kun se on valmis. Kirjoita nyt vain 1, määrität tarran myöhemmin.
  • Kirjoita sen jälkeen jälleen vain välilyönnillä erotettu

    i = 1, 10

    . Tämä tekee muuttujasta i, jonka olit ilmoittanut ennen silmukkaa, 1: stä 10: een vaiheissa 1. Vaiheita ei mainita tässä lausekkeessa, joten Fortran käyttää oletusarvoa 1. Voit myös kirjoittaa

    i = 1, 10, 1

  • Laita jokin koodi silmukan sisään (sisennys, jossa on välilyöntejä paremman luettavuuden takaamiseksi). Tätä ohjelmaa varten sinun on lisättävä muuttuja numSum taulukon numeroiden i-elementillä. Tämä tehdään ilmaisulla

    numSum = numSum + luku (i)

  • Lopeta silmukka jatkolausekkeella, jossa on tarra. Kirjoita vain 4 välilyöntiä. Kirjoita sen jälkeen 1. Tämä on etiketti, johon kerroit do-loopin siirtyvän sen päätyttyä. Kirjoita sitten välilyönti ja jatka. Jatka-lauseke ei tee mitään, mutta se antaa hyvän paikan tarran sijoittamiseen sekä osoittaa, että do-loop on päättynyt.

Do -silmukkasi pitäisi nyt näyttää tältä:

do 1 i = 1, 10 numSum = numSum + numerot (i) 1 jatka

Kärki: Fortran 95: ssä ja uudemmissa tarroja ei tarvitse käyttää. Älä vain laita yhtä do -lauseeseen ja lopeta silmukka "end do" -merkinnällä "jatka" -vaihtoehdon sijaan.

Fortran do loop code
Fortran do loop code

Vaihe 5. Tulosta numSum

Lisäksi olisi järkevää antaa jokin konteksti, esimerkiksi "Numeroidesi summa on:". Käytä kirjoitustoimintoa molemmille. Koko koodisi pitäisi nyt näyttää tältä:

ohjelma addmany implisiittinen ei mitään todellisia numeroita (10) real numSum kokonaisluku i numSum = 0 write (*, *) "Syötä 10 numeroa:" luku (*, *) numerot tekevät 1 i = 1, 10 numSum = numSum + numerot (i) 1 jatka kirjoittamista (*, *) "Niiden summa on:" write (*, *) numSum end program addmany

Fortran lisää numeroiden koodi test
Fortran lisää numeroiden koodi test

Vaihe 6. Käännä ja suorita koodisi

Älä unohda testata sitä. Voit joko painaa ↵ Enter jokaisen syöttämäsi numeron jälkeen tai kirjoittaa useita numeroita samalla rivillä ja erottaa ne välilyönnillä.

Osa 4/4: Kehittyneiden käsitteiden ymmärtäminen

Ohjelma Fortranissa vaiheessa 13
Ohjelma Fortranissa vaiheessa 13

Vaihe 1. Hanki hyvä käsitys siitä, mitä ohjelmasi tekee

Ajattele, millaista dataa tarvitaan syötteeksi, miten tulostus jäsennellään, ja sisällytä välitulostusta, jotta voit seurata laskentasi edistymistä. Tämä on erittäin hyödyllistä, jos tiedät, että laskelmasi kestää pitkään tai sisältää useita monimutkaisia vaiheita.

Fortranin verkkosivuston kuvakaappaus
Fortranin verkkosivuston kuvakaappaus

Vaihe 2. Etsi hyvä Fortran -viite

Fortranilla on paljon enemmän toimintoja kuin tässä artikkelissa selitetään, ja ne voivat olla hyödyllisiä ohjelmalle, jonka haluat kirjoittaa. Viite luettelee kaikki ohjelmointikielen toiminnot. Tämä on yksi Fortran 77: lle ja tämä Fortran 90/95: lle.

Fortran -aliohjelmat esimerkki
Fortran -aliohjelmat esimerkki

Vaihe 3. Tutustu aliohjelmiin ja toimintoihin

Fortran -muotoinen merkkijono esimerkki
Fortran -muotoinen merkkijono esimerkki

Vaihe 4. Opi lukemaan ja kirjoittamaan tiedostoista/tiedostoihin

Opettele myös tulojen ja tulostusten muotoilu.

Moderni fortran -esimerkki kuvakaappaus
Moderni fortran -esimerkki kuvakaappaus

Vaihe 5. Tutustu Fortran 90/95: n ja uudempien ominaisuuksiin

Ohita tämä vaihe, jos tiedät, että kirjoitat/ylläpidät vain Fortran 77 -koodia.

Muista, että Fortran 90 esitteli "vapaamuotoisen" lähdekoodin, jonka avulla koodi voidaan kirjoittaa ilman välilyöntejä ja ilman 72 merkin rajaa

Fortran -kirjan online -kuvakaappaus
Fortran -kirjan online -kuvakaappaus

Vaihe 6. Lue tai etsi joitakin tieteellistä ohjelmointia käsitteleviä kirjoja

Esimerkiksi kirja "Numeeriset reseptit Fortranissa" on sekä hyvä teksti tieteellisistä ohjelmointialgoritmeista että hyvä johdanto koodien kokoamiseen. Uusimpiin painoksiin kuuluu lukuja siitä, miten ohjelmoidaan sekakielisessä ympäristössä ja rinnakkaisesta ohjelmoinnista. Toinen esimerkki on Arjen Markuksen kirjoittama "Modern Fortran in Practice". Kirja antaa käsityksen siitä, kuinka kirjoittaa Fortran-ohjelmia 21. vuosisadan tyyliin uusimpien Fortran-standardien mukaisesti.

Fortran kääntää ohjelman useille tiedostoille
Fortran kääntää ohjelman useille tiedostoille

Vaihe 7. Opi kääntämään ohjelma, joka on jaettu useisiin tiedostoihin

Oletetaan, että Fortran -ohjelmasi on levinnyt tiedostoihin main.f ja morestuff.f ja haluat, että tuloksena oleva binaari nimetään allstuff. Sitten sinun on kirjoitettava komentoriville seuraavat komennot:

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

Suorita sitten tiedosto kirjoittamalla./allstuff.

Kärki: Tämä toimii samalla tavalla Fortranin uudempien versioiden kanssa. Korvaa vain.f oikealla laajennuksella ja f77 oikealla kääntäjäversiolla.

Vaihe 8. Käytä kääntäjän tarjoamaa optimointia

Useimmat kääntäjät sisältävät optimointialgoritmeja, jotka parantavat koodisi tehokkuutta. Nämä on yleensä otettu käyttöön sisällyttämällä -O, -O2 tai -O3 -lippu kääntäessäsi (jälleen riippuen fortran -versiosta).

  • Yleensä alin taso -O tai -O2 on paras. Huomaa, että aggressiivisemman optimointivaihtoehdon käyttäminen voi aiheuttaa virheitä monimutkaisissa koodeissa ja jopa hidastaa asioita! Testaa koodisi.

    Vinkkejä

    • Aloita pienillä ohjelmilla. Kun teet omaa koodiasi, yritä tunnistaa ongelman olennaisin osa - onko se syötetty tieto tai toimintojen kutsuminen, silmukan rakenne (nämä ovat joitakin hyvin yksinkertaisia esimerkkejä) ja aloita siitä. Kehitä sitten sitä pienin erin.
    • Fortran ei erota kirjainkokoa. Voit esimerkiksi julistaa muuttujan "todellinen numero" ja kirjoittaa "num = 1" seuraavalle riville arvon määrittämiseksi sille. Mutta se on huono tyyli, joten vältä sitä. Vielä tärkeämpää on, että Fortran ei myöskään välitä funktioiden ja lausuntojen tapauksesta. On melko tavallista kirjoittaa funktioita ja lausekkeita isoilla kirjaimilla ja muuttujia pienillä kirjaimilla.
    • EMACS on hyvä ilmainen tekstieditori käytettäväksi Notepadin sijaan.
    • Saatat löytää aluksi helpompaa käyttää online -IDE: tä (integroitu kehitysympäristö). Hyvä vaihtoehto on Coding Ground. Löydät monia ohjelmointikieliä, mukaan lukien Fortran-95. Toinen vaihtoehto on Ideone.

Suositeltava: