Функции с одним аргументом...85

We use cookies. Read the Privacy and Cookie Policy

Аргументами функции называют значения, которые передаются функции во время вызова. В следующем примере определяется и используется функция 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( ).