Kā programmēt Fortranā (ar attēliem)

Satura rādītājs:

Kā programmēt Fortranā (ar attēliem)
Kā programmēt Fortranā (ar attēliem)

Video: Kā programmēt Fortranā (ar attēliem)

Video: Kā programmēt Fortranā (ar attēliem)
Video: Evernote Tips: Backing Your Notes and Evernote Security 2024, Aprīlis
Anonim

Daudzi cilvēki uztver Fortran kā arhaisku un "mirušu" programmēšanas valodu. Tomēr lielākā daļa zinātniskā un inženiertehniskā koda ir rakstīta Fortran. Tādējādi programmēšana F77 un F90 joprojām ir nepieciešama prasme lielākajai daļai tehnisko programmētāju. Turklāt jaunākie Fortran standarti (2003, 2008, 2015) ļauj programmētājam ar minimālu piepūli uzrakstīt ļoti efektīvu kodu, vienlaikus izmantojot visas mūsdienu valodas funkcijas, piemēram, OOP (objektorientētā programmēšana). FORTRAN ir akronīms vārdam "FORmula TRANslation", un tas ir vislabāk piemērots matemātiskām un skaitliskām lietojumprogrammām, nevis grafiskām vai datu bāzes lietojumprogrammām. Lielākā daļa fortran kodu ievada tekstu no faila vai komandrindas, nevis no izvēlnes vai GUI saskarnes.

Soļi

1. daļa no 4: Vienkāršas programmas rakstīšana un apkopošana

Fortran sveikas pasaules programmas rakstīšana labota
Fortran sveikas pasaules programmas rakstīšana labota

Solis 1. Uzrakstiet programmu "Sveika pasaule"

Parasti šī ir pirmā programma, kas raksta jebkurā valodā, un tā ekrānā vienkārši izdrukā “Hello world”. Ierakstiet šādu kodu jebkurā teksta redaktorā un saglabājiet to kā helloworld.f. Pievērsiet uzmanību, ka katras rindas priekšā jābūt tieši 6 atstarpēm.

programma helloworld implicit none character*13 hello_string hello_string = "Labdien, pasaule!" rakstīt (*, *) labdien_stringa beigu programma helloworld

Padoms: Atstarpes ir nepieciešamas tikai Fortran versijās līdz FORTRAN 77. Ja izmantojat jaunāku versiju, varat atstāt atstarpes. Apkopojiet programmas no jaunākas versijas ar f95, nevis f77; izmantojiet.f95 kā faila paplašinājumu, nevis tikai.f.

Solis 2. Apkopojiet programmu

Lai to izdarītu, komandrindā ierakstiet f77 helloworld.f. Ja tas rada kļūdu, jūs, iespējams, vēl neesat instalējis Fortran kompilatoru, piemēram, piemēram, gfortran.

Fortran sveikas pasaules kompilēt run
Fortran sveikas pasaules kompilēt run

Solis 3. Palaidiet savu programmu

Kompilators ir izveidojis failu ar nosaukumu a.out. Palaidiet šo failu, ierakstot./a.out.

Solis 4. Saprast, ko tikko uzrakstījāt

  • programma helloworld

    norāda programmas "helloworld" sākumu. Līdzīgi,

    beigu programma helloworld

  • norāda tās beigas.
  • Pēc noklusējuma, ja jūs nedeklarējat mainīgā veidu, Fortran uzskata mainīgo ar nosaukumu, kas sākas ar burtu no i līdz n kā veselu skaitli, un visus pārējos kā reālu skaitli. Ieteicams lietot

    netieši neviena

  • ja jums šāda uzvedība nav vajadzīga.
  • raksturs*13 hello_string

  • deklarē rakstzīmju masīvu, ko sauc par hello_string.
  • hello_string = "Sveika, pasaule!"

  • piešķir vērtību "Sveika, pasaule!" uz deklarēto masīvu. Atšķirībā no citām valodām, piemēram, C, to nevar izdarīt vienā rindā ar masīva deklarēšanu.
  • uzrakstiet (*, *) hello_string

  • izdrukā hello_string vērtību standarta izvadei. Pirmais * nozīmē rakstīt uz standarta izvadi, nevis dažiem failiem. Otrais * nozīmē neizmantot īpašu formatējumu.
Fortran komentāri
Fortran komentāri

5. solis. Pievienojiet komentāru

Tas nav nepieciešams tik vienkāršā programmā, taču tas noderēs, rakstot kaut ko sarežģītāku, tāpēc jums vajadzētu zināt, kā tos pievienot. Ir divi veidi, kā pievienot komentāru.

  • Lai pievienotu komentāru, kuram ir visa rinda, rakstiet c tieši jaunā rindā, neizmantojot 6 atstarpes. Pēc tam uzrakstiet savu komentāru. Lai nodrošinātu labāku lasāmību, starp c un komentāru jāatstāj atstarpe, taču tas nav obligāti. Ņemiet vērā, ka jums ir jāizmanto a! c vietā Fortran 95 un jaunākās versijās.
  • Lai pievienotu komentāru vienā rindā ar kodu, pievienojiet! kur vēlaties sākt savu komentāru. Atkal, atstarpe nav nepieciešama, bet uzlabo lasāmību.

2. daļa no 4: Ievades un If-Constructions izmantošana

Fortran datu tipi
Fortran datu tipi

1. solis. Izprotiet dažādus datu veidus

  • INTEGER tiek izmantots veseliem skaitļiem, piemēram, 1, 3 vai -3.
  • REAL var ietvert arī skaitli, kas nav vesels, piemēram, 2.5.
  • COMPLEX tiek izmantots sarežģītu skaitļu saglabāšanai. Pirmais skaitlis ir reālais, bet otrais - iedomātais.
  • CHARACTER tiek izmantots rakstzīmēm, piemēram, burtiem vai pieturzīmēm.
  • LOĢISKĀ var būt vai nu.patiesība. vai.false.. Tas ir kā Būla tips citās programmēšanas valodās.

2. solis. Iegūstiet lietotāja ieguldījumu

Programmā "Sveika pasaule", kuru jūs iepriekš rakstījāt, lietotāja ievades iegūšana būtu bezjēdzīga. Tāpēc atveriet jaunu failu un nosauciet to par compnum.f. Kad esat to pabeidzis, tas lietotājam pateiks, vai viņa ievadītais skaitlis ir pozitīvs, negatīvs vai vienāds ar nulli.

  • Ievadiet rindas programmas compnum un beigu programmas compnum.
  • Pēc tam deklarējiet REAL tipa mainīgo. Pārliecinieties, vai jūsu deklarācija ir starp programmas sākumu un beigām.
  • Paskaidrojiet lietotājam, kas viņam jādara. Ierakstiet tekstu, izmantojot rakstīšanas funkciju.
  • Izlasiet lietotāja ievadīto mainīgo, ko deklarējāt, izmantojot lasīšanas funkciju.

programma compnum real r write (*, *) "Ievadiet reālu skaitli:" lasiet (*, *) r beigu programmu

Fortran ja būvniecība
Fortran ja būvniecība

3. solis. Apstrādājiet lietotāja ievadīto informāciju ar if-konstrukciju

Ievietojiet to starp

lasīt (*, *) r

un

beigu programma

  • Salīdzinājums tiek veikts ar.gt. (lielāks par),.lt. (mazāk par) un.eq. (vienāds) Fortranā.
  • Fortran atbalsta if, else if, and else
  • Fortran if-konstrukcija vienmēr beidzas ar beigām if.

ja (r.gt. 0), tad uzrakstiet (*, *) "Šis skaitlis ir pozitīvs." citādi, ja (r.lt. 0), tad uzrakstiet (*, *) "Šis skaitlis ir negatīvs." citādi rakstiet (*, *) "Šis skaitlis ir 0." beigt, ja

Padoms: Jums nav jāievelk kods if-konstrukcijās ar vairāk atstarpēm, bet tas uzlabo lasāmību.

Fortran numuru pārbaudes programma test
Fortran numuru pārbaudes programma test

Solis 4. Apkopojiet un palaidiet savu programmu

Ievadiet dažus skaitļus, lai to pārbaudītu. Ja ievadāt burtu, tas radīs kļūdu, taču tas ir labi, jo programma nepārbauda, vai ievadītais ir burts, cipars vai kaut kas cits.

3. daļa no 4: Cilpu un masīvu izmantošana

1. solis. Atveriet jaunu failu

Tā kā šī koncepcija ir atšķirīga, jums atkal būs jāraksta jauna programma. Nosauciet failu addmany.f. Ievietojiet atbilstošos programmas un beigu programmas paziņojumus, kā arī netiešo nevienu. Kad esat pabeidzis, šī programma nolasa 10 ciparus un izdrukā to summu.

2. solis. Deklarējiet 10 garuma masīvu

Šeit jūs glabāsit skaitļus. Tā kā jūs, iespējams, vēlaties reālu skaitļu summu, jums vajadzētu deklarēt masīvu kā reālu. Jūs deklarējat šādu masīvu ar

