Kaip programuoti „Fortran“(su nuotraukomis)

Turinys:

Kaip programuoti „Fortran“(su nuotraukomis)
Kaip programuoti „Fortran“(su nuotraukomis)

Video: Kaip programuoti „Fortran“(su nuotraukomis)

Video: Kaip programuoti „Fortran“(su nuotraukomis)
Video: NEW ✅ c̶h̶e̶c̶k̶l̶i̶s̶t̶ setting on Evernote 10.46.7 #Shorts 2024, Balandis
Anonim

Daugelis žmonių „Fortran“suvokia kaip archajišką ir „negyvą“programavimo kalbą. Tačiau dauguma mokslinio ir inžinerinio kodo parašyta „Fortran“. Taigi programavimas F77 ir F90 išlieka būtinas įgūdis daugumai techninių programuotojų. Be to, naujausi „Fortran“standartai (2003, 2008, 2015 m.) Leidžia programuotojui su minimaliomis pastangomis parašyti labai efektyvų kodą, naudojant visas šiuolaikines kalbos funkcijas, tokias kaip OOP (į objektą orientuotas programavimas). FORTRAN yra „FORmula TRANslation“santrumpa ir geriausiai tinka matematinėms ir skaitinėms, o ne grafinėms ar duomenų bazėms. Dauguma fortran kodų priima tekstą iš failo arba komandinės eilutės, o ne iš meniu ar GUI sąsajos.

Žingsniai

1 dalis iš 4: Paprastos programos rašymas ir sudarymas

„Fortran hello world“programa rašykite pataisytą
„Fortran hello world“programa rašykite pataisytą

Žingsnis 1. Parašykite programą „Labas pasaulis“

Paprastai tai yra pirmoji programa, parašyta bet kokia kalba, ir ji tiesiog spausdina „Hello world“į ekraną. Įrašykite šį kodą į bet kurį teksto redaktorių ir išsaugokite jį kaip helloworld.f. Atkreipkite dėmesį, kad prieš kiekvieną eilutę turi būti lygiai 6 tarpai.

programa helloworld implicit nė vienas simbolis*13 hello_string hello_string = "Sveiki, pasauli!" rašyti (*, *) hello_string pabaigos programa helloworld

Patarimas: Tarpai reikalingi tik „Fortran“versijose iki FORTRAN 77. Jei naudojate naujesnę versiją, galite išmesti tarpus. Sudarykite programas iš naujesnės versijos su f95, o ne f77; naudokite.f95 kaip failo plėtinį, o ne tik.f.

Žingsnis 2. Sudarykite programą

Norėdami tai padaryti, į komandų eilutę įveskite f77 helloworld.f. Jei tai sukelia klaidą, tikriausiai dar neįdiegėte „Fortran“kompiliatoriaus, pvz., „Gfortran“.

„Fortran hello world“kompiliuoti run
„Fortran hello world“kompiliuoti run

Žingsnis 3. Paleiskite savo programą

Kompiliatorius sukūrė failą, pavadintą a.out. Paleiskite šį failą įvesdami./a.out.

Žingsnis 4. Supraskite, ką ką tik parašėte

  • programa helloworld

    rodo programos „helloworld“pradžią. Panašiai,

    pabaigos programa helloworld

  • rodo jo pabaigą.
  • Pagal numatytuosius nustatymus, jei nedeklaruojate kintamojo tipo, „Fortran“kintamąjį pavadina vardu, prasidedančiu raide nuo i iki n, kaip sveiką skaičių, o visus kitus - tikrą skaičių. Rekomenduojama naudoti

    numanomas nė vienas

  • jei tau tokio elgesio nereikia.
  • simbolis*13 hello_string

  • deklaruoja simbolių masyvą, kuris vadinamas hello_string.
  • hello_string = "Sveikas, pasauli!"

  • priskiria vertę "Sveikas, pasauli!" į deklaruojamą masyvą. Skirtingai nuo kitų kalbų, tokių kaip C, to negalima padaryti toje pačioje eilutėje, kaip ir masyvo deklaravimas.
  • rašyti (*, *) sveiki_stringa

  • spausdina hello_string reikšmę į standartinę išvestį. Pirmasis * reiškia rašymą į standartinę išvestį, o ne kai kuriuos failus. Antrasis * reiškia nenaudoti jokio specialaus formatavimo.
Fortrano komentarai
Fortrano komentarai

Žingsnis 5. Pridėkite komentarą

Tai nėra būtina tokioje paprastoje programoje, tačiau ji bus naudinga rašant ką nors sudėtingesnio, todėl turėtumėte žinoti, kaip juos pridėti. Yra du būdai pridėti komentarą.

  • Norėdami pridėti komentarą, kuriame yra visa eilutė, parašykite c tiesiai į naują eilutę be 6 tarpų. Po to parašykite savo komentarą. Turėtumėte palikti tarpą tarp c ir komentaro, kad būtų lengviau skaityti, tačiau tai nėra būtina. Atminkite, kad turite naudoti a! vietoj c „Fortran 95“ir naujesnėse versijose.
  • Norėdami pridėti komentarą toje pačioje eilutėje kaip ir kodas, pridėkite! kur norite pradėti savo komentarą. Vėlgi, tarpas nereikalingas, tačiau pagerina skaitymą.

2 dalis iš 4: Įvesties ir „If-Constructions“naudojimas

„Fortran“duomenų tipai
„Fortran“duomenų tipai

Žingsnis 1. Supraskite skirtingus duomenų tipus

  • INTEGER naudojamas sveikiems skaičiams, pvz., 1, 3 arba -3.
  • REAL taip pat gali būti skaičius, kuris nėra visas, pvz., 2,5.
  • COMPLEX naudojamas sudėtingiems skaičiams saugoti. Pirmasis skaičius yra tikrasis, o antrasis - įsivaizduojama dalis.
  • CHARACTER naudojamas simboliams, pvz., Raidėms ar skyrybai.
  • LOGINIS gali būti arba.tiesa. arba.false.. Tai panašu į loginį tipą kitomis programavimo kalbomis.

Žingsnis 2. Gaukite vartotojo įvestį

Programoje „Labas pasaulis“, kurią parašėte anksčiau, gauti vartotojo įvesties būtų nenaudinga. Taigi atidarykite naują failą ir pavadinkite jį compnum.f. Kai baigsite, vartotojui bus pranešta, ar įvestas skaičius yra teigiamas, neigiamas ar lygus nuliui.

  • Įveskite eilutes „Program Compnum“ir užbaigkite „Compnum“.
  • Tada paskelbkite REAL tipo kintamąjį. Įsitikinkite, kad jūsų deklaracija yra tarp programos pradžios ir pabaigos.
  • Paaiškinkite vartotojui, ką jie turėtų daryti. Parašykite tekstą naudodami rašymo funkciją.
  • Perskaitykite vartotojo įvestį į kintamąjį, kurį deklaravote naudodami skaitymo funkciją.

programa compnum real r write (*, *) "Įveskite realų skaičių:" skaitykite (*, *) r pabaigos programą

Fortranas, jei statyba
Fortranas, jei statyba

Žingsnis 3. Apdorokite vartotojo įvestį naudodami „if-construction“

Įdėkite jį tarp

skaityti (*, *) r

ir

pabaigos programa

  • Palyginimas atliekamas su.gt. (didesnis nei),.lt. (mažiau nei) ir.eq. (lygu) Fortrane.
  • „Fortran“palaiko „if“, „if if“ir „else“
  • „Fortran“konstrukcija visada baigiasi pabaiga, jei.

jei (r.gt. 0), tada parašykite (*, *) „Šis skaičius yra teigiamas“. kitaip, jei (r.lt. 0), tada parašykite (*, *) "Tas skaičius yra neigiamas." kitaip parašykite (*, *) "Šis skaičius yra 0." pabaiga, jei

Patarimas: Nereikia įterpti kodo į if-konstrukcijas, kuriose yra daugiau tarpų, bet tai pagerina skaitomumą.

„Fortran“numerių tikrinimo programa test
„Fortran“numerių tikrinimo programa test

Žingsnis 4. Sudarykite ir paleiskite savo programą

Norėdami tai patikrinti, įveskite keletą skaičių. Jei įvesite raidę, bus rodoma klaida, bet tai gerai, nes programa netikrina, ar įvestis yra raidė, skaičius ar kažkas kita.

3 dalis iš 4: Kilpų ir masyvų naudojimas

Žingsnis 1. Atidarykite naują failą

Kadangi ši koncepcija yra kitokia, turėsite dar kartą parašyti naują programą. Pavadinkite failą addmany.f. Įterpkite atitinkamus programos ir pabaigos programos teiginius, taip pat ir numanomą. Kai baigsite, ši programa perskaitys 10 skaičių ir išspausdins jų sumą.

2 žingsnis. Paskelbkite 10 ilgio masyvą

Čia išsaugosite skaičius. Kadangi tikriausiai norite realių skaičių sumos, masyvą turėtumėte paskelbti tikru. Tokį masyvą deklaruojate su

