Информационные системы ускорителей

ЛАБОРАТОРНЫЙ ПРАКТИКУМ:
«ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ»

СТРУКТУРА ПРАКТИКУМА

ВВЕДЕНИЕ

ВАЖНАЯ ИНФОРМАЦИЯ

1. ПРАВИЛА ЗАПИСИ ПРОГРАММЫ

1. Набор символов Фортрана

2. Форматы записи программы

3. Фиксированный формат

4. Свободный формат

2. ТРАНСЛЯЦИЯ ПРОГРАММЫ

1. Программа в одном исходном файле

2. Трансляция исходного файла

3. Трансляция нескольких исходных файлов

4. Трансляция модулей

3. КОНЦЕПЦИЯ ДАННЫХ ЯЗЫКА ФОРТРАН

1. Имена (идентификаторы)

2. Понятие типа

3. Буквальные константы

4. Разновидности типов и диапазоны значений

5. Скалярные переменные и константы

6. Массивы

7. Производные типы данных

4. ВЫРАЖЕНИЯ И ПРЕОБРАЗОВАНИЕ ТИПОВ

1. Скалярное присваивание

2. Арифметика Фортрана

3. Логические выражения

4. Работа с текстовыми строками

5. Операции с массивами

5. УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ

1. Условный оператор и конструкция IF

2. Оператор варианта – конструкция CASE

3. Циклы – разновидности конструкции DO

4. Оператор GO TO

6. ВВОД/ВЫВОД ДАННЫХ

1. Простейшие операции ввода/вывода

2. Форматный ввод/вывод данных

3. Ввод/вывод массивов в неявных циклах

4. Файловый ввод/вывод

7. ПРОГРАММНЫЕ КОМПОНЕНТЫ И ЭЛЕМЕНТЫ ООП

1. Структура программных компонентов

2. Внешние подпрограммы

3. Внутренние подпрограммы

4. Модули как библиотеки производных типов

5. Встроенные функции Фортрана

ЗАДАЧИ ДЛЯ ПРОГРАММИРОВАНИЯ

ПРАКТИКУМ «ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ»

Авторы: Аверьянов Г.П., Будкин В.А., Дмитриева В.В., Кунов И.А.

Структура и задачи практикума

Изучение начал программирования, в классическом варианте, связано с рассмотрением структуры программных единиц (главной программы и подпрограмм), основных и производных типов данных и реализации стандартных алгоритмов, использующих условные операторы, циклы, массивы и другие структуры данных. Рассмотрению этих стандартных вопросов посвящены первые пять параграфов §1 – §5.

Вопросы и примеры, связанные с вводом/выводом данных рассматриваются § 6. Рассматривается как консольный (терминальный) ввод/вывод так и работа с внешними файлами.

В современном Фортране присутствуют языковые конструкции – модули, позволяющие связать воедино структуры данных производные от основных типов с функциями, позволяющими реализовать полезные преобразования с такими структурами. В связи с этим, имеет смысл рассмотреть элементы объектно-ориентированного программирования. Соответствующие вопросы и примеры рассмотрены §7 (п.7.4.).

Программирование задач практикума осуществляется на стандартном для инженерных и научных расчетов алгоритмическом языке Fortran (компилятор Gfortran – free Fortran 95/2003/2008 compiler for GCC, the GNU Compiler Collection, реализующем стандарт [ISO/IEC 1539-1:1997(E)], с поддержкой элементов объектно-ориентированного программирования).

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

Зачастую, изучая программирование в различных средах, студенты либо вообще остаются в неведении относительно того, что такое транслятор, либо имеют о трансляторе довольно смутные представления, поскольку взаимодействуют с ним опосредованно, через систему многоуровневого меню. В связи с этим, на первом этапе обучения программирования весьма целесообразным представляется использование наиболее простого транслятора, запускаемого из командной строки, и не отягощенного разного рода графическими средами и сервисами. Именно таким транслятором является компилятор Gfortran. Изначально этот компилятор разработан для GNU/Linux (http://gcc.gnu.org/fortran/), но его можно свободно скачать и установить под Windows, в составе пакета MinGW (Minimalist GNU for Windows) – с официального сайта MinGW: http://www.mingw.org. Эта информация может оказаться актуальной, для внеаудиторного выполнения лабораторного практикума.

Принципиальным моментом при изучении основ программирования является понимание важности следования стандарту языка при написании текста программы и его переносимости. Конкретный программный продукт, например, Fortran Power Station (FPS) поддерживает стандарт [ISO/IEC 1539-1:1997(E)], так же как и Gfortran. Однако тексты программ, написанные и отлаженные на FPS, далеко не всегда будут правильно компилироваться другими компиляторами Фортрана, ориентированными на тот же стандарт. Это, весьма возможно, если в тексте программы будет использован тип данных или языковая конструкция, нестандартная в рамках [ISO/IEC 1539-1:1997(E)], но присутствующая в FPS как опция, дополняющая возможности стандарта. Это вовсе не означает, что нестандартными возможностями какого либо транслятора или среды разработки не следует пользоваться. Нужно всего лишь уметь четко оценивать текст написанной программы, на предмет соответствия стандарту языка программирования и делать правильные выводы относительно переносимости данной программы.

Настоящий лабораторный практикум по программированию разрабатывался, прежде всего, как необходимый элемент лингвистической поддержки практикума по программированию численных методов. Однако ввиду разнообразия учебных курсов по программированию (как по содержанию, так и по отведенному лимиту учебных часов) лабораторный практикум по программированию на Фортране может быть использован как независимый учебный курс, в сочетании с различными задачниками по программированию общего характера, ориентированными на рассмотрение стандартных алгоритмических конструкций.