Функции с одним аргументом...85
Аргументами функции называют значения, которые передаются функции во время вызова. В следующем примере определяется и используется функция square( ), которая возвращает квадрат переданного в качестве аргумента числа типа double:
/* SquareDemo — демонстрирует использование функции с аргументом */
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std ;
_________________
85 стр. Глава 6. Создание функций
/* square — возвращает квадрат аргумента doubleVar — введённое значение return — квадрат doubleVar */
double square( double doubleVar )
{
return doubleVar * doubleVar ;
}
/* sumSequence — суммирует последовательность чисел, введённых с клавиатуры и возведённых в квадрат, пока пользователь не введёт отрицательное число. Возвращает сумму квадратов введённых чисел */
double sumSequence( void )
{
/* Бесконечный цикл */
double accumulator=0.0 ;
for ( ; ; )
{
/* Ввод следующего числа */
double dValue = 0 ;
cout << "Введите следующее число: " ;
cin >> dValue ;
/* Если оно отрицательное... */
if ( dValue < 0 )
{
/* ...то выходим из цикла */
break ;
}
/* ...иначе вычисляем квадрат числа */
double value = square( dValue ) ;
/* Теперь добавляем квадрат к accumulator */
accumulator = accumulator + value ;
}
/* Возвращаем сумму */
return accumulator ;
}
int main( int nNumberofArgs , char* pszArgs[ ] )
{
setlocale ( LC_ALL , ".1251" ) ; /* печать русских текстов */
cout << "Эта программа суммирует "
<< "несколько последовательностей чисел. "
<< "Ввод каждой последовательности "
<< "заканчивается вводом "
<< "отрицательного числа. "
<< "Последовательности вводятся "
<< "до тех пор, пока не встретятся "
<< "два отрицательных числа " ;
/* Продолжаем суммировать числа... */
_________________
86 стр. Часть 2. Становимся функциональными программистами
double accumulatedValue ;
for ( ; ; )
{
/* Суммируем последовательность чисел, введённых с клавиатуры */
cout << " Введите следующую последовательность " ;
accumulatedValue = sumSequence( ) ;
/* Выход из цикла */
if ( accumulatedValue <= 0.0 ) { break ; }
/* Выводим результат суммирования */
cout << " Общая сумма равна "
<< accumulatedValue
<<" " ;
}
cout << "Программа завершена " ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
По сути, перед вами всё та же программа FunctionDemo, но теперь она суммирует квадраты введённых чисел. В функции square( ) играющее роль аргумента число возводится в квадрат. Проведены незначительные изменения и в функции sumSequence( ): если раньше мы суммировали введённые числа, то теперь суммируем значения, возвращаемые функцией square( ).
Больше книг — больше знаний!
Заберите 20% скидку на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