realūs skaičiai (50)

(skaičiai yra masyvo pavadinimas, o ne išraiška).

Žingsnis 3. Deklaruokite kai kuriuos kintamuosius

Skelbkite numSum kaip realų skaičių. Vėliau ją naudosite sumai išsaugoti, tačiau kadangi suma jau yra paimta iš „Fortran“išraiškos, turite naudoti tokį pavadinimą kaip numSum. Nustatykite jį į 0. Paskelbkite i kaip sveiką skaičių ir dar nesuteikite jam jokios vertės. Tai bus padaryta atliekant ciklą.

Žingsnis 4. Sukurkite atlikimo ciklą

Kitų programavimo kalbų atitikmuo būtų for-loop.

  • „Do-loop“visada prasideda nuo „do“.
  • Toje pačioje eilutėje kaip ir „do“, atskirta nuo jos tarpais, yra etiketė, prie kurios programa eis, kai ji bus baigta. Kol kas tiesiog parašykite 1, vėliau nustatysite etiketę.
  • Po to vėl įveskite tik tarpą

    i = 1, 10

    . Dėl to kintamasis i, kurį deklaravote prieš ciklą, nuo 1 iki 10 atliks 1 žingsnį. Veiksmai šioje išraiškoje nepaminėti, todėl „Fortran“naudoja numatytąją reikšmę 1. Jūs taip pat galėjote parašyti

    i = 1, 10, 1

  • Įdėkite šiek tiek kodo į kilpą (įtrauką su tarpais, kad būtų lengviau skaityti). Šiai programai turėtumėte padidinti kintamąjį numSum naudodami i-ąjį masyvo skaičių elementą. Tai daroma naudojant išraišką

    numSum = numSum + skaičius (i)

  • Užbaikite ciklą tęsinio teiginiu, turinčiu etiketę. Įveskite tik 4 tarpus. Po to įveskite 1. Tai yra etiketė, į kurią liepėte eiti „do-loop“, kai ji bus baigta. Tada įveskite tarpą ir tęskite. Tęsimo išraiška nieko nedaro, tačiau suteikia gerą vietą etiketės įdėjimui, taip pat parodo, kad darbų ciklas baigėsi.

Jūsų „do“kilpa dabar turėtų atrodyti taip:

do 1 i = 1, 10 numSum = numSum + skaičiai (i) 1 toliau

Patarimas: „Fortran 95“ir naujesnėse versijose nereikia naudoti etikečių. Tiesiog nedėkite vieno į „do“teiginį ir užbaikite ciklą žodžiu „end do“, o ne „tęsti“.

Fortran do loop code
Fortran do loop code

Žingsnis 5. Spausdinkite numSum

Taip pat būtų prasminga pateikti tam tikrą kontekstą, pavyzdžiui, „Jūsų skaičių suma:“. Abiem atvejais naudokite rašymo funkciją. Visas jūsų kodas dabar turėtų atrodyti taip:

programos priedai numanomi jokie realieji skaičiai (10) tikrasis skaičius 1 toliau rašyti (*, *) "Jų suma yra:" write (*, *) numSum pabaigos programa addmany

„Fortran“prideda skaičių kodą test
„Fortran“prideda skaičių kodą test

6. Sudarykite ir paleiskite savo kodą

Nepamirškite jo išbandyti. Galite paspausti ↵ Enter po kiekvieno įvesto skaičiaus arba įvesti daug skaičių toje pačioje eilutėje ir atskirti juos tarpais.

4 dalis iš 4: Išplėstinių sąvokų supratimas

Programa „Fortran“13 veiksme
Programa „Fortran“13 veiksme

Žingsnis 1. Gerai įsivaizduokite, ką veiks jūsų programa

Pagalvokite, kokių duomenų reikia kaip įvesties, kaip susisteminti išvestį ir įtraukti tarpinę išvestį, kad galėtumėte stebėti skaičiavimo eigą. Tai bus labai naudinga, jei žinosite, kad jūsų skaičiavimas bus atliekamas ilgą laiką arba apima kelis sudėtingus veiksmus.

„Fortran“nuorodos svetainės ekrano kopija
„Fortran“nuorodos svetainės ekrano kopija

2 žingsnis. Raskite gerą „Fortran“nuorodą

„Fortran“turi daug daugiau funkcijų, nei paaiškinta šiame straipsnyje, ir jos gali būti naudingos programai, kurią norite parašyti. Nuorodoje išvardytos visos funkcijos, kurias turi programavimo kalba. Tai yra „Fortran 77“ir „Fortran 90/95“.

„Fortran“paprogramių pavyzdys
„Fortran“paprogramių pavyzdys

Žingsnis 3. Sužinokite apie paprogrames ir funkcijas

„Fortran“formato eilutės pavyzdys
„Fortran“formato eilutės pavyzdys

Žingsnis 4. Sužinokite, kaip skaityti ir rašyti iš/į failus

Taip pat sužinokite, kaip formatuoti įvestį/išvestį.

Šiuolaikinio fortrano pavyzdys screenshot
Šiuolaikinio fortrano pavyzdys screenshot

Žingsnis 5. Sužinokite apie naujas „Fortran 90/95“ir naujesnių funkcijų funkcijas

Praleiskite šį veiksmą, jei žinote, kad rašysite/prižiūrėsite tik „Fortran 77“kodą.

Atminkite, kad „Fortran 90“pristatė „laisvos formos“šaltinio kodą, leidžiantį rašyti kodą be tarpų ir be 72 simbolių apribojimo

„Fortran“knygos internetinė ekrano kopija
„Fortran“knygos internetinė ekrano kopija

Žingsnis 6. Perskaitykite arba ieškokite knygų apie mokslinį programavimą

Pavyzdžiui, knyga „Skaitiniai receptai Fortrane“yra ir geras tekstas apie mokslinius programavimo algoritmus, ir geras įvadas, kaip sudėti kodus. Naujausiuose leidimuose yra skyrių apie tai, kaip programuoti mišriomis kalbomis ir lygiagrečiai. Kitas pavyzdys - „Modern Fortran in Practice“, parašytas Arjeno Markuso. Knygoje įžvelgiama, kaip pagal naujausius „Fortran“standartus parašyti „Fortran“programas dvidešimt pirmojo amžiaus stiliumi.

„Fortran“sukompiliuokite programą iš kelių failų
„Fortran“sukompiliuokite programą iš kelių failų

Žingsnis 7. Sužinokite, kaip sudaryti programą, paskirstytą keliuose failuose

Tarkime, kad jūsų „Fortran“programa yra paskirstyta failams main.f ir morestuff.f ir norite, kad gauta dvejetainė būtų pavadinta „allstuff“. Tada į komandų eilutę turėsite parašyti šias komandas:

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

Tada paleiskite failą įvesdami./allstuff.

Patarimas: Tai veikia taip pat su naujesnėmis „Fortran“versijomis. Tiesiog pakeiskite.f tinkamu plėtiniu ir f77 tinkama kompiliatoriaus versija.

8. Naudokite optimizavimą, kurį teikia jūsų kompiliatorius

Dauguma kompiliatorių turi optimizavimo algoritmus, kurie pagerina jūsų kodo efektyvumą. Paprastai jie įjungiami kompiliavimo metu įtraukiant -O, -O2 arba -O3 vėliavą (vėlgi, atsižvelgiant į jūsų „fortran“versiją).

  • Paprastai žemiausias -O arba -O2 lygis yra geriausias. Atminkite, kad naudojant agresyvesnę optimizavimo parinktį gali atsirasti sudėtingų kodų klaidų ir netgi sulėtėti! Išbandykite savo kodą.

    Patarimai

    • Pradėkite nuo mažų programų. Kurdami savo kodą, pabandykite nustatyti svarbiausią problemos dalį - ar tai duomenų įvedimas, ar funkcijų iškvietimas, ciklo struktūra (tai yra labai elementarūs pavyzdžiai) ir pradėkite nuo to. Tada remkitės tuo mažais žingsniais.
    • Fortran neskiria didžiųjų ir mažųjų raidžių. Pavyzdžiui, galite paskelbti kintamąjį „tikrasis skaičius“ir kitoje eilutėje parašyti „num = 1“, kad jam priskirtumėte vertę. Bet tai blogas stilius, todėl venkite to. Dar svarbiau, kad „Fortran“nerūpi ir funkcijų bei teiginių atvejis. Gana įprasta funkcijas ir teiginius rašyti didžiosiomis raidėmis, o kintamuosius - mažosiomis raidėmis.
    • EMACS yra geras nemokamas teksto redaktorius, naudojamas vietoj „Notepad“.
    • Iš pradžių jums gali būti lengviau naudotis internetine IDE (integruota kūrimo aplinka). Geras pasirinkimas yra „Coding Ground“. Čia rasite daugybę programavimo kalbų, įskaitant „Fortran-95“. Kitas variantas yra „Ideone“.

Rekomenduojamas: