- •Оглавление
- •Блок-схемы линейных алгоритмов
- •Блок-схемы разветвляющихся алгоритмов
- •Блок-схемы циклических алгоритмов
- •Линейные алгоритмы
- •Условный оператор
- •Оператор выбора
- •Оператор цикла
- •Массивы
- •Двумерные массивы
- •Пользовательские функции
- •Указатели
- •Символьные массивы
- •Структуры
- •Поразрядные операции
- •Аргументы по умолчанию
- •Перегрузка функций
- •Перегрузка операций
-
Аргументы по умолчанию
В случае, если функция многократно вызывается с одним и тем же аргументом для некоторого параметра, возможно использовать аргумент по умолчанию для данного параметра – значение, которое по умолчанию должно передаваться параметру.
Аргументы по умолчанию должны быть самыми правыми аргументами в списке параметров функции.
Аргументы по умолчанию должны быть указаны при первом появлении имени функции (в прототипе или в заголовке функции, если прототип отсутствует).
Если пропущенный аргумент не является самым правым, то все аргументы правее него также пропускаются.
Значения по умолчанию могут быть любыми выражениями, в том числе константными, глобальными переменными или вызовами функций.
Прототип с аргументами по умолчанию должен иметь следующий вид:
тип имя(тип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.
