Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Оператор возврата из функции




Оператор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, но может не быть и ни одного. В последнем случае возврат в вызывающую программу происходит после выполнения последнего оператора тела функции.

Прототип функции

может указываться до вызова функции вместо описания функции для того, чтобы компилятор мог выполнить проверку соответствия типов аргу­ментов и параметров. Прототип функции по форме такой же, как и заголовок функции, в конце его ставится «;». Формальные параметры функции в прототипе могут иметь имена, но компилятору они не нужны.

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

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

Вызов функции

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

имя_функции (список_фактических_параметров);

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

Число и типы фактических и формальных параметров должны совпадать. При вызове функции фактические параметры подставляются вместо формальных параметров.

35. Получение нескольких результатов в функциях. Пример.

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

Ссылочный параметр — это псевдоним соответствующего аргумента. Чтобы показать, что параметр функции передан по ссылке, после типа параметра в прототипе функции ставится символ амперсанда (& — операция взятия адреса); такое же обозначение используется в списке типов параметров в заголовке функции. Например, объявление

int &sum;

в заголовке функции может читаться как «sum является ссылкой на int». В вызове функции достаточно указать имя переменной и она будет передана по ссылке. Тогда упоминание в теле вызываемой функции переменной по имени ее параметра в действительности является обращением к исходной переменной вызывающей функции и эта переменная может быть изменена непосредственно вызываемой функцией.

36. Формальные и фактические параметры функции. Пример.

Параметры, перечисленные в заголовке описания функции, называются формальными параметрами, или просто параметрами

Параметры, записанные в операторе вызова функции — фактическими параметрами, или аргументами.

37. Передача параметров по значению и по адресу. Пример.

— по значению

— по адресу

38. Области действия переменных. Понятия область видимости и область существования переменной. Пример.

В языке C++ возможны три места объявления переменных:

  1. Вне каких либо функций, в том числе и main(). Такая переменная называется глобальной и может использоваться в любом месте программы от места объявления и до конца программы.
  1. Переменная может быть объявлена внутри блока, в том числе и внутри тела функции. Объявленная таким образом переменная называется локальной и может использоваться только внутри блока. Такая переменная вне блока, в котором она объявлена, не известна.
  1. Переменная может быть объявлена как параметр функции. Кроме специального назначения, а именно для передачи данных в функцию, параметр можно рассматривать как локальную переменную для тела функции.

39. Структурированные типы данных. Одномерный массив. Описание, особенности использования. Ввод/вывод элементов одномерного массива. Передача одномерного массива в качестве параметра в функции. Пример.

Структура данных — это некоторая структура, содержащая данные.

Различают динамические и статические типы данных.

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

Массив представляет собой упорядоченный набор однотипных элементов. Массивы бывают одномерными и многомерными.

Одномерные массивы (вектора) — это конечная именованная последовательность элементов. Элементы массива занимают в памяти один непрерывный участок памяти и располагаются последовательно друг за другом. Для доступа к отдельному элементу массива указывают имя массива и номер позиции отдельного элемента массива (индекс). Индекс должен быть целым числом или целым выражением. Индексация элементов массива начинается с нуля. На рисунке показан вектор A целых чисел.

Массивы занимают область в памяти. При объявлении вектора указывают тип каждого элемента и количество элементов. При этом компилятор резервирует соответствующий объем памяти.

Объявление одномерного массива:

<тип элемента> <имя массива>[<кол-во элементов>];

Например: int A[10]; float B[3],C[100]; double D[20];

Инициализация одномерного массива означает присвоение начальных значений его элементам при объявлении. Массивы можно инициализировать списком значений или выражений.

Например:

int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};

Если элементов в массиве больше, чем инициализаторов, элементы для которых значения не указаны обнуляются. Массив можно инициализировать списком без указания в скобках длины. При этом длина массива определяется количеством инициализаторов.

Например: char code[]={’a’,’b’,’c’};

Если массив явно не проинициирован, то внешние и статические массивы инициализируются нулями. Автоматические массивы после объявления ничем не инициализируются и содержат неизвестную информацию.





Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 1419 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2460 - | 2139 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.