Алгоритмы и блок-схемы
Понятие алгоритма, свойства, способы записи. Блок-схемы по ГОСТ 19.701-90. Основные алгоритмические структуры: следование, ветвление, цикл.
Алгоритмы и блок-схемы
1. Понятие алгоритма
Алгоритм — конечная последовательность точных, понятных исполнителю команд (инструкций), выполнение которых приводит к решению поставленной задачи.
Свойства алгоритма
| Свойство | Описание |
|---|---|
| Дискретность | Алгоритм разбивается на отдельные шаги (команды) |
| Понятность | Каждая команда понятна исполнителю |
| Определённость (детерминированность) | Каждая команда однозначно определяет действие, нет неоднозначности |
| Результативность | Выполнение алгоритма завершается за конечное число шагов с получением результата |
| Массовость | Алгоритм применим к некоторому классу входных данных |
Исполнитель алгоритма
Исполнитель — некоторый объект (человек, робот, компьютер), способный выполнять определённый набор команд. Каждый исполнитель имеет свою систему команд (СКИ — совокупность команд, которые он понимает и может выполнить).
Способы записи алгоритмов
- Словесный — на естественном языке
- Графический — блок-схемы
- Программный — на языке программирования
- Псевдокод — на условном алгоритмическом языке
2. Блок-схемы (ГОСТ 19.701-90)
Блок-схема — графическое представление алгоритма с использованием стандартных геометрических фигур (блоков), соединённых линиями потока управления.
Основные элементы блок-схем
| Фигура | Название | Назначение |
|---|---|---|
| Овал | Начало/конец | Обозначает начало или завершение алгоритма |
| Параллелограмм | Ввод/вывод | Ввод исходных данных или вывод результатов |
| Прямоугольник | Процесс (действие) | Выполнение операции или вычисления |
| Ромб | Условие (решение) | Проверка условия, выбор одной из двух ветвей |
| Шестиугольник | Подготовка | Организация циклических конструкций (заголовок цикла) |
| Круг | Соединитель | Связывание частей блок-схемы на разных листах |
Правила построения
- Направление потока — сверху вниз или слева направо (основное)
- Линии потока обозначаются стрелками при направлении снизу вверх или справа налево
- Каждый блок должен иметь ровно один вход (кроме начала) и ровно один выход (кроме конца и условия)
3. Базовые алгоритмические структуры
Следование (линейный алгоритм)
Команды выполняются последовательно, одна за другой.
[Начало] → [Действие 1] → [Действие 2] → ... → [Действие N] → [Конец]
Пример: вычисление площади круга по радиусу
Начало → Ввод R → S = π·R² → Вывод S → Конец
Ветвление (развилка)
Выбор одного из двух путей в зависимости от условия.
Полное ветвление:
[Условие] —да—→ [Действие 1] → [Продолжение]
|
нет
↓
[Действие 2] → [Продолжение]
Неполное ветвление (обход):
[Условие] —да—→ [Действие] → [Продолжение]
|
нет
↓
[Продолжение]
Цикл (повторение)
Многократное выполнение последовательности команд.
Цикл с предусловием (пока):
[Условие] —да—→ [Тело цикла] → [Возврат к проверке]
|
нет
↓
[Продолжение]
Тело цикла выполняется 0 или более раз. Может не выполниться ни разу.
Цикл с параметром (для):
[Начальные значения] → [Тело цикла] ← (проверка условия: повторить или выйти)
↓
[Продолжение]
Тело цикла выполняется заранее известное количество раз.
Примеры вопросов из тренажёра
-
Q: Какая фигура в блок-схеме обозначает начало или конец алгоритма?
A: верный ответ — Овал
Объяснение: Овал (эллипс) по ГОСТ 19.701-90 обозначает начало или конец алгоритма.
-
Q: Какая фигура в блок-схеме обозначает проверку условия?
A: верный ответ — Ромб
Объяснение: Ромб обозначает проверку условия с двумя выходами: «да» и «нет».
-
Q: Какая фигура обозначает ввод или вывод данных?
A: верный ответ — Параллелограмм
Объяснение: Параллелограмм по ГОСТ обозначает операции ввода или вывода данных.
-
Q: Какое свойство НЕ относится к обязательным свойствам алгоритма?
A: верный ответ — Красота
Объяснение: Обязательные свойства: дискретность, понятность, определённость, результативность, массовость. Красота — не свойство.
-
Q: Что означает свойство массовости алгоритма?
A: верный ответ — Работает для класса задач
Объяснение: Массовость — алгоритм применим к разным входным данным из одного класса задач.