Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
40 Кб
Скачать

Первое задание по алгоритмам над целыми числами

Выполнила Бараева Елизавета гр. 2383

Задача 2a. Обоснуйте и напишите, алгоритм деления на 2 любого целого числа.

1. ПРИМЕРЫ

Вход: 7

Выход: целая часть 3, остаток 1

Вход: -11

Выход: целая часть -6, остаток 1

Вход: 4

Выход: целая часть 2, остаток 0

Вход: -20

Выход: целая часть -10, остаток 0

Общий случай:

Под общий случай подходят все целые числа.

Крайний случай:

Не обнаружено.

2. ВЫСКАЗЫВАНИЯ

Если на вход подается положительное число, то частное и остаток всегда будут положительным.

Если подается отрицательное число, то частное будет отрицательным, а остаток будет положительным.

Если подается 0, то и частное, и остаток будут равны 0.

Если подается четное или нечетное, то остаток будет равен 0 или 1 соответственно.

3. АЛГОРИТМ

r := n; q := 0

ЕСЛИ n > 0 ТО:

ЦИКЛ-ПОКА r - 2 >= 0:

r := r – 2

q := q + 1

КОНЕЦ ЦИКЛА

КОНЕЦ ЕСЛИ

ИНАЧЕ:

ЦИКЛ-ПОКА r < 0:

r := r + 2

q := q - 1

КОНЕЦ ЦИКЛА

КОНЕЦ ИНАЧЕ

Инвариант: n = 2 * q + r

4. ДОКАЗАТЕЛЬСТВО КОРРЕКТНОСТИ АЛГОРИТМА

Метод математической индукции:

База: n = 2 * 0 + r верно

Индукционный переход:

При положительных числах: r → r – 2, q → q + 1

2 * (q + 1) + r – 2 = 2 * q + 2 + r – 2 = 2 * q + r

При неотрицательных числах: r → r + 2, q → q – 1

2 * (q – 1) + r + 2 = 2 * q – 2 + r + 2 = 2 * q + r

5. ТЕСТИРОВАНИЕ

Соседние файлы в папке ИДЗ по ДМиТИ 2023