- •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.1. Понятие алгоритма
← 22.3. Типовые информационные модели |
23.2. Свойства алгоритма → |
Единого точного определения термина «Алгоритм» не существует. Разные источники дают его по-разному. Самое простое определение:
Алгоритм — это описание последовательности действий, приводящих к требуемому результату.
Под него попадают и кулинарный рецепт, и словесно-формульное описание метода решения квадратных уравнений, и программа, написанная на языке программирования. Поэтому будем считать более правильным и точным следующее определение:
Алгоритм — это формализованное описание конечной последовательности дискретных, однозначно определенных действий, приводящих к требуемому результату.
Согласно этому определению алгоритм состоит из алгоритмических действий. Эти действия должен выполнять исполнитель алгоритма (человек, компьютер или дрессированный заяц), для которого эти действия должны быть однозначно понятны и выполнимы. Действия должны быть дискретны, т.е. отделены друг от друга и относительно независимы. Разнообразие их должно быть ограничено; чем оно меньше, тем лучше. Последовательность действий должна приводить к результату за конечное их число. И наконец, все описание должно быть представлено на некотором формализованном языке, не допускающем неоднозначную трактовку.
Подавляющее большинство алгоритмов, особенно научно-технических, оперируют с данными. Данные - это информация, представленная в форме, пригодной для алгоритмической обработки. Входные данные поставляются в алгоритм извне и обрабатываются им, превращаясь в выходные данные – результат работы алгоритма. В интерактивных алгоритмах входные данные вводятся неоднократно, часто в зависимости от промежуточных результатов. Все игровые программы основаны на интерактивных алгоритмах. В не интерактивных (линейных, алгоритмах типа «вход-выход») входные данные вводятся однократно и автоматически преобразуются в выходные, образуя в процессе преобразования промежуточные или внутренние данные. Понятие данных позволяет увидеть разницу между алгоритмом и компьютерной программой (которая записывается на «алгоритмическом» языке). По определению Н.Вирта [1], программа = алгоритм + структуры данных. Иными словами,
компьютерная программа – это описание структур данных и алгоритма их обработки, выполненное на формализованном языке, допускающем автоматическое преобразование в язык машинных команд.
Кроме того, алгоритм, в отличие от компьютерной программы, допускает в своем описании различные уровни детализации. Постепенная (пошаговая) детализация является основным методом разработки компьютерных алгоритмов.
← 22.3. Типовые информационные модели |
23.2. Свойства алгоритма → |
23.2. Свойства алгоритма
← 23.1. Понятие алгоритма |
23.3. Данные алгоритмов → |
Алгоритм должен обладать рядом свойств, к которым относятся следующие:
Дискретность, уже обсуждавшаяся выше. Алгоритм строится из отдельных независимых команд (предписаний) и, тем самым, образует дискретную прерывистую структуру.
Понятность – содержание в своем составе предписаний, входящих в систему команд исполнителя. Исполнителю алгоритма все команды должны быть однозначно понятны.
Детерминированность или определенность исключает неоднозначность команд. На каждом шаге однозначно следует, что нужно выполнять на следующем. Исполнитель алгоритма не принимает каких-либо самостоятельных решений, а только исполняет команды. Это свойство приводит к тому, что при одних и тех же исходных данных алгоритм всегда выдает один и тот же результат.
Завершаемость – свойство, позволяющее алгоритму при корректно заданных исходных данных завершать свою работу за конечное число шагов.
Результативность – способность алгоритма завершаться определенными результата-ми, в том числе и сообщением о невозможности решения задачи при заданном наборе исходных данных.
Массовость – свойство алгоритма, обеспечивающее решение некоторого класса задач, а не одной конкретной. В самом простом случае, под массовостью понимают возможность получения результата при различных наборах исходных данных.
← 23.1. Понятие алгоритма |
23.3. Данные алгоритмов → |