reālie skaitļi (50)

(skaitļi ir masīva nosaukums, nevis izteiksme).

3. solis. Deklarējiet dažus mainīgos

Pasludiniet numSum par reālu skaitli. Jūs to izmantosit, lai saglabātu summu vēlāk, bet, tā kā summa jau ir izmantota Fortran izteiksmē, jums jāizmanto tāds nosaukums kā numSum. Iestatiet to uz 0. Deklarējiet i kā veselu skaitli un vēl nepiešķiriet tam vērtību. Tas tiks darīts darba ciklā.

Solis 4. Izveidojiet do-loop

Citās programmēšanas valodās ekvivalents būtu for-loop.

  • Darīšanas cikls vienmēr sākas ar do.
  • Tajā pašā rindā kā do, kas no tā ir atdalīta ar atstarpi, ir etiķete, uz kuru programma nonāks, kad tā būs pabeigta. Pagaidām vienkārši uzrakstiet 1, etiķeti iestatīsit vēlāk.
  • Pēc tam, atkal tikai atdalot ar atstarpi, ierakstiet

    i = 1, 10

    . Tādējādi mainīgais i, kuru jūs deklarējāt pirms cilpas, mainīs no 1 līdz 10 ar soļiem 1. Šīs darbības nav minētas šajā izteiksmē, tāpēc Fortran izmanto noklusējuma vērtību 1. Jūs varētu arī uzrakstīt

    i = 1, 10, 1

  • Ievietojiet kādu kodu cilpas iekšpusē (atkāpe ar atstarpēm labākai lasāmībai). Šai programmai jums jāpalielina mainīgais numSum ar masīva numuru i-to elementu. Tas tiek darīts ar izteiksmi

    numSum = numSum + skaitlis (i)

  • Pabeidziet ciklu ar turpinājuma paziņojumu, kuram ir etiķete. Ierakstiet tikai 4 atstarpes. Pēc tam ierakstiet 1. Tā ir etiķete, uz kuru jūs norādījāt do-loop, lai pārietu pēc tās beigām. Pēc tam ierakstiet atstarpi un turpiniet. Turpinājuma izteiksme neko nedara, bet dod labu vietu etiķetes ievietošanai, kā arī parāda, ka do-loop beidzās.

Jūsu do cilpai tagad vajadzētu izskatīties šādi:

do 1 i = 1, 10 numSum = numSum + skaitļi (i) 1 turpināt

Padoms: Fortran 95 un jaunākās versijās jums nav jāizmanto etiķetes. Vienkārši neievietojiet vienu paziņojumā do un pabeidziet ciklu ar "end do", nevis "turpināt".

Fortran do cilpas kods
Fortran do cilpas kods

5. solis. Izdrukājiet numSum

Tāpat būtu jēga norādīt kādu kontekstu, piemēram, "Jūsu skaitļu summa ir:". Izmantojiet rakstīšanas funkciju abiem. Visam jūsu kodam tagad vajadzētu izskatīties šādi:

programma addmany netieši nav reālu skaitļu (10) real numSum vesels skaitlis i numSum = 0 rakstīt (*, *) "Ievadiet 10 skaitļus:" lasiet (*, *) skaitļus do 1 i = 1, 10 numSum = numSum + skaitļi (i) 1 turpināt rakstīt (*, *) "Viņu summa ir:" rakstīt (*, *) numSum beigu programmas papildinājums

Fortran pievieno skaitļu kodu test
Fortran pievieno skaitļu kodu test

6. solis. Apkopojiet un palaidiet savu kodu

Neaizmirstiet to pārbaudīt. Varat nospiest ↵ Enter pēc katra ievadītā numura vai ievadīt daudzus numurus vienā rindā un atdalīt tos ar atstarpi.

4. daļa no 4: Izpratne par papildu jēdzieniem

Programma Fortran 13. solī
Programma Fortran 13. solī

Solis 1. Ir laba ideja par to, ko jūsu programma darīs

Padomājiet par to, kādi dati ir nepieciešami ievadīšanai, kā strukturēt izvadi, un iekļaujiet kādu starpposma izvadi, lai varētu pārraudzīt aprēķina gaitu. Tas būs ļoti noderīgi, ja zināt, ka jūsu aprēķins ilgs ilgu laiku vai ietver vairākas sarežģītas darbības.

Fortran atsauces vietnes ekrānuzņēmums
Fortran atsauces vietnes ekrānuzņēmums

2. solis. Atrodiet labu Fortran atsauci

