Fortranda necə proqramlaşdırılır (şəkillərlə)

Mündəricat:

Fortranda necə proqramlaşdırılır (şəkillərlə)
Fortranda necə proqramlaşdırılır (şəkillərlə)

Video: Fortranda necə proqramlaşdırılır (şəkillərlə)

Video: Fortranda necə proqramlaşdırılır (şəkillərlə)
Video: Лучшее приложение для создания заметок — что такое Evernote, как им пользоваться 2024, Aprel
Anonim

Bir çox insan Fortranı arxaik və "ölü" bir proqramlaşdırma dili olaraq qəbul edir. Bununla birlikdə, elmi və mühəndislik kodlarının çoxu Fortranda yazılmışdır. Beləliklə, F77 və F90 -da proqramlaşdırma əksər texniki proqramçılar üçün zəruri bir bacarıq olaraq qalır. Üstəlik, ən son Fortran standartları (2003, 2008, 2015), proqramçıya OOP (obyekt yönümlü proqramlaşdırma) kimi bütün müasir dil xüsusiyyətlərindən istifadə edərək, minimum səylə yüksək səmərəli kod yazmağa imkan verir. FORTRAN, "FORmula TRANslation" sözünün qısaltmasıdır və qrafik və ya verilənlər bazası tətbiqlərindən çox riyazi və ədədi tətbiqlər üçün ən uyğundur. Əksər fortran kodları mətn girişini bir menyu və ya GUI interfeysindən deyil, bir fayldan və ya əmr satırından alır.

Addımlar

4 -cü hissə 1: Sadə bir proqram yazmaq və tərtib etmək

Fortran salam dünya proqramı yazın düzeltilmiş
Fortran salam dünya proqramı yazın düzeltilmiş

Addım 1. "Hello World" proqramı yazın

Bu ümumiyyətlə hər hansı bir dildə yazan ilk proqramdır və sadəcə ekrana "Hello world" yazdırır. Aşağıdakı kodu hər hansı bir mətn redaktoruna yazın və helloworld.f olaraq qeyd edin. Hər sətrin qarşısında tam olaraq 6 boşluq olmalıdır.

proqram helloworld implicit none character*13 hello_string hello_string = "Salam, dünya!" yazın (*, *) hello_string son proqramı helloworld

İpucu: Boşluqlar yalnız Fortran -ın FORTRAN 77 -ə qədər olan versiyalarında lazımdır. Daha yeni bir versiyadan istifadə edirsinizsə, boşluqları buraxa bilərsiniz. Proqramları f77 ilə deyil, f95 ilə yeni versiyadan tərtib edin;.f95 əvəzinə fayl uzantısı olaraq istifadə edin.f.

Addım 2. Proqramı tərtib edin

Bunu etmək üçün əmr satırına f77 helloworld.f yazın. Bu bir səhv verirsə, ehtimal ki, hələ gfortran kimi bir Fortran tərtibçisi qurmamışsınız.

Fortran salam dünya tərzi run
Fortran salam dünya tərzi run

Addım 3. Proqramınızı işə salın

Tərtibçi a.out adlı bir fayl hazırladı. Bu faylı./a.out yazaraq işə salın.

Addım 4. Yazdıqlarınızı anlayın

  • helloorld proqramı

    "helloworld" proqramının başladığını göstərir. Oxşar,

    helloworld proqramı sona çatdı

  • sonunu göstərir.
  • Varsayılan olaraq, bir dəyişən növü elan etməsəniz, Fortran, i -dən n -ə qədər olan hərflə başlayan bir dəyişənə tam ədəd, digərlərinə isə həqiqi ədəd kimi baxır. İstifadəsi məsləhətdir

    örtük heç biri

  • bu davranışa ehtiyacınız yoxdursa.
  • xarakter*13 hello_string

  • hello_string adlanan bir sıra simvol elan edir.
  • hello_string = "Salam, dünya!"

  • "Salam, dünya!" dəyərini təyin edir. elan edilmiş massivə. C kimi digər dillərdən fərqli olaraq, bu, serialı elan etməklə eyni sətirdə edilə bilməz.
  • yazın (*, *) hello_string

  • hello_string dəyərini standart çıxışa yazdırır. Birincisi * bəzi fayllardan fərqli olaraq standart çıxışa yazmaq deməkdir. İkincisi * heç bir xüsusi formatlamadan istifadə etməmək deməkdir.
Fortran şərhləri
Fortran şərhləri

Addım 5. Şərh əlavə edin

Bu qədər sadə bir proqramda bu lazım deyil, ancaq daha mürəkkəb bir şey yazanda faydalı olacaq, buna görə də bunları necə əlavə etməyi bilməlisən. Şərh əlavə etməyin iki yolu var.

  • Bütün bir sətri olan bir şərh əlavə etmək üçün c boşluğunu 6 boşluq olmadan yeni bir sətrə yazın. Bundan sonra şərhinizi yazın. Daha yaxşı oxunması üçün c ilə şərhiniz arasında boşluq buraxmalısınız, lakin bu tələb olunmur. Qeyd etmək lazımdır ki, bir istifadə etməlisiniz! Fortran 95 və daha yeni bir c yerinə.
  • Kod ilə eyni sətirə şərh əlavə etmək üçün! şərhinizin başlamasını istədiyiniz yer. Yenə də yer tələb olunmur, ancaq oxunuşu yaxşılaşdırır.

4-cü hissənin 2-si: Giriş və If-Konstruksiyalardan istifadə

Fortran məlumat növləri
Fortran məlumat növləri

Addım 1. Fərqli məlumat növlərini anlayın

  • INTEGER 1, 3 və ya -3 kimi tam ədədlər üçün istifadə olunur.
  • REAL 2.5 kimi bütöv olmayan bir rəqəm də ehtiva edə bilər.
  • COMPLEX kompleks nömrələri saxlamaq üçün istifadə olunur. Birinci rəqəm həqiqi, ikincisi isə xəyali hissədir.
  • CHARACTER hərflər və ya durğu işarələri kimi simvollar üçün istifadə olunur.
  • Məntiq ya doğru ola bilər. və ya.false.. Bu, digər proqramlaşdırma dillərində boole tipinə bənzəyir.

Addım 2. İstifadəçinin girişini alın

Daha əvvəl yazdığınız "Hello world" proqramında istifadəçi girişini əldə etmək faydasız olardı. Yeni bir fayl açın və ona compnum.f adını verin. İşi bitirdikdən sonra istifadəçiyə daxil etdikləri rəqəmin müsbət, mənfi və ya sıfıra bərabər olub olmadığını bildirəcək.

  • Program compnum və proqram compnum sonlarını daxil edin.
  • Sonra REAL tipli bir dəyişən elan edin. Bəyannamənizin proqramın başlanğıcı ilə sonu arasında olduğundan əmin olun.
  • İstifadəçiyə nə etməli olduqlarını izah edin. Yazma funksiyası ilə bir az mətn yazın.
  • Oxu funksiyası ilə elan etdiyiniz dəyişənə istifadəçinin girişini oxuyun.

program compnum real r write (*, *) "Real sayı daxil edin:" oxu (*, *) r son proqram

Fortran əgər inşaat
Fortran əgər inşaat

Addım 3. İstifadəçinin girişini if-konstruksiyası ilə emal edin

Arasına qoyun

oxuyun (*, *) r

proqramı bitir

  • Müqayisə.gt ilə aparılır. (daha böyük),.lt. (az) və.eq. (bərabərdir) Fortranda.
  • Fortran if, else if, and else dəstəkləyir
  • Fortran if-konstruksiyası həmişə if ilə başa çatır.

əgər (r.gt. 0) onda (*, *) "Bu rəqəm müsbətdir" yazın. Əks halda (r.lt. 0) sonra (*, *) "Bu rəqəm mənfidir" yazın. başqa yazın (*, *) "Bu rəqəm 0 -dır." bitərsə

İpucu: Daha çox boşluğa malik olan if-konstruksiyaların içərisində kodu girmək məcburiyyətində deyilsiniz, ancaq oxunuşu yaxşılaşdırır.

Fortran nömrə yoxlama proqramı test
Fortran nömrə yoxlama proqramı test

Addım 4. Proqramınızı tərtib edin və işə salın

Test etmək üçün bəzi rəqəmləri daxil edin. Bir məktub daxil etsəniz, bir səhv qaldıracaq, amma bu yaxşıdır, çünki proqram girişin hərf, rəqəm və ya başqa bir şey olduğunu yoxlamır.

4 -cü hissənin 3 -ü: Döngələrdən və massivlərdən istifadə

Addım 1. Yeni bir fayl açın

Bu anlayış fərqli olduğu üçün yenidən yeni bir proqram yazmalı olacaqsınız. Faylın adını addmany.f qoyun. Müvafiq proqramı və son proqram ifadələrini daxil edin, üstəlik örtük deyil. İşiniz bitdikdə bu proqram 10 rəqəmi oxuyacaq və cəmini çap edəcək.

Addım 2. Uzunluğu 10 olan bir sıra elan edin

Nömrələri saxlayacağınız yer budur. Çox güman ki, həqiqi ədədlərin cəmini istədiyiniz üçün serialı həqiqi elan etməlisiniz. İlə belə bir sıra elan edirsiniz

həqiqi ədədlər (50)

(ədədlər ifadə deyil, serialın adıdır).

Addım 3. Bəzi dəyişənləri bəyan edin

NumSum -u həqiqi bir rəqəm olaraq elan edin. Daha sonra məbləği saxlamaq üçün istifadə edəcəksiniz, ancaq məbləğ artıq Fortran ifadəsi ilə alındığından numSum kimi bir ad istifadə etməlisiniz. Bunu 0 olaraq təyin edin. İ -ni tam ədəd olaraq elan edin və hələ heç bir dəyər təyin etməyin. Bu do-loopda ediləcək.

Addım 4. Bir döngə yaradın

Digər proqramlaşdırma dillərində bunun ekvivalenti bir döngü olacaq.

  • Bir do-loop həmişə do ilə başlayır.
  • Do ilə eyni sətirdə, bir boşluqla ayrılmış, proqram bitdikdə gedəcəyi etiketdir. Hələlik, yalnız 1 yazın, etiketi sonra quracaqsınız.
  • Bundan sonra yenidən yalnız boşluqla ayrılmış yazın

    i = 1, 10

    . Bu, döngədən əvvəl elan etdiyiniz i dəyişəninin 1 -ci addımda 1 -dən 10 -a keçməsinə səbəb olacaq. Adımlar bu ifadədə qeyd olunmadığı üçün Fortran 1 -in standart dəyərindən istifadə edir. Siz də yaza bilərsiniz.

    i = 1, 10, 1

  • Döngənin içərisinə bir kod qoyun (daha yaxşı oxunması üçün boşluqlarla girintiyə salın). Bu proqram üçün, sıra nömrələrinin i-ci elementi ilə numSum dəyişənini artırmalısınız. Bu ifadə ilə edilir

    numSum = numSum + sayı (i)

  • Döngəni etiketli bir davam ifadəsi ilə bitirin. Yalnız 4 boşluq yazın. Bundan sonra, 1 yazın. İş bitdikdən sonra getmək üçün döngəyə getməyinizi söylədiyiniz etiket budur. Sonra bir boşluq yazın və davam edin. Davam ifadəsi heç bir şey etməz, ancaq etiket yerləşdirmək üçün yaxşı bir yer verir və do-loopun bitdiyini göstərir.

Etmə döngəniz indi belə görünməlidir:

1 i = 1, 10 numSum = numSum + ədəd (i) 1 davam et

İpucu: Fortran 95 və daha yeni versiyalarda etiketlərdən istifadə etməyə ehtiyac yoxdur. Yalnız do ifadəsinə bir şey qoymayın və döngəni "davam et" yerinə "sona et" ilə bitirməyin.

Fortran loop kodu
Fortran loop kodu

Addım 5. NumSum yazdırın

Ayrıca, bəzi kontekstlər vermək məntiqli olardı, məsələn "Nömrələrinizin cəmi:". Yazma funksiyasından hər ikisi üçün istifadə edin. Bütün kodunuz indi aşağıdakı kimi görünməlidir:

proqram addmany örtük heç bir real ədəd (10) real numSum tamsayı i numSum = 0 yaz (*, *) "10 ədəd daxil et:" oxu (*, *) ədədlər 1 i = 1, 10 numSum = numSum + ədədlər (i) 1 yazmağa davam et (*, *) "Onların cəmi budur:" yaz (*, *) numSum son proqramı əlavə et

Fortran nömrələri əlavə edin test
Fortran nömrələri əlavə edin test

Addım 6. Kodunuzu tərtib edin və işlədin

Test etməyi unutmayın. Hər daxil etdiyiniz nömrədən sonra ↵ Enter düyməsini basa bilərsiniz və ya eyni sətirdə bir çox rəqəm daxil edib boşluqla ayıra bilərsiniz.

4 -dən 4 -cü hissə: Qabaqcıl Konseptləri Anlamaq

Proqram Fortran Addım 13
Proqram Fortran Addım 13

Addım 1. Proqramınızın nə edəcəyini yaxşı anlayın

Hesablamanızın gedişatını izləmək üçün giriş kimi hansı məlumatlara ehtiyac olduğunu, çıxışı necə quracağınızı və bəzi aralıq çıxışı daxil etməyi düşünün. Hesablamanızın uzun müddət davam edəcəyini və ya bir neçə mürəkkəb addımı əhatə etdiyini bilirsinizsə, bu çox faydalı olacaq.

Fortran istinad veb saytı screenshot
Fortran istinad veb saytı screenshot

Addım 2. Yaxşı bir Fortran istinadı tapın

Fortran bu yazıda izah edildiyindən daha çox funksiyaya malikdir və yazmaq istədiyiniz proqram üçün faydalı ola bilər. İstinad bir proqramlaşdırma dilinin bütün funksiyalarını sadalayır. Bu Fortran 77 və Fortran 90/95 üçün biridir.

Fortran alt proqramları example
Fortran alt proqramları example

Addım 3. Alt proqramlar və funksiyalar haqqında məlumat əldə edin

Fortran format simli example
Fortran format simli example

Addım 4. Fayllardan/fayllara oxumağı və yazmağı öyrənin

Giriş/çıxışınızı necə formatlaşdıracağınızı da öyrənin.

Müasir fortran nümunəsi screenshot
Müasir fortran nümunəsi screenshot

Addım 5. Fortran 90/95 və daha yeni xüsusiyyətlər haqqında məlumat əldə edin

Yalnız Fortran 77 kodunu yazacağınızı/saxlayacağınızı bilirsinizsə bu addımı atlayın.

Unutmayın ki, Fortran 90, kodun boşluq olmadan və 72 simvol limiti olmadan yazılmasına imkan verən "Pulsuz Forma" mənbə kodunu təqdim etdi

Fortran kitab online ekran görüntüsü
Fortran kitab online ekran görüntüsü

Addım 6. Elmi Proqramlaşdırma ilə bağlı bəzi kitabları oxuyun və ya axtarın

Məsələn, "Fortrandakı Sayısal Tariflər" kitabı həm elmi proqramlaşdırma alqoritmləri ilə bağlı yaxşı bir mətn, həm də kodları bir araya gətirmək üçün yaxşı bir girişdir. Daha yeni nəşrlərə qarışıq dil mühitində proqramlaşdırma və paralel proqramlaşdırma ilə bağlı fəsillər daxildir. Başqa bir nümunə, Arjen Markusun yazdığı "Praktikada Modern Fortran" dır. Kitab Fortran proqramlarının iyirmi birinci əsr üslubunda ən son Fortran standartlarına uyğun olaraq necə yazılacağına dair fikir verir.

Fortran proqramı birdən çox fayl arasında tərtib edir
Fortran proqramı birdən çox fayl arasında tərtib edir

Addım 7. Birdən çox fayl arasında yayılmış bir proqramı necə tərtib edəcəyinizi öyrənin

Güman edək ki, Fortran proqramınız main.f və morestuff.f faylları arasında yayılır və nəticədə yaranan ikili faylın hamısına ad verilməsini istəyirsiniz. Sonra əmr satırına aşağıdakı əmrləri yazmalısınız:

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

Sonra./allstuff yazaraq faylı işə salın.

İpucu: Bu, Fortranın yeni versiyaları ilə eyni şəkildə işləyir. Sadəcə.f -ni düzgün uzantı və f77 -ni düzgün tərtibçi versiyası ilə əvəz edin.

Addım 8. Kompilyatorunuzun təmin etdiyi optimallaşdırmadan istifadə edin

Əksər tərtibçilər kodunuzun səmərəliliyini artıran optimallaşdırma alqoritmlərini ehtiva edir. Bunlar ümumiyyətlə tərtib edərkən bir -O, -O2 və ya -O3 bayrağı daxil etməklə açılır (yenidən fortran versiyanızdan asılı olaraq).

  • Ümumiyyətlə, ən aşağı səviyyə -O və ya -2 səviyyəsidir. Unutmayın ki, daha aqressiv optimallaşdırma seçimindən istifadə etmək kompleks kodlarda səhvlər yarada bilər və hətta işləri ləngidə bilər! Kodunuzu sınayın.

    İpuçları

    • Kiçik proqramlarla başlayın. Öz kodunuzu hazırlayarkən, problemin ən vacib hissəsini müəyyən etməyə çalışın - bu məlumat girişi və ya funksiyaların çağırışı, döngənin quruluşu (bunlar çox sadə nümunələrdir) və oradan başlayın. Sonra bunu kiçik addımlarla qurun.
    • Fortran böyük hərflərə həssas deyil. Məsələn, "real Num" dəyişənini elan edə və ona dəyər təyin etmək üçün növbəti sətirdə "num = 1" yaza bilərsiniz. Ancaq bu pis bir üslubdur, buna görə çəkinin. Daha da əhəmiyyətlisi, Fortran funksiyaların və ifadələrin vəziyyətinə də əhəmiyyət vermir. UPPERCASE -də funksiyalar və ifadələr və dəyişənləri kiçik hərflərlə yazmaq olduqca yaygındır.
    • EMACS, Notepad yerinə istifadə etmək üçün yaxşı bir pulsuz mətn redaktorudur.
    • Əvvəlcə onlayn IDE -dən (inteqrasiya edilmiş inkişaf mühiti) istifadə etmək daha asan ola bilər. Yaxşı bir seçim Coding Ground. Orada Fortran-95 də daxil olmaqla bir çox proqramlaşdırma dili tapa bilərsiniz. Başqa bir seçim ideondur.

Tövsiyə: