Как программировать на Фортране (с изображениями)

Оглавление:

Как программировать на Фортране (с изображениями)
Как программировать на Фортране (с изображениями)

Видео: Как программировать на Фортране (с изображениями)

Видео: Как программировать на Фортране (с изображениями)
Видео: Как хранить заметки в Интернете 2024, Апрель
Anonim

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

Шаги

Часть 1 из 4: Написание и компиляция простой программы

Программа на языке Fortran hello world write corrected
Программа на языке Fortran hello world write corrected

Шаг 1. Напишите программу "Hello World"

Обычно это первая программа, которая пишет на любом языке, и она просто выводит на экран «Hello world». Напишите следующий код в любом текстовом редакторе и сохраните его как helloworld.f. Обратите внимание, что перед каждой строкой должно быть ровно 6 пробелов.

программа helloworld implicit none character * 13 hello_string hello_string = "Привет, мир!" write (*, *) hello_string конечная программа helloworld

Кончик: Пробелы необходимы только в версиях Fortran до FORTRAN 77. Если вы используете более новую версию, вы можете опустить пробелы. Компилируйте программы из более новой версии с f95, а не с f77; используйте.f95 в качестве расширения файла, а не просто.f.

Шаг 2. Скомпилируйте программу

Для этого введите в командной строке f77 helloworld.f. Если это дает ошибку, вы, вероятно, еще не установили компилятор Fortran, например, gfortran.

Фортран привет, мир компиляция run
Фортран привет, мир компиляция run

Шаг 3. Запустите вашу программу

Компилятор создал файл с именем a.out. Запустите этот файл, набрав./a.out.

Шаг 4. Разберитесь в том, что вы только что написали

  • программа helloworld

    указывает на запуск программы helloworld. Сходным образом,

    конец программы helloworld

  • указывает его конец.
  • По умолчанию, если вы не объявляете тип переменной, Fortran рассматривает переменную с именем, начинающимся с буквы от i до n, как целое число, а все остальные - как действительное число. Рекомендуется использовать

    неявный нет

  • если вам не нужно такое поведение.
  • символ * 13 hello_string

  • объявляет массив символов, который называется hello_string.
  • hello_string = "Привет, мир!"

  • присваивает значение "Hello, world!" в объявленный массив. В отличие от других языков, таких как C, это нельзя сделать в той же строке, что и объявление массива.
  • написать (*, *) hello_string

  • выводит значение hello_string на стандартный вывод. Первый * означает запись в стандартный вывод, а не в какой-то файл. Второй * означает не использовать какое-либо специальное форматирование.
Fortran comments
Fortran comments

Шаг 5. Добавьте комментарий

Это не обязательно в такой простой программе, но будет полезно, когда вы напишете что-то более сложное, поэтому вы должны знать, как их добавить. Есть два способа добавить комментарий.

  • Чтобы добавить комментарий, который содержит целую строку, напишите c непосредственно в новой строке, без 6 пробелов. После этого напишите свой комментарий. Вы должны оставить пробел между c и вашим комментарием для лучшей читаемости, но это не обязательно. Обратите внимание, что вы должны использовать! вместо c в Fortran 95 и новее.
  • Чтобы добавить комментарий в той же строке, что и код, добавьте! где вы хотите, чтобы ваш комментарий начинался. Опять же, пространство не требуется, но улучшает читаемость.

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

Fortran data types
Fortran data types

Шаг 1. Узнайте о различных типах данных

  • Целое число используется для целых чисел, таких как 1, 3 или -3.
  • REAL также может содержать неполное число, например 2,5.
  • КОМПЛЕКС используется для хранения комплексных чисел. Первое число - действительное, второе - мнимая часть.
  • CHARACTER используется для символов, таких как буквы или знаки препинания.
  • LOGICAL может иметь значение.true. или.false.. Это похоже на логический тип в других языках программирования.

Шаг 2. Получите ввод пользователя

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

  • Введите строки программы compnum и end program compnum.
  • Затем объявите переменную типа REAL. Убедитесь, что ваше объявление находится между началом и концом программы.
  • Объясните пользователю, что он должен делать. Напишите текст с помощью функции записи.
  • Прочтите ввод пользователя в переменную, которую вы объявили с помощью функции чтения.

program compnum real r write (*, *) «Введите действительное число:» read (*, *) r end program

Фортран if construction
Фортран if construction

Шаг 3. Обработайте ввод пользователя конструкцией if

Поместите это между

читать (*, *) r

и

конец программы

  • Сравнение выполняется с помощью.gt. (больше чем),.lt. (меньше чем) и.экв. (равно) в Фортране.
  • Fortran поддерживает if, else if и else
  • Конструкция if в Фортране всегда заканчивается на end if.

если (r.gt. 0), то напишите (*, *) «Это число положительное». иначе, если (r.lt. 0), то напишите (*, *) «Это число отрицательное». иначе напишите (*, *) «Это число равно 0.» конец, если

Кончик: Вам не нужно делать отступы внутри if-конструкций с большим количеством пробелов, но это улучшает читаемость.

Программа проверки числа Fortran test
Программа проверки числа Fortran test

Шаг 4. Скомпилируйте и запустите вашу программу

Введите числа, чтобы проверить это. Если вы введете букву, это вызовет ошибку, но это нормально, потому что программа не проверяет, является ли ввод буквой, числом или чем-то еще.

Часть 3 из 4: Использование циклов и массивов

Шаг 1. Откройте новый файл

Поскольку эта концепция отличается, вам придется снова написать новую программу. Назовите файл addmany.f. Вставьте соответствующие операторы программы и завершения программы, а также неявное значение none. Когда вы закончите, эта программа прочитает 10 чисел и выведет их сумму.

Шаг 2. Объявите массив длиной 10

Здесь вы будете хранить числа. Поскольку вам, вероятно, нужна сумма действительных чисел, вы должны объявить массив как реальный. Вы объявляете такой массив с помощью

реальные числа (50)

(числа - это имя массива, а не выражение).

Шаг 3. Объявите несколько переменных

Объявите numSum как действительное число. Вы будете использовать его для хранения суммы позже, но поскольку сумма уже берется выражением Фортрана, вы должны использовать имя вроде numSum. Установите его в 0. Объявите i как целое число и пока не присваивайте ему никакого значения. Это будет сделано в цикле выполнения.

Шаг 4. Создайте петлю

Аналогом этого в других языках программирования будет цикл for.

  • Цикл do всегда начинается с do.
  • В той же строке, что и do, отделенная от нее пробелом, находится метка, к которой программа перейдет после завершения. А пока просто напишите 1, метку вы установите позже.
  • После этого снова через пробел введите

    я = 1, 10

    . Это заставит переменную i, которую вы объявили перед циклом, перейти от 1 до 10 с шагом 1. Эти шаги не упоминаются в этом выражении, поэтому Fortran использует значение по умолчанию, равное 1. Вы также могли бы написать

    я = 1, 10, 1

  • Поместите код внутрь цикла (сделайте отступ с пробелами для удобства чтения). Для этой программы следует увеличить переменную numSum на i-й элемент массива чисел. Это делается с помощью выражения

    numSum = numSum + число (i)

  • Завершите цикл оператором continue с меткой. Введите всего 4 пробела. После этого введите 1. Это метка, на которую вы указали переходу цикла do после его завершения. Затем введите пробел и продолжайте. Выражение continue ничего не делает, но дает хорошее место для размещения метки, а также показывает, что цикл выполнения завершился.

Ваш цикл do теперь должен выглядеть так:

do 1 i = 1, 10 numSum = numSum + numbers (i) 1 продолжить

Кончик: В Fortran 95 и новее вам не нужно использовать метки. Только не помещайте его в оператор do и завершайте цикл с помощью «end do» вместо «continue».

Фортран do loop code
Фортран do loop code

Шаг 5. Выведите numSum

Также имеет смысл дать некоторый контекст, например, «Сумма ваших чисел:». Используйте функцию записи для обоих. Теперь весь ваш код должен выглядеть следующим образом:

программа addmany неявные никакие действительные числа (10) вещественное numSum целое число i numSum = 0 запись (*, *) «Введите 10 чисел:» чтение (*, *) чисел do 1 i = 1, 10 numSum = numSum + numbers (i) 1 continue write (*, *) «Их сумма:» write (*, *) numSum end program addmany

Добавление чисел в Фортране code test
Добавление чисел в Фортране code test

Шаг 6. Скомпилируйте и запустите свой код

Не забудьте проверить это. Вы можете нажимать ↵ Enter после каждого вводимого числа или вводить несколько чисел в одной строке и разделять их пробелом.

Часть 4 из 4: понимание сложных концепций

Программа на Fortran Step 13
Программа на Fortran Step 13

Шаг 1. Имейте хорошее представление о том, что будет делать ваша программа

Подумайте о том, какие данные необходимы в качестве входных, как структурировать выходные данные и включить некоторые промежуточные выходные данные, чтобы вы могли отслеживать ход ваших вычислений. Это будет очень полезно, если вы знаете, что ваш расчет будет выполняться в течение длительного времени или включает в себя несколько сложных шагов.

Справочный сайт Fortran screenshot
Справочный сайт Fortran screenshot

Шаг 2. Найдите хорошую ссылку на Фортран

В Фортране гораздо больше функций, чем описано в этой статье, и они могут быть полезны для программы, которую вы хотите написать. В справочнике перечислены все функции языка программирования. Это для 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 представил исходный код «свободной формы», позволяющий писать код без пробелов и без ограничения в 72 символа

Книга Фортран онлайн screenshot
Книга Фортран онлайн screenshot

Шаг 6. Прочтите или найдите книги по научному программированию

Например, книга «Числовые рецепты на Фортране» - это как хороший текст по алгоритмам научного программирования, так и хорошее введение в составление кодов. В более поздние выпуски включены главы о программировании в среде со смешанными языками и параллельном программировании. Другой пример - «Современный Фортран на практике», написанный Арьеном Маркусом. Книга дает представление о том, как писать программы на Fortran в стиле двадцать первого века в соответствии с последними стандартами Fortran.

Программа компиляции Fortran из нескольких файлов
Программа компиляции Fortran из нескольких файлов

Шаг 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. Имейте в виду, что использование более агрессивной опции оптимизации может привести к ошибкам в сложных кодах и даже замедлить работу! Протестируйте свой код.

    подсказки

    • Начните с небольших программ. Когда вы пишете свой собственный код, постарайтесь определить наиболее существенную часть проблемы - ввод данных или вызов функций, структуру цикла (это некоторые очень элементарные примеры) и начать с этого. Затем развивайте это маленькими шагами.
    • Фортран не чувствителен к регистру. Вы можете, например, объявить переменную «real Num» и написать «num = 1» в следующей строке, чтобы присвоить ей значение. Но это плохой стиль, так что избегайте его. Что еще более важно, Fortran также не заботится о регистре функций и операторов. Довольно часто функции и операторы пишутся в верхнем регистре, а переменные - в нижнем регистре.
    • EMACS - хороший бесплатный текстовый редактор для использования вместо Блокнота.
    • Возможно, сначала вам будет проще использовать онлайн-среду IDE (интегрированную среду разработки). Хороший вариант - Coding Ground. Там вы найдете множество языков программирования, включая Fortran-95. Другой вариант - Идеоне.

Рекомендуемые: