Добор

Надежда Фоменко

  1. Найти в целочисленном векторе первый положительный элемент, оканчивающийся цифрой digit
    Указание 1 Используем функцию find_if. Обратите внимание на то значение, которое она возвращает.
    Указание 2 Используем в качестве третьего аргумента find_if лямбда-выражение с захватом внешней переменной
    [digit](int x) {return (x > 0 && x % 10 == digit); }

  2. Создать функцию
    pair<int, int> FirstPosAndLastNeg(vector<int> v, int digit);
    которая одновременно возвращает первое положительное и последнее отрицательное значения целочисленного вектора
    Указание 1 Используем функцию reverse 
    Указание 2 Подключаем заголовочный файл
    #include <utility>
    Указание 3 Для возврата значения используем команду
    return make_pair( /*значение1*/, /*значение2*/);
    в которую нужно подставить свои переменные или значения 
  3. Создать функцию, которая возвращает число элементов строкового вектора (vector<string>), которые состоят более чем из одного символа и начинаются/заканчиваются символом 'c' (используем count_if)
  4. Вернуть минимальный из положительных элементов вектора целых чисел (используем remove_iferase и min_element)
  5. Для вектора вещественных чисел найти сумму
    1/a[0]+1/a[1]+...+1/a[n]

    Указание 1 Используем функцию for_each 
    Указание 2 Используем Используем лямбда-выражение с захватом внешней переменной по ссылке (s - переменная, в которой вычисляем сумму)
    [&s](double x) {s += 1 / x; } 
  6. Найти произведение последних цифр всех чисел целочисленного вектора
  7. Обнулить элементы вектора, расположенные между его минимальным и максимальным элементами (не включая минимальный и максимальный элементы).
  8. Удалить из вектора целых чисел все одинаковые элементы, оставив их первые вхождения.

Линда Шумения

  1. Заполнить целочисленный вектор степенями двойки от первой до N-й: 2, 4, 8, 16, … .
  2. Дан целочисленный вектор A, содержащий хотя бы одно чётное число. Найти первое и последнее чётное число в данном массиве.

    Указание: используйте передачу параметров по ссылке (&) для возврата двух значений из функции.

  3. Дан вектор A. Вывести его элементы с нечетными номерами в порядке убывания номеров: AN,AN−2AN−4, …, A1. Условный оператор не использовать.
    Указание: решение задачи строим в виде шаблона функции.

  4. Дан вектор и целые числа K и L (0 ≤ K ≤ L < N). Найти среднее арифметическое элементов массива с номерами от K до L включительно.
    Указание: решение задачи строим в виде шаблона функции.

  5. Дан вектор размера N (N — чётное число). Поменять местами первую и вторую половины вектора.

  6. Дан вектор. Поменять порядок его элементов на обратный.

  7. Дан вектор A. Сформировать вектор B по следующему правилу: каждый элемент B[k] равен среднему арифметическому элементов вектора A с номерами от 1 до k.

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

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

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

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

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

  11. Дано вещественное число 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 .(используем передачу параметров по ссылке).
  12. Дано целое число. Найти произведение его цифр.

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

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

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

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

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

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

  15. Дано целое число 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
  16. Дано целое число 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
  17. Создать функцию int DigProduct(int n), которая возвращает произведение цифр числа.
  18. Создать функцию void PrimeFactors(long int n, int k = 2), выводит на все консоль простые множители числа (единица и само исходное число не учитываются, используем цикл).