Fortran ir daudz vairāk funkciju, nekā paskaidrots šajā rakstā, un tās var būt noderīgas programmai, kuru vēlaties rakstīt. Atsaucē ir uzskaitītas visas programmēšanas valodas funkcijas. Šis ir viens no Fortran 77 un tas ir par Fortran 90/95.

Fortran apakšprogrammu piemērs
Fortran apakšprogrammu piemērs

3. solis. Uzziniet par apakšprogrammām un funkcijām

Fortran formāta virknes piemērs
Fortran formāta virknes piemērs

4. solis. Uzziniet, kā lasīt un rakstīt no/uz failiem

Uzziniet arī, kā formatēt ievadi/izvadi.

Mūsdienu fortranas piemērs screenshot
Mūsdienu fortranas piemērs screenshot

5. solis. Uzziniet par Fortran 90/95 un jaunākām funkcijām

Izlaidiet šo darbību, ja zināt, ka rakstīsit/uzturēsit tikai Fortran 77 kodu.

Atcerieties, ka Fortran 90 ieviesa "brīvās formas" avota kodu, ļaujot kodu rakstīt bez atstarpēm un bez 72 rakstzīmju ierobežojuma

Fortran grāmatu tiešsaistes ekrānuzņēmums
Fortran grāmatu tiešsaistes ekrānuzņēmums

6. Izlasiet vai atrodiet dažas grāmatas par zinātnisko programmēšanu

Piemēram, grāmata "Skaitliskās receptes Fortranā" ir gan labs teksts par zinātniskās programmēšanas algoritmiem, gan labs ievads, kā salikt kodus. Jaunākajos izdevumos ir iekļautas nodaļas par to, kā programmēt jauktu valodu vidē un paralēlo programmēšanu. Vēl viens piemērs ir Arjen Markus rakstītais "Modern Fortran in Practice". Grāmata sniedz ieskatu, kā rakstīt Fortran programmas divdesmit pirmā gadsimta stilā atbilstoši jaunākajiem Fortran standartiem.

Fortran apkopo programmu vairākos failos
Fortran apkopo programmu vairākos failos

7. solis. Uzziniet, kā apkopot programmu, kas sadalīta vairākos failos

Pieņemsim, ka jūsu programma Fortran ir izplatīta failos main.f un morestuff.f un ka vēlaties, lai iegūto bināro nosaukumu nosauktu par allstuff. Pēc tam komandrindā jums jāraksta šādas komandas:

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

Pēc tam palaidiet failu, ierakstot./allstuff.

Padoms: Tas darbojas tāpat kā ar jaunākajām Fortran versijām. Vienkārši nomainiet.f ar pareizo paplašinājumu un f77 ar pareizo kompilatora versiju.

8. solis. Izmantojiet kompilatora sniegto optimizāciju

Lielākā daļa kompilatoru ietver optimizācijas algoritmus, kas uzlabo jūsu koda efektivitāti. Tos parasti ieslēdz, apkopojot iekļaujot karodziņu -O, -O2 vai -O3 (atkal atkarībā no jūsu versijas fortran).

  • Parasti vislabākais ir zemākais līmenis -O vai -O2. Ņemiet vērā, ka agresīvākas optimizācijas opcijas izmantošana var radīt kļūdas sarežģītos kodos un pat palēnināt darbību! Pārbaudiet savu kodu.

    Padomi

    • Sāciet ar nelielām programmām. Veidojot savu kodu, mēģiniet noteikt problēmas būtiskāko daļu - vai tā ir datu ievade vai funkciju izsaukšana, cikla struktūra (šie ir daži ļoti elementāri piemēri) un sāciet no turienes. Pēc tam balstieties uz to nelielos soļos.
    • Fortran nav reģistrjutīgs. Jūs, piemēram, varat deklarēt mainīgo “reāls skaitlis” un nākamajā rindā ierakstīt “num = 1”, lai tam piešķirtu vērtību. Bet tas ir slikts stils, tāpēc izvairieties no tā. Vēl svarīgāk ir tas, ka Fortranam nerūp arī funkciju un paziņojumu gadījums. Ir diezgan bieži rakstīt funkcijas un paziņojumus ar lielajiem burtiem un mainīgos ar mazajiem burtiem.
    • EMACS ir labs bezmaksas teksta redaktors, ko izmantot Notepad vietā.
    • Sākumā varētu būt vieglāk izmantot tiešsaistes IDE (integrētu izstrādes vidi). Labs risinājums ir kodēšanas laukums. Tur jūs atradīsit daudzas programmēšanas valodas, ieskaitot Fortran-95. Vēl viena iespēja ir Ideone.

Ieteicams: