Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Часть 2.doc
Скачиваний:
60
Добавлен:
27.03.2015
Размер:
539.65 Кб
Скачать

Министерство образования Российской Федерации

Новосибирский государственный технический университет

__________________________________________________________________________

ИНФОРМАТИКА

Часть 2

Методические указания к лабораторным работам

для студентов i курса факультета рэф

специальностей «радиотехника»

и «радиосвязь, радиовещание и телевидение»

дневного отделения

НОВОСИБИРСК

2013

Составили: канд. техн. наук, доцент В.В. Дуркин

канд. техн. наук, доцент О.Н. Шлыкова

Рецензент д-р техн. наук, профессор В.П. Разинкин

Работа подготовлена кафедрой радиоприемных

и радиопередающих устройств

© Новосибирский государственный

технический университет, 2013

ОГЛАВЛЕНИЕ

Лабораторная работа № 1. Функции 4

Лабораторная работа № 2. Динамические массивы 21

Лабораторная работа № 3. Обработка символьных данных 44

Лабораторная работа № 4. Структуры 63

Лабораторная работа № 5. Организация работы с файлами 72

Лабораторная работа № 1

Функции

Цель работы

Ознакомление с правилами записи функции, с механизмом передачи параметров в функцию, с перегрузкой функций

Пояснения к работе

Объявление и описание функций

Функция это изолированный блок кода, выполняющий конкретную задачу.

Функции – это первичные «кирпичики», из которых строится любая программа на языке С++. Имена функций подчиняются тем же правилам, что и имена переменных. Имя функции должно отражать ее предназначение.

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

Определение функции имеет вид:

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

{

операторы тела функции

}

Первая строка определения, содержащая тип возвращаемого значения, имя функции и список параметров, называется заголовком функции. Тип возвращаемого значения может быть любым, кроме массива и функции. Могут быть также функции, не возвращающие никакого значения. В заголовке таких функций тип возвращаемого значения объявляется 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) void print (char *name, int value) // Ничего не возвращает

{cout <<”\n”<<name<<value;} // Нет оператора return

2) double min (double a, double b) // В функции два оператора

возврата

{ if(a<b) return a; // Функция возвращает

минимальное

return b; // из значений аргументов

}

3) void write (void) // Ничего не возвращает, ничего не получает

{cout<<”\n НАЗВАНИЕ:”;} // Всегда печатает одно и то же

Здесь заголовок можно упростить void write(). Тип возвращаемого значения должен быть указан явно, т. е. написание заголовка в виде write() было бы ошибкой.