Ինչպես ծրագրել Fortran- ում (նկարներով)

Բովանդակություն:

Ինչպես ծրագրել Fortran- ում (նկարներով)
Ինչպես ծրագրել Fortran- ում (նկարներով)

Video: Ինչպես ծրագրել Fortran- ում (նկարներով)

Video: Ինչպես ծրագրել Fortran- ում (նկարներով)
Video: Ինչի՞ համար են նախատեսված համակարգչի այս կոճակները 2024, Երթ
Anonim

Շատերը Fortran- ն ընկալում են որպես հնացած և «մեռած» ծրագրավորման լեզու: Այնուամենայնիվ, գիտական և ինժեներական ծածկագրերի մեծ մասը գրված է Ֆորտրանում: Որպես այդպիսին, F77 և F90 ծրագրավորումը մնում է անհրաժեշտ հմտություն տեխնիկական ծրագրավորողների մեծ մասի համար: Ավելին, Fortran- ի վերջին չափանիշները (2003, 2008, 2015) թույլ են տալիս ծրագրավորողին նվազագույն ջանքերով գրել բարձր արդյունավետ ծածկագիր ՝ միաժամանակ օգտագործելով բոլոր ժամանակակից լեզվական հնարավորությունները, ինչպիսիք են OOP- ը (օբյեկտի վրա հիմնված ծրագրավորում): FORTRAN- ը «FORMula TRANslation» - ի հապավում է և լավագույնս համապատասխանում է մաթեմատիկական և թվային ծրագրերին, այլ ոչ թե գրաֆիկական կամ տվյալների բազայի ծրագրերին: Շատ fortran կոդերը տեքստը մուտքագրում են ֆայլից կամ հրամանի տողից, այլ ոչ թե ընտրացանկից կամ GUI ինտերֆեյսից:

Քայլեր

Մաս 1 -ից 4 -ը. Պարզ ծրագիր գրելը և կազմելը

Fortran բարև համաշխարհային ծրագիր գրել corrected
Fortran բարև համաշխարհային ծրագիր գրել corrected

Քայլ 1. Գրեք «Բարև աշխարհ» ծրագիր:

Սովորաբար սա առաջին ծրագիրն է, որը գրում է ցանկացած լեզվով, և այն պարզապես էկրան է տպում «Բարև աշխարհ»: Գրեք հետևյալ ծածկագիրը ցանկացած տեքստային խմբագրիչում և պահեք այն որպես helloworld.f: Ուշադրություն դարձրեք, որ յուրաքանչյուր տողի դիմաց պետք է լինի ուղիղ 6 բացատ:

ծրագիր helloworld անուղղակի ոչ մի կերպար*13 hello_string hello_string = "Բարև, աշխարհ": գրել (*, *) hello_string վերջնական ծրագիր helloworld

Հուշում. Բացատները անհրաժեշտ են միայն Fortran- ի մինչև FORTRAN 77 -ի տարբերակներում: Եթե օգտագործում եք ավելի նոր տարբերակ, կարող եք բաց թողնել դրանք: Կազմեք ծրագրեր ավելի նոր տարբերակից f95, այլ ոչ f77; օգտագործել.f95 որպես ֆայլի ընդլայնում ՝ պարզապես.f- ի փոխարեն:

Քայլ 2. Կազմեք ծրագիրը:

Դա անելու համար հրամանի տողում մուտքագրեք f77 helloworld.f: Եթե դա սխալ է տալիս, հավանաբար դեռ չեք տեղադրել Fortran կոմպիլյատոր, ինչպես օրինակ gfortran- ը:

Fortran բարև աշխարհ compile run
Fortran բարև աշխարհ compile run

Քայլ 3. Գործարկեք ձեր ծրագիրը:

Կազմողը պատրաստել է a.out անունով ֆայլ: Գործարկեք այս ֆայլը ՝ մուտքագրելով./a.out:

Քայլ 4. Հասկացեք, թե ինչ եք գրել:

  • ծրագիր helloworld

    ցույց է տալիս «helloworld» ծրագրի մեկնարկը: Նմանապես,

    ավարտել ծրագիրը helloworld

  • ցույց է տալիս դրա ավարտը:
  • Լռելյայն, եթե փոփոխականի տեսակը չեք հայտարարում, Fortran- ը i- ից n տառով սկսվող անունով փոփոխականին համարում է ամբողջ թիվ, իսկ մնացած բոլորին `որպես իրական թիվ: Խորհուրդ է տրվում օգտագործել

    անուղղակի ոչ մեկը

  • եթե ձեզ պետք չէ այդ պահվածքը:
  • նիշ*13 hello_string

  • հայտարարում է նիշերի զանգված, որը կոչվում է hello_string:
  • hello_string = "Բարև, աշխարհ":

  • նշանակում է «Բարև, աշխարհ» արժեքը: հայտարարված զանգվածին: Ի տարբերություն C- ի նման այլ լեզուների, դա չի կարող արվել զանգվածը հայտարարելու նույն գծի վրա:
  • գրել (*, *) hello_string

  • տպում է hello_string- ի արժեքը ստանդարտ ելքին: Առաջին * նշանակում է գրել ստանդարտ ելքի վրա, ի տարբերություն որոշ ֆայլերի: Երկրորդը * նշանակում է չօգտագործել որևէ հատուկ ձևաչափում:
Fortran comments
Fortran comments

Քայլ 5. Ավելացրեք մեկնաբանություն:

Նման պարզ ծրագրում դա անհրաժեշտ չէ, բայց օգտակար կլինի, երբ ավելի բարդ բան գրես, ուստի պետք է իմանաս, թե ինչպես դրանք ավելացնել: Մեկնաբանություն ավելացնելու երկու եղանակ կա:

  • Մեկ մեկնաբանություն ավելացնելու համար, որն ունի ամբողջ տող ինքնուրույն, գ գրեք գ ուղղակիորեն նոր տողի մեջ ՝ առանց 6 բացատների: Դրանից հետո գրեք ձեր մեկնաբանությունը: Դուք պետք է բաց թողեք c- ի և ձեր մեկնաբանության միջև ավելի լավ ընթերցանության համար, բայց դա պարտադիր չէ: Նշենք, որ դուք պետք է օգտագործեք a! գ -ի փոխարեն Fortran 95 -ում և ավելի նոր:
  • Կոդի հետ նույն տողում մեկնաբանություն ավելացնելու համար ավելացրեք a! որտեղից ցանկանում եք, որ ձեր մեկնաբանությունը սկսվի: Կրկին, տարածքը չի պահանջվում, բայց բարելավում է ընթերցանությունը:

Մաս 2-ից 4-ը. Մուտքի և If-Constructions- ի օգտագործումը

Fortran տվյալների տեսակները
Fortran տվյալների տեսակները

Քայլ 1. Հասկացեք տվյալների տարբեր տեսակներ:

  • INTEGER- ը օգտագործվում է ամբողջ թվերի համար, օրինակ ՝ 1, 3 կամ -3:
  • REAL- ը կարող է նաև պարունակել մի ամբողջ թիվ, ինչպիսին է 2.5 -ը:
  • COMPLEX- ը օգտագործվում է բարդ թվեր պահելու համար: Առաջին թիվը իրականն է, իսկ երկրորդը ՝ երևակայական մասը:
  • CHARACTER- ը օգտագործվում է կերպարների համար, ինչպիսիք են տառերը կամ կետադրական նշանները:
  • ՏՐԱՄԱԲԱՆԱԿԱՆ կարող է լինել.իրական. կամ.false.. Սա նման է բուլյան տիպի այլ ծրագրավորման լեզուներում:

Քայլ 2. Ստացեք օգտվողի մուտքագրումը:

Նախկինում գրած «Բարև աշխարհ» ծրագրում օգտվողի մուտքն անօգուտ կլիներ: Այսպիսով, բացեք նոր ֆայլ և անվանեք այն compnum.f: Ավարտելուց հետո այն օգտագործողին կասի `մուտքագրված թիվը դրական է, բացասական, թե զրոյի:

  • Մուտքագրեք տողերի ծրագրի կազմը և վերջ ծրագրի ծրագիրը:
  • Այնուհետև հայտարարեք REAL տիպի փոփոխական: Համոզվեք, որ ձեր հայտարարագիրը գտնվում է ծրագրի սկզբի և ավարտի միջև:
  • Բացատրեք օգտվողին, թե ինչ պետք է անեն: Գրեք մի քանի տեքստ գրելու գործառույթով:
  • Կարդացեք ընթերցման գործառույթով ձեր հայտարարած փոփոխականի մեջ օգտագործողի մուտքագրումը:

program compnum real r write (*, *) «Մուտքագրեք իրական թիվ.» կարդալ (*, *) r ավարտել ծրագիրը

Fortran if construction
Fortran if construction

Քայլ 3. Մշակեք օգտվողի մուտքը if- կոնստրուկցիայով:

Տեղադրեք այն միջև

կարդալ (*, *) r

եւ

ավարտի ծրագիրը

  • Համեմատությունը կատարվում է.gt- ի հետ: (ավելի մեծ),.lt. (պակաս) և.հաս. (հավասար է) Ֆորտրանում:
  • Fortran- ն աջակցում է if, else if, and else
  • Fortran- ի if- շինարարությունը միշտ ավարտվում է if- ի վերջով:

եթե (r.gt. 0) ապա գրեք (*, *) «Այդ թիվը դրական է»: հակառակ դեպքում, եթե (r.lt. 0), ապա գրեք (*, *) «Այդ թիվը բացասական է»: այլապես գրեք (*, *) «Այդ թիվը 0 է»: վերջ, եթե

Հուշում. Պարտադիր չէ, որ եթե-կոնստրուկցիաներն ավելի շատ տարածություն ունենան, ապա դա բարելավում է ընթեռնելիությունը:

Fortran համարների ստուգման ծրագիր test
Fortran համարների ստուգման ծրագիր test

Քայլ 4. Կազմեք և գործարկեք ձեր ծրագիրը:

Մուտքագրեք որոշ թվեր `այն ստուգելու համար: Եթե մուտքագրեք նամակ, այն սխալ կբարձրացնի, բայց դա նորմալ է, քանի որ ծրագիրը չի ստուգում ՝ մուտքը տառ է, թիվ, թե այլ բան:

3 -րդ մաս 4 -ից. Օղակների և զանգվածների օգտագործումը

Քայլ 1. Բացեք նոր ֆայլ:

Քանի որ այս հայեցակարգը այլ է, դուք ստիպված կլինեք նորից գրել նոր ծրագիր: Անվանեք ֆայլը addmany.f. Տեղադրեք համապատասխան ծրագրի և ավարտի ծրագրի հայտարարությունները, ինչպես նաև անուղղակի ոչ մեկը: Ավարտելուց հետո այս ծրագիրը կկարդա 10 թիվ և կտպագրի դրանց գումարը:

Քայլ 2. Հայտարարեք 10 երկարության զանգված:

Սա այն վայրն է, որտեղ դուք կպահեք թվերը: Քանի որ հավանաբար իրական թվերի գումար եք ուզում, զանգվածը պետք է հայտարարեք որպես իրական: Դուք հայտարարում եք նման զանգվածի հետ

իրական թվեր (50)

(թվերը զանգվածի անունն են, ոչ թե արտահայտություն):

Քայլ 3. Հայտարարեք որոշ փոփոխականներ:

NumSum- ը հայտարարեք որպես իրական թիվ: Դուք այն կօգտագործեք գումարը ավելի ուշ պահելու համար, բայց քանի որ գումարն արդեն վերցված է Fortran արտահայտությամբ, դուք պետք է օգտագործեք numSum- ի նման անուն: Սահմանեք այն 0. հայտարարեք i- ը որպես ամբողջ թիվ և դրան դեռ ոչ մի արժեք չտրամադրեք: Դա կկատարվի արվող հանգույցում:

Քայլ 4. Ստեղծեք մի հանգույց:

Դրա համարժեքը այլ ծրագրավորման լեզուներում կլինի for-loop:

  • Do-loop- ը միշտ սկսվում է do- ով:
  • Do- ի հետ նույն տողում, որը բաժանված է դրանից բացատով, այն պիտակն է, որին կգնա ծրագիրը, երբ ավարտվի: Առայժմ պարզապես գրեք 1, պիտակը կտեղադրեք ավելի ուշ:
  • Դրանից հետո, կրկին միայն տարածությամբ առանձնացված, մուտքագրեք

    i = 1, 10

    . Սա կստիպի i փոփոխականին, որը դուք հայտարարել էիք օղակից առաջ, 1 -ից 1 -ով գնալ 1 -ից 10 -ի: Քայլերը նշված չեն այս արտահայտության մեջ, այնպես որ Fortran- ը օգտագործում է 1. -ի կանխադրված արժեքը: Դուք կարող եք գրել նաև

    i = 1, 10, 1

  • Տեղադրեք մի ծածկագիր օղակի ներսում (ավելի լավ ընթեռնելիության համար նշեք բացատներով): Այս ծրագրի համար դուք պետք է մեծացնեք numSum փոփոխականը զանգվածի թվերի i-րդ տարրով: Դա արվում է արտահայտությամբ

    numSum = numSum + համար (i)

  • Վերջացրեք օղակը շարունակական հայտարարությամբ, որն ունի պիտակ: Մուտքագրեք ընդամենը 4 բացատ: Դրանից հետո մուտքագրեք a 1. Դա այն պիտակն է, որին դուք ասել եք, որ lo-loop- ը գնա ավարտվելուց հետո: Այնուհետև մուտքագրեք բացատ և շարունակեք: Շարունակվող արտահայտությունը ոչինչ չի անում, բայց դա լավ տեղ է տալիս պիտակ տեղադրելու համար, ինչպես նաև ցույց է տալիս, որ կատարման շրջանն ավարտվել է:

Ձեր կատարման հանգույցը այժմ պետք է ունենա այս տեսքը.

անել 1 i = 1, 10 numSum = numSum + թվեր (i) 1 շարունակել

ՀուշումFortran 95 և ավելի նոր համակարգերում պիտակներ օգտագործելու կարիք չկա: Պարզապես մեկը մի դրեք անել հայտարարության մեջ և օղակը վերջացրեք «շարունակել» -ի փոխարեն «շարունակել» -ի փոխարեն:

Fortran do loop code
Fortran do loop code

Քայլ 5. Տպել numSum:

Բացի այդ, իմաստ կլինի որոշակի համատեքստ տալ, օրինակ ՝ «Ձեր թվերի գումարը ՝»: Օգտագործեք երկուսի դեպքում գրելու գործառույթը: Ձեր ամբողջ ծածկագիրը այժմ պետք է ունենա հետևյալ տեսքը.

ծրագիր addmany բազմաթիվ անուղղակի ոչ մի իրական թվեր (10) իրական թվերԱմբողջ թիվ i numSum = 0 գրել (*, *) «Մուտքագրեք 10 թիվ.» կարդալ (*, *) թվերը ՝ 1 i = 1, 10 numSum = numSum + թվեր (i) 1 շարունակել գրել (*, *) «Նրանց գումարը հետևյալն է.» Գրել (*, *) numSum ծրագրի ավարտը addmany

Fortran ավելացնել թվերի ծածկագիր test
Fortran ավելացնել թվերի ծածկագիր test

Քայլ 6. Կազմեք և գործարկեք ձեր կոդը:

Մի մոռացեք փորձարկել այն: Կարող եք կամ սեղմել ↵ Մուտքագրեք յուրաքանչյուր համարը մուտքագրելուց հետո, կամ նույն տողում մուտքագրեք բազմաթիվ թվեր և դրանք առանձնացրեք բացատով:

Մաս 4 -ից 4 -ը. Ընդլայնված հասկացությունների ըմբռնում

Fortրագիր Fortran Քայլ 13 -ում
Fortրագիր Fortran Քայլ 13 -ում

Քայլ 1. Լավ պատկերացրեք, թե ինչ է անելու ձեր ծրագիրը:

Մտածեք, թե ինչպիսի տվյալներ են անհրաժեշտ որպես մուտքագրում, ինչպես կառուցել ելքը և ներառել որոշ միջանկյալ ելք, որպեսզի կարողանաք վերահսկել ձեր հաշվարկի ընթացքը: Սա շատ օգտակար կլինի, եթե գիտեք, որ ձեր հաշվարկը կտևի երկար ժամանակ կամ ներառում է բազմաթիվ բարդ քայլեր:

Fortran- ի տեղեկատու կայքը screenshot
Fortran- ի տեղեկատու կայքը screenshot

Քայլ 2. Գտեք Fortran- ի լավ տեղեկանք:

Fortran- ն ունի շատ ավելի շատ գործառույթներ, քան նկարագրված է այս հոդվածում, և դրանք կարող են օգտակար լինել այն ծրագրի համար, որը ցանկանում եք գրել: Տեղեկագիրը թվարկում է բոլոր գործառույթները, որոնք ունի ծրագրավորման լեզուն: Սա մեկն է Fortran 77 -ի համար և սա մեկը Fortran 90/95 -ի համար:

Fortran ենթածրագրեր example
Fortran ենթածրագրեր example

Քայլ 3. Իմացեք ենթածրագրերի և գործառույթների մասին:

Fortran ֆորմատի լարային օրինակ
Fortran ֆորմատի լարային օրինակ

Քայլ 4. Իմացեք, թե ինչպես կարդալ և գրել ֆայլերից/ֆայլերին:

Նաև սովորեք, թե ինչպես ձևակերպել ձեր մուտքը/ելքը:

Fortամանակակից fortran օրինակ screenshot
Fortամանակակից fortran օրինակ screenshot

Քայլ 5. Իմացեք Fortran 90/95 և ավելի նոր գործառույթների մասին:

Բաց թողեք այս քայլը, եթե գիտեք, որ դուք գրելու/պահպանելու եք միայն Fortran 77 ծածկագիրը:

Հիշեք, որ Fortran 90 -ը ներկայացրեց «Ազատ ձև» աղբյուրի կոդը ՝ թույլ տալով ծածկագիրը գրել առանց բացատների և առանց 72 նիշերի սահմանափակման:

Fortran գիրք առցանց screenshot
Fortran գիրք առցանց screenshot

Քայլ 6. Կարդացեք կամ փնտրեք գիտական ծրագրավորման վերաբերյալ որոշ գրքեր:

Օրինակ, «Թվային բաղադրատոմսեր Ֆորտրանում» գիրքը և՛ լավ տեքստ է գիտական ծրագրավորման ալգորիթմների վերաբերյալ, և՛ լավ ներածություն, թե ինչպես կարելի է համատեղել կոդերը: Վերջին հրատարակությունները ներառում են գլուխներ, թե ինչպես ծրագրել խառը լեզվով միջավայրում և զուգահեռ ծրագրավորում: Մեկ այլ օրինակ է «Fortամանակակից ֆորտրանը պրակտիկայում», որը գրել է Արյեն Մարկուսը: Գիրքը տալիս է պատկերացում, թե ինչպես գրել Fortran- ի ծրագրեր քսանմեկերորդ դարի ոճով `Fortran- ի վերջին չափանիշներին համապատասխան:

Fortran- ը ծրագիր կազմեք բազմաթիվ ֆայլերի մեջ
Fortran- ը ծրագիր կազմեք բազմաթիվ ֆայլերի մեջ

Քայլ 7. Իմացեք, թե ինչպես կազմել բազմաթիվ ֆայլերի վրա տարածված ծրագիր:

Ենթադրենք, որ ձեր Fortran ծրագիրը տարածված է main.f և morestuff.f ֆայլերում, և որ ցանկանում եք, որ արդյունքում ստացված երկուական անունը կոչվի allstuff: Այնուհետև հրամանի տողում պետք է գրեք հետևյալ հրամանները.

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

Այնուհետեւ գործարկեք ֆայլը `մուտքագրելով./allstuff:

Հուշում Սա նույն կերպ է գործում Fortran- ի նոր տարբերակների դեպքում: Պարզապես.f- ը փոխարինեք ճիշտ ընդլայնմամբ և f77- ը ՝ ճիշտ կազմողի տարբերակով:

Քայլ 8. Օգտագործեք ձեր կոմպիլյատորի տրամադրած օպտիմալացումը:

Կազմողների մեծ մասը ներառում է օպտիմալացման ալգորիթմներ, որոնք բարելավում են ձեր ծածկագրի արդյունավետությունը: Սովորաբար դրանք միացված են `կազմելով` -O, -O2 կամ -O3 դրոշը (կրկին կախված fortran- ի ձեր տարբերակից):

  • Ընդհանրապես, ամենացածր մակարդակը `O կամ -O2 մակարդակը, լավագույնն է: Տեղյակ եղեք, որ ավելի ագրեսիվ օպտիմալացման տարբերակի օգտագործումը կարող է սխալներ մտցնել բարդ կոդերում և նույնիսկ կարող է դանդաղեցնել գործը: Փորձարկեք ձեր կոդը:

    Խորհուրդներ

    • Սկսեք փոքր ծրագրերից: Երբ ձեր սեփական ծածկագիրն եք կազմում, փորձեք բացահայտել խնդրի ամենաէական մասը `տվյալների մուտքագրումն է, թե գործառույթների կանչը, օղակի կառուցվածքը (սրանք շատ տարրական օրինակներ են) և սկսեք այնտեղից: Այնուհետև դրա վրա կառուցեք փոքր աճեր:
    • Fortran- ը գործի զգայուն չէ: Դուք կարող եք, օրինակ, փոփոխական հայտարարել «իրական թիվ» և հաջորդ տողում գրել «num = 1» ՝ դրան արժեք տալու համար: Բայց դա վատ ոճ է, այնպես որ խուսափեք դրանից: Ավելի կարևոր է, որ Ֆորտրանը թքած ունի նաև գործառույթների և հայտարարությունների գործի վրա: Բավականին տարածված է գործառույթներ և հայտարարություններ գրել մեծատառով և փոփոխականներ փոքրատառերով:
    • EMACS- ը լավ անվճար տեքստային խմբագիր է, որը կարող է օգտագործվել Notepad- ի փոխարեն:
    • Հնարավոր է, որ սկզբում ավելի հեշտ լինի օգտագործել առցանց IDE (ինտեգրված զարգացման միջավայր): Լավ տարբերակ է Coding Ground- ը: Այնտեղ կգտնեք ծրագրավորման բազմաթիվ լեզուներ, ներառյալ Fortran-95- ը: Մեկ այլ տարբերակ Ideone- ն է:

Խորհուրդ ենք տալիս: