Вы находитесь на странице: 1из 161

Ю.И.

Рыжиков
ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ POWERSTATION ДЛЯ
ИНЖЕНЕРОВ. ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Предлагаемая вашему вниманию книга является практическим руководством
но новейшей версии Фортрана-90 для ПК, включая технологию разработки
программ, работу с библиотеками и построителем графиков. Ряд примеров
сложных программ имеет непосредственную практическую ценность. Все
программы, приведенные в книге, автор широко использует на практике.
Автор — доктор технических наук. заслуженный деятель науки РФ, профессор
Юрий Иванович Рыжиков, основавший кафедру математического обеспечения
ЭВМ Военного инженерно-космического университета им. А. Ф. Можайского,
которая дала компьютерному миру таких известных авторов, как Б. С.
Богумирский и А. Д. Хомоненко. Преподаватель программирования,
информатики, вычислительной математики, моделирования вычислительных
систем, автор 170 научных работ, Ю. И. Рыжиков адресует свой труд студентам,
инженерам, научным работникам, интересы которых лежат в области
программирования численных задач.
Оглавление
Введение 3
1. Элементы и объекты программы 7
1.1. Набор символов 7
1.2. Формат программы 7
1.3. Понятие о проекте 8
1.4. Текстовый редактор 11
1.4.1. Работа с файлами 11
1.4.2. "Горячие" клавиши 11
1.4.3. "Заказная" распечатка 13
1.4.4. -Управление окнами просмотра 13
1.5. "Хороший стиль" программирования 13
1.6. Лексемы 14
1.7. Описания 15
1.8. Выражения 17
1.8.1. Арифметические выражения 17
1.8.2. Встроенные функции 18
1.8.3. Логические выражения 19
1.9. Инициализация и изменение значений переменных 21
1.10. Простейший ввод-вывод 22
2. Операторы управления 23
2.1. Разветвления 24
2.2. Циклы 26
2.2.1. Цикл с шагом 26
2.2.2. Цикл с условием 27
2.2.3. Вложенные циклы 29
2.2.4. Дополнительные средства 30
3. Массивы 32
3.1. Роль массивов 32
3.2. Описание массивов 32
3.3. Вырезки и сечения массивов 33
3.4. Задание массивов 34
3.5. Поэлементные операции 35
3.6. Выборочные действия 35
3.7. Встроенные функции для векторов и матриц 36
3.7.1. Справочные функции 36
3.7.2. Преобразование массивов 37
3.7.3. Неэлементные операции 38
3.8. Динамическая память 39
4. Обработка строк 40
4.1. Строки и массивы строк 40
4.2. Функции от строк 40
5. Программные компоненты 42
5.1. Программа и ее компоненты 42
5.2. Подпрограммы 44
5.3. Функции 45
5.4. Расположение операторов 46
5.5. Области видимости меток и имей 46
5.6. Внутренние процедуры 47
5.7. Интерфейс процедур 47
5.8. Специальные виды параметров 49
5.8.1. Массивы как параметры 49
5.8.2. Процедуры как параметры 52
5.8.3. Необязательные и ключевые параметры 53
5.9. Рекурсивные процедуры 54
5.10. Общие области и подпрограммы данных 56
5.11. Модули и работа с ними 58
5.11.1. Пример "модульной" программы 59
5.11.2. Специальные виды модулей 61
5.12. Доступ к объектам модуля 63
6. Ввод-вывод данных 64
6.1. Список ввода-вывода 64
6.1.1. Ввод, управляемый списком 65
6.1.2. Группа NAMELIST 65
6.2. Спецификации формата 65
6.2.1. Управление размещением информации 67
6.2.2. Переменные спецификации формата 67
6.3. Взаимодействие списков объектов и форматов 68
6.4. Внешние файлы 69
6.5. Внутренние файлы 70
7. Производные типы данных 72
7.1. Производные типы данных 72
7.2. Операции над определяемыми типами 73
8. Ссылки и списки 76
8.1. Базовые понятия 76
8.2. Ссылки как псевдонимы 77
8.3. Связные списки 77
8.4. Целые указатели 80
9. Вычислительные методы 82
9.1. Построение частотных характеристик 82
9.2. Рекуррентные вычисления 84
9.3. Генерация случайных чисел 84
9.4. Сортировка и поиск 86
9.4.1. Поиск в массиве 86
9.4.2. Понятие о сортировках 86
9.4.3. Линейный выбор с обменом 87
9.4.4. Пузырьковая сортировка 87
9.4.5. Челночная сортировка 88
9.4.6. Быстрая сортировка 89
9.4.7. О внешних сортировках 91
9.5. Работа с разреженными матрицами 91
9.6. Обращение матрицы методом Гаусса 97
9.7. Решение уравнения методом секущих 98
9.8. Вычисление определенных интегралов 99
9.9. Решение дифференциальных уравнений 102
9.10. Математические библиотеки IMSL 107
9.11. Numerical Recipes 110
10. Пакет научной графики 112
10.1. Знакомство с пакетом 112
10.2. Константы SciCraph 113
10.3. Структуры установок 114
10.4. Типы данных и осей 116
10.5. Вызывающая последовательность 117
10.6. Установка основных параметров 117
10.6.1. График в целом 117
10.6.2. Ряды данных 118
10.6.3. Координатные оси 119
10.7. Рисование графика 120
10.7.1. Основа графика 120
10.7.2. Собственно графики 120
10.8. Коды возврата. 121
10.9. Пример применения Scigraph 122
10.10. Опыт применения 127
11. Организация разработки программ 130
11.1. Состав и основные команды MDS 130
11.2. Определение директорий 130
11.3. Командная консоль 131
11.4. Организация проектов 132
11.4.1. Цель проекта 132
11.4.2. Рабочее поле 132
11.4.3. Структура проекта 133
11.4.4. Типы проектов 133
11.4.5. Задание целевых опций 133
11.5. Проекты и модули 133
11.6. Создание проектов 134
11.7. Компиляция, связывание, запуск 136
11.7.1. Метакоманды и опции компилятора 137
11.7.2. Связывание 140
11.7.3. Работа с модулями I'll
11.7.4. Создание выполняемой программы 142
11.7.5. Выполнение программы 142
11.8. Просмотр проекта 142
11.9. Отладчик 143
11.9.1. Отладка синтаксиса 143
11.9.2. Организация семантической отладки 144
11.10. Профилирование проекта 147
11.11. Работа с личными библиотеками 148
11.11.1. Вазовые понятия 148
11.11.2. Статическая библиотека 149
11.11.3. Динамические библиотеки 150
11.11.4. Библиотекарь 152
Задачи для упражнений 153
Литература 155

Оценить