- •19.0. Введение
- •19.1. Моделирование как метод познания
- •20.1. Формы представления моделей
- •20.2. Классификация математических моделей
- •21.1. Математическая модель системы (объекта)
- •21.2. Методы математического моделирования
- •21.3. Технология математического моделирования системы (объекта)
- •1 Этап. Формулирование целей и задач моделирования, выявление проблем, описание объекта исследования.
- •2 Этап. Изучение априорной информации об объекте исследования.
- •3 Этап. Формализация постановки задачи: формальное описание целей и задач моделирования, формулировка требований.
- •4 Этап. Стратегическое и тактическое планирование эксперимента с объектом.
- •5 Этап. Экспериментирование с объектом.
- •6 Этап. Идентификация объекта.
- •7 Этап. Оценка адекватности модели, ее свойств, устойчивости, областей применения.
- •8 Этап. Решение задач моделирования, подведение итогов.
- •21.4. Контрольные вопросы и задания
- •22.1. Понятие информационной модели
- •22.2. Этапы моделирования
- •22.3. Типовые информационные модели
- •Графы, сети, деревья
- •23.1. Понятие алгоритма
- •23.2. Свойства алгоритма
- •23.3. Данные алгоритмов
- •23.4. Элементарные алгоритмические действия
- •23.5. Способы записи алгоритмов
- •24.0. Введение
- •25.0. Введение
- •26.0. Введение
- •27.0. Введение
- •28.1. Вычисление конечных и бесконечных сумм и произведений
- •28.2. Решение уравнений итерационными методами
- •28.3. Расчет таблиц функциональных зависимостей
- •28.4. Подсчет числа положительных, отрицательных и нулевых элементов массивов
- •28.5. Расчет модуля вектора и нормы матрицы
- •28.6. Расчет среднего и дисперсии элементов в массивах
- •28.7. Поиск минимальных или максимальных значений в массивах
- •28.8. Алгоритмы упорядочивания элементов в массивах
- •28.9. Умножение матрицы на вектор и матрицы на матрицу
- •28.10. Возведение квадратной матрицы в целую степень
- •28.11. Исключение элементов массивов
- •28.12. Расчет определителя квадратной матрицы
- •28.13. Транспонирование матриц
- •29.1. Что такое язык программирования?
- •29.2. Низкоуровневые языки программирования
- •29.3. Языки высокого уровня
- •Навигация по разделам:
- •29.3.1. Процедурные языки программирования
- •29.3.2. Функциональные языки программирования
- •29.3.3. Логические языки программирования
- •30.0. Введение
- •31.0. Введение
- •31.1. Постановка и формализация задачи
- •31.2. Разработка алгоритмов решения задачи
- •31.2. Разработка алгоритмов решения задачи
- •31.4. Анализ результатов
- •31.5. Сопровождение программ
- •32.0. Введение
- •33.1. Технология структурного программирования
- •33.2. Структурные методы анализа и проектирования по
- •33.3. Модульное программирование
- •Навигация по разделу
- •33.3.1. Hipo - диаграмма
- •33.3.2. Метод нисходящего проектирования
- •33.3.3. Метод расширения ядра
- •33.3.4. Метод восходящего проектирования
- •33.4. Базовые управляющие структуры структурного программирования
- •33.5. Проектирование и тестирование программы
- •33.6. Подпрограммы, процедуры и функции
- •Навигация по разделу:
- •33.6.1. Основные понятия и терминология
- •33.6.2. Локальность
- •33.6.3. Параметры процедуры
- •34.1. Методология объектно-ориентированного программирования
- •34.2. Объектно-ориентированные методы анализа и проектирования по
- •34.3. Основные принципы построения объектной модели
- •34.4. Основные элементы объектной модели
- •34.5. Пример разработки консольного приложения в технологии объектно-ориентированного подхода
- •Навигация по разделу:
- •34.5.1. Диаграмма прецендентов uml
- •34.5.2. Диаграмма последовательности uml для прецедента
- •34.5.3. Диаграмма классов uml для прецендента «перевести р-ичную строку в число»
- •34.5.4. Текст приложения на языке Object Pascal
- •35.0. Введение
- •35.1. История развития бд
- •35.2. Классификация бд
- •Навигация по разделу:
- •35.2.1. Основные функции субд
- •36.1. Основные понятия бд
- •36.2. Основные понятия реляционной модели бд
- •36.3. Предпроектное обследование предметной области. Связи таблиц
- •36.4. Нормализация отношений
- •36.5. Общие сведения о ms Access
- •36.6. Приложение
- •36.6. Приложение
- •37.2. Связь между таблицами и целостность данных
- •37.3. Создание запросов в ms access
- •Навигация по разделу:
- •37.3.1. Запросы на выборку
- •37.3.2. Запросы с параметрами
- •37.2.3. Запросы с вычислениями
- •37.2.4. Итоговые запросы
- •37.2.5. Перекрестные запросы
- •37.4. Формы
- •37.5. Отчеты
- •38.0. Введение
- •38.1. Различные подходы к построению систем ии
- •38.2. Экспертные системы
- •Методы, основанные на правилах.
- •Методы, основанные на фреймах.
23.3. Данные алгоритмов
← 23.2. Свойства алгоритма |
23.4. Элементарные алгоритмические действия → |
Как уже было сказано выше, алгоритм оперирует с данными. Он преобразует входные данные в выходные, образуя в этом процессе промежуточные данные. Данные могут быть простые и сложные (структурированные). Простые данные представляют собой переменные и константы. Константа – это величина, имеющая постоянное значение, не изменяющееся в процессе работы алгоритма. Переменная – это величина, способная изменять свое значение и обладающая следующими свойствами:
Переменная обязательно должна иметь идентификатор – имя, по которому к ней производится обращение;
Переменная должна иметь определенный тип;
Переменной может быть присвоено значение ее типа;
Если переменной не присвоено значение, то она является неинициализированной и пользоваться ее значением нельзя;
Если переменной присвоено значение, она хранит его до тех пор, пока ей не будет присвоено другое;
Значение переменной можно получать от нее многократно - при этом оно сохраняется.
Константы и переменные алгоритмов могут быть числового и символьного типов. Данные числового типа могут хранить числовые значения. Так как целые и вещественные числа представляются в компьютерной обработке принципиально по-разному, для числовых данных необходимо определять подтип – целые, вещественные или комплексные. Данные символьного типа могут хранить в себе коды символов, используемых при кодировании нечисловой информации. Отдельно следует выделить логический тип – данные этого типа могут иметь два значений – «истина» (true, логическая единица) и «ложь» (false, логический ноль), образующие полное множество.
Сложные (структурированные) типы данных строятся из простых. Это, прежде всего, массивы.
Массив – это совокупность переменных одного типа, имеющих один и тот же идентификатор и различающихся между собой одним или несколькими индексами.
В самом простом случае индекс представляет собой порядковый номер элемента массива. Число индексов определяет «мерность» массива. Одномерный числовой массив соответствует математическому понятию вектор, а двумерный числовой – понятию матрица. Одномерный символьный массив обычно называется строка, а двумерный символьный – текст. Число индексов элементов массивов не ограничивается, хотя в практических задачах обычно не превосходит трех – четырех.
Другим сложным типом данных является структура или запись.
Структура – это совокупность переменных разных типов, имеющих различные идентификаторы.
Идентификатор элемента структуры состоит из двух частей, разделенных точкой, – идентификатора структуры и идентификатора собственно элемента. Например, murka.tau - переменная tau структуры murka.
В качестве элементов массивов или структур могут использоваться другие массивы или структуры.
Существуют и другие сложные типы данных: множества, объекты классов и пр., которые в данном разделе не используются.
Перед разработкой алгоритма должна быть выполнена разработка структуры входных и выходных данных. Она заключается в определении состава входных и выходных данных, определении их типов и присвоении им идентификаторов. Например, для алгоритма решения квадратного уравнения ax2 + bx + c = 0 входными данными могут являться переменные a, b и с, имеющие вещественный числовой тип и соответствующие одноименным коэффициентам уравнения. С выходными данными здесь несколько сложнее. Так как уравнение может иметь как вещественные, так и комплексные корни, то одним из вариантов решения может быть следующая структура выходных данных:
x1- первый вещественный корень или вещественная часть комплексно сопряженных корней;
x2- второй вещественный корень или мнимая часть комплексно сопряженных корней;
key - ключ типа корней – вещественные или комплексно сопряженные.
Переменные x1 и x2 имеют вещественный числовой тип, а переменная key может быть логической или числовой переменной с предварительно установленной кодировкой значений, например,
key = 0 – вещественные корни;
key = 1 – комплексно сопряженные корни.
Для алгоритма решения системы линейных алгебраических уравнений структура входных и выходных данных может быть следующей:
Входные переменные:
A – двумерный вещественный массив матрицы коэффициентов системы;
B – одномерный вещественный массив вектора свободных членов.
Выходные переменные:
X – одномерный вещественный массив вектора неизвестных;
Err – переменная целого типа – код ошибки, сигнализирующий об успешном или неуспешном завершении алгоритма.
Входные и выходные данные алгоритма иногда удобно изобразить на структуре «черного ящика» (black box). На рис. 23.1 показана структура внешних данных алгоритма вычисления корней квадратного уравнения. На структуре указаны типы переменных: Real - вещественный и Int – целый.
← 23.2. Свойства алгоритма |
23.4. Элементарные алгоритмические действия → |