Занятие 3. Создание простейших функций

Использование функций

Решения всех заданий должны быть оформлены в виде функций. При выполнении заданий можно пользоваться второй частью «разговорника»


Все функции определяются перед функцией main. При этом функции не должны содержать команд ввода-вывода (кроме предназначенных для них).  Обращение к функциям, написанным для выполнения задач, а также команды ввода-вывода размещаем в функции main(). В функции main() для выбора нужной задачи удобно пользоваться оператором выбора. 

Каждую функцию необходимо комментировать.  В целом следует придерживаться стиля оформления кода (отступов, пробелов, комментариев и т. п), который дан в «разговорнике».

Задачи

1.            Создать функцию perimeter, вычисляющую периметр треугольника по длинам трёх его сторон.

2.            Создать функцию areaFromSides, вычисляющую площадь треугольника по длинам трёх его сторон с помощью формулы Герона:
Еще одна жуткая формула
где p означает полупериметр.

3.             [Функция double mean(int a, int b)] Вычислить среднее арифметическое двух заданных целых чисел. Указание: для того, чтобы деление выполнялось вещественным образом, нужно, чтобы один из операндов был вещественный, самый простой способ добиться этого в данном случае — использовать литерал 2.0 в качестве делителя.

4.            [Функция bool isOdd(int n)] Проверить, является ли данное целое число чётным или нечётным, вывести 0 или 1, соответственно. (операция %Указание: не использовать условные операторы, и константы 0, 1; вывести только значение выражения.

5.            [Функция bool ordered(int a, int b, int c)] Даны три целых числа: ABC. Вывести значение 1, если справедливо двойное неравенство A < B < C, и 0 в противном случае. Указание: условный оператор не использовать.

6.            Написать функцию, которая принимает три целых числа и печатает «Полученные числа равны: x», где x = 1, если полученные три числа равны, и x = 0 в противном случае.
Указание: не использовать условный оператор.

7. Даны три целых числа. Вывести значение True, если любые два из них не равны между собой, и False в противном случае. (Операция проверки на неравенство: !=, логическое ИЛИ: ||.)

8.        Написать функцию, возвращающую максимальное из двух переданных ей вещественных значений. 

Указание: воспользоваться условной тернарной операцией ( ?: ).

9.            [Функция double CircleLength(double r)] Вычислить длину окружности заданного радиуса. Для этого перед началом функции main объявить глобальную константу со значением числа π (const double Pi {3.1415926}).

10. Создать функцию floorQubicRoot, находящую наибольшее целое число, которое не превышает кубического корня заданного числа. [pow, floor]

11. Создать функцию, вычисляющую логарифм заданного числа по заданному основанию. [log]

12. Написать функцию вещественного аргумента, которая вычисляет значение по следующей формуле:

If26-formula
Указание: пример оформления условного оператора с несколькими вариантами:

13. Дано двузначное целое число. Вывести его правую и левую цифры. (Операции %, /)

14. Дано трехзначное число. Поменяйте в нем местами разряды сотен и десятков.

15. Создать функцию random( n ), которая возвращает случайное целое число от 0 включительно до целого числа n не включительно. [%, rand из cstdlib]

16.          Создать функцию random(a, b), которая возвращает случайное целое число от целого числа a включительно до целого числа b не включительно.

17.          Создать функцию random(), которая возвращает случайное вещественное число от 0 включительно до 1 не включительно.

18. Сгенерировать случайное вещественное число в диапазоне между 3.5 и 8.2. (Требуется изучить пятый пример из разговорника и приложить воображение.)