Как да програмирате във Фортран (със снимки)

Съдържание:

Как да програмирате във Фортран (със снимки)
Как да програмирате във Фортран (със снимки)

Видео: Как да програмирате във Фортран (със снимки)

Видео: Как да програмирате във Фортран (със снимки)
Видео: Настя и сборник весёлых историй 2024, Април
Anonim

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

Стъпки

Част 1 от 4: Написване и съставяне на проста програма

Fortran здравей световна програма напиши corrected
Fortran здравей световна програма напиши corrected

Стъпка 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.

Fortran здравей свят компилиране run
Fortran здравей свят компилиране 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. Добавете коментар

Това не е необходимо в толкова проста програма, но ще бъде полезно, когато пишете нещо по -сложно, така че трябва да знаете как да ги добавите. Има два начина за добавяне на коментар.

  • За да добавите коментар, който има цял ред сам, напишете c директно в нов ред, без 6 интервала. След това напишете своя коментар. Трябва да оставите интервал между c и вашия коментар за по -добра четливост, но това не е задължително. Обърнете внимание, че трябва да използвате a! вместо c във Fortran 95 и по -нови.
  • За да добавите коментар в същия ред като кода, добавете a! където искате да започне коментарът ви. Отново не е необходимо място, но подобрява четимостта.

Част 2 от 4: Използване на Input и If-конструкции

Fortran типове данни
Fortran типове данни

Стъпка 1. Разберете различните типове данни

  • INTEGER се използва за цели числа, като 1, 3 или -3.
  • REAL може също да съдържа число, което не е цяло, като 2.5.
  • COMPLEX се използва за съхраняване на комплексни числа. Първото число е реалната, а втората въображаемата част.
  • CHARACTER се използва за знаци, като букви или пунктуация.
  • ЛОГИЧЕСКОТО може да бъде или.истина. или.false.. Това е като булевия тип в други езици за програмиране.

Стъпка 2. Получете въвеждането от потребителя

В програмата "Hello world", която сте писали преди, получаването на потребителски данни би било безполезно. Затова отворете нов файл и го наречете compnum.f. Когато приключите, той ще каже на потребителя дали въведеното от него число е положително, отрицателно или равно на нула.

  • Въведете изчислението на програмата за редове и край на програмата.
  • След това декларирайте променлива от типа REAL. Уверете се, че вашата декларация е между началото и края на програмата.
  • Обяснете на потребителя какво трябва да направи. Напишете текст с функцията за запис.
  • Прочетете въведените от потребителя променливи, декларирани с функцията за четене.

програма compnum real r write (*, *) "Въведете реално число:" read (*, *) r край програма

Fortran if construction
Fortran if construction

Стъпка 3. Обработете въведеното от потребителя с конструкция if

Поставете го между

прочетете (*, *) r

и

крайната програма

  • Сравнението се прави с.gt. (по -голямо от),.lt. (по -малко от) и.eq. (равно) във Фортран.
  • Fortran поддържа if, else if и else
  • Фортран if-конструкцията винаги завършва с end if.

if (r.gt. 0) тогава напишете (*, *) "Това число е положително." иначе ако (r.lt. 0) след това напишете (*, *) "Това число е отрицателно." else напишете (*, *) "Това число е 0." край ако

Бакшиш: Не е нужно да отстъпвате код вътре в if-конструкции с повече интервали, но подобрява четимостта.

Програма за проверка на номера на Fortran test
Програма за проверка на номера на Fortran test

Стъпка 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“.

Fortran do loop code
Fortran do loop code

Стъпка 5. Отпечатайте numSum

Също така би имало смисъл да се даде някакъв контекст, например „Сумата от вашите числа е:“. Използвайте функцията за запис и за двете. Целият ви код сега трябва да изглежда така:

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

Fortran добави код за номера test
Fortran добави код за номера test

Стъпка 6. Компилирайте и стартирайте кода си

Не забравяйте да го тествате. Можете или да натиснете ↵ Enter след всяко въведено число или да въведете много числа в един и същи ред и да ги разделите с интервал.

Част 4 от 4: Разбиране на разширени концепции

Програма във Fortran Стъпка 13
Програма във Fortran Стъпка 13

Стъпка 1. Имайте добра представа какво ще прави вашата програма

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

Референтен уебсайт на Fortran screenshot
Референтен уебсайт на Fortran screenshot

Стъпка 2. Намерете добра справка за Fortran

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

Подпрограми на Fortran example
Подпрограми на Fortran example

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

Низ на формат Fortran example
Низ на формат Fortran example

Стъпка 4. Научете как да четете и пишете от/към файлове

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

Модерен пример fortran screenshot
Модерен пример fortran screenshot

Стъпка 5. Научете за новите функции на Fortran 90/95 и по -нови

Пропуснете тази стъпка, ако знаете, че ще пишете/поддържате само код на Fortran 77.

Не забравяйте, че Fortran 90 въведе изходния код на "Free Form", позволяващ писането на кода без интервалите и без ограничението от 72 знака

Fortran книга онлайн screenshot
Fortran книга онлайн screenshot

Стъпка 6. Прочетете или потърсете някои книги за научното програмиране

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

Fortran програма за компилиране на множество files
Fortran програма за компилиране на множество files

Стъпка 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.

Препоръчано: