Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник задач по программированию.docx
Скачиваний:
83
Добавлен:
27.03.2016
Размер:
388.67 Кб
Скачать
  1. Аргументы по умолчанию

В случае, если функция многократно вызывается с одним и тем же аргументом для некоторого параметра, возможно использовать аргумент по умолчанию для данного параметра – значение, которое по умолчанию должно передаваться параметру.

Аргументы по умолчанию должны быть самыми правыми аргументами в списке параметров функции.

Аргументы по умолчанию должны быть указаны при первом появлении имени функции (в прототипе или в заголовке функции, если прототип отсутствует).

Если пропущенный аргумент не является самым правым, то все аргументы правее него также пропускаются.

Значения по умолчанию могут быть любыми выражениями, в том числе константными, глобальными переменными или вызовами функций.

Прототип с аргументами по умолчанию должен иметь следующий вид:

тип имя(тип1 [имя1] [= значение 1] ... );

Например:

int drawCircle(double, int x = 0, int y = 0);

Другой пример:

int drawCircle(double r = 10.0, int = 0, int = 0);

Заголовок функции с аргументами по умолчанию описывается так:

тип имя(тип1 имя1 [= значение1] ... ) { ... }

Например:

int drawCircle(double r = 10.0, int x = 0, int y = 0)

{ ... }

Следующая программа вычисляет объем коробки, используя аргументы по умолчанию в случае, если часть аргументов опущена:

#include <stdio.h>

/* прототип функции с аргументами по умолчанию */

int boxVolume(int length = 1, int width = 1, int height = 1);

void main(void) {

/* нет аргументов: используются все значения

элементов по умолчанию */

printf_s(“Объем коробки: %d”, boxVolume());

/* передана длина: ширина и высота – по умолчанию */

printf_s(“Объем коробки: %d”, boxVolume(10));

/* передана длина и ширина: высота – по умолчанию */

printf_s(“Объем коробки: %d”, boxVolume(10, 5));

/* передана длина, ширина и высота */

printf_s(“Объем коробки: %d”, boxVolume(10, 5, 2));;

}

/* значения по умолчанию в описании функции не указаны,

т.к. они указаны при описании прототипа функции */

int boxVolume(int length, int width, int height) {

return length * width * height;

}

Задание: написать функцию с аргументами по умолчанию в соответствии с заданием и продемонстрировать её работу в программе.

1. Функция, рассчитывающая силу тяготения по заданным параметрам: Если значение R не задано, принять его равным единице.

2. Функция, рассчитывающая центростремительную силу по заданным параметрам: Если значение r не задано, принять его равным единице.

3. Функция, рассчитывающая электроемкость конденсатора по заданным параметрам: Если значение S не задано, принять его равным единице.

4. Функция, рассчитывающая массу движущегося тела по заданным параметрам: Если значение m0 не задано, принять его равным единице.

5. Функция, рассчитывающая яркость по заданным параметрам: Если значение S не задано, принять его равным единице.

6. Функция, рассчитывающая плотность потока электромагнитного излучения по заданным параметрам: Если значение S не задано, принять его равным единице.

7. Функция, рассчитывающая внутреннюю энергию газа по заданным параметрам: Если значение i не задано, принять его равным 3.

8. Функция, рассчитывающая силу взаимодействия двух точечных неподвижных заряженных тел в вакууме по заданным параметрам: Если значение r не задано, принять его равным единице.

9. Функция, рассчитывающая модуль напряженности поля точечного заряда по заданным параметрам: Если значение r не задано, принять его равным единице.

10. Функция, рассчитывающая высоту поднятия жидкости в капиллярной трубке по заданным параметрам: Если значение ρ не задано, принять его равным 1000.

11. Функция, рассчитывающая число молекул вещества по заданным параметрам: Если значение m не задано, принять его равным единице.

12. Функция, рассчитывающая высоту поднятия жидкости в капиллярной трубке по заданным параметрам: Если значение ρ не задано, принять его равным 1000.

13. Функция, рассчитывающая время движения тела под действием силы трения до момента полной остановки по заданным параметрам: Если значение μ не задано, принять его равным 0,5.

14. Функция, рассчитывающая ускорение свободного падения на высоте от поверхности Земли по заданным параметрам: Если значение h не задано, принять его равным 0.

15. Функция, рассчитывающая координату тела по заданным параметрам: Если значение x0 и (или) v0 не заданы, принять их равным 0.

16. Функция, рассчитывающая период колебаний пружинного маятника по заданным параметрам: Если значение k не задано, принять его равным 1.

17. Функция, рассчитывающая период колебаний математического маятника по заданным параметрам: Если значение l не задано, принять его равным 1.

18. Функция, рассчитывающая электроемкость шара, помещенного в диэлектрическую среду, по заданным параметрам: Если значение R не задано, принять его равным 1.

19. Функция, рассчитывающая проводимость проводника по заданным параметрам: Если значение l не задано, принять его равным 1.

20. Функция, рассчитывающая дальность падения тела по заданным параметрам: Если значение h не задано, принять его равным 1.