Министерство образования Российской Федерации
Новосибирский государственный технический университет
__________________________________________________________________________
ИНФОРМАТИКА
Часть 2
Методические указания к лабораторным работам
для студентов i курса факультета рэф
специальностей «радиотехника»
и «радиосвязь, радиовещание и телевидение»
дневного отделения
НОВОСИБИРСК
2013
Составили: канд. техн. наук, доцент В.В. Дуркин
канд. техн. наук, доцент О.Н. Шлыкова
Рецензент д-р техн. наук, профессор В.П. Разинкин
Работа подготовлена кафедрой радиоприемных и радиопередающих устройств
© Новосибирский государственный технический университет, 2013
Лабораторная работа № 1. Функции.................................................................. 4
Лабораторная работа № 2. Динамические массивы..................................... 21
Лабораторная работа № 3. Обработка символьных данных...................... 44
Лабораторная работа № 4. Структуры............................................................. 63
Лабораторная работа № 5. Организация работы с файлами...................... 72
Ознакомление с правилами записи функции, с механизмом передачи параметров в функцию, с перегрузкой функций
Функция – это изолированный блок кода, выполняющий конкретную задачу.
Функции – это первичные «кирпичики», из которых строится любая программа на языке С++. Имена функций подчиняются тем же правилам, что и имена переменных. Имя функции должно отражать ее предназначение.
Каждая из функций должна быть определена или, по крайней мере, объявлена до ее использования в программе.
Определение функции имеет вид:
тип_возвращаемого_значения имя_функции(список_параметров)
{
операторы тела функции
}
Первая строка определения, содержащая тип возвращаемого значения, имя функции и список параметров, называется заголовком функции. Тип возвращаемого значения может быть любым, кроме массива и функции. Могут быть также функции, не возвращающие никакого значения. В заголовке таких функций тип возвращаемого значения объявляется void.
Список параметров, заключаемый в скобки, в простейшем случае представляет собой разделяемый запятыми список вида
тип_параметра иденификатор_параметра
Параметры могут быть исходными данными для выполнения алгоритма функции или результатами, возвращаемые функцией.
Например, заголовок:
double FSum(double X1, double X2, int A)
объявляет функцию с именем FSum, с тремя параметрами X1, X2и A, из которых первые два имеют тип double, а последний – int. Тип возвращаемого результата – double. Имена параметров X1, X2и A – локальные, т. е. они имеют значение только внутри данной функции и никак не связаны с именами аргументов, переданных при вызове функции. Значения этих параметров в начале выполнения функции равны значениям аргументов на момент вызова функции.
Если функция вызывается раньше, чем она описана в программе, то помимо описания функции в текст программы включается также прототип функции – ее предварительное объявление. Прототип представляет собой тот же заголовок функции, но с точкой с запятой в конце. Кроме того, в прототипе можно не указывать имена параметров. Прототипы, размещенные обычно в начале модуля, делают программу более наглядной. Прототип приведенного выше заголовка функции имеет вид
double FSum(double X1, double X2, int A);
или
double FSum(double, double, int);
Теперь рассмотрим описание тела функции. Тело функции пишется по тем же правилам, что и любой код программы, и может содержать объявления типов, констант, переменных и любые выполняемые операторы. Не допускается объявление и описание в теле других функций. Таким образом, функции не могут быть вложены друг в друга.
Надо иметь в виду, что все объявления в теле функции носят локальный характер. Объявленные переменные доступны только внутри данной функции.
Локальные переменные не просто видны только в теле функции, но по умолчанию они и существуют только внутри функции, создаваясь в момент вызова функции и уничтожаясь в момент выхода из функции.
Очень важным оператором тела функции является оператор возврата в точку вызова:
return выражение;
или
return;
Выражениев операторе returnопределяет возвращаемое функцией значение, т. е. результат обращения к функции. Тип возвращаемого значения определяется типом функции. Если функция не возвращает никакого значения, т. е. имеет тип void, то выражение в операторе return опускается, да и сам оператор return не обязателен. В теле функции может быть и несколько операторов return.
Примеры описаний функций
1) voidprint(char *name, intvalue) // Ничего не возвращает
{cout <<”\n”<<name<<value;} // Нет оператора return
2) double min (double a, double b) // В функции два оператора возврата
{ if(a<b) return a; // Функция возвращает минимальное
returnb; // из значений аргументов
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.