- •9. Понятие управляющей последовательности символов (escape-последовательность). Назначение. Примеры использования.
- •26. Операторы передачи управления. Пример.
- •Оператор безусловного перехода
- •27. Структурированные операторы. Оператор цикла с предусловием. Пример.
- •Прототип функции
- •Вызов функции
- •35. Получение нескольких результатов в функциях. Пример.
- •Объявление одномерного массива:
- •Передача массивов в качестве параметров функции
- •Сортировка методом выбора
26. Операторы передачи управления. Пример.
В С/С++ есть четыре оператора, изменяющих естественный порядок выполнения вычислений:
оператор безусловного перехода goto;
оператор выхода из цикла break;
оператор перехода к следующей итерации цикла continue;
оператор возврата из функции return.
Оператор безусловного перехода
Предназначен для изменения естественного порядка выполнения операторов программы. Используется в случаях, когда после выполнения некоторого оператора требуется выполнить не следующий по порядку, а какой-либо другой оператор. При этом для перехода оператор, на который передается управление, должен быть помечен меткой. Метка, стоящая перед оператором, отделяется от него двоеточием. Метка – это обычный идентификатор, областью видимости которого является функция в теле которой она задана.
Формат оператора перехода:
goto <Метка>;
Пример использования оператора перехода:
goto ml;
ml: <Оператор>;
Передавать управление с помощью оператора перехода можно на операторы, расположенные в тексте программы выше или ниже оператора перехода. Запрещается передавать управление операторам, находящимся внутри структурированных операторов, а также операторам, находящимся в других блоках (функциях).
Использование оператора перехода оправдано в двух случаях:
принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;
переход из нескольких мест функции в одно.
Оператор выхода из цикла
Используется внутри структурированных операторов для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break.
Оператор перехода к следующей итерации цикла
Оператор continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.
Оператор возврата из функции
Оператор return pзавершает выполнение функции и передает управление в точку ее вызова. Вид оператора:
return [<выражение>];
Выражение должно иметь скалярный тип. Если тип возвращаемого функцией значения описан как void, выражение должно отсутствовать.
27. Структурированные операторы. Оператор цикла с предусловием. Пример.
Операторы цикла служат для организации циклов (повторов). Цикл представляет собой последовательность операторов, которая может выполняться более одного раза. Группу повторяемых операторов называют телом цикла. Для построения цикла в принципе можно применять ранее рассмотренный условный оператор и оператор перехода. Однако в большинстве случаев удобно использовать операторы цикла.
О ператор цикла с предусловием целесообразно использовать в случаях, когда число повторений тела цикла заранее неизвестно и тело цикла может ни разу не выполняться. Формат оператора цикла с предусловием:
while (Условие) <Оператор>;
28. Организация повторения вычислений по желанию пользователя. Пример.
29. Структурированные операторы. Оператор цикла с постусловием. Пример.
Условие представляет собой выражение логического типа. Операторы, заключенные между словами do и while, составляют тело цикла и выполняются до тех пор, пока логическое выражение не примет значение False, т. е. тело цикла повторяется при значении логического выражения, равном True. Так как условие проверяется только в конце цикла, то операторы тела цикла выполняются минимум один раз.
По крайней мере один из операторов тела цикла должен влиять на значение условия, в противном случае произойдет зацикливание.
30. Структурированные операторы. Оператор цикла с параметром. Пример.
for (<инициализация>; <выражение>; <модификации>) <Оператор>;
Инициализация используется для установления начального значения переменных, управляющих циклом. В этой части можно записать несколько операторов, разделенных запятой (операцией «последовательное выполнение»). Областью действия переменных, объявленных в части инициализации цикла, является цикл. Инициализация выполняется один раз в начале исполнения цикла.
Выражение определяет условие, при котором тело цикла будет выполняться.
М одификации определяют изменение переменных, управляющих циклом после каждого выполнения тела цикла. В части модификации можно записать несколько операторов, разделенных запятой.
Оператор представляет собой тело цикла.
31. Алгоритмы нахождения наибольшего (наименьшего) из n вводимых последовательно чисел. Пример.
32. Алгоритм нахождения количества (суммы) чисел удовлетворяющих некоторому условию из n вводимых последовательно чисел.
33. Алгоритм нахождения произведения чисел удовлетворяющих некоторому условию из n вводимых последовательно чисел.
34. Объявление и определение функции. Прототип. Вызов функции. Пример.
Функция — это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение.
Любая программа на C++ состоит из функций, одна из которых должна иметь имя main (с нее начинается выполнение программы). Функция начинает выполняться в момент вызова. Любая функция должна быть объявлена и определена. Как и для других величин, объявлений может быть несколько, а определение только одно. Объявление функции должно находиться в тексте раньше ее вызова для того, чтобы компилятор мог осуществить проверку правильности вызова.
Каждая программа в своем составе должна иметь главную функцию main(). Именно функция main() обеспечивает создание точки входа в объектный модуль.
Кроме функции main(), в программу может входить произвольное число функций, выполнение которых инициализируется либо прямо, либо опосредованно вызовами из функции main(). Каждая функция по отношению к другой является внешней. Для того, чтобы функция была доступной, необходимо, чтобы до ее вызова о ней было известно компилятору.
Cостоит из двух частей: заголовка и тела. Описание функции имеет следующую форму записи:
/* заголовок функции*/
[тип_результата] <имя> ([формальные параметры])
{
/* объявления и операторы */
<тело_функции>
}
Здесь тип_результата — тип возвращаемого значения. В случае отсутствия спецификатора типа предполагается, что функция возвращает целое значение (int). Если функция не возвращает никакого значения, то на месте типа записывается спецификатор void.
Здесь тип_результата — тип возвращаемого значения. В случае отсутствия спецификатора типа предполагается, что функция возвращает целое значение (int). Если функция не возвращает никакого значения, то на месте типа записывается спецификатор void.
Тело_функции представляет собой последовательность объявлений и операторов, описывающих определенный алгоритм. Важным оператором тела функции является оператор возврата в точку вызова:
return [выражение];
Оператор return имеет двойное назначение. Он обеспечивает возврат в вызывающую функцию и может использоваться для передачи вычисленного значения функции. В теле функции может быть несколько операторов return, но может не быть и ни одного. В последнем случае возврат в вызывающую программу происходит после выполнения последнего оператора тела функции.