
- •Часть 2. Модульное программирование
- •Екатеринбург
- •Введение
- •Функции Объявление и определение функций
- •Глобальные переменные
- •Возвращаемое значение
- •Параметры функции
- •Передача массивов в качестве параметров
- •Передача имен функций в качестве параметров
- •Параметры со значениями по умолчанию
- •Перегрузка функций
- •Правила описания перегруженных функций
- •Функции стандартной библиотеки
- •Функции ввода/вывода
- •Открытие потока
- •Ввод/вывод
- •Закрытие потока
- •Обработка ошибок
- •Функции работы со строками и символами
- •Математические функции
- •Директивы препроцессора
- •Директива #include
- •Директива #define
- •Директивы условной компиляции
- •Директива #undef
- •Предопределенные макросы
- •Области действия и пространства имен
- •Внешние объявления
- •Поименованные области
- •Библиографический список
- •Оглавление
- •Часть 2. Модульное программирование
- •620002, Екатеринбург, ул.Мира, 19
- •620002, Екатеринбург, ул.Мира, 19
Федеральное агентство
по образованию ГОУ
ВПО «Уральский государственный
технический университет
УПИ»
Программирование
на языке C++
Методические
указания к лабораторным и самостоятельным
работам по курсу «Программирование
на языке С++» для слушателей курсов
повышения квалификации и студентов
всех форм обучения всех специальностей.
2006
Часть 2. Модульное программирование
Екатеринбург
УДК 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.
!!! При совместной работе функции должны обмениваться информацией. Это можно осуществить с помощью глобальных переменных, через параметры и возвращаемое функцией значение.