Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Часть If. Становимся программистами
accumulatedValue =
// вывод общей суммы на экран << сумма равна " << «
// ...пок а возвращаемая сумма не равна } whil e (accumulatedValue ! = 0) ; cout << "Программа завершена\п"; retur n
Вызов функции sumSequence () Главная часть программы сконцентрирована в фигурных скобках, следующих после объявления функции main() . Эта часть кода очень напоминает программу
Различие состоит в том, что внутри функции main(> содержится выражение accumulatedValue sumSequence (). В правой части ЭТОГО выражения вызывается функция sumSequence (). Возвращаемое функцией сохраняется в переменной accumulatedValue, а затем выводится на экран. Главная программа выполняет цикл до тех пор, пока значение суммы, возвращаемой внутренней функцией, остается отличным от 0. Нулевое значение говорит о том, что пользователь закончил вычисление сумм последовательностей. Вызвать функцию — это значит начать выполнение кода, который содержится в ней. После завершения этого процесса программа передаст управление инструкции, следующей непосредственно за вызовом функции. Определение функции () Определение этой функции начинается с инструкции in t sumSequence (void). Заключенный в фигурные скобки блок кода называется телом функции. Как видите, тело функции sumSequence () идентично внутреннему циклу программы NestDemo. Работа программы осуществляется следующим образом: функция main выполняет цикл, внутри которого (там, где в программе NestDemo находился внутренний цикл) про- исходит вызов функции sumSequence (). Она вычисляет сумму, а результат возвращает в функцию main программы, после чего продолжается выполнение внешнего цикла.
анализ функций Функции являются первоосновой программ C++. Поэтому каждый программист должен отчетливо понимать все нюансы их определения, написания и отладки. Функцией называют логически обособленный блок кода C++, имеющий сле- дующий вид: возЕращаемого значения> функцию) {
} Аргументами функции называются значения, которые можно передать ей при вызо- ве. В возвращаемом значении указывается результат, который функция возвращает по окончании работы. Например, в вызове функции возведения в квадрат square (10) 10 является аргументом, а возвращаемое значение равно 100. Глава 6. Создание функций 69 И аргументы, и возвращаемое значение функции необязательны. Если что-то отсут- ствует, вместо него используется ключевое слово void. Значит, если вместо списка ар- гументов используется void, то при вызове функция не получает никаких аргументов (как и в рассмотренной программе FunctionDemo). Если же возвращаемый тип функ- ции — void, то вызывающая программа не получает от функции никакого значения. В программе FunctionDemo используется функция с именем sumSequence () , ко- торая не имеет аргументов и возвращает значение целочисленного типа. Тип аргументов функции по умолчанию — void, поэтому функцию in t (void) можно записать как in t ().
Использование функции позволяет работать с каждой из двух частей программы FunctionDemo в отдельности. При написании функции sumSequence () я концентри- рую внимание на вычислении суммы чисел и не думаю об остальном коде, вызываю- щем эту функцию. При написании функции main () я работаю с возвращаемой функцией sumSequence () — суммой последовательности (на этом уровне абстракции я знаю только, что выполняет функция, а не как именно она это делает).
Простыефункции Функция sumSequence () возвращает целое значение. Функции могут возвращать значение любого стандартного типа, например double или char (типы переменных рассматриваются в главе 5, "Операторы управления программой"). Если функция ничего не возвращает, то возвращаемый тип помечается как void. Функции различаются по типу возвращаемого значения. Так, целочислен- ной называют ту, которая возвращает целое значение. Функция, которая ничего не возвращает, известна как void-функция. Далее приведен пример функции, выполняющей некоторые действия, но не возвращаю- щей никаких значений. void echoSquare(> { cout << "Введите значение:"; cin >> value; cout << "\n"«value*value « "\n"; return; ) Сначала управление передается первой инструкции после открывающей скобки, затем поочередно выполняются все команды до инструкции retur n (которая в данном случае не требует аргумента). Эта инструкция передает управление вызывающей функции. Инструкция retur n в void-функциях является необязательной. Если она отсутствует, то выполнение функции прекращается при достижении за- крывающей фигурной скобки.
С аргументами без аргументов используются редко, так как связь с такими функциями односторонняя, т.е. осуществляется только посредством возвращаемых значений. Ар- гументы функций позволяют установить двустороннюю связь — через передаваемые параметры и возвращаемые значения.
|
Последнее изменение этой страницы: 2019-04-19; Просмотров: 235; Нарушение авторского права страницы