КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Вызов функции
Лекция №23. Функции Оператор продолжения continue Оператор break Оператор break даёт возможность выйти из операторов цикла for, while, do/while, а также из переключателя switch без проверки условия. Оператор break приводит к немедленному выходу из самого внутреннего охватывающего его цикла или из переключателя. Оператор break может использоваться для выхода из цикла в тех случаях, когда заданы два разных условия прекращения его работы. Пример: Наличие оператора break позволяет использовать «бесконечные циклы». В ряде случаев весьма удобно записать заголовок цикла без всякого условия в виде: For (;;), а выход из цикла оформить с помощью операторов break.
Оператор continue вызывает преждевременное завершение выполнения тела цикла и переход к следующему шагу цикла. Оператор continue действует только на самый внутренний цикл, частью которого он является.
3. Оператор безусловного перехода goto
Оператор перехода предназначен для безусловной передачи управления в заданную точку программы. Его выполнение заключается в передачи управления оператору, помеченному заданной меткой. В качестве метки используется идентификатор. Метка отделяется от оператора, к которому она относится, двоеточием. Помеченный оператор должен находиться в пределах той же функции, что и оператор goto. Может быть помечен любой оператор, но никакие два разных оператора не должны иметь одинаковые метки (внутри одной и той же функции). Кроме того, один оператор может быть помечен несколькими метками. Форма: Goto <метка>; … <метка>: <оператор>
План: 1. Вызов функции; 2. Прототипы функций.
Всякая задача может быть разбита на подзадачи, каждую из которых можно либо непосредственно представить в виде кода, либо разбить на ещё более мелкие подзадачи. Данный метод носит название пошагового уточнения (stepwise refinement). Функции в С++ служат для записи программного кода этих непосредственно решаемых подзадач. Такие функции используются другими функциями, и в конечном – функцией main() для решения исходной задачи. Программа на С++ составляется из одной или более функций, одна из которых – main(). Выполнение программы всегда начинается с функции main(). Когда при выполнении программы встречается имя функции, происходит обращение к этой функции (она вызывается). То есть управление программой передаётся функции. После того как функция выполнила свою работу, управление возвращается в место, откуда функция была вызвана – в вызывающее окружение (calling environment). Пример: // позвоним, используя символ ‘\a’ (звуковой сигнал) #include <iostream.h> const char bell = ‘\a’; void ring() { cout << bell; } int main () { ring(); } В С++ код, описывающий, что делает функция, называется определением функции (function definition). Формально это выглядит так: Заголовок_функции { инструкции } Всё, что стоит перед первой фигурной скобкой, составляет заголовок определения функции, а то, что находится между фигурными скобками, является телом определения функции. Заголовок функции – это: Тип имя (список_объявлений_параметров) Спецификация типа, стоящая пред именем функции, является возвращаемым типом. Он определяет тип значения, возвращаемого функцией (если оно вообще возвращается). В определении функции ring() из предыдущего примера список параметров пуст, то есть объявлений параметров нет. Тело функции состоит из единственной инструкции. Поскольку функция не возвращает значение, возвращаемый тип этой функции – void. Синтаксически параметры – это идентификаторы, они могут использоваться внутри тела функции. Формальные параметры – это то, вместо чего будут подставлены фактические значения, предаваемые функции в момент её вызова. После вызова функции значение аргумента, соответствующее формальному параметру, используется в теле выполняемой функции. В С++ такие параметры являются вызываемые по значению (call-by-value). Когда применяется вызов по значению, переменные передаются функции как аргументы, их значения копируются в соответствующие параметры функции, а сами переменные не изменяются в вызывающем окружении. В сущности, вызываемые по значению параметры являются локальными в своей процедуре. Им могут передаваться выражения, значения которых присваиваются этим локальным переменным (параметрам). Перепишем предыдущую программу так, чтобы у функции ring() появился формальный параметр, задающий количество звонков: // несколько звонков #include <iostream.h> const char bell = ‘\a’; void ring (int k) { int i; for (i = 0; i < k; ++i) cout << bell; } int main () { int n; cout << “\nвведите небольшое положительное целое: ”; cin >> n; ring(n); }
Инструкция return Инструкция return используется для двух целей. Когда она выполняется, управление программой немедленно передаётся обратно в вызывающее окружение. Кроме того, если за ключевым словом return следует какое-либо выражение, то его значение также передаётся в вызывающее окружение. Это значение должно допускать неявное преобразование к типу, указанному в заголовке определения функции. Инструкция return имеет одну из двух форм: Return; Return (выражение); Скобки в выражении return не обязательны. Вычислим наименьшее из двух целых: #include <iostream.h> int min(int x, int y) { if (x < y) return x; else return y; } int main() { int main() { int j, k, m; cout << “введите два целых числа: ”; cin >> j >> k; m = min (j, k); cout << ‘\n’ << m <<”наименьшее из” << j << “ и ” << k << endl; }
Дата добавления: 2014-01-04; Просмотров: 357; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |