Циклы
Три задания: while и do while, вычисления циклом for и таблица значений функции.
Цель и порядок работы
Освоить циклы с условием и счётчиком, накопление результатов и табулирование функций.
Выполните три задания своего варианта. Первое решается через while или do while, второе — через for, третье — построение таблицы по формуле. Варианты+ добавляют проверки и промежуточные результаты без новых тем языка.
- Каждое из трёх заданий оформите отдельной функцией.
- Составьте алгоритмы и укажите, какая величина обеспечивает завершение каждого цикла.
- Соблюдайте ограничения своего варианта и выведите подписанные результаты всех трёх заданий.
- Для таблицы введите постоянные параметры, используйте заданные начало, шаг и правую границу.
- Проверьте минимальное число повторений, один и несколько проходов, границы и недопустимые данные.
Требования к коду, заготовка отчёта, тестирование и блок-схемы →
Скачать текущие задания и варианты+ в PDF
Исходные материалы: Методичка №3 · PDF · Методичка №4 · PDF
Перед началом: Лекция 2 · циклы · Лекция 2 · ветвления · Лекция 1 · типы · Лекция 1 · вещественные числа
Вещественные типы тоже имеют конечный диапазон и погрешность. Не накапливайте аргумент таблицы прибавлением шага: вычисляйте его по целому индексу.
Задания по вариантам
Выполните все задания назначенного варианта.
Общие требования к вариантам
Выполните три задания: в первом используйте while или do while, во втором — for, в третьем выведите таблицу значений функции. Каждое задание оформите отдельной функцией. Массивы, указатели и файлы здесь не требуются.
Для первого задания числа N ограничьте 10^12, для Фибоначчи используйте long long. Процент P вводите из указанного интервала, но не меньше 0.01. В варианте 14 точность от 10^-12 до 10^-3; в варианте 15 длины A, B, C — целые от 1 до 1000.
Для второго задания N от 1 до 30, вещественные аргументы по модулю не больше 1, если вариант не задаёт более строгое условие. Факториалы и суммы храните в double или long double. Следующий член ряда получайте из предыдущего, не пересчитывая факториал заново. В задании 2 варианта 4 условный оператор запрещён.
В третьем задании введите фиксированное y, если оно входит в формулу. Аргумент вычисляйте по целому номеру шага, не накапливая вещественный шаг. Правая граница включается, только если она попала в сетку. В варианте 11 используется t вместо x, y не требуется. При недопустимом знаменателе выведите сообщение вместо вычисления строки.
Обозначение k!! означает произведение положительных чисел той же чётности с шагом 2; 0!! и (−1)!! равны 1. Во втором задании варианта 14 при k = 1 числитель коэффициента также равен 1.
Вариант 1
Задание 1 · while и do while
Начальный вклад в банке равен 1000 руб. Через каждый месяц размер вклада увеличивается на P процентов от имеющейся суммы (P — вещественное число, 0<P< 25 ). По данному P определить, через сколько месяцев размер вклада превысит 1100 руб., и вывести найденное количество месяцев K (целое число) и итоговый размер вклада S (вещественное число).
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 2
Задание 1 · while и do while
Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от пробега предыдущего дня (P — вещественное, 0 < P < 50). По данному P определить, после какого дня суммарный пробег лыжника за все дни превысит 200 км, и вывести найденное количество дней K (целое) и суммарный пробег S (вещественное число).
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 3
Задание 1 · while и do while
Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, вывести все его цифры, начиная с самой правой (разряда единиц).
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 4
Задание 1 · while и do while
Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, найти количество и сумму его цифр.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Не используйте условный оператор: меняйте знак следующего члена через множитель −A.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 5
Задание 1 · while и do while
Дано целое число N (> 0). Используя операции деления нацело и взятия остатка от деления, найти число, полученное при прочтении числа N справа налево.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 6
Задание 1 · while и do while
Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2». Если имеется, то вывести TRUE, если нет — вывести FALSE.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 7
Задание 1 · while и do while
Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры. Если имеются, то вывести TRUE, если нет — вывести FALSE.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 8
Задание 1 · while и do while
Дано целое число N (> 1). Если оно является простым, то есть не имеет положительных делителей, кроме 1 и самого себя, то вывести TRUE, иначе вывести FALSE.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 9
Задание 1 · while и do while
Для положительных целых A и B найдите НОД алгоритмом Евклида: заменяйте пару на B и остаток A от деления на B, пока B не станет нулём.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 10
Задание 1 · while и do while
Дано целое число N (> 1). Последовательность чисел Фибоначчи FK определяется следующим образом: F1 = 1, F2 = 1, FK = FK−2 + FK−1, K = 3, 4, . . . . Проверить, является ли число N числом Фибоначчи. Если является, то вывести TRUE, если нет — вывести FALSE.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 11
Задание 1 · while и do while
Дано целое число N (> 1). Найти первое число Фибоначчи, большее N. (определение чисел Фибоначчи дано для варианта 10).
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 12
Задание 1 · while и do while
Дано целое число N (> 1), являющееся числом Фибоначчи: N = FK (определение чисел Фибоначчи дано для варианта 10). Найти целые числа FK−1 и FK+1 — предыдущее и последующее числа Фибоначчи.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 13
Задание 1 · while и do while
Дано целое число N (> 1), являющееся числом Фибоначчи: N = FK (определение чисел Фибоначчи дано для варианта 10). Найти целое число K — порядковый номер числа Фибоначчи N.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 14
Задание 1 · while и do while
Для заданной точности найдите первый номер k ≥ 2, при котором соседние члены последовательности отличаются меньше ε. Выведите номер и оба значения.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 15
Задание 1 · while и do while
Даны положительные числа A, B, C. На прямоугольнике размера A × B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике. Операции умножения и деления не использовать.
Задание 2 · for
Введите параметры и вычислите указанное выражение одним циклом for.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Вариант 16+ · Вклад до цели и лимит · Экспонента за один проход
Задание 1 · while и do while
Введите положительный вклад, месячный процент от 0.1 до 10, цель не ниже вклада и лимит месяцев от 1 до 1200. Начисляйте процент, пока цель не достигнута или лимит не исчерпан.
Выведите причину остановки, число месяцев и итог. Цель, равная начальному вкладу, требует 0 месяцев. Укажите первый месяц, после которого достигнута половина необходимого прироста, либо сообщите, что этого не было.
Задание 2 · for
Введите x от −1 до 1 и N от 1 до 30. Вычислите сумму через рекуррентное получение следующего члена, без отдельного вычисления степеней и факториалов.
Выведите сумму после каждого шага, результат std::exp и абсолютную ошибку. Посчитайте фактически использованные члены, включая начальную единицу.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Дополнение для варианта+: без сохранения таблицы в массив найдите минимальное и максимальное допустимые значения функции и соответствующие аргументы. При равенстве сохраняйте первое вхождение. Выведите количество вычисленных и пропущенных строк.
Вариант 17+ · Цифры и серии · Синус и косинус одновременно
Задание 1 · while и do while
Для положительного числа до 10^18 найдите длину наибольшей серии одинаковых соседних цифр, используя деление и остаток, без строк и контейнеров.
Найдите также саму цифру. При одинаковых длинах выбирайте меньшую цифру. Выведите количество разных серий и сумму цифр исходного числа.
Задание 2 · for
Введите x от −3 до 3 и N от 1 до 20. Одним циклом вычислите суммы рядов синуса и косинуса с индексами от 0 до N. Следующие члены получайте из предыдущих.
Сравните со стандартными функциями и выведите отклонение суммы квадратов от 1. Таблицу членов хранить не нужно.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Дополнение для варианта+: без сохранения таблицы в массив найдите минимальное и максимальное допустимые значения функции и соответствующие аргументы. При равенстве сохраняйте первое вхождение. Выведите количество вычисленных и пропущенных строк.
Вариант 18+ · Евклид с протоколом · Таблица с подсчётом ветвей
Задание 1 · while и do while
Для двух положительных целых чисел до 10^9 найдите НОД алгоритмом Евклида. Печатайте пары до каждого перехода и число переходов.
Вычислите НОК в long long, сначала разделив на НОД. Проверьте на взаимно простых и равных числах; объясните остановку при нулевом остатке.
Задание 2 · for
Для x от −2 до 2 с шагом 0.5 и y от −1 до 1 с шагом 0.5 выведите таблицу.
Без массива найдите минимум и максимум по всем узлам, их координаты и количество обращений к каждой ветви. При равных экстремумах сохраняйте первый в порядке строк.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Дополнение для варианта+: без сохранения таблицы в массив найдите минимальное и максимальное допустимые значения функции и соответствующие аргументы. При равенстве сохраняйте первое вхождение. Выведите количество вычисленных и пропущенных строк.
Вариант 19+ · Фибоначчи в интервале · Сумма факториалов и обратных величин
Задание 1 · while и do while
Введите 2 ≤ left ≤ right ≤ 10^12. Последовательно вычисляйте числа Фибоначчи, не сохраняя весь ряд. Выведите все попавшие в закрытый интервал.
Найдите количество, сумму и первое число после интервала. При отсутствии значений выведите отдельное сообщение. Объясните, какие два состояния нужны циклу.
Задание 2 · for
Для N от 1 до 20 одновременно вычислите две суммы. Факториал храните в long double и обновляйте одним умножением на итерацию.
Для каждого N от 1 до введённого выведите строку промежуточных сумм. Вычислите абсолютную ошибку приближения e второй суммой.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Дополнение для варианта+: без сохранения таблицы в массив найдите минимальное и максимальное допустимые значения функции и соответствующие аргументы. При равенстве сохраняйте первое вхождение. Выведите количество вычисленных и пропущенных строк.
Вариант 20+ · Сходимость с защитой · Сравнение приближений
Задание 1 · while и do while
Введите точность от 10^-12 до 10^-3 и лимит от 1 до 1000. Для последовательности вычисляйте соседние члены, пока их разность не станет меньше точности или пока лимит не исчерпан.
Выведите номер и два последних значения, причину остановки и ошибку относительно предела. Не называйте остановку по лимиту достижением точности.
Задание 2 · for
Введите x с модулем меньше 0.9 и N от 1 до 30. Рассчитайте частичные суммы логарифма для всех номеров от 1 до N.
Выведите номер первой суммы с абсолютной ошибкой не больше 10^-6 либо сообщите об отсутствии. Цикл всё равно завершите на N, чтобы получить итоговую таблицу. Не используйте массивы.
Задание 3 · Таблица значений
Вычислить значение Z при изменении X. Y - значение произвольное задается самостоятельно Результаты вывести в виде таблицы
Дополнение для варианта+: без сохранения таблицы в массив найдите минимальное и максимальное допустимые значения функции и соответствующие аргументы. При равенстве сохраняйте первое вхождение. Выведите количество вычисленных и пропущенных строк.
Возможные вопросы к защите
Попробуйте ответить своими словами и показать соответствующее место в своей программе. Под вопросом можно открыть ориентир для ответа и перейти к нужной теме лекции.
Чем отличаются while, do while и for?
Назовите момент проверки условия и минимальное число выполнений тела. Покажите выбранный цикл в каждом задании.
Повторить: Лекция 2 · циклы
Какие три части есть в заголовке for?
Объясните инициализацию, условие продолжения и шаг, а также порядок их выполнения.
Повторить: Лекция 2 · циклы
Почему ваш цикл завершается?
Покажите изменение счётчика, остатка числа или последовательности. Назовите ошибку, которая сделала бы цикл бесконечным.
Повторить: Лекция 2 · циклы
Как выбрать начальные значения суммы, произведения и счётчика?
Обоснуйте ноль для суммы и количества, единицу для произведения; проверьте наименьший допустимый вход.
Повторить: Лекция 1 · типы · Лекция 2 · циклы
Как избежать ошибки на один проход?
Сравните строгие и нестрогие границы, начальный индекс и число итераций. Покажите первый и последний шаг на своём варианте.
Повторить: Лекция 2 · циклы
Почему таблицу с вещественным шагом строят по целому индексу?
Объясните погрешность double и случай, когда правая граница не принадлежит сетке.
Повторить: Лекция 1 · вещественные числа · Лекция 2 · циклы