Типовые задачи: блок-схемы алгоритмов с решениями
Классические задачи из школьной информатики и первого курса: для каждой есть блок-схема по ГОСТ 19.701, разбор алгоритма по шагам, решение на Python и Pascal, пример работы и частые ошибки. Любую схему можно открыть в редакторе и изменить под своё задание.
Обработка массивов
- Сумма элементов массиваСумма считается накоплением: заводим переменную s = 0 и по очереди прибавляем к ней каждый элемент.
- Поиск максимального элемента массиваСчитаем максимумом первый элемент, а затем сравниваем с ним все остальные: если встретился элемент больше — он становится новым максимумом..
- Минимальный элемент массива и его номерУдобнее хранить не само значение минимума, а его номер k: значение всегда можно получить как a[k].
- Количество положительных элементов массиваПодсчёт по условию — это счётчик: k = 0, и при каждом подходящем элементе k увеличивается на единицу.
- Переворот (реверс) массиваМеняем местами первый и последний элементы, затем второй и предпоследний и так далее до середины.
Сортировки
- Сортировка пузырькомПроходим по массиву и сравниваем соседние элементы: если левый больше правого, меняем их местами.
- Сортировка выборомНа каждом шаге ищем минимальный элемент в ещё не отсортированной части массива и ставим его в её начало.
- Сортировка вставкамиТак сортируют карты в руке: берём очередной элемент и сдвигаем вправо все бо́льшие элементы слева от него, пока не найдётся его место.
Поиск
- Линейный поиск элемента в массивеПросматриваем элементы по порядку, пока не найдём искомый x или не дойдём до конца массива.
- Двоичный (бинарный) поискМассив должен быть отсортирован.
Числа
- Проверка числа на простотуЧисло простое, если у него ровно два делителя: 1 и само число.
- НОД двух чисел: алгоритм ЕвклидаНОД(a, b) не меняется, если большее число заменить остатком от деления на меньшее: НОД(a, b) = НОД(b, a mod b).
- Факториал числаn! = 1 · 2 · 3 · … · n.
- Числа ФибоначчиКаждое число Фибоначчи — сумма двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13… Храним только два последних числа и на каждом шаге сдвигаем их вперёд..
- Перевод числа в двоичную системуДелим число на 2 и записываем остатки: они и есть двоичные цифры, но в обратном порядке.
- Сумма цифр числаПоследняя цифра числа — это остаток от деления на 10, а n div 10 отбрасывает её.
Ветвления
- Наибольшее из трёх чиселСравниваем числа попарно.
- Високосный годГод високосный, если делится на 4, но не делится на 100; исключение — годы, кратные 400, они тоже високосные.
Строки
- Проверка строки на палиндромПалиндром читается одинаково слева направо и справа налево: «шалаш», «топот».
- Подсчёт гласных букв в строкеПеребираем символы строки и проверяем, входит ли символ в строку-набор гласных «аеёиоуыэюя».
Как устроен код блок-схемы, описано в справочнике: блок-схема алгоритма по ГОСТ 19.701.