Домашнее задание №2

Все задачи требуется решать в виде функций, которые следует проверять, вызывая их из main с разными аргументами. Все функции и создаваемые файлы должны сопровождаться комментариями.

Часть 0. Тяжёлое наследие лабораторных

Решите задачи, которые вы не успели сделать на лабораторной №2.

Часть 1. Цикл for

  1. Найти произведение всех целых чисел, кратных трём, от A до B включительно.

    Указание: в качестве возвращаемого значения стоит использовать тип double, так как результат может превышать максимальное значение для типа int.

  2.  Дано вещественное число A и целое число N (≥ 0). Используя один цикл, найти сумму \[1 + A + A^2 + A^3 + {\dots} + A^N.\]

    Указание: не использовать стандартную функцию возведения в степень, накапливать значения степеней.

Часть 2. Цикл while


  1. Дано вещественное число X (|X| < 1) и вещественное число eps (> 0). Найти значение выражения

    X − X3/3 + X5/5 − … + (−1)N·XN+1/(2·N+1) + …

    с точностью eps. Полученное число является приближённым значением функции арктангенса в точке X. Сравните его с точным значением стандартной функции atan.

  2. Дано вещественное число eps > 0. Последовательность вещественных чисел Ak определяется следующим образом:\[A_1 = 1, \quad A_2 = 2, \quad A_k = \frac{A_{k-2} + 2 \cdot A_{k-1}}{3}, \; k = 3, 4, \ldots\]. Найти первый из номеров k, для которых выполняется условие \(|A_k - A_{k-1}| < eps\), а также числа Ak-1 и Ak .(используем передачу параметров по ссылке).
  3. Дано целое число. Найти произведение его цифр.

    Проверьте правильность вашей программы не менее, чем на четырёх наборах входных данных (приведите лог работы программы). Обязательно проверьте случаи положительного, отрицательного N, N = 0, N = 1.

  4. Дано целое число N и цифра D. Посчитать, сколько раз цифра цифра D встречается в числе N.

    Не забудьте реализовать защиту от некорректных входных данных с помощью assert, обязательно проверьте корректность цифры D.
    Проверьте правильность вашей программы не менее, чем на четырёх наборах входных данных (приведите лог работы программы).

  5. Дано целое число. Сформировать новое число, нечётные (по порядку, начиная с разряда единиц, считая с единицы) разряды которого совпадают с соответствующими разрядами исходного числа, а чётные равны нулю. Например:

    N = -1945 >>> N =  -905
    N = 51030 >>> N = 50000
    N =    -1 >>> N =    -1
    N =    20 >>> N =     0

    Проверьте правильность вашей программы на тестовых наборах входных данных. Проверьте её ещё минимум на двух своих примерах, приведите лог работы программы.

  6. Дано целое число N и целое число k ≥ 0. Вывести цифру, стоящую в k-ом разряде числа N (считая от младшего разряда, нумерация с 0). Если разряда с номером k в числе N нет, вывести -1. Например:

    N = 10586, k = 2 >>>  5
    N = -1234, k = 1 >>>  3
    N =     0, k = 0 >>>  0
    N =    70, k = 0 >>>  0
    N =    42, k = 2 >>> -1

    Проверьте правильность вашей функции на тестовых наборах входных данных.

  7. Дано целое число N. «Выбросить» из него все нечётные разряды. Например:

    N = 10456 >>> N = 46
    N = -8260 >>> N = -8260
    N =   -75 >>> N = 0
    N =   405 >>> N = 40
    N =     6 >>> N = 6
    N = 9233420 >>> N = 2420

    Проверьте правильность вашей функции на тестовых наборах входных данных.