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
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.
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.
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ə
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
Addım 3. İstifadəçinin girişini if-konstruksiyası ilə emal edin
Arasına qoyun
oxuyun (*, *) r
və
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.
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.
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
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
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.
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.
Addım 3. Alt proqramlar və funksiyalar haqqında məlumat əldə edin
Addım 4. Fayllardan/fayllara oxumağı və yazmağı öyrənin
Giriş/çıxışınızı necə formatlaşdıracağınızı da öyrənin.
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
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.
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.