Много хора възприемат Фортран като архаичен и „мъртъв“език за програмиране. Повечето научни и инженерни кодове обаче са написани на Фортран. Като такова програмирането във F77 и F90 остава необходимо умение за повечето технически програмисти. Освен това най-новите стандарти на Fortran (2003, 2008, 2015) позволяват на програмиста да пише високоефективен код с минимални усилия, като същевременно използва всички съвременни езикови функции, като ООП (обектно-ориентирано програмиране). FORTRAN е съкращение от "FORmula TRANslation" и е най -подходящ за математически и числени приложения, а не за графични или бази данни. Повечето кодове на fortran приемат въвеждане на текст от файл или от командния ред, а не от меню или интерфейс на GUI.
Стъпки
Част 1 от 4: Написване и съставяне на проста програма

Стъпка 1. Напишете програма „Hello World“
Обикновено това е първата програма, която пише на всеки език, и просто отпечатва "Hello world" на екрана. Напишете следния код във всеки текстов редактор и го запазете като 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.

Стъпка 3. Стартирайте програмата
Компилаторът е създал файл, наречен a.out. Стартирайте този файл, като въведете./a.out.
Стъпка 4. Разберете какво току -що сте написали
-
програма helloworld
показва стартирането на програмата "helloworld". По същия начин,
край на програмата helloworld
- показва неговия край.
-
По подразбиране, ако не декларирате тип променлива, Fortran третира променлива с име, което започва с буква от i до n като цяло число, а всички останали като реално число. Препоръчва се да се използва
неявно няма
- ако нямате нужда от това поведение.
-
знак*13 hello_string
- декларира масив от знаци, който се нарича hello_string.
-
hello_string = "Здравей, свят!"
- присвоява стойността "Здравей, свят!" към декларирания масив. За разлика от други езици като C, това не може да се направи на същия ред като декларирането на масива.
-
напишете (*, *) hello_string
- отпечатва стойността на hello_string към стандартния изход. Първият * означава писане на стандартен изход, за разлика от някакъв файл. Второто * означава да не използвате специално форматиране.

Стъпка 5. Добавете коментар
Това не е необходимо в толкова проста програма, но ще бъде полезно, когато пишете нещо по -сложно, така че трябва да знаете как да ги добавите. Има два начина за добавяне на коментар.
- За да добавите коментар, който има цял ред сам, напишете c директно в нов ред, без 6 интервала. След това напишете своя коментар. Трябва да оставите интервал между c и вашия коментар за по -добра четливост, но това не е задължително. Обърнете внимание, че трябва да използвате a! вместо c във Fortran 95 и по -нови.
- За да добавите коментар в същия ред като кода, добавете a! където искате да започне коментарът ви. Отново не е необходимо място, но подобрява четимостта.
Част 2 от 4: Използване на Input и If-конструкции

Стъпка 1. Разберете различните типове данни
- INTEGER се използва за цели числа, като 1, 3 или -3.
- REAL може също да съдържа число, което не е цяло, като 2.5.
- COMPLEX се използва за съхраняване на комплексни числа. Първото число е реалната, а втората въображаемата част.
- CHARACTER се използва за знаци, като букви или пунктуация.
- ЛОГИЧЕСКОТО може да бъде или.истина. или.false.. Това е като булевия тип в други езици за програмиране.
Стъпка 2. Получете въвеждането от потребителя
В програмата "Hello world", която сте писали преди, получаването на потребителски данни би било безполезно. Затова отворете нов файл и го наречете compnum.f. Когато приключите, той ще каже на потребителя дали въведеното от него число е положително, отрицателно или равно на нула.
- Въведете изчислението на програмата за редове и край на програмата.
- След това декларирайте променлива от типа REAL. Уверете се, че вашата декларация е между началото и края на програмата.
- Обяснете на потребителя какво трябва да направи. Напишете текст с функцията за запис.
- Прочетете въведените от потребителя променливи, декларирани с функцията за четене.
програма compnum real r write (*, *) "Въведете реално число:" read (*, *) r край програма

Стъпка 3. Обработете въведеното от потребителя с конструкция if
Поставете го между
прочетете (*, *) r
и
крайната програма
- Сравнението се прави с.gt. (по -голямо от),.lt. (по -малко от) и.eq. (равно) във Фортран.
- Fortran поддържа if, else if и else
- Фортран if-конструкцията винаги завършва с end if.
if (r.gt. 0) тогава напишете (*, *) "Това число е положително." иначе ако (r.lt. 0) след това напишете (*, *) "Това число е отрицателно." else напишете (*, *) "Това число е 0." край ако
Бакшиш: Не е нужно да отстъпвате код вътре в if-конструкции с повече интервали, но подобрява четимостта.

Стъпка 4. Компилирайте и стартирайте вашата програма
Въведете няколко числа, за да го тествате. Ако въведете буква, това ще доведе до грешка, но това е добре, защото програмата не проверява дали въведената буква е, цифра или нещо друго.
Част 3 от 4: Използване на цикли и масиви
Стъпка 1. Отворете нов файл
Тъй като тази концепция е различна, ще трябва да напишете нова програма отново. Дайте име на файла addmany.f. Вмъкнете съответните програмни и крайни програмни изявления, както и неявно няма. Когато приключите, тази програма ще прочете 10 числа и ще отпечата тяхната сума.
Стъпка 2. Декларирайте масив с дължина 10
Тук ще съхранявате числата. Тъй като вероятно искате сума от реални числа, трябва да обявите масива за реален. Декларирате такъв масив с
реални числа (50)
(числата са името на масива, а не израз).
Стъпка 3. Декларирайте някои променливи
Обявете numSum като реално число. Ще го използвате за съхраняване на сумата по -късно, но тъй като сумата вече е взета от израз на Fortran, трябва да използвате име като numSum. Задайте го на 0. Обявете i като цяло число и все още не му присвоявайте никаква стойност. Това ще бъде направено в цикъла do.
Стъпка 4. Създайте do-loop
Еквивалентът на този в други езици за програмиране би бил for-loop.
- Цикълът do започва винаги с do.
- На същия ред като do, отделен от него с интервал, е етикетът, към който ще отиде програмата, когато приключи. Засега просто напишете 1, ще зададете етикета по -късно.
-
След това, отново само разделени с интервал, въведете
i = 1,10
. Това ще направи променливата i, която сте декларирали преди цикъла, да премине от 1 до 10 на стъпки от 1. Стъпките не са споменати в този израз, така че Fortran използва стойността по подразбиране 1. Можете също така да сте написали
i = 1, 10, 1
-
Поставете някакъв код в цикъла (отстъп с интервали за по -добра четливост). За тази програма трябва да увеличите променливата numSum с i-тия елемент на номерата на масива. Това става с израза
numSum = numSum + число (i)
- Завършете цикъла с оператор continue, който има етикет. Въведете само 4 интервала. След това въведете 1. Това е етикетът, на който сте казали на do-цикъла да отиде, след като приключи. След това въведете интервал и продължете. Изразът continue не прави нищо, но дава добро място за поставяне на етикет, както и показва, че do-цикълът приключи.
Вашият цикъл на do сега трябва да изглежда така:
do 1 i = 1, 10 numSum = numSum + числа (i) 1 продължи
Бакшиш: Във Fortran 95 и по -нови версии не е необходимо да използвате етикети. Просто не поставяйте едно в оператора do и завършете цикъла с „end do“вместо „continue“.

Стъпка 5. Отпечатайте numSum
Също така би имало смисъл да се даде някакъв контекст, например „Сумата от вашите числа е:“. Използвайте функцията за запис и за двете. Целият ви код сега трябва да изглежда така:
програма добавя много неявни няма реални числа (10) реално numSum цяло число i numSum = 0 запис (*, *) "Въведете 10 числа:" четене (*, *) числа до 1 i = 1, 10 numSum = numSum + числа (i) 1 продължи да пише (*, *) "Тяхната сума е:" пиши (*, *) numSum крайната програма addmany

Стъпка 6. Компилирайте и стартирайте кода си
Не забравяйте да го тествате. Можете или да натиснете ↵ Enter след всяко въведено число или да въведете много числа в един и същи ред и да ги разделите с интервал.
Част 4 от 4: Разбиране на разширени концепции

Стъпка 1. Имайте добра представа какво ще прави вашата програма
Помислете какъв вид данни са необходими като вход, как да структурирате изхода и включете междинен изход, за да можете да наблюдавате напредъка на вашето изчисление. Това ще бъде много полезно, ако знаете, че изчислението ви ще продължи дълго време или включва множество сложни стъпки.

Стъпка 2. Намерете добра справка за Fortran
Fortran има много повече функции, отколкото е обяснено в тази статия, и те могат да бъдат полезни за програмата, която искате да напишете. Справка изброява всички функции, които езикът за програмиране има. Това е за Fortran 77 и това е за Fortran 90/95.

Стъпка 3. Научете за подпрограмите и функциите

Стъпка 4. Научете как да четете и пишете от/към файлове
Научете също как да форматирате вашия вход/изход.

Стъпка 5. Научете за новите функции на Fortran 90/95 и по -нови
Пропуснете тази стъпка, ако знаете, че ще пишете/поддържате само код на Fortran 77.
Не забравяйте, че Fortran 90 въведе изходния код на "Free Form", позволяващ писането на кода без интервалите и без ограничението от 72 знака

Стъпка 6. Прочетете или потърсете някои книги за научното програмиране
Например книгата „Числови рецепти във Фортран“е едновременно добър текст за алгоритмите за научно програмиране и добро въведение в това как да се съберат кодове. По-новите издания включват глави за това как да се програмира в смесена езикова среда и паралелно програмиране. Друг пример е „Съвременният Фортран на практика“, написан от Ариен Маркус. Книгата дава представа как да се пишат програми на Фортран в стил двадесет и първи век в съответствие с най-новите стандарти на Фортран.

Стъпка 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“в следващия ред, за да й присвоите стойност. Но това е лош стил, така че го избягвайте. По -важното е, че Fortran също не се интересува от случая с функции и изявления. Доста често е да се пишат функции и изявления с ГОРНА СЛАБА и променливи с малки букви.
- EMACS е добър безплатен текстов редактор, който да се използва вместо Notepad.
- Може да ви е по -лесно първо да използвате онлайн IDE (интегрирана среда за разработка). Добър вариант е Coding Ground. Там ще намерите множество езици за програмиране, включително Fortran-95. Друг вариант е Ideone.