# Функции. Исключения.

1. Реализовать функцию умножения целых чисел (с учетом знака) не используя операцию умножения.

2. Реализовать функцию деления целых чисел (с учетом знака) не используя операцию деления.

3. Отсортировать массив по сумме цифр чисел (т.е. 11 = 1+1 = 2). Сортировать **методом пузырька**.
    >Сортировка методом пузырька заключается в том, что по массиву осуществляются множественные проходы. На каждом проходе очередной элемент сравнивается со следующим за ним. И если он больше (при сортировке по возрастанию), то элементы массива меняются местами.
    >
    >Таким образом при первом проходе по массиву при сортировке по возрастанию последним в массиве оказывается самое большое значение. При следующем проходе на предпоследнем месте окажется максимальное из оставшихся чисел. Сравнивать последнее и предпоследнее числа нет смысла. Поэтому количество просматриваемых элементов массива на каждом проходе сокращается на 1. Количество проходов равно количеству элементов массива за вычетом единицы, т.к. происходит попарное сравнение.

4. Бинарный поиск в массиве. Пользователь вводит число. Сообщить, есть ли оно в массиве (сгенерировать случайным образом и отсортировать используя алгоритм предыдущего задания), а также, если есть, в каком месте находится. При решении задачи использовать бинарный (двоичный) поиск, который оформить в виде отдельной функции.
   
5. Написать функцию, которая вычисляет среднее арифметическое элементов массива, переданного ей в качестве аргумента.

6. Написать функцию, которая ищет делители числа (функция возвращает массив делителей).

7. Во все предыдущие функции добавить перехват и генерацию исключений.