Fortranda qanday dastur qilish kerak (rasmlar bilan)

Mundarija:

Fortranda qanday dastur qilish kerak (rasmlar bilan)
Fortranda qanday dastur qilish kerak (rasmlar bilan)

Video: Fortranda qanday dastur qilish kerak (rasmlar bilan)

Video: Fortranda qanday dastur qilish kerak (rasmlar bilan)
Video: Google Keep: обзор менеджера заметок от Google 2024, Aprel
Anonim

Ko'p odamlar Fortranni arxaik va "o'lik" dasturlash tili sifatida qabul qilishadi. Biroq, ilmiy va muhandislik kodlarining aksariyati Fortranda yozilgan. Shunday qilib, F77 va F90 -da dasturlash texnik dasturchilarning ko'pchiligi uchun zaruriy mahorat bo'lib qolmoqda. Bundan tashqari, Fortranning so'nggi standartlari (2003, 2008, 2015) dasturchiga OOP (ob'ektga yo'naltirilgan dasturlash) kabi zamonaviy tilning barcha xususiyatlaridan foydalangan holda, juda kam harakat bilan yuqori samarali kod yozishga imkon beradi. FORTRAN - bu "FORmula TRANslation" qisqartmasi bo'lib, grafik yoki ma'lumotlar bazasi ilovalariga emas, balki matematik va raqamli ilovalarga eng mos keladi. Ko'pgina fortran kodlari matn kiritishini menyu yoki GUI interfeysidan emas, balki fayl yoki buyruq satridan oladi.

Qadamlar

4 -qismning 1 -qismi: Oddiy dastur yozish va tuzish

Fortran salom dunyo dasturi yozilgan tuzatilgan
Fortran salom dunyo dasturi yozilgan tuzatilgan

Qadam 1. "Salom dunyo" dasturini yozing

Bu odatda har qanday tilda yoziladigan birinchi dastur bo'lib, u faqat "Salom dunyo" ni ekranga chiqaradi. Quyidagi kodni har qanday matn muharririga yozing va uni helloworld.f sifatida saqlang. E'tibor bering, har bir satr oldida 6 ta bo'sh joy bo'lishi kerak.

dastur helloworld implicit none character*13 hello_string hello_string = "Salom, dunyo!" yozish (*, *) hello_string dasturining oxiri helloworld

Maslahat: Bo'shliqlar Fortranning FORTRAN 77 gacha bo'lgan versiyalarida kerak. Agar siz yangi versiyadan foydalanayotgan bo'lsangiz, bo'sh joylarni qo'yib yuborishingiz mumkin. Dasturlarni f77 emas, f95 bilan yangi versiyadan kompilyatsiya qilish;.f95 o'rniga fayl kengaytmasi sifatida foydalaning.

Qadam 2. Dasturni kompilyatsiya qiling

Buning uchun buyruq satriga f77 helloworld.f kiriting. Agar bu xato qilsa, ehtimol siz Fortran kompilyatorini o'rnatmagansiz, masalan, gfortran.

Fortran salom dunyo kompilyatsiyasi run
Fortran salom dunyo kompilyatsiyasi run

Qadam 3. Dasturingizni ishga tushiring

Tuzuvchi a.out deb nomlangan faylni ishlab chiqardi. Bu faylni./a.out yozib ishga tushiring.

Qadam 4. Yozganlaringizni tushuning

  • helloworld dasturi

    "helloworld" dasturining boshlanishini ko'rsatadi. Xuddi shunday,

    helloworld dasturini tugatish

  • uning tugashini bildiradi.
  • Odatiy bo'lib, agar siz o'zgarmaydigan turini e'lon qilmasangiz, Fortran o'zgarmaydiganni i dan n gacha bo'lgan harf bilan boshlanadigan butun son sifatida, qolganlarini esa haqiqiy son sifatida qabul qiladi. Foydalanish tavsiya etiladi

    noaniq

  • agar sizga bunday xatti -harakatlar kerak bo'lmasa.
  • belgi*13 hello_string

  • hello_string deb nomlangan belgilar majmuasini e'lon qiladi.
  • hello_string = "Salom, dunyo!"

  • "Salom, dunyo!" qiymatini belgilaydi. e'lon qilingan qatorga. C kabi boshqa tillardan farqli o'laroq, bu qatorni e'lon qilish bilan bir qatorda bajarilmaydi.
  • yozing (*, *) hello_string

  • hello_string qiymatini standart chiqishga chiqaradi. Birinchi *, ba'zi fayllardan farqli o'laroq, standart chiqishga yozishni bildiradi. Ikkinchisi * hech qanday maxsus formatlashni ishlatmaslikni anglatadi.
Fortran sharhlari
Fortran sharhlari

Qadam 5. Fikr qo'shish

Bu oddiy dasturda kerak emas, lekin siz murakkabroq narsa yozganingizda foydali bo'ladi, shuning uchun ularni qanday qo'shishni bilishingiz kerak. Fikr qo'shishning ikki yo'li mavjud.

  • O'z -o'zidan butun satrga ega bo'lgan sharhni qo'shish uchun "c" ni yangi qatorga 6 bo'sh joysiz yozing. Shundan so'ng, o'z fikringizni yozing. Yaxshi o'qilishi uchun c va sizning sharhingiz o'rtasida bo'sh joy qoldirishingiz kerak, lekin bu shart emas. E'tibor bering, siz! a v o'rniga Fortran 95 va undan yangi.
  • Fikrni kod bilan bir qatorga qo'shish uchun! sharhingiz qaerdan boshlanishini xohlaysiz. Shunga qaramay, bo'sh joy talab qilinmaydi, lekin o'qishni yaxshilaydi.

4-qismning 2-qismi: Input va If-Constructions-dan foydalanish

Fortran ma'lumotlar turlari
Fortran ma'lumotlar turlari

Qadam 1. Har xil turdagi ma'lumotlarni tushunish

  • INTEGER butun sonlar uchun ishlatiladi, masalan, 1, 3 yoki -3.
  • REAL shuningdek, 2.5 kabi to'liq bo'lmagan raqamni ham o'z ichiga olishi mumkin.
  • COMPLEX murakkab raqamlarni saqlash uchun ishlatiladi. Birinchi raqam haqiqiy, ikkinchisi xayoliy qism.
  • CHARACTER harflar yoki tinish kabi belgilar uchun ishlatiladi.
  • Mantiqiy ham.rost bo'lishi mumkin. yoki.false.. Bu boshqa dasturlash tillaridagi boolean turiga o'xshaydi.

Qadam 2. Foydalanuvchining ma'lumotlarini oling

Siz ilgari yozgan "Salom dunyo" dasturida foydalanuvchi ma'lumotlarini olish befoyda bo'lardi. Shunday qilib, yangi faylni oching va unga compnum.f deb nom bering. Siz uni tugatganingizda, u foydalanuvchiga kiritilgan raqam ijobiy, salbiy yoki nolga tengligini aytadi.

  • Program compnum va compnum dasturlarini yakunlang.
  • Keyin REAL turidagi o'zgaruvchini e'lon qiling. Sizning deklaratsiyangiz dasturning boshi va oxiri o'rtasida ekanligiga ishonch hosil qiling.
  • Foydalanuvchiga nima qilish kerakligini tushuntiring. Yozish funktsiyasi yordamida matn yozing.
  • O'qish funktsiyasi bilan e'lon qilingan o'zgaruvchiga foydalanuvchi kiritgan ma'lumotni o'qing.

dastur compnum real r write (*, *) "Haqiqiy raqamni kiriting:" o'qing (*, *) r oxiri dastur

Fortran agar qurilish
Fortran agar qurilish

Qadam 3. Foydalanuvchining kirishini if-konstruksiyasi bilan qayta ishlash

Uni orasiga qo'ying

o'qing (*, *) r

va

dasturni tugatish

  • Taqqoslash.gt bilan amalga oshiriladi. (kattaroq),.lt. (dan kam) va.eq. (teng) Fortranda.
  • Fortran if, if if, and else ni qo'llab -quvvatlaydi
  • Fortran if-konstruktsiyasi har doim if bilan tugaydi.

agar (r.gt. 0) u holda (*, *) "Bu raqam ijobiy" deb yozing. aks holda (r.lt. 0), " *, *)" Bu raqam manfiy "deb yozing. boshqa (*, *) "Bu raqam 0" deb yozing. agar tugasa

Maslahat: Agar bo'sh joyli if-konstruktsiyalar ichida kodni kirgizishingiz shart emas, lekin u o'qishni yaxshilaydi.

Fortran raqamini tekshirish dasturi test
Fortran raqamini tekshirish dasturi test

Qadam 4. Dasturingizni kompilyatsiya qiling va ishga tushiring

Sinab ko'rish uchun ba'zi raqamlarni kiriting. Agar siz harfni kiritsangiz, u xato keltirib chiqaradi, lekin bu yaxshi, chunki dastur kirishni harf, raqam yoki boshqa biror narsani tekshirmaydi.

4 -qismning 3 -qismi: Loop va massivlardan foydalanish

Qadam 1. Yangi faylni oching

Bu tushuncha boshqacha bo'lgani uchun siz yana yangi dastur yozishingiz kerak bo'ladi. Faylga addmany.f nomini bering. Tegishli dasturni kiriting va dasturni tugating, shuningdek yopiq emas. Tugatganingizda, bu dastur 10 ta raqamni o'qiydi va ularning summasini chop etadi.

2 -qadam. Uzunligi 10 qatorni e'lon qiling

Bu erda siz raqamlarni saqlaysiz. Haqiqiy sonlar yig'indisini xohlaganingiz uchun, qatorni haqiqiy deb e'lon qilishingiz kerak. Siz bunday qatorni e'lon qilasiz

Haqiqiy raqamlar (50)

(raqamlar ifodaning emas, balki massivning nomi).

3 -qadam. Ba'zi o'zgaruvchilarni e'lon qiling

NumSumni haqiqiy raqam deb e'lon qiling. Siz undan keyin summani saqlash uchun foydalanasiz, lekin yig'indisi Fortran iborasi tomonidan qabul qilinganligi sababli siz numSum kabi nomdan foydalanishingiz kerak. Uni 0 ga o'rnating. I ni butun son deb e'lon qiling va unga hech qanday qiymat bermang. Bu do-loopda amalga oshiriladi.

Qadam 4. Do-loop yaratish

Boshqa dasturlash tillaridagi ekvivalenti loop uchun bo'ladi.

  • Do-loop har doim do bilan boshlanadi.
  • Do bilan bir qatorda, bo'sh joy bilan ajratilgan, dastur tugagandan so'ng unga o'tadigan yorliq. Hozircha faqat 1 yozing, keyinroq yorliqni o'rnatasiz.
  • Shundan so'ng, yana faqat bo'sh joy bilan ajratib yozing

    i = 1, 10

    . Bu loopdan oldin e'lon qilgan i o'zgaruvchini 1 bosqichda 1 dan 10 gacha o'zgarishiga olib keladi. Bu iborada qadamlar ko'rsatilmagan, shuning uchun Fortran standart qiymati 1 ni ishlatadi. Siz ham yozishingiz mumkin edi.

    i = 1, 10, 1

  • Loop ichiga bir nechta kod qo'ying (yaxshiroq o'qilishi uchun bo'sh joylar bilan kiriting). Bu dastur uchun numSum o'zgaruvchisini massiv sonlarining i-elementi bilan oshirish kerak. Bu ifoda yordamida amalga oshiriladi

    numSum = numSum + raqam (i)

  • Tsiklni yorlig'i bo'lgan davomli so'z bilan yakunlang. Faqat 4 ta bo'sh joy kiriting. Shundan so'ng, 1-ni kiriting. Bu yorliq tugaganidan keyin unga o'tish kerakligini aytgansiz. Keyin bo'sh joy kiriting va davom eting. Davom etish iborasi hech narsa qilmaydi, lekin bu yorliqni joylashtirish uchun yaxshi joy beradi, shuningdek, do-loop tugaganligini ko'rsatadi.

Sizning do loopingiz endi shunday bo'lishi kerak:

do 1 i = 1, 10 numSum = numSum + raqamlar (i) 1 davom ettiring

Maslahat: Fortran 95 va undan yangi versiyalarda siz etiketkalarni ishlatishingiz shart emas. Do so'zini kiritmang va tsiklni "davom ettirish" o'rniga "tugatish" bilan tugatmang.

Fortran loop kodi
Fortran loop kodi

5 -qadam. NumSum -ni chop eting

Bundan tashqari, ba'zi kontekstni berish mantiqiy bo'lardi, masalan "Sizning raqamlaringiz yig'indisi:". Yozish funktsiyasidan ikkalasi uchun ham foydalaning. Sizning butun kodingiz endi quyidagicha ko'rinishi kerak:

dastur addmany aniq raqamlar yo'q (10) real numSum tamsayı i numSum = 0 yozish (*, *) "10 raqamni kiriting:" o'qing (*, *) raqamlar 1 i = 1, 10 numSum = numSum + sonlar (i) 1 yozishni davom ettirish (*, *) "Ularning yig'indisi:" yozish (*, *) numSum dasturining yakunlanishi

Fortran raqamlar kodini qo'shing test
Fortran raqamlar kodini qo'shing test

Qadam 6. Kodni tuzing va ishga tushiring

Sinab ko'rishni unutmang. Siz kiritgan har bir raqamdan keyin ↵ Enter tugmasini bosishingiz yoki bir qatorga ko'p sonlarni kiritishingiz va ularni bo'sh joy bilan ajratishingiz mumkin.

4 dan 4 qism: ilg'or tushunchalarni tushunish

Fortran 13 -bosqich dasturi
Fortran 13 -bosqich dasturi

Qadam 1. Sizning dasturingiz nima qilishini yaxshi tasavvur qiling

Hisoblash jarayonini kuzatish uchun kirish uchun qanday ma'lumot kerak, chiqishni qanday tuzish kerak va ba'zi oraliq chiqishlar haqida o'ylab ko'ring. Agar sizning hisobingiz uzoq vaqt davom etishini yoki bir nechta murakkab bosqichlarni o'z ichiga olganligini bilsangiz, bu juda foydali bo'ladi.

Fortran ma'lumotnoma veb -sayti screenshot
Fortran ma'lumotnoma veb -sayti screenshot

Qadam 2. Yaxshi Fortran ma'lumotnomasini toping

Fortran ushbu maqolada tasvirlanganidan ko'ra ko'proq funktsiyaga ega va ular siz yozmoqchi bo'lgan dastur uchun foydali bo'lishi mumkin. Malumotda dasturlash tilining barcha funktsiyalari ko'rsatilgan. Bu Fortran 77 uchun bitta, bu Fortran 90/95 uchun.

Fortran subroutines example
Fortran subroutines example

Qadam 3. Ichki dasturlar va funktsiyalar haqida bilib oling

Fortran formatidagi string example
Fortran formatidagi string example

Qadam 4. Fayllardan/fayllarga o'qish va yozishni o'rganing

Shuningdek, kirish/chiqishni formatlashni o'rganing.

Zamonaviy fortran misol screenshot
Zamonaviy fortran misol screenshot

Qadam 5. Fortran 90/95 va undan yangi versiyalari haqida bilib oling

Agar siz faqat Fortran 77 kodini yozishingiz/saqlayotganingizni bilsangiz, bu bosqichni o'tkazib yuboring.

Esda tutingki, Fortran 90 "Free Form" manba kodini kiritdi, bu kodni bo'sh joylarsiz va 72 belgidan oshmagan holda yozishga imkon berdi

Fortran kitobi onlayn skrinshot
Fortran kitobi onlayn skrinshot

6 -qadam. Ilmiy dasturlash bo'yicha ba'zi kitoblarni o'qing yoki qidiring

Masalan, "Fortrandagi raqamli retseptlar" kitobi ilmiy dasturlash algoritmlari bo'yicha yaxshi matn va kodlarni birlashtirishga yaxshi kirishdir. So'nggi nashrlarda aralash tilli muhitda dasturlash va parallel dasturlash boblari mavjud. Yana bir misol - Arjen Markus yozgan "Amaldagi zamonaviy Fortran". Kitob Fortran dasturlarini XXI asr uslubida Fortranning eng yangi standartlariga muvofiq qanday yozish haqida tushuncha beradi.

Fortran bir nechta fayllar bo'yicha kompilyatsiya qilish dasturi
Fortran bir nechta fayllar bo'yicha kompilyatsiya qilish dasturi

Qadam 7. Bir nechta fayllarga tarqalgan dasturni kompilyatsiya qilishni o'rganing

Faraz qilaylik, sizning Fortran dasturingiz main.f va morestuff.f fayllari bo'ylab tarqalgan va natijada olingan ikkilik faylga allstuff nomi berilishini xohlaysiz. Keyin buyruq satriga quyidagi buyruqlarni yozishingiz kerak bo'ladi:

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

Keyin./allstuff yozib faylni ishga tushiring.

Maslahat: Bu Fortranning yangi versiyalarida ham xuddi shunday ishlaydi. Faqat.f ni to'g'ri kengaytma va f77 ni to'g'ri kompilyator versiyasi bilan almashtiring.

Qadam 8. Kompilyatoringiz taqdim etadigan optimallashtirishdan foydalaning

Ko'pgina kompilyatorlar sizning kodingizning samaradorligini oshiradigan optimallashtirish algoritmlarini o'z ichiga oladi. Odatda, ular kompilyatsiya paytida -O, -O2 yoki -O3 bayroqchasini kiritish orqali yoqiladi (yana sizning fortran versiyangizga bog'liq).

  • Odatda, eng past daraja -O yoki -O2 darajasi eng yaxshisidir. Shuni yodda tutingki, optimallashtirishning yanada agressiv variantidan foydalanish murakkab kodlarda xatolarga olib kelishi mumkin va hatto ishni sekinlashtirishi mumkin! Kodingizni sinab ko'ring.

Maslahatlar

  • Kichik dasturlardan boshlang. O'z kodingizni yaratayotganda, muammoning eng muhim qismini aniqlashga harakat qiling - bu ma'lumotlarni kiritish yoki funktsiyalarni chaqirish, tsiklning tuzilishi (bu juda oddiy misollar) va shu erdan boshlang. Keyin buning ustiga kichik -kichik qadamlarni qo'ying.
  • Fortran katta-kichik harflarga sezgir emas. Siz, masalan, "haqiqiy Num" o'zgaruvchisini e'lon qilishingiz va unga qiymat tayinlash uchun keyingi qatorga "num = 1" yozishingiz mumkin. Lekin bu yomon uslub, shuning uchun undan qoching. Eng muhimi, Fortran funktsiyalar va bayonotlar masalasiga ham ahamiyat bermaydi. UPPERCASE funktsiyalari va bayonotlarini, o'zgaruvchilarni kichik harflar bilan yozish odatiy holdir.
  • EMACS - Notepad o'rniga foydalanish mumkin bo'lgan yaxshi bepul matn muharriri.
  • Avvaliga onlayn IDE (integratsiyalashgan ishlab chiqish muhiti) dan foydalanish osonroq bo'lishi mumkin. Yaxshi variant - bu kodlash maydonchasi. Siz u erda ko'plab dasturlash tillarini topasiz, shu jumladan Fortran-95. Boshqa variant - Ideone.

Tavsiya: