9.5. Библиотеки стандартных программ
Пакеты прикладных программ для решения задач определенной области знаний формируются и содержатся в библиотеках на магнитных носителях под определенными именами. При необходимости каждый пользователь может включить любую программу в качестве блока своей программы. Стремление повысить эффективность и сократить время на программирование привело к необходимости включая в библиотеки стандартных программ (БСП) подпрограмм решения задач, наиболее часто встречающихся в практике: задач статистической обработки данных, линейной алгебры, дифференциального и интегрального исчисления, отыскания корней многочленов, нахождения экстремумов и т.д.
Эти подпрограммы строятся по принципу программ общего вида, обращение к которому осуществляется с помощью оператора CALL. Как правило, в этих подпрограммах нет операторов обращения к устройствам ввода-вывода. Максимальные длины массивов данных в подпрограммах не фиксированы и указываются в списках формальных параметров. Описания подпрограммы БСП обычно не содержат тексты подпрограмм, а содержат такие сведения, как название подпрограммы, назначение подпрограммы, обращение к подпрограмме, описание формальных параметров, перечень внешних подпрограмм, к обходимых для использования выбранной подпрограммы. Название подпрограммы задается именем, по которому осуществляется обращение к ней.
Назначение подпрограммы указывает не только тип решаемой задачи, но и используемый численный метод, основные математические формулы и соотношения, а также ограничения на использование данной подпрограммы.
Обращение к подпрограмме осуществляется с помощью оператор CALL, имеющего в описании подпрограммы следующую структуру:
CALL <имя подпрограммы> (список формальных параметров)
В описании формальных параметров указывается, что означает каждый из них, и задаются их характеристики. Среди параметров перечисляются не только входные, необходимые для выполнения подпрограммы, и выходные, обозначающие результаты ее выполнения но и вспомогательные, характеризующие входные данные и результаты.
Указание в описании подпрограммы перечня внешних подпрограмм необходимо для того, чтобы установить их наличие в БС1
данной ЭВМ, так как в некоторые моменты времени они могут отсутствовать. Описание подпрограммы может снабжаться замечаниям>
Оператор обращения в подпрограмме CALL записывается в основной программе в тех местах, где есть необходимость произвести вычисления по данной подпрограмме. При этом в операторе CALL вместо формальных задаются соответствующие фактические параметры в форме, необходимой для использования их в подпрограмме. Формальные и фактические параметры должны быть согласованы по порядку их расположения, типу, длине и количеству. Числа в подпрс
грамме передаются либо как переменные в списке аргументов, либ
как константы в этом же списке.
Подпрограммы, работающие с матрицами, оперируют с массива ми любой размерности, ограниченные в большинстве случаев только доступным объемом памяти и условиями численного анализа. Они нсодержат фиксированного максимума длины для массивов данные указанных в формальных параметрах. 1
Точность вычислений большинства подпрограмм в значительной степени зависит от числа значащих цифр, доступных для арифметических операций. Для повышения точности пользователь может работать с вариантом подпрограмм удвоенной точности. Оператор удвоенной точности языка ФОРТРАН включены в каждую из этих подпрограмм в виде карт комментариев.
Краткие сведения о пакете научных подпрограмм (SSP). Пакет представляет собой совокупность подпрограмм, реализующих методы численного анализа и статистики. Пакет имеет модульную структуру, что допускает возможность его расширения и замены отдельных модулей.
Отдельные подпрограммы или их комбинации используют для решения различного рода задач в следующих областях.
Статистика - пробит-анализ; дисперсионный анализ (факторное планирование); корреляционный анализ; множественная линейная регрессия; шаговая регрессия; полиномиальная регрессия; каноническая корреляция; факторный анализ и т.д.
Математика - обращение матриц; решение системы линейных алгебраических уравнений; матричная арифметика (сложение, умножение и т.д.); элементарные операции со строками и столбцами матриц; разложение матриц; интегрирование и дифференцирование функций, заданных таблично; решение дифференциальных уравнении первого порядка; вычисление гамма-функций; нахождение действительных корней заданной функции; нахождение действительных и комплексных корней многочлена с действительными коэффициентов и т.д.
Пакет подпрограмм является пакетом простой структуры. Он включает в себя отдельные программные модули, которые могут быть организованы в библиотеку средствами операционной системы. Эти подпрограммы имеют чисто вычислительный характер и не содержат никаких ссылок на устройство ввода-вывода. Поэтому пользователь в программе предусматривает какой-то ввод-вывод и другие операции, необходимые для полного решения задач. Кроме того, пользователь с помощью оператора DIMENSION определяет все матрицы, над которыми производятся операции подпрограммами пакета, а также матрицы. используемые в его собственной программе.
Если пользователь работает в других версиях языка ФОРТРАН, имеющих более широкие возможности, он использует элементы этого языка, отсутствующие в языке БАЗИСНЫЙ ФОРТРАН. Например, некоторые версии языка ФОРТРАН содержат возможности кратного входа в подпрограмму. Используя их, некоторые подпрограммы пакета объединяют. В качестве примера приведем объединение подпрограмм GMADD и GMSUB (сложение и вычитание общих матриц):
SUBROUTTINE GMADD (A, B, N,
DIMENSION A(l), B(l), R(l)
K=0
ENTRY GMSUB (A, B, R, N, M)
K=l
10 NM=NXM
DO 40 l=l, NM
IF(K) 20,20,30
20 R(1)=A(1)+B(1)
GOTO 40
30 R(I)=A(I)-B(I)
40 CONTINUE
RETURN
END.
Такое объединение подпрограмм не влияет на программу пользователя, обращающуюся к этим подпрограммам, но сокращает общий размер используемой памяти.
Точность вычислений. В значительной степени точность вычисления многих подпрограмм пакета зависит от числа значащих цифр над которыми производятся различные арифметические операции. К ним относятся операции обращения матриц, интегрирования и многие другие. Поэтому возникает необходимость использования подпрограмм удвоенной точности.
Многие подпрограммы пакета SSP написаны в двух вариантах: обычной и удвоенной точностью. Некоторые подпрограммы содержат инструкции для работы с данными удвоенной точности в текст подпрограммы на исходном языке. Операторы для работы с удвоенной точностью включаются в каждую подпрограмму в форме карт комментариев. В большинстве случаев вариант подпрограммы с удвоенной точностью может быть получен удалением перед компиляцией символа <С> столбца карты (карт) с оператором DOUBLE PRECISION. В некоторых случаях даются дополнительные инструкции: например, заменить SQRT на DSQRT, ABS на DABS или задать новые константы.
Использование подпрограмм с удвоенной точностью требует детального знания правил языка ФОРТРАН, касающихся вычислений c удвоенной точностью. Приведем некоторые из них: 1
1. Имя любой действительной переменной или массива, содержащегося в списке аргументов оператора CALL, вызывающего подпрограмму с удвоенной точностью, должна быть описана с помощью оператора DOUBLE PRECISION в вызывающей программе. Например, если подпрограмма обращения матрицы MINV из пакета SSP неизменена в вариант удвоенной точности, а программа пользователя содержит оператор
CALL MINV (ARI,N,DET,MYI,MY2),
ARI - имя массива (действительный, удвоенной точности массив);
- размерность (целая переменная); DET - определитель (действительная, удвоенной точности переменная); MYI - рабочий вектор массив целых чисел); MY2 - рабочий вектор (массив целых чисел), то в начаале программы пользователя должен быть оператор описания
DOUBLE PRECISION ARI, DET
Остальные переменные оператора CALL являются целыми переданными и их не следует включать в оператор описания.
2. Любая задаваемая пользователем функция, названная в операторе CALL при обращении к подпрограмме с удвоенной точностью пакета SSP, должна быть запрограммирована как функция удвоенной точности. Например, для решения дифференциального уравнения методом Рунге-Кутта по подпрограмме RK2 используется функция
- Глава 4 информационные ресурсы и информатизация общества 64
- Раздел II прикладная информатика 82
- Глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации 82
- Глава 6. Технические средства реализации информационных процессов 105
- Глава 11 глобальная информационная сеть internet 222
- Глава 12 искусственный интеллект 270
- Глава 13 экспертные системы 297
- Острейковский в.А. Информатика
- Введение
- Раздел I теоретическая информатика глава 1 основные понятия и определения информатики
- 1.1. Терминология информатики
- 1.2. Объект информатики
- 1.3. Предметная область информатики как науки
- 1.4. Краткая история развития информатики
- Контрольные вопросы
- Глава 2 информатика как наука
- 2.1. Категории информатики
- 2.2. Аксиоматика информатики
- 2.3. Виды и свойства информации
- Контрольные вопросы
- Глава 3. Математические основы информатики
- 3.1. Методы и модели оценки количества информации
- 3.2. Основные понятия теории алгоритмов
- 3.3. Системы счисления
- 3.3.1. Позиционные системы счисления
- 3.3.2. Двоичная система счисления
- 3.3.3. Другие позиционные системы счисления
- 3.3.4. Смешанные системы счисления
- 3.3.5. Перевод чисел из одной системы счисления в другую
- 3.4. Формы представления и преобразования информации
- 3.4.1. Числовая система эвм. Представление целых чисел без знака и со знаком
- 3.4.2. Индикаторы переноса и переполнения
- 3.4.3. Представление символьной информации в эвм
- 3.4.4. Форматы данных
- Контрольные вопросы, упражнения и задачи
- Глава 4 информационные ресурсы и информатизация общества
- 4.1. Особенности информационного ресурса
- 4.2. Формы и виды информационных ресурсов
- 4.3. Информатизация общества
- 4.3.1. Сущность и цели информатизации
- 4.3.2. Создание информационных структур
- 4.3.3. Формирование индустрии информатики
- 4.3.4. Развитие интеллектуального и информационного рынков
- 4.4. Перспективы перехода к информационному обществу
- Контрольные вопросы
- Раздел II прикладная информатика глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации
- 5.1. Восприятие информации
- 5.2. Сбор информации
- 5.3. Передача информации
- 5.4. Обработка информации
- Контрольные вопросы
- Глава 6. Технические средства реализации информационных процессов
- 6.1. Определение и принципы организации информационных процессов в вычислительных устройствах
- 6.2. Функционирование эвм с шинной организацией
- 6.3. Функционирование эвм с канальной организацией
- 6.4. Информационная модель эвм
- 6.5. Основные команды эвм
- 6.6. Персональные эвм
- 6.6.1. Общие сведения о пэвм и их классификация
- 6.6.2. Структурная схема пэвм
- 6.6.3. Внешние устройства пэвм
- 6.6.4. Внешние запоминающие устройства пэвм
- 6.6.5. Печатающие устройства пэвм
- 6.6.6. Перспективы развития пэвм
- 6.7. Вычислительные системы
- 6.8. Поколения вычислительных средств
- Контрольные вопросы, упражнения и задачи
- Глава 7 алгоритмизация и программирование
- 7.1. Определение алгоритма
- 7.2. Методы разработки алгоритма
- 7.2.1. Метод частных целей
- 7.2.2. Метод подъема
- 7.3. Программирование с отходом назад
- 7.4. Алгоритмы ветвей и границ
- 7.5. Жизненный цикл программного обеспечения
- Контрольные вопросы, упражнения и задачи
- Раздел III элементы информационных технологий глава 8 базы и банки данных
- 8.1. Автоматизированные банки данных
- 8.2. Модели данных
- 8.3. Схема функционирования субд
- 8.4. Организация поиска данных
- 8.5. Администратор базы данных
- Контрольные вопросы
- Глава 9 пакеты прикладных программ
- 9.1. Классификация ппп
- 9.2. Проблемно-ориентированные ппп
- 9.4. Интегрированные ппп
- 9.4. Пакеты прикладных программ для решения научно-технических задач
- 9.5. Библиотеки стандартных программ
- Контрольные вопросы
- Глава 10 вычислительные сети
- 10.1. Принципы построения и классификация вычислительных сетей
- 10.2. Способы коммутации и передачи данных
- 10.3. Программное обеспечение вычислительных сетей
- 10.4. Локальные вычислительные сети
- 10.4.1. Классификация лвс
- 10.4.2. Организация обмена информацией в лвс
- 10.4.3. Методы доступа в лвс
- 10.4.4. Модели взаимодействия в лвс
- 10.5. Обеспечение безопасности информации в вычислительных сетях
- Контрольные вопросы
- Глава 11 глобальная информационная сеть internet
- 11.1. Краткая характеристика основных информационных ресурсов internet
- 11.2. Принципы функционирования internet
- 11.2.1. Иерархия протоколов internet
- 11.2.3. Спецификация универсального адреса информационного ресурса в internet
- 11.3. Технология world wide web (www)
- 11.3.1. Общая характеристика www
- 11.3.2. Программы-клиенты www
- 11.3.3. Стратегия поиска информации в сети
- 11.3.4. Язык гипертекстовой разметки web-документов html
- 11.3.5. Поисковые машины www
- 11.4. Электронная почта в internet
- 11.5. Технологии доступа к ресурсам internet, отличные от www
- 11.5.1. Удаленный доступ к ресурсам сети telnet
- 11.5.2. Обмен файлами по протоколу ftp. Служба архивов ftp
- Контрольные вопросы
- Глава 12 искусственный интеллект
- 12.1. Направление исследований в области искусственного интеллекта
- 12.2. Машинный интеллект и робототехника
- 12.3. Интеллектуальные роботы
- 12.4. Моделирование биологических систем
- 12.5. Эвристическое программирование и моделирование
- 12.6. Система знаний
- 12.7. Модели представления знаний
- 12.7.1. Логическая модель представления знаний
- 12.7.2. Сетевая модель представления знаний
- 12.7.3. Фреймовая модель представления знаний
- 12.7.4. Продукционная модель представления знаний
- Контрольные вопросы
- Глава 13 экспертные системы
- 13.1. Общая характеристика эс
- 13.2. Структура и режимы использования эс
- 13.3. Классификация инструментальных средств эс
- 13.4. Организация знаний в эс
- 13.5. Отличие эс от традиционных программ
- 13.6. Виды эс
- 13.7. Типы задач, решаемых эс
- Контрольные вопросы
- Приложение 3 глоссарий экспертных систем