Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Напомним, что




Определение объекта типа функции.

Модульная структура программы в СИ++. Объект типа функция.

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

Такой стиль программирования, использующий принципы структурного программирования, ведет к повышению степени абстракции программы и к упрощению ее структуры, повышает надежность программы. Разделение программы на объекты-функции позволяет избежать избыточности кода (многократного повторения одного и того же кода), поскольку функцию записывают один раз, а вызывать ее на выполнение можно многократно из разных точек программы. Упрощается процесс отладки, т.к. каждую функцию можно отладить отдельно. Дальнейшим шагом в повышении уровня абстракции является объединение функций и связанных с ними данных в отдельные файлы - исходные модули (они имеют расширение .срр), компилируемые раздельно. Получившиеся в процессе компиляции файлы объектные модули (файлы с расширением.obj), объединяются в исполняемую программу с помощью компоновщика (получают исполняемый файл с расширением.exe).

 

объект – это область памяти, которая имеет имя.

Каждый объект характеризуется своим типом. Когда задается тип объекта, системе сообщается:

  • Размер объекта (система знает, сколько байт выделить под этот объект);
  • Способ кодировки информации в этой области памяти;
  • Какие действия можно делать над информацией, записанной в этой области памяти и как их делать.

Объект типа функция относится к группе производных типов. Правила работы с этими объектами (размер, способ кодировки, действия) определил разработчик языка, они заложены в компилятор языка и система их «знает». Эти правила необходимо изучить для того, чтобы уметь работать с этими объектами.

Функция – это имя типа объекта. Но объекты типа функция обычно называют просто функциями.

 

  Для того, чтобы в программе можно было работать с объектом, его надо физически создать, т.е. программист на языке С++ должен дать указание на его создание – на выделение памяти требуемого размера и нужной кодировки. Выделенной памяти должно быть присвоено имя. В этом случае говорят, надо определить (defined)объект.Определить объект можно только один раз!!!!!!!!   Объект, который определен, одновременно и описан (declared).  

 

Итак, определение объекта типа функция состоит из заголовка функции и тела функции.

 

Вот как синтаксически выглядит определение функции:

тип_возвращаемого_значения имя_объекта_функции ( список_формальных_параметров )

{

/* Это тело функции. Здесь пишутся инструкции, которые определяют объекты, создаваемые внутри функции – локальные объекты.

Здесь пишутся инструкции, задающие действия над этими объектами - алгоритм работы функции

*/

}

 

Заголовок функции это:

тип_возвращаемого_значения имя_объекта_функции ( список_формальных_параметров )

 

Заголовок функции задает, каким образом организован обмен данными между ней и вызвавшей ее объектом–функцией. То есть заголовок определяет, какие данные и как функция получает от функции, вызвавшей ее, а также какие результаты своей работы функция возвращает и как она их возвращает в точку ее вызова.

 

Тело функции, заключено в фигурные скобки и с помощью инструкций описывает алгоритм обработки тех данных, которые функция получила либо через параметры от вызвавшей ее другой функции, либо каким-нибудь другим способом (например, с клавиатуры или прочитала эти данные из файла):

 

{

/* Это тело функции. Здесь пишутся инструкции, которые определяют объекты, создаваемые внутри функции – локальные объекты.

Здесь пишутся инструкции, задающие действия над этими объектами -алгоритм работы функции

*/

}

 

Как известно, определить объект типа функция, как и любой другой объект, можно только один раз. И как любой другой объект функцию порой приходится описывать. Зачем? Для того, чтобы уметь правильно с этим объектом работать, когда его по каким либо причинам «не видно» (например тело функции определено не в том файле из которого его вызывают).

 

Как выглядит инструкция описания функции?

Описание функции – это точная копия заголовка функции, после которого стоит точка с запятой (ведь это инструкция!):

тип_возвращаемого_значения имя_объекта_функции ( список_формальных_параметров );

Для инструкции описания функции есть специальное название – прототип (prototype).

По инструкции описания объект не создается, а только объявляется, что такой объект должен быть создан и его характеристики – имя и список параметров будет таким, каким он описан.

 

В примере тела функции показано, как записать в программе на языке С++ много строковый комментарий. В комментарии можно дать нужные пояснения к всей программе, ее частям – функциям или к отдельным инструкциям. Комментарии системой не воспринимается как распознаваемый текст. Этот текст только для чтения программистом:

/* это много

строковый

комментарий */

Комментарий, который занимает одну строку, можно создать так:

// это комментарий в одну строку

 

В комментарии можно использовать любые символы.

 




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


Дата добавления: 2015-06-29; Просмотров: 397; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.