Программирование >>  Аргументация конструирования 

1 ... 16 17 18 [ 19 ] 20 21 22 ... 108



Согласно синтаксису C++ справа от имени функции должны присутствовать две круглые скобки. В них обычно указываются параметры функций.

демонстрация использоедния функций. Внутренний цикл программы оформлен как отдельная функция

ttinclude <stdio.h> #include <iosti:eam.h>

sumSequence - суммирует последовательность

чисел, введенных с клавиатуры, пока не

число. Возврацает сумму введенных чисел suraSequence(void)

бесконечный цикл

accumulator

ввод числа

int value = 0;

cout Введите следуюцее число: ;

cin >> value;

если оно (value <

отрицательное... 0)

break;

выходим из цикла

добавляем число к

переменной accumi ;lacor accumulator = accumulator 4- value;

возвращаем значение суммы return accumulator;

int arg,

cout << Эта программа суммирует последовательности\n

чисел. Каждая последовательность\п

<< заканчивается отрицательным числом.\п

Ввод серий завериается вводом \п

<< двух отрицательных чисел подряд \п ;

суммируем последовательности чисел... int accumulatedValue;

суммируем чисел,

II введенных с клавиатуры

cout << ЧпВведите следуюцую последовательность\п



accumulatedValue = sumSequence(};

вывод общей суммы на экран << сумма равна

<<

\ п ;

...пока возвращаемая сумма не равна О } while (accumulatedValue != 0); cout << Программа завершена\п ; return 0;

Вызов функции sumSequence ()

Главная часть программы сконцентрирована в фигурных скобках, следующих

после объявления функции main(). Эта часть кода очень напоминает программу

NestDemo.

Различие состоит в том, что внутри функции main(> содержится выражение accumulatedValue = sumSequence (). В правой части ЭКЮ выражения вызывается функция sumSequence (). Возвращаемое функцией значение сохраняется

в переменной accumulatedValue, а затем выводится на экран. Главная программа

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

Вызвать функцию - это значит начать выполнение кода, который содержится в ней. После завершения этого процесса программа передаст управление инструкции, следующей непосредственно за вызовом функции.

Определение функции quence ()

Определение этой функции начинается с инструкции int sumSequence (void). Заключенный в фигурные скобки блок кода называется телом функции. Как видите, тело функции sumSequence () идентично внутреннему циклу программы NestDemo.

Работа программы осуществляется следующим образом: функция main выполняет цикл, внутри которого (там, где в программе NestDemo находился внутренний цикл) происходит вызов функции sumSequence (). Она вычисляет сумму, а результат возвращает в функцию main программы, после чего продолжается выполнение внешнего цикла.

Щ/югнмй анализ функций

Функции являются первоосновой программ C + + . Поэтому каждый программист должен отчетливо понимать все нюансы их определения, написания и отладки.

Функцией называют логически обособленный блок кода C + + , имеющий следующий вид:

<1ип возЕращаемого значения> name (<аргументы функцию) {

retji п<выраже.чке> ;

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

окончании работы. Например, в вызове функции возведения в квадрат square (10)

10 является аргументом, а возвращаемое значение равно 100.



И аргументы, и возвращаемое значение функции необязательны. Если что-то отсутствует, вместо него используется ключевое слово void. Значит, если вместо списка аргументов используется void, то при вызове функция не получает никаких аргументов (как и в рассмотренной программе FunctionDemo). Если же возвращаемый тип функции - void, то вызывающая программа не получает от функции никакого значения.

В программе FunctionDemo используется функция с именем sumSequence (), которая не имеет аргументов и возвращает значение целочисленного типа.

.даг.*- Тип аргументов функции по умолчанию - void, поэтому функцию int fn(void) можно записать как int fn().



Использование функции позволяет работать с каждой из двух частей программы FunctionDemo в отдельности. При написании функции sumSequence () я концентрирую внимание на вычислении суммы чисел и не думаю об остальном коде, вызывающем эту функцию.

При написании функции main () я работаю с возвращаемой функцией sumSequence () - суммой последовательности (на этом уровне абстракции я знаю

только, что выполняет функция, а не как именно она это делает). Про1е функции

Функция sumSequence () возвращает целое значение. Функции могут возвращать значение любого стандартного типа, например double или char (типы переменных рассматриваются в главе 5, Операторы управления программой ).

Если функция ничего не возвращает, то возвращаемый тип помечается как void.

Функции различаются по типу возвращаемого значения. Так, целочисленной функцией называют ту, которая возвращает целое значение. Функция, которая ничего не возвращает, известна как void-функция. Далее приведен

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

void echoSquare(>

cout << Введите значение: ;

cin >> value;

cout << \n value*value \n ; return;

Сначала управление передается первой инструкции после открывающей скобки, затем

поочередно выполняются все команды до инструкции return (которая в данном случае не требует аргумента). Эта инструкция передает управление вызывающей функции.

<Si Инструкция return в void-функциях является необязательной. Если она отсутствует, то выполнение функции прекращается при достижении закрывающей фигурной скобки.

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

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




1 ... 16 17 18 [ 19 ] 20 21 22 ... 108

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика