Yuav Ua Haujlwm Li Cas Hauv Fortran (nrog Duab)

Cov txheej txheem:

Yuav Ua Haujlwm Li Cas Hauv Fortran (nrog Duab)
Yuav Ua Haujlwm Li Cas Hauv Fortran (nrog Duab)

Video: Yuav Ua Haujlwm Li Cas Hauv Fortran (nrog Duab)

Video: Yuav Ua Haujlwm Li Cas Hauv Fortran (nrog Duab)
Video: Tsis Muaj Peev Xwm Yuav Ua Li Cas 2024, Plaub Hlis Ntuj
Anonim

Coob leej neeg pom Fortran ua qhov qub thiab "tuag" cov lus programming. Txawm li cas los xij, feem ntau kev tshawb fawb thiab txuj ci engineering tau sau hauv Fortran. Xws li, kev sau ntawv hauv F77 thiab F90 tseem yog qhov txuj ci tsim nyog rau feem ntau cov kws tsim txuj ci. Ntxiv mus, tus qauv Fortran tshiab kawg (2003, 2008, 2015) tso cai rau tus programmer sau cov lej kom zoo nrog rau kev siv zog tsawg kawg, thaum siv tag nrho cov yam ntxwv ntawm cov lus niaj hnub no, xws li OOP (kev tsom mus rau lub hom phiaj). FORTRAN yog lub npe luv rau "FORmula TRANslation", thiab zoo tshaj plaws rau kev siv zauv thiab lej ntau dua li cov duab lossis cov ntaub ntawv thov. Feem ntau cov lej fortran siv cov ntawv nkag los ntawm cov ntaub ntawv lossis kab hais kom ua ntau dua los ntawm cov ntawv qhia zaub mov lossis GUI interface.

Cov kauj ruam

Ntu 1 ntawm 4: Kev Sau Ntawv thiab Sau Ua Ib Qhov Kev Pab Cuam

Fortran nyob zoo lub ntiaj teb txoj haujlwm sau kho kom raug
Fortran nyob zoo lub ntiaj teb txoj haujlwm sau kho kom raug

Kauj Ruam 1. Sau "Hello World" program

Qhov no feem ntau yog thawj qhov program sau ua ib hom lus, thiab nws tsuas yog luam tawm "Nyob zoo ntiaj teb" rau ntawm qhov screen. Sau cov cai hauv qab no hauv ib qho ntawv sau thiab txuag nws li helloworld.f. Ua tib zoo saib yuav tsum muaj 6 qhov chaw nyob ntawm xub ntiag ntawm txhua kab.

program Helloworld implicit tsis muaj tus cim*13 nyob zoo_string nyob zoo_string = "Nyob zoo, ntiaj teb!" sau (*, *) nyob zoo_string qhov kev pab cuam helloworld

Tswv yim: Cov chaw tsuas yog tsim nyog hauv cov ntawv Fortran mus txog FORTRAN 77. Yog tias koj siv cov ntawv tshiab, koj tuaj yeem tso qhov chaw tseg. Sau cov phiaj xwm los ntawm qhov hloov tshiab nrog f95, tsis yog f77; siv.f95 ua cov ntaub ntawv txuas ntxiv tsis yog.f.

Kauj Ruam 2. Sau qhov program

Txhawm rau ua qhov no, ntaus f77 helloworld.f rau hauv kab hais kom ua. Yog tias qhov no ua yuam kev, tej zaum koj tsis tau teeb tsa Fortran compiler zoo li piv txwv li gfortran tsis tau.

Fortran nyob zoo ntiaj teb sau ua run
Fortran nyob zoo ntiaj teb sau ua run

Kauj Ruam 3. Khiav koj qhov program

Tus compiler tau tsim cov ntawv hu ua a.out. Khiav cov ntawv no los ntawm kev ntaus./a.out.

Kauj Ruam 4. Nkag siab qhov koj nyuam qhuav sau

  • program Helloworld

    qhia txog qhov pib ntawm txoj haujlwm "helloworld". Zoo sib xws,

    kawg program Helloworld

  • qhia nws qhov kawg.
  • Los ntawm lub neej ntawd, yog tias koj tsis tshaj tawm hom sib txawv, Fortran kho qhov sib txawv nrog lub npe uas pib nrog tsab ntawv los ntawm kuv mus n ua tus lej, thiab tag nrho lwm tus yog tus lej tiag. Nws raug nquahu kom siv

    implicit tsis muaj

  • yog koj tsis xav tau tus cwj pwm ntawd.
  • cim*13 nyob zoo_string

  • tshaj tawm cov kab ntawm cov cim uas hu ua hello_string.
  • nyob zoo_string = "Nyob zoo, ntiaj teb!"

  • muab tus nqi "Nyob zoo, ntiaj teb!" rau tshaj tawm array. Tsis zoo li lwm yam lus zoo li C, qhov no tsis tuaj yeem ua tiav ntawm kab ib yam li tshaj tawm cov lus.
  • sau (*, *) nyob zoo_string

  • luam tawm tus nqi ntawm hello_string rau tus qauv tso tawm. Thawj * txhais tau tias sau rau tus qauv tso tawm, tsis zoo li qee cov ntaub ntawv. Qhov thib ob * txhais tau hais tias tsis txhob siv ib qho tshwj xeeb formatting.
Fortran cov lus
Fortran cov lus

Kauj Ruam 5. Ntxiv cov lus pom

Qhov no tsis tsim nyog hauv txoj haujlwm yooj yim no, tab sis nws yuav muaj txiaj ntsig thaum koj sau qee yam nyuaj dua, yog li koj yuav tsum paub ntxiv lawv li cas. Muaj ob txoj hauv kev ntxiv cov lus pom.

  • Txhawm rau ntxiv cov lus pom uas muaj kab tag nrho ntawm nws tus kheej, sau c ncaj qha rau hauv kab tshiab, yam tsis muaj 6 qhov chaw. Tom qab ntawv, sau koj cov lus pom. Koj yuav tsum tso qhov chaw nruab nrab ntawm c thiab koj cov lus pom kom nyeem tau zoo dua, tab sis qhov no tsis xav tau. Nco ntsoov tias koj yuav tsum siv a! hloov c hauv Fortran 95 thiab tshiab dua.
  • Txhawm rau ntxiv cov lus pom hauv kab ib yam li cov cai, ntxiv a! qhov twg koj xav kom koj cov lus pom pib. Ib zaug ntxiv, tsis xav tau chaw, tab sis txhim kho kev nyeem tau.

Ntu 2 ntawm 4: Siv Cov Tswv Yim thiab Yog Yog Kev Tsim Kho

Fortran cov ntaub ntawv hom
Fortran cov ntaub ntawv hom

Kauj Ruam 1. Nkag siab hom ntaub ntawv sib txawv

  • INTEGER tau siv rau tus lej tag nrho, zoo li 1, 3, lossis -3.
  • REAL kuj tseem tuaj yeem muaj tus lej uas tsis yog tag nrho, zoo li 2.5.
  • COMPLEX yog siv los khaws cov lej nyuaj. Thawj tus lej yog qhov tseeb thiab qhov thib ob yog qhov kev xav.
  • CHARACTER yog siv rau cov cim, zoo li cov tsiaj ntawv lossis cov cim cim cim.
  • LOGICAL tuaj yeem yog qhov tseeb. lossis.false.. Qhov no zoo li hom boolean hauv lwm hom lus programming.

Kauj Ruam 2. Tau txais tus neeg siv cov tswv yim

Hauv "Nyob zoo ntiaj teb" txoj haujlwm uas koj tau sau ua ntej, tau txais cov neeg siv tswv yim yuav tsis muaj txiaj ntsig. Yog li qhib cov ntawv tshiab thiab npe nws compnum.f. Thaum koj ua tiav nws, nws yuav qhia rau tus neeg siv seb tus lej lawv nkag mus yog qhov zoo, tsis zoo lossis sib npaug rau xoom.

  • Nkag mus rau kab program program compnum thiab xaus qhov program compnum.
  • Tom qab ntawd, tshaj tawm qhov sib txawv ntawm hom REAL. Nco ntsoov tias koj daim ntawv tshaj tawm yog nruab nrab ntawm qhov pib thiab qhov kawg ntawm txoj haujlwm.
  • Piav tus neeg siv seb lawv yuav tsum ua dab tsi. Sau qee cov ntawv nrog txoj haujlwm sau.
  • Nyeem tus neeg siv cov lus nkag rau hauv qhov sib txawv uas koj tshaj tawm nrog kev nyeem ua haujlwm.

program compnum real r write (*, *) "Enter a real number:" read (*, *) r kawg txoj haujlwm

Fortran yog kev tsim kho
Fortran yog kev tsim kho

Kauj Ruam 3. Ua tus neeg siv cov tswv yim nrog kev tsim kho

Muab nws nruab nrab ntawm

nyeem (*, *) r

thiab cov

kawg txoj haujlwm

  • Kev sib piv ua tiav nrog.gt. (ntau dua),.lt (tsawg dua) thiab.eq. (sib npaug) hauv Fortran.
  • Fortran txhawb nqa yog, lwm qhov yog, thiab lwm yam
  • Fortran yog kev tsim kho ib txwm xaus nrog qhov kawg yog.

yog (r.gt. 0) ces sau (*, *) "Tus lej ntawd yog qhov zoo." lwm yog (r.lt. 0) ces sau (*, *) "Tus lej ntawd tsis zoo." lwm tus sau (*, *) "Tus lej ntawd yog 0." kawg if

Tswv yim: Koj tsis tas yuav nkag mus rau tus lej sab hauv ntawm yog kev tsim nrog ntau qhov chaw, tab sis nws txhim kho kev nyeem tau.

Fortran tus lej txheeb xyuas qhov program test
Fortran tus lej txheeb xyuas qhov program test

Kauj Ruam 4. Sau thiab khiav koj qhov program

Tawm tswv yim qee tus lej los ntsuas nws. Yog tias koj nkag mus rau ib tsab ntawv, nws yuav ua rau muaj qhov yuam kev, tab sis qhov no tsis yog vim qhov program tsis txheeb xyuas seb cov ntawv nkag yog tus ntawv, tus lej, lossis lwm yam.

Ntu 3 ntawm 4: Siv Loops thiab Arrays

Kauj Ruam 1. Qhib ib daim ntawv tshiab

Txij li lub tswv yim no txawv, koj yuav tau sau qhov program tshiab dua. Npe cov ntaub ntawv addmany.f. Nkag mus rau qhov program sib xws thiab xaus cov lus qhia ntawm qhov program, nrog rau qhov tsis muaj qhov cuam tshuam. Thaum koj ua tiav, txoj haujlwm no yuav nyeem 10 tus lej thiab luam tawm lawv cov lej.

Kauj Ruam 2. Tshaj tawm cov kab ntawm qhov ntev 10

Nov yog qhov uas koj yuav khaws cov lej. Txij li koj tej zaum xav tau tus lej ntawm tus lej tiag, koj yuav tsum tshaj tawm cov array raws li tiag tiag. Koj tshaj tawm xws li array nrog

cov lej tiag (50)

(cov lej yog lub npe ntawm kab lus, tsis yog kev qhia).

Kauj Ruam 3. Tshaj tawm qee qhov kev hloov pauv

Tshaj tawm numSum raws li tus lej tiag. Koj yuav siv nws los khaws cov nyiaj tom qab, tab sis txij li cov nyiaj tau los ntawm Fortran cov lus qhia, koj yuav tsum siv lub npe zoo li numSum. Teem nws rau 0. Tshaj tawm kuv ua tus lej thiab tsis muab nws tus nqi tseem. Qhov ntawd yuav ua tiav hauv do-loop.

Kauj Ruam 4. Tsim lub voj-do

Qhov sib npaug ntawm qhov ntawd hauv lwm cov lus programming yuav yog rau-voj.

  • Ua-voj ib txwm pib nrog ua.
  • Ntawm kab ib yam li ua, sib cais los ntawm nws los ntawm qhov chaw, yog daim ntawv lo uas qhov program yuav mus thaum nws ua tiav. Txog tam sim no, tsuas yog sau 1, koj yuav teeb daim ntawv lo tom qab.
  • Tom qab ntawd, ib zaug ntxiv tsuas yog sib cais los ntawm qhov chaw, hom

    kuv = 1,10

    . Qhov no yuav ua rau qhov sib txawv i, uas koj tau tshaj tawm ua ntej lub voj, mus ntawm 1 txog 10 hauv cov kauj ruam ntawm 1. Cov kauj ruam tsis tau hais hauv qhov kev qhia no, yog li Fortran siv tus nqi tsis raug ntawm 1. Koj kuj tseem tuaj yeem sau tau

    kuv = 1,10,1

  • Muab qee cov cai sab hauv lub voj (nkag nrog qhov chaw kom nyeem tau zoo dua). Rau txoj haujlwm no, koj yuav tsum nce qhov sib txawv ntawm numSum nrog i-th keeb ntawm cov lej lej. Qhov no yog ua tiav nrog kev qhia

    numSum = numSum + num (i)

  • Xaus lub voj nrog daim ntawv txuas ntxiv uas muaj daim ntawv lo. Ntaus tsuas yog 4 qhov chaw. Tom qab ntawv, ntaus a 1. Ntawd yog daim ntawv lo uas koj tau hais kom ua-lub voj mus tom qab nws ua tiav. Tom qab ntawd, ntaus qhov chaw thiab txuas ntxiv mus. Kev hais qhia txuas ntxiv tsis muaj dab tsi, tab sis nws muab qhov chaw zoo rau tso daim ntawv lo, nrog rau qhia tias qhov ua-voj xaus.

Tam sim no koj lub voj yuav tsum zoo li no:

ua 1 i = 1, 10 numSum = numSum + num (i) 1 txuas ntxiv

Tswv yim: Hauv Fortran 95 thiab tshiab dua, koj tsis tas yuav siv daim ntawv lo. Tsuas yog tsis txhob tso ib qho rau hauv nqe lus ua thiab xaus lub voj nrog "qhov kawg ua" hloov ntawm "txuas ntxiv".

Fortran ua voj code
Fortran ua voj code

Kauj Ruam 5. Luam numSum

Tsis tas li, nws yuav nkag siab muab qee cov ntsiab lus, piv txwv li "Cov lej ntawm koj tus lej yog:". Siv cov ntawv sau rau ob qho tib si. Tam sim no koj tag nrho cov cai yuav tsum zoo li hauv qab no:

program addmany implicit tsis muaj tus lej tiag (10) tus lej numSum integer i numSum = 0 sau (*, *) "Sau 10 tus lej:" nyeem (*, *) tus lej ua 1 i = 1, 10 numSum = numSum + lej (i) 1 txuas ntxiv sau (*, *) "Lawv cov lej yog:" sau (*, *) numSum kawg program ntxiv

Fortran ntxiv tus lej code test
Fortran ntxiv tus lej code test

Kauj Ruam 6. Sau thiab sau koj cov cai

Tsis txhob hnov qab sim nws. Koj tuaj yeem nias ↵ Nkag mus tom qab txhua tus lej koj nkag lossis sau ntau tus lej ntawm tib kab thiab cais lawv nrog qhov chaw.

Ntu 4 ntawm 4: Nkag Siab Lub Tswv Yim Zoo

Txoj haujlwm hauv Fortran Kauj Ruam 13
Txoj haujlwm hauv Fortran Kauj Ruam 13

Kauj Ruam 1. Muaj lub tswv yim zoo ntawm koj qhov program yuav ua dab tsi

Xav txog dab tsi ntawm cov ntaub ntawv xav tau los ua tswv yim, yuav ua li cas teeb tsa cov zis, thiab suav nrog qee qhov nruab nrab tso tawm kom koj tuaj yeem saib xyuas qhov kev nce qib ntawm koj qhov kev suav. Qhov no yuav muaj txiaj ntsig zoo yog tias koj paub koj qhov kev suav yuav siv sijhawm ntev lossis cuam tshuam nrog ntau qib nyuaj.

Fortran siv lub vev xaib screenshot
Fortran siv lub vev xaib screenshot

Kauj Ruam 2. Nrhiav qhov zoo siv Fortran

Fortran muaj ntau lub luag haujlwm ntau dua li tau piav qhia hauv kab lus no, thiab lawv yuav muaj txiaj ntsig zoo rau txoj haujlwm koj xav sau. Ib daim ntawv teev npe teev tag nrho cov haujlwm uas cov lus programming muaj. Nov yog ib qho rau Fortran 77 thiab qhov no yog ib qho rau Fortran 90/95.

Fortran subroutines piv txwv
Fortran subroutines piv txwv

Kauj Ruam 3. Kawm paub txog subroutines thiab kev ua haujlwm

Fortran hom hlua piv txwv
Fortran hom hlua piv txwv

Kauj Ruam 4. Kawm nyeem thiab sau los ntawm/rau cov ntaub ntawv

Kuj kawm paub yuav ua li cas format koj cov tswv yim/tso tawm.

Niaj hnub nimno fortran piv txwv screenshot
Niaj hnub nimno fortran piv txwv screenshot

Kauj Ruam 5. Kawm paub txog cov yam ntxwv tshiab ntawm Fortran 90/95 thiab tshiab dua

Hla cov kauj ruam no yog tias koj paub tias koj tsuas yog sau/tswj hwm Fortran 77 code.

Nco ntsoov tias Fortran 90 tau tshaj tawm "Free Form" qhov chaws, tso cai rau sau cov ntawv yam tsis muaj qhov chaw thiab tsis muaj 72 tus cim txwv

Fortran phau ntawv online screenshot
Fortran phau ntawv online screenshot

Kauj Ruam 6. Nyeem lossis saib qee phau ntawv ntawm Kev Kawm Txuj Ci

Piv txwv li, phau ntawv "Cov Zaub Zaub hauv Fortran" yog ob qho tib si ntawv zoo ntawm cov txheej txheem kev tshawb fawb thiab cov lus qhia zoo txog yuav ua li cas tso cov lej. Ntau qhov kev tshaj tawm tsis ntev los no suav nrog cov tshooj hauv yuav ua li cas rau kev ua haujlwm hauv ib puag ncig-lus ib puag ncig thiab cov phiaj xwm sib luag. Lwm qhov piv txwv yog "Modern Fortran in Practice" sau los ntawm Arjen Markus. Phau ntawv qhia kev nkag siab yuav ua li cas sau ntawv Fortran cov phiaj xwm hauv nees nkaum-thawj ib puas xyoo raws li cov qauv Fortran tshiab kawg.

Fortran sau cov phiaj xwm hla ntau cov files
Fortran sau cov phiaj xwm hla ntau cov files

Kauj Ruam 7. Kawm paub yuav ua li cas sau cov phiaj xwm kis thoob plaws ntau cov ntaub ntawv

Cia peb xav tias koj li Fortran program tau nthuav tawm thoob plaws cov ntaub ntawv main.f thiab morestuff.f, thiab koj xav kom cov txiaj ntsig binary raug hu ua allstuff. Tom qab ntawd koj yuav tsum sau cov lus txib hauv qab no rau hauv kab hais kom ua:

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

Tom qab ntawv khiav cov ntawv los ntawm kev ntaus ntawv./allstuff.

Tswv yim: Qhov no ua haujlwm ib yam nkaus nrog cov kho tshiab ntawm Fortran. Tsuas yog hloov.f nrog qhov txuas ntxiv raug thiab f77 nrog kho qhov tseeb version.

Kauj Ruam 8. Siv qhov ua kom zoo uas koj tus neeg muab khoom muab

Feem ntau cov suav suav nrog suav nrog kev ua kom zoo dua qub uas txhim kho kev ua tau zoo ntawm koj cov cai. Cov no feem ntau tig los ntawm suav nrog -O, -O2, lossis -O3 tus chij thaum suav sau (dua nyob ntawm koj qhov kev hloov pauv ntawm fortran).

  • Feem ntau, qib qis tshaj -O lossis -O2 qib yog qhov zoo tshaj plaws. Nco ntsoov tias kev siv qhov kev xaiv ua kom zoo dua tuaj yeem ua rau yuam kev hauv cov lej nyuaj thiab tseem tuaj yeem ua rau qeeb! Ntsuam xyuas koj cov cai.

    Lub tswv yim

    • Pib nrog cov haujlwm me. Thaum koj ua koj tus lej, sim txheeb xyuas qhov tseem ceeb tshaj plaws ntawm qhov teeb meem - nws puas yog cov ntaub ntawv nkag los lossis hu xov tooj ntawm cov haujlwm, tus qauv ntawm lub voj (cov no yog qee qhov piv txwv piv txwv) thiab pib los ntawm qhov ntawd. Tom qab ntawd txhim kho qhov ntawd hauv qhov nce me me.
    • Fortran tsis yog cov ntaub ntawv-rhiab. Piv txwv li, koj tuaj yeem tshaj tawm qhov sib txawv "Num tiag" thiab sau "num = 1" hauv kab tom ntej los muab tus nqi rau nws. Tab sis qhov ntawd yog qhov tsis zoo, yog li zam nws. Tseem ceeb dua, Fortran tsis quav ntsej txog rooj plaub ntawm cov haujlwm thiab nqe lus ib yam. Nws yog qhov ntau heev los sau ua haujlwm thiab nqe lus hauv UPPERCASE thiab qhov hloov pauv hauv cov ntawv me.
    • EMACS yog tus kws sau ntawv pub dawb zoo siv siv Notepad.
    • Tej zaum koj yuav pom nws yooj yim dua los siv IDE online (kev txhim kho ib puag ncig ib puag ncig) thaum xub thawj. Qhov kev xaiv zoo yog Coding Av. Koj yuav pom muaj ntau hom lus programming nyob ntawd, suav nrog Fortran-95. Lwm qhov kev xaiv yog Ideone.

Pom zoo: