основы алгоритмизации
программированиелекция
что было
оглавление
оглавление
Как перейти от условия задачи к проверенной программе: выделить входы и результат, построить модель, записать алгоритм, перенести его в код и испытать на тестах.
Код — не первый шаг. Сначала нужно понять задачу и описать решение так, чтобы каждый шаг можно было выполнить и проверить.
от условия к проверке
Рабочий маршрут: постановка → модель → алгоритм → код → тест. Ошибка теста возвращает нас к тому шагу, где появилось неверное предположение.
шаг | что фиксируем |
|---|---|
постановка | что дано, что найти, какие есть ограничения |
модель | величины, формулы и связи |
алгоритм | однозначный порядок действий |
код | запись алгоритма на языке программирования |
тест | обычные, граничные и ошибочные входы |
проверка максимума
условие: Найти максимум из a и b.
ход решения
Входы: два сравнимых числа.
Если a>b, принять max=a; иначе max=b.
Проверить a>b, a<b и a=b.
ответ: Алгоритм возвращает большее значение; при равенстве возвращает b, равное a.
проверка: Для (7,3), (-2,4), (5,5) получаем 7, 4, 5.
свойства алгоритма
Алгоритм адресован конкретному исполнителю: его команды должны входить в систему команд этого исполнителя и не допускать скрытых догадок.
алгоритм
Точное описание конечной последовательности действий для решения класса задач с допустимыми исходными данными.
свойство | проверка |
|---|---|
дискретность | решение разбито на отдельные шаги |
определённость | каждый шаг сформулирован однозначно |
массовость | решается класс допустимых задач, а не один набор |
результативность | за конечное число шагов получается ответ или сообщение |
эффективность | время и память расходуются разумно |
блок-схема max(a,b)
Ромб обозначает проверку, а подписи «да» и «нет» — два выхода из неё. При равных числах ветвь «нет» остаётся правильной.
максимум из двух чисел
Одна проверка выбирает одно из двух значений.
- начало → ввод a, b
- ромб: a > b?
- да → max=a; нет → max=b
- вывод max → конец
описание схемы словами
Блок-схема вводит a и b, сравнивает их, присваивает max большее значение и выводит результат.
схема не заменяет постановку
До рисования нужно определить допустимые входы и требуемый результат. Иначе аккуратная схема может описывать не ту задачу.
что запомнить
Постановка задаёт входы, результат и ограничения.
Алгоритм предшествует коду.
Однозначность и конечность можно проверять по каждому шагу.
Граничные тесты нужны до сдачи программы.
самопроверка
Чем модель отличается от алгоритма?
Какое свойство нарушает бесконечный цикл?
Почему для max(a,b) нужен тест a=b?
Что нужно уточнить в постановке до написания кода?
источники
материал занятия: фотографии студенческого конспекта, страницы 100–105 — /materials/notes/programming/photo_100@20-09-2026_10-25-19.jpg
материал занятия: Основы алгоритмизации — /materials/lectures/programming-algorithms-01.pdf
редакционная сверка: cppreference: Statements — https://en.cppreference.com/w/cpp/language/statements.html
что сделать
Составьте маршрут решения задачи «найти минимум из трёх чисел» и предложите три теста, включая случай равных чисел.
благодарность
Евгения Прохорова (1-45) и Никита Козлов (1-48)

