Фортран
.pdfЮ.И.Рыжиков
ПРОГРАММИРОВАНИЕ НА ФОРТРАНЕ 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 |