Выбрать главу

[Советы] 

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

Функции без аргументов используются редко, так как связь с такими функциями односторонняя, т.е. осуществляется только посредством возвращаемых значений. Аргументы функций позволяют установить двустороннюю связь — через передаваемые параметры и возвращаемые значения. 

Функции с одним аргументом...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 << "Эта программа суммирует "

                 << "несколько последовательностей чисел.\n"

                 << "Ввод каждой последовательности "

                 << "заканчивается\nвводом "

                 << "отрицательного числа. \n"

                 << "Последовательности вводятся "

                 << "до тех пор, пока\nне встретятся "

                 << "два отрицательных числа\n" ;

          /* Продолжаем суммировать числа... */

_________________

86 стр. Часть 2. Становимся функциональными программистами

          double accumulatedValue ;

          for ( ; ; )

          {

              /* Суммируем последовательность чисел, введённых с клавиатуры */

              cout << " \nВведите следующую последовательность\n" ;

              accumulatedValue = sumSequence( ) ;

              /* Выход из цикла */

              if ( accumulatedValue <= 0.0 ) { break ; }

              /* Выводим результат суммирования */

              cout << "\nОбщая сумма равна "

                    << accumulatedValue

                    <<" \n" ;