- •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. Экспертные системы
- •Методы, основанные на правилах.
- •Методы, основанные на фреймах.
26.0. Введение
← 25.0. Введение |
27.0. Введение → |
Циклические алгоритмические структуры реализуют повторяющиеся действия. Действие или группа действий, которые неоднократно повторяются, образуют тело цикла. Для повторения исполнения тела цикла используются структурные конструкции цикла с постусловием, цикла с предусловием и цикла по переменной.
Цикл с постусловием (послеусловием) представлен в виде блок-схемы на рис. 26.1, а на псевдокоде – следующим листингом:
… повторять <тело цикла> до <логическое выражение> …
На псевдокоде служебные слова повторять и до окаймляют тело цикла. Оно повторно выполняется до получения логическим выражением (условием) значения истина. При первом прохождении тела цикла оно должно иметь значение ложь, а при некотором числе повторений тела цикла оно должно измениться на значение истина. Может быть и обратная схема – при истинности логического выражения тело цикла повторяется, а при ложности – происходит выход из цикла. В следующем разделе это показывается на примере реализаций в конкретных языках программирования.
На блок-схеме цикл с постусловием реализуется с помощью элемента альтернатива, используемого и в бинарном ветвлении.
Цикл с предусловием представлен в виде блок-схемы на рис. 26.2 а на псевдокоде – следующим листингом:
… пока <логическое выражение> повторять <тело цикла> …
Тело цикла выполнятся, пока логическое выражение имеет значение истина. Естественно, что при входе в цикл оно должно иметь именно это значение, а при некотором числе повторений изменить свое значение на ложь.
Циклы с постусловием и предусловием являются взаимозаменяемыми. Их различение проявляется только в том, что при вхождении в цикл с «неправильным» значением логического выражения тела цикла с постусловием будет выполнено один раз, а тело цикла с предусловием – не выполнено ни разу. В конкретной практике разработки алгоритмов иногда удобнее использовать цикл с постусловием, а иногда – с предусловием.
Рис. 26.1. Блок-схема цикла с постусловием |
Рис. 26.2. Блок-схема цикла с предусловием |
Цикл по переменной (цикл-модификация) с точки зрения теоретического программирования является избыточным, т.к. он может быть реализован с помощью предыдущих циклических конструкций. Но он наиболее часто используется и во всех языках программирования есть соответствующие ему операторы. Блок-схема этого цикла представлена на рис. 26.3. В данном примере управляющая переменная обозначена условным идентификатором var. B, E и S представляют собой выражения того же типа, что и var. Сначала var принимает значение b выражения B (begin): var := b. Тело цикла исполняется, а затем к переменной var прибавляется значение s выражения S (step): var := var+s. Затем значение var сравнивается со значением e выражения E (end): var <= e. При выполнении этого условия тело цикла повторяется, при его нарушении – происходит вывод из цикла.
Рис. 26.3. Блок-схема цикла по переменной
На псевдокоде цикл по переменной представляется следующим текстом:
… для var от B до E шаг S нц тело цикла кц …
Предоставляем читателю самостоятельно представить реализацию цикла по переменной с помощью каждого из предыдущих.
Цикл по переменной следует использовать, когда заранее можно указать число повторений тела цикла. Наиболее широко он используется при работе с массивами.
Если тело цикла содержит несколько действий (операторов), то на псевдокоде, как и при ветвлении, они объединяются служебными словами нач и кон. Иногда возникает необходимость прервать цикл при выполнении некоторого дополни-тельного условия. При этом возникает конструкция с выходом из середины тела цикла, пред-ставленная на примере цикла с послеусловием на блок-схеме рис. 26.4. Тело цикла при этом разбивается на две части ТЦ1 и ТЦ2. После выполнения ТЦ1 происходит вычисление логического выражения ЛВ1. Если оно принимает значение истина, то происходит выход из цикла.
Аналогично можно пропустить часть тела цикла ТЦ2 при его исполнении (рис. 26.5).
Обе этих конструкции в теоретическом программировании считаются избыточными, но во многих языках программирования они поддерживаются соответствующими операторами.
Рис. 26.4. Блок-схема цикла с выходом из середины |
Рис. 26.5. Блок-схема цикла с пропуском части тела цикла |
← 25.0. Введение |
27.0. Введение → |