Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Задания 5 Функции

.pdf
Скачиваний:
23
Добавлен:
31.05.2015
Размер:
159.56 Кб
Скачать

Задание 5. Функции

1.Напишите функцию с именем circarea(), которая вычисляет площадь круга. Функция должна принимать один аргумент типа float и возвращать значение типа float. Напишите функцию main(), которая просит пользователя ввести значение радиуса, вызывает функцию circarea(), а затем отображает результат вычисления на экране.

2.Возведение числа n в степень р — это умножение числа n на себя р раз. Напишите функцию с именем power(), которая в качестве аргументов принимает значение типа double для n и значение типа int для р и возвращает значение типа double. Для аргумента, соответствующего степени числа, задайте значение по умолчанию, равное 2, чтобы при отсутствии показателя степени при вызове функции число n возводилось в квадрат. Напишите функцию main(), которая запрашивает у пользователя ввод аргументов для функции power(), и отобразите на экране результаты ее работы.

3.Напишите функцию, принимающую в качестве аргументов два значения типа Distance и возвращающую значение наибольшего из аргументов.

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

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

всекундах типа int. Вторая, secs_to_time(), в качестве аргумента принимает число секунд, имеющее тип int, а возвращает эквивалентное значение типа time.

6.Взяв в качестве основы функцию power() из упражнения 2, работающую только со значением типа double, создайте перегруженные функции с этим же именем, принимающими в качестве аргумента значения типа int, long и float. Напишите программу, вызывающую функцию power() со всеми возможными типами аргументов.

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

8.Переработайте программу из упражнения 8 так, чтобы функция swap() принимала в качестве аргументов значения типа time (см. упражнение 6).

9.Напишите программу, использующую структуру sterling, которая описана ниже. Программа должна получать от пользователя значения двух денежных сумм, выраженных

вфунтах, шиллингах и пенсах, складывать эти значения и выводить результат на экран в том же формате. Необходимо разработать три функции. Первая из них должна получать от пользователя число фунтов, шиллингов и пенсов и возвращать соответствующее значение типа sterling. Вторая функция должна принимать в качестве аргументов два значения типа sterling, складывать их и возвращать значение, также имеющее тип sterling. Третья функция должна принимать аргумент типа sterling и выводить его значение на экран.

Устаревшая денежная система Великобритании состояла из фунтов, шиллингов и пенсов. 1 фунт был равен 20 шиллингам, а 1 шиллинг — 12 пенсам. Для записи использовалась система, состоящая из знака £ и трех десятичных значений, разделенных точками. Например, запись £5.2.8 обозначала 5 фунтов, 2 шиллинга и 8 пенсов (пенс — множественное число от пенни). Современнаяденежная система, принятая в 50-е годы XX века, состоит только из фунтов и пенсов, причем один фунт равен 100 пенсам. Такой фунт

называют десятичным. Таким образом, в новой денежной системе указанная сумма будет обозначаться как £5.13 (если быть точнее, £5.1333333).

10.Модифицируйте калькулятор, работающий с дробями так, чтобы каждая арифметическая операция выполнялась с помощью функции. Функции могут называться fadd(), fsub(), fmul() и fdiv(). Каждая из функций должна принимать два структурных аргумента типа fraction и возвращать значение того же типа.

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

12.Написать функцию для нахождения корней квадратного уравнения.

13.Написать рекурсивную функцию вычисляющую факториал.

14.Написать функцию возвращающую наименьшее общее кратное трех заданных

чисел.

15.Даны длины отрезков A, B, C, D. Для каждой тройки этих отрезков, из которой можно построить треугольник, напечатать площадь этого треугольника.

16.Написать и протестировать функцию для вычисления:

f (n,m) n! m! 0<m<n m! n m !

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