Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_С++_ч_2.doc
Скачиваний:
12
Добавлен:
22.11.2018
Размер:
209.92 Кб
Скачать

Федеральное агентство по образованию

ГОУ ВПО «Уральский государственный технический университет  УПИ»

Программирование на языке C++

Часть 2. Модульное программирование

Методические указания к лабораторным и самостоятельным работам по курсу «Программирование на языке С++» для слушателей курсов повышения квалификации и студентов всех форм обучения всех специальностей.

Екатеринбург

2006

УДК 681.3

Составитель А. В. Кибардин

Научный редактор доц., канд.техн.наук. Б. В. Семенов

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ с++. ч.2. Модульное программирование: методические указания к лабораторным и самостоятельным работам по курсу «Программирование на языке С++» / А. В. Кибардин. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2006. 40 с.

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

Библиогр.: 4 назв.

Подготовлено факультетом повышения квалификации преподавателей и профессиональной переподготовки

УДК 681.3

© ГОУ ВПО “Уральский государственный

технический университет-УПИ”, 2006

Введение

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

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

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

Функции Объявление и определение функций

Функция − это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение. Любая программа на С++ состоит из функций, одна из которых должна иметь имя main − с нее начинается выполнение программы. Функция начинает выполняться в момент вызова. Любая функция должна быть объявлена и определена. Объявление функции задает ее имя, тип возвращаемого результата и список передаваемых параметров. Определение функции содержит кроме объявления тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках:

[класс ] тип имя_функции ([список параметров ])

[throw (исключения)]

{тело функции}

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

- extern − глобальная видимость во всех модулях программы (по умолчанию);

- static − видимость только в пределах модуля, в котором определена функция.

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

Список параметров определяет величины, которые требуется передать в функцию при ее вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра, передаваемого в функцию, указывается его тип и имя (в объявлении имена параметров можно опускать).

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

Пример. Функция, возвращающая сумму двух целых величин:

# include <iostream.h>

int sum (int a, int b); // объявление функции

int main ( ) {

int a = 2, b = 3, c,d;

c = sum(a, b); // вызов функции

cin >> d;

cout << sum(c,d);

return 0;

}

int sum (int a, int b) { // определение функции

return a+b;

}

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

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