
- •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. Экспертные системы
- •Методы, основанные на правилах.
- •Методы, основанные на фреймах.
24.0. Введение
← 23.5. Способы записи алгоритмов |
25.0. Введение → |
Линейная алгоритмическая структура отражает последовательность выполнения некоторых действий. Например, при исполнении алгоритма сначала нужно выполнить действие A, затем - действие B, а за ним – действие C. На псевдокоде это может быть записано следующим образом:
… Действие A Действие B Действие C …
Рис. 23.3. Блок схема алгоритма вычисления корней квадратного уравнения
Блок-схема линейной структуры показана на рис. 24.1. Каждое алгоритмическое действие отражается прямоугольником. Размеры сторон прямоугольника a и b могут быть выбраны произвольно, но должны сохраняться во всей блок-схеме и определяют размеры других ее элементов. Переход от одного действия к другому изображается линиями со стрелками. Если линия направлена сверху вниз или справа налево, то стрелки на них допускается не ставить.
Под действием может скрываться элементарное алгоритмическое действие: присваивание, вывод или вывод данных, обращение к вспомогательному алгоритму, а также любая из описанных ниже структурных конструкций или их комбинация. Линейная структура однозначно определяет последовательность действий. В приведенном примере Действие B должно быть выполнено после Действия A и перед Действием C.
Если действие представляет собой обращение к вспомогательному алгоритму, то на псевдокоде его вызов указывается следующим образом:
… Root2(s,q,r, t1,t2,key) …
На блок-схеме обращение к вспомогательному алгоритму показывается двойными боковыми линиями прямоугольника (рис. 24.2).
|
|
Рис. 24.1. Блок-схема линейной алгоритмической структуры |
Рис. 24.2. Изображение на блок-схеме обращения к вспомогательному алгоритму |
← 23.5. Способы записи алгоритмов |
25.0. Введение → |
25.0. Введение
← 24.0. Введение |
26.0. Введение → |
Разветвляющая алгоритмическая структура представляет собой конструкцию, состоящую из двух или более ветвей. Наиболее простой ее вариант – бинарное ветвление (альтернатива, структура if-else, если-то-иначе). Ее блок схема представлена на рис. 25.1 а, а псевдокод – следующим текстом:
… если <логическое выражение> то Ветвь A иначе Ветвь В все …
При ее выполнении сначала вычисляется логическое выражение. Если оно имеет значение истина, то выполняется ветвь A, если же ложь, то ветвь B. Каждая ветвь может включать в себя одно или несколько элементарных действий. Если в ветвь входит несколько действий (операторов), то их необходимо объединить в одно составное действие с помощью служебных слов нач и кон (см. пример алгоритма решения квадратного уравнения). На блок-схеме бинарное ветвление изображается в виде ромбовидного графического элемента альтернатива. Направления перехода могут помечаться также 1 или да (истина) и 0 или нет (ложь).
Частным случаем бинарного ветвления является обход, при котором ветвь иначе не со-держит никакого действия – пустая.
… если <логическое выражение> то Ветвь A все …
Блок-схема этой структуры приведена на рис. 25.1 б.
|
|
a |
б |
Рис. 25.1. Блок-схема структур «ветвление» (а) и «обход» (б)
В качестве логического выражения может быть использовано может быть использовано выражение отношения (условие), в котором два выражения сравниваются знаками отношения, например, k = 0 или i<n или sin(x+π/2)>=exp(-2y)-1. В более сложных случаях в логических выражениях используются знаки логических операций: инверсии not, дизъюнкции or или конъюнкции and. Например, not(k = 0 and ((i<n) or (sin(x+π/2)>=exp(-2y)-1))). При конструировании сложных логических выражений необходимо использовать правила и законы булевой алгебры.
Множественное ветвление представляет собой структуру, разветвляющуюся на более чем две ветви. С точки зрения теоретического программирования она является избыточной, так как может быть реализована с помощью бинарных ветвлений. Но практически все языки программирования имеют оператор, поддерживающий эту структуру, поэтому рассмотрим ее на примере ветвления на три ветви (блок-схема на рис. 25.2). Ветвлением управляет выражение-селектор s, которое может принимать предусмотренные значения a, b и c. Если s = a, то выполняется ветвь A, если s = b, то выполняется ветвь B, и если s = с, то выполняется ветвь С. В структуре также имеется ветвь X, которая будет выполняться, если селектор s примет непредусмотренное для исполнения предыдущих ветвей значение.
На рис. 25.3 показана реализация этой структуры с помощью бинарных ветвлений.
Рис. 25.2. Блок-схема множественного ветвления
Рис. 25.3. Реализация множественного ветвления с помощью бинарных
На псевдокоде множественное ветвление записывается следующим образом:
выбор при s = a: Ветвь A при s = b: Ветвь B при s = c: Ветвь C иначе Ветвь X все
← 24.0. Введение |
26.0. Введение → |
↑ Наверх