Kuidas programmeerida Fortranis (piltidega)

Sisukord:

Kuidas programmeerida Fortranis (piltidega)
Kuidas programmeerida Fortranis (piltidega)

Video: Kuidas programmeerida Fortranis (piltidega)

Video: Kuidas programmeerida Fortranis (piltidega)
Video: CS50 2013 - Week 9 2024, Aprill
Anonim

Paljud inimesed tajuvad Fortranit arhailise ja "surnud" programmeerimiskeelena. Enamik teadus- ja insenerikoode on siiski kirjutatud Fortranis. Sellisena on programmeerimine mudelites F77 ja F90 enamiku tehniliste programmeerijate jaoks vajalik oskus. Lisaks võimaldavad uusimad Fortrani standardid (2003, 2008, 2015) programmeerijal kirjutada minimaalse vaevaga väga tõhusat koodi, kasutades samal ajal kõiki kaasaegseid keelefunktsioone, näiteks OOP (objektorienteeritud programmeerimine). FORTRAN on lühend "FORmula TRANslation" ja sobib kõige paremini matemaatiliste ja numbriliste rakenduste, mitte graafika või andmebaasirakenduste jaoks. Enamik fortrani koode võtab tekstisisestuse failist või käsurealt, mitte menüüst või graafilisest kasutajaliidesest.

Sammud

Osa 1: 4: lihtsa programmi kirjutamine ja koostamine

Fortrani teremaailma programm kirjutage parandatud
Fortrani teremaailma programm kirjutage parandatud

Samm 1. Kirjutage programm "Tere maailm"

See on tavaliselt esimene programm, mis kirjutab mis tahes keeles, ja see lihtsalt prindib ekraanile "Tere maailm". Kirjutage järgmine kood mis tahes tekstiredaktorisse ja salvestage see helloworld.f. Pöörake tähelepanu sellele, et iga rea ees peab olema täpselt 6 tühikut.

programm helloworld implicit none character*13 hello_string hello_string = "Tere, maailm!" kirjuta (*, *) tere_string lõppprogramm helloworld

Nõuanne: Tühikud on vajalikud ainult Fortrani versioonides kuni FORTRAN 77. Kui kasutate uuemat versiooni, võite tühikud tühistada. Koostage programme uuemast versioonist koos f95, mitte f77; kasutage faililaiendina.f95 asemel lihtsalt.f95.

Samm 2. Koostage programm

Selleks tippige käsureale f77 helloworld.f. Kui see annab vea, pole te tõenäoliselt veel installinud Fortrani kompilaatorit, näiteks gfortran.

Fortrani teremaailm kompileeri run
Fortrani teremaailm kompileeri run

Samm 3. Käivitage oma programm

Kompilaator on koostanud faili nimega a.out. Käivitage see fail, tippides./a.out.

Samm 4. Mõista, mida just kirjutasite

  • programm helloworld

    näitab programmi "helloworld" algust. Sarnaselt

    lõpu programm helloworld

  • näitab selle lõppu.
  • Kui te muutuja tüüpi ei deklareeri, käsitleb Fortran muutujat nimega, mis algab tähega i -st n -ni, täisarvuna ja kõiki teisi reaalarvuna. Soovitatav on kasutada

    kaudne mitte ükski

  • kui sa sellist käitumist ei vaja.
  • märk*13 tere_string

  • deklareerib märkide massiivi, mida nimetatakse tere_string.
  • hello_string = "Tere, maailm!"

  • omistab väärtuseks "Tere, maailm!" deklareeritud massiivile. Erinevalt teistest keeltest, näiteks C, ei saa seda teha massiivi deklareerimisega samal real.
  • kirjuta (*, *) tere_string

  • prindib standardväljundile väärtuse hello_string. Esimene * tähendab kirjutamist standardväljundisse, mitte mõnele failile. Teine * tähendab, et ei tohi kasutada mingeid erivorminguid.
Fortrani kommentaarid
Fortrani kommentaarid

Samm 5. Lisage kommentaar

See pole nii lihtsa programmi puhul vajalik, kuid see on kasulik, kui kirjutate midagi keerukamat, nii et peaksite teadma, kuidas neid lisada. Kommentaari lisamiseks on kaks võimalust.

  • Kommentaari lisamiseks, millel on terve rida, kirjutage c otse uude reasse, ilma 6 tühikuta. Pärast seda kirjutage oma kommentaar. Parem loetavuse huvides peaksite tühiku c ja kommentaari vahele jätma, kuid see pole nõutav. Pange tähele, et peate kasutama a! c asemel Fortran 95 ja uuem.
  • Koodiga samale reale kommentaari lisamiseks lisage a! kust soovite oma kommentaari alustada. Jällegi pole tühikut vaja, kuid see parandab loetavust.

Osa 2/4: Sisendi ja If-konstruktsioonide kasutamine

Fortrani andmetüübid
Fortrani andmetüübid

Samm 1. Mõista erinevaid andmetüüpe

  • INTEGERi kasutatakse täisarvude jaoks, näiteks 1, 3 või -3.
  • REAL võib sisaldada ka numbrit, mis pole tervik, näiteks 2,5.
  • KOMPLEKSI kasutatakse kompleksarvude salvestamiseks. Esimene number on tegelik ja teine kujuteldav osa.
  • CHARACTER kasutatakse tähemärkide, näiteks tähtede ja kirjavahemärkide jaoks.
  • LOOGILINE võib olla kas.tõde. või.vale.. See on nagu boolean tüüp teistes programmeerimiskeeltes.

Samm 2. Hankige kasutaja sisend

Programmis "Tere maailm", mille te varem kirjutasite, oleks kasutaja sisendi saamine kasutu. Nii et avage uus fail ja pange sellele nimi compnum.f. Kui olete selle lõpetanud, ütleb see kasutajale, kas tema sisestatud arv on positiivne, negatiivne või võrdub nulliga.

  • Sisestage ridade programm compnum ja lõpetage programmi compnum.
  • Seejärel deklareerige muutuja tüüpi REAL. Veenduge, et teie deklaratsioon oleks programmi alguse ja lõpu vahel.
  • Selgitage kasutajale, mida ta peaks tegema. Kirjutage kirjutamisfunktsiooniga teksti.
  • Lugege kasutaja sisend muutujale, mille deklareerisite lugemisfunktsiooniga.

programm compnum reaalne r kirjutada (*, *) "Sisestage reaalarv:" loe (*, *) r lõppprogramm

Fortran kui ehitus
Fortran kui ehitus

Samm 3. Töötage kasutaja sisend if-konstruktsiooniga

Pange see vahele

loe (*, *) r

ja

lõpuprogramm

  • Võrdlust tehakse.gt. (suurem kui),.lt. (vähem kui) ja.eq. (võrdne) Fortranis.
  • Fortran toetab if, else if ja else
  • Fortrani if-konstruktsioon lõpeb alati lõpuga if.

kui (r.gt. 0), siis kirjuta (*, *) "See arv on positiivne." muidu kui (r.lt. 0), siis kirjuta (*, *) "See arv on negatiivne." muidu kirjuta (*, *) "See arv on 0." lõpp, kui

Nõuanne: Te ei pea rohkem tühikutega if-konstruktsioonide sees koodi taandama, kuid see parandab loetavust.

Fortrani numbrikontrolli programm test
Fortrani numbrikontrolli programm test

Samm 4. Koostage ja käivitage oma programm

Selle testimiseks sisestage mõned numbrid. Kui sisestate tähe, tekitab see vea, kuid sellest pole midagi, sest programm ei kontrolli, kas sisend on täht, number või midagi muud.

Osa 3/4: Silmuste ja massiivide kasutamine

Samm 1. Avage uus fail

Kuna see kontseptsioon on erinev, peate uuesti uue programmi kirjutama. Nimetage fail addmany.f. Sisestage vastav programmi ja programmi lõpplause ning kaudne mitte. Kui olete lõpetanud, loeb see programm 10 numbrit ja prindib nende summa.

Samm 2. Kuulutage massiiv pikkusega 10

Siia salvestate numbrid. Kuna soovite tõenäoliselt reaalarvude summat, peaksite massiivi reaalseks kuulutama. Sellise massiivi deklareerite

tegelikud numbrid (50)

(numbrid on massiivi nimi, mitte avaldis).

Samm 3. Deklareerige mõned muutujad

Kuuluta numSum reaalarvuks. Kasutate seda summa salvestamiseks hiljem, kuid kuna summa on juba Fortrani avaldise poolt võetud, peate kasutama sellist nime nagu numSum. Määrake see väärtuseks 0. Kuulutage i täisarvuks ja ärge määrake sellele veel väärtust. Seda tehakse do-loopis.

Samm 4. Loo do-loop

Teiste programmeerimiskeelte ekvivalent oleks for-loop.

  • Do-loop algab alati do-ga.
  • Doga samal real on tühikuga eraldatud silt, millele programm pärast lõpetamist läheb. Praegu kirjutage lihtsalt 1, määrate sildi hiljem.
  • Pärast seda sisestage jälle ainult tühik

    i = 1, 10

    . See muudab muutuja i, mille deklareerisite enne tsüklit, 1 -nda sammuga 1 kuni 10. Samme pole selles avaldises mainitud, seega kasutab Fortran vaikeväärtust 1. Võiksite ka kirjutada

    i = 1, 10, 1

  • Pange mõni kood silmusesse (parema loetavuse jaoks taane tühikutega). Selle programmi puhul peaksite suurendama muutujat numSum massiivi numbrite i-nda elemendiga. Seda tehakse väljendiga

    numSum = numSum + arv (i)

  • Lõpetage tsükkel jätkamislausel, millel on silt. Sisestage ainult 4 tühikut. Seejärel tippige 1. See on silt, millele te käskisite pärast lõpetamist minna. Seejärel tippige tühik ja jätkake. Jätkamisavaldus ei tee midagi, kuid annab hea koha sildi paigutamiseks, samuti näitab, et do-loop lõppes.

Teie do loop peaks nüüd välja nägema selline:

do 1 i = 1, 10 numSum = numSum + numbrid (i) 1 jätka

Nõuanne: Fortran 95 ja uuemates versioonides ei pea te silte kasutama. Lihtsalt ärge pange ühte lausesse do ja lõpetage tsükkel sõnaga "end do", mitte "jatka".

Fortran do loop code
Fortran do loop code

Samm 5. Printige numSum

Samuti oleks mõttekas tuua mõni kontekst, näiteks "Teie numbrite summa on:". Kasutage mõlema jaoks kirjutamisfunktsiooni. Kogu teie kood peaks nüüd välja nägema järgmine:

programmi lisamäärasid kaudselt mitte ühtegi reaalarvu (10) tegelik arvSumma täisarv i numSum = 0 kirjutama (*, *) "Sisestage 10 numbrit:" loe (*, *) numbrid teevad 1 i = 1, 10 numSum = numSum + numbrid (i) 1 jätka kirjutamist (*, *) "Nende summa on:" kirjuta (*, *) numSum lõpeb programmi lisaga

Fortran lisab numbrikoodi test
Fortran lisab numbrikoodi test

Samm 6. Koostage ja käivitage oma kood

Ärge unustage seda testida. Võite vajutada ↵ sisestusklahvi pärast iga sisestatud numbrit või sisestada samale reale palju numbreid ja eraldada need tühikuga.

Osa 4/4: Täiustatud mõistete mõistmine

Programm Fortranis 13. samm
Programm Fortranis 13. samm

Samm 1. Kas teil on hea ettekujutus sellest, mida teie programm teeb

Mõelge, milliseid andmeid on sisendiks vaja, kuidas väljundit struktureerida ja lisage mõni vaheväljund, et saaksite oma arvutuste edenemist jälgida. See on väga kasulik, kui teate, et teie arvutused kestavad kaua või hõlmavad mitut keerulist toimingut.

Fortrani veebisaidi ekraanipilt
Fortrani veebisaidi ekraanipilt

Samm 2. Leidke hea Fortrani viide

Fortranil on palju rohkem funktsioone, kui selles artiklis selgitatud, ja need võivad olla kasulikud programmi jaoks, mida soovite kirjutada. Viit sisaldab kõiki programmeerimiskeele funktsioone. See on üks Fortran 77 ja see on Fortran 90/95 jaoks.

Fortrani alamprogrammide näide
Fortrani alamprogrammide näide

Samm 3. Lugege alamprogrammide ja funktsioonide kohta

Fortrani vormingu stringi näide
Fortrani vormingu stringi näide

Samm 4. Õppige lugema ja failidest/failidesse kirjutama

Õppige ka sisendi/väljundi vormindamist.

Kaasaegne fortrani näide screenshot
Kaasaegne fortrani näide screenshot

Samm 5. Tutvuge Fortran 90/95 ja uuemate funktsioonidega

Jätke see samm vahele, kui teate, et kirjutate/hooldate ainult Fortran 77 koodi.

Pidage meeles, et Fortran 90 tutvustas lähtekoodi "Vaba vorm", mis võimaldab koodi kirjutada tühikute ja 72 tähemärgi piiranguta

Fortrani raamatu veebipilt screenshot
Fortrani raamatu veebipilt screenshot

Samm 6. Lugege või otsige teadusliku programmeerimise teemalisi raamatuid

Näiteks raamat "Numbrilised retseptid Fortranis" on nii hea tekst teadusliku programmeerimise algoritmide kohta kui ka hea sissejuhatus koodide kokkupanemiseks. Uuemad väljaanded sisaldavad peatükke, kuidas programmeerida segakeelses keskkonnas ja paralleelset programmeerimist. Teine näide on Arjen Markuse kirjutatud "Modern Fortran in Practice". Raamat annab ülevaate sellest, kuidas kirjutada Fortrani programme kahekümne esimese sajandi stiilis vastavalt uusimatele Fortrani standarditele.

Fortrani kompileerimisprogramm mitme faili vahel
Fortrani kompileerimisprogramm mitme faili vahel

Samm 7. Siit saate teada, kuidas koostada programm, mis on jaotatud mitme faili vahel

Oletame, et teie Fortrani programm on levinud failides main.f ja morestuff.f ning et soovite, et saadud binaar saaks nime allstuff. Seejärel peate käsureale kirjutama järgmised käsud:

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

Seejärel käivitage fail, tippides./allstuff.

Nõuanne: See toimib samamoodi ka Fortrani uuemate versioonidega. Lihtsalt asendage.f õige laiendiga ja f77 õige kompilaatori versiooniga.

Samm 8. Kasutage kompilaatori pakutavat optimeerimist

Enamik koostajaid sisaldab optimeerimisalgoritme, mis parandavad teie koodi tõhusust. Need lülitatakse tavaliselt sisse, lisades kompileerimisel lipu -O, -O2 või -O3 (olenevalt teie fortrani versioonist).

  • Üldiselt on parim madalaim tase -O või -O2. Pidage meeles, et agressiivsema optimeerimisvaliku kasutamine võib keerulistes koodides tõrkeid tuua ja isegi asju aeglustada! Testige oma koodi.

    Näpunäiteid

    • Alustage väikeste programmidega. Kui teete oma koodi, proovige tuvastada probleemi kõige olulisem osa - kas see on andmete sisestamine või funktsioonide kutsumine, tsükli struktuur (need on mõned väga elementaarsed näited) ja alustage sealt. Seejärel tuginege sellele väikeste sammudega.
    • Fortran ei ole tõstutundlik. Näiteks võite deklareerida muutuja "reaalseks numbriks" ja kirjutada järgmisele reale väärtuse määramiseks "num = 1". Kuid see on halb stiil, nii et vältige seda. Veelgi olulisem on see, et Fortran ei hooli ka funktsioonide ja avalduste juhtumist. On üsna tavaline, et funktsioonid ja avaldused kirjutatakse suurtähtedega ja muutujad väiketähtedega.
    • EMACS on hea tasuta tekstiredaktor, mida kasutada Notepadi asemel.
    • Esialgu võib teil olla lihtsam kasutada veebipõhist IDE -d (integreeritud arenduskeskkond). Hea võimalus on Coding Ground. Sealt leiate palju programmeerimiskeeli, sealhulgas Fortran-95. Teine võimalus on Ideone.

Soovitan: