Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
int accumulatedValue ;
_________________
82 стр. Часть 2. Становимся функциональными программистами
for ( ; ; )
{
/* Суммируем последовательности чисел, введённых с клавиатуры */
cout << "\nВведите следующую последовательность\n" ;
accumulatedValue = sumSequence( ) ;
if ( accumulatedValue == 0 ) { break ; }
/* Вывод общей суммы на экран */
cout << "\nОбщая сумма равна "
<< accumulatedValue
<< "\n" ;
} ;
cout << "Программа завершена\n" ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
Определение функции sumSequence( )...83
Определение этой функции начинается с инструкции int sumSequence( void ) . Заключённый в фигурные скобки блок кода называется телом функции. Как видите, тело функции sumSequence( ) идентично внутреннему циклу программы NestDemo .
Вызов функции sumSequence( )...83
Главная часть программы сконцентрирована в фигурных скобках, следующих после объявления функции main( ) . Эта часть кода очень напоминает программу NestDemo .
Различие состоит в том, что внутри функции main( ) содержится выражение accumulatedValue = sumSequence( ) . В правой части этого выражения вызывается функция sumSequence( ) . Возвращаемое функцией значение сохраняется в переменной accumulatedValue , а затем выводится на экран. Главная программа выполняет цикл до тех пор, пока значение суммы, возвращаемой внутренней функцией, остаётся отличным от 0. Нулевое значение говорит о том, что пользователь закончил вычисление сумм последовательностей.
Разделяй и властвуй...83
Программа FunctionDemo выделяет внутренний цикл в функцию sumSequence( ) . Такое выделение отнюдь не произвольно. Функция sumSequence( ) играет свою, отдельную роль.
«Хорошую функцию можно легко описать одним предложением с минимальным количеством слов "и" и "или". Например, функцияsumSequence( ) суммирует последовательность целочисленных значений, введённых пользователем. Это определение весьма компактно и легко воспринимается.»
[ Советы ]
Сравните это определение с описанием программы ContinueDemo : суммирование последовательности положительных значений И генерация ошибки при вводе пользователем отрицательного значения И вывод суммы И повтор выполнения до тех пор, пока пользователь не введёт две суммы нулевой длины.
_________________
83 стр. Глава 6. Создание функций
Вот как выглядит пример работы рассмотренной программы.
Эта программа суммирует последовательности чисел. Каждая
последовательность заканчивается отрицательным числом.
Ввод серий завершается вводом двух отрицательных чисел подряд
Введите следующую последовательность
Введите следующее число: 1
Введите следующее число: 2
Введите следующее число: 3
Введите следующее число: -1
Общая сумма равна 6
Введите следующую последовательность
Введите следующее число: 1
Введите следующее число: 2
Введите следующее число: -1
Общая сумма равна 3
Введите следующую последовательность
Введите следующее число: -1
Программа завершена
Press any key to continue...
► Подробный анализ функций...84
Функции являются первоосновой программ С++. Поэтому каждый программист должен отчётливо понимать все нюансы их определения, написания и отладки.
Функцией называют логически обособленный блок кода С++, имеющий следующий вид:
< тип возвращаемого значения > name( < аргументы функции > )
{
// . . .
return < выражение > ;
}
Аргументами функции называются значения, которые можно передать ей при вызове. В возвращаемом значении указывается результат, который функция возвращает по окончании работы. Например, в вызове функции возведения в квадрат square ( 10 ) 10 — это аргумент, а возвращаемое значение равно 100.
И аргументы, и возвращаемое значение функции необязательны. Если какой-либо элемент отсутствует, вместо него используется ключевое слово void . Значит, если вместо списка аргументов используется void , то при вызове функция не получает никаких аргументов ( как и в рассмотренной программе FunctionDemo ) . Если же возвращаемый тип функции — void , то вызывающая программа не получает от функции никакого значения.
В программе FunctionDemo используется функция с именем sumSequence( ) , которая не имеет аргументов и возвращает значение целочисленного типа.
«Тип аргументов функции по умолчанию —void , поэтому функциюint fn( void ) можно записать какint fn( ) .»
[ Советы ]
Использование функции позволяет работать с каждой из двух частей программы FunctionDemo в отдельности. При написании функции sumSequence( ) я концентрирую внимание на вычислении суммы чисел и не думаю об остальном коде, вызывающем эту функцию.
_________________
84 стр. Часть 2. Становимся функциональными программистами
При написании функции main( ) я работаю с возвращаемой функцией sumSequence( ) — суммой последовательности ( на этом уровне абстракции я знаю только, что выполняет функция, а не как именно она это делает ).
Простые функции...85
Функция sumSequence( ) возвращает целое значение. Функции могут возвращать значение любого стандартного типа, например double или char ( типы переменных рассматриваются в главе 2, "Премудрости объявления переменных").
Если функция ничего не возвращает, то возвращаемый тип помечается как void .
«Функции различаются по типу возвращаемого значения. Так, целочисленной функцией называют ту, которая возвращает целое значение. Функция, которая ничего не возвращает, известна какvoid-функция . Далее приведён пример функции, выполняющей некоторые действия, но не возвращающей никаких значений.»
[ Советы ]
void echoSquare( )
{
cout << "Введите значение:" ;
cin >> value ;
cout << " \n" << value*value << "\n" ;
return ;
Читать дальшеИнтервал:
Закладка: