Программирование и основы алгоритмизации. Макаров В.Л. - 60 стр.

UptoLike

Составители: 

60
void step(float base, int k) // заголовок функции
{
int i; float p = 1;
for(i=1;i<=k;++i)
p*=base;
cout<<"\n"<< base << " в степени "<< k
<< " равно "<<p<<"\n";
}_________________________________________
Результаты работы программы:
Введите m = 2
Введите i = 3
2 в степени 3 равно 8
Рис. 9.3. Окончание
В этой программе реализован алгоритм возведения в целую степень любого
числа. Функция step принимает по значению два числа типов float и integer, а
результат
ее вычисления не возвращается в основную программу. При вызове
тип каждого параметра функции сопоставляется с ожидаемым типом точно так
же, как если бы инициализировалась переменная описанного типа. Это гаранти-
рует надлежащую проверку и преобразование типов. Например, обращение к
функции step(float x, int n) с помощью оператора step(12.3,"abcd") вызовет
недовольство компилятора, поскольку "abcd" является строкой,
а не int. При
вызове step(2, i) компилятор преобразует 2 к типу float, как того требует функ-
ция. Функция step может быть определена, например, так:
float step(float x, int n)
{
if (n < 0) error("извините, отрицательный показатель для step( )");
switch (n)
{
case 0: return 1;
case 1: return x;
default: return x*step(x, n -1);
}
}
Первая часть определения функции задает имя функции(step), тип возвра-
щаемого ею значения (float) и типы и имена ее параметров
(float x, int n). Зна-
чение возвращается из функции с помощью трех операторов return.
9.2. Правила работы с функциями
- Функция может принимать любое количество аргументов или не иметь
их вообще.
- Функция может возвращать значение, но это не является обяза-
тельным.