Вопросы
Контрольные вопросы
- Какой цели служит формализация понятия «алгоритм»?
- В чём состоит свойство детерминированности?
- Каковы формы представления алгоритма?
- Преимущества и недостатки блок-схемы?
- На какой стадии эффективно использование псевдокода…
- Каковы базовые структуры алгоритмов?
- В каких случаях ветвление приводит к пропуску команд…
- В каком цикле тело может не выполниться ни разу?
- В каком цикле число повторов задаётся заранее?
- В чём выражается зацикливание?
Вопросы
-
Формализация нужна, чтобы дать строгое, однозначное определение алгоритма. Тогда алгоритм можно исследовать математически (доказывать его правильность, оценивать сложность, выяснять, решается ли задача алгоритмически) и поручать его исполнение машине.
-
Детерминированность (определённость) — каждая команда алгоритма понятна и однозначна, а при одних и тех же исходных данных результат всегда один и тот же. Исполнитель не должен ничего додумывать или выбирать произвольно.
-
Формы представления алгоритма:
- словесная (на естественном языке);
- графическая (блок-схема);
- псевдокод;
- программа на языке программирования;
- табличная форма.
-
Блок-схема.
Преимущества: наглядность, видна логика и порядок действий, легко найти ошибки в ветвлениях и циклах, проста для понимания.
Недостатки: занимает много места, громоздка для сложных алгоритмов, трудоёмка в изменении, плохо передаёт детали (например, структуры данных). -
Псевдокод эффективен на стадии проектирования алгоритма — когда нужно записать его логику ещё до написания программы, не привязываясь к синтаксису конкретного языка.
-
Базовые структуры: следование (линейная), ветвление, цикл.
-
Ветвление приводит к пропуску команд, когда используется неполное ветвление («если — то» без «иначе»): при ложном условии блок команд после «то» пропускается и выполнение идёт дальше.
-
Тело может не выполниться ни разу в цикле с предусловием («пока»): условие проверяется до выполнения тела, и если оно ложно с самого начала, тело пропускается.
-
Число повторов задаётся заранее в цикле с параметром (цикл «для», со счётчиком).
-
Зацикливание — это бесконечное повторение тела цикла: условие окончания цикла никогда не выполняется (например, переменная в условии не изменяется в теле цикла), и алгоритм не завершается.
Три базовые структуры (следование, ветвление, цикл) позволяют записать любой алгоритм. Цикл «пока» проверяет условие до тела, цикл «для» повторяет тело заданное число раз.
- Для строгого определения алгоритма и его математического исследования.
- Однозначность команд и одинаковый результат при одинаковых данных.
- Словесная, графическая (блок-схема), псевдокод, программа, таблица.
- Плюсы: наглядность и простота понимания; минусы: громоздкость и трудоёмкость изменения.
- На стадии проектирования алгоритма, до написания программы.
- Следование, ветвление, цикл.
- При неполном ветвлении («если — то») и ложном условии.
- В цикле с предусловием («пока»).
- В цикле с параметром («для»).
- Цикл повторяется бесконечно, так как условие выхода никогда не выполняется.
