Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ_Прог_1курс_2n1часть.doc
Скачиваний:
11
Добавлен:
13.04.2015
Размер:
735.74 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

Методичні вказівки

ДО ЛАБОРАТОРНИХ ТА ПРАКТИЧНИХ

РОБІТ З ДИСЦИПЛІНИ

"Програмування"

Харків 2007

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ

МЕТОДИЧНІ ВКАЗІВКИ

ДО ЛАБОРАТОРНИХ ТА ПРАКТИЧНИХ

РОБІТ З ДИСЦИПЛІНИ

"програмування"

для студентів денної форми навчання спеціальності

_______________________

Відповідальний за випуск Путятін Є.П.

ЗАТВЕРДЖЕНО

кафедрою інформатики.

Протокол № від

Харків 2007

Методичні вказівки до лабораторних та практичних робіт з дисципліни “Програмування” для cтудентів денної форми навчання спеціальності ___________ /Упоряд.: В.А. Любченко, О.В. Яковлева, Д.О. Руденко  Харкiв: ХНУРЕ, 2007.  ___ с.

Упорядники: В.А. Любченко

О.В. Яковлева

Д.О. Руденко

Рецензент С.С. Танянський, доц. каф. ЕОМ

ЗМІСТ

ВСТУП 5

1 Директиви препроцесора. Багатомодульне програмування 6

2 Потокові класи мови С++ 17

3 Файлові потоки мови С 41

4 Перегрузка операцій 55

5 Основи розробки класів у мові С++ 61

6 Наслідування, поліморфізм, інкапсуляция 80

РЕКОМЕНДОВАНА ЛІТЕРАТУРА 106

ВСТУП

В наш час персональні комп’ютери мають широке застосування в pізноманітних галузях людської діяльності. Все це неможливо без знань мов програмування і тому таку актуальність надбав лозунг “Програмування – друга грамотність”.

Головною метою даних методичних вказівок є допомога студентам в оволодінні практичними навичками у підготовці та розв’язанні задач найбільш розповсюдженою мовою програмування С++, а також придбанні початкових знань в складній сучасній системі програмування VISUAL C ++.

Цикл лабораторних робіт передбачає активну самостійну роботу студентів. Кожна робота виконується студентом особисто, згідно з варіантом завдання, номер якого повиненвідповідати порядковому номеру студента в журналі академгрупи.

Для виконання роботи необхідно: опрацювати теоретичний матеріал, дати відповіді на контрольні запитання, які надаються в цих методичних вказівках, розробити схему алгоритму, скласти програму свого варіанту завдання та розв’язати його на персональному комп’ютері (ПК), оформити звіт і захистити його.

Звіт повинен мати: номер лабораторної роботи, назву та мету роботи, завдання, схему алгоритму (в деяких випадках – короткий опис алгоритму), роздрук-лістинг тексту програми та результати її розв’язання, аналіз одержаних результатів і висновок щодо роботи.

Правила техніки безпеки забороняють студентам вмикати або вимикати ПК, розкривати будь-яке обладнання, знімати захисні щити, а також доторкатись до струмопровідних частин обладнання.

1 Директивипрепроцесора. Багатомодульне програмування

1.1 Мета роботи

Отримати практичні навички застосування директив препроцесора, насамперед у створенні макросів, умовної компіляції, створенні багатомодульного проекту.

1.2 Вказівки щодо організації самостійної роботи студентів

Директивы препроцессора начинаются с символа “#” и выполняются во время 1-й фазы компиляции. Результат выполнения затем компилируется, но может быть выведен в stdoutили в файл при помощи опций компилятора.

Директива #include

Эта директива предписывает препроцессору поместить на ее место содержимое другого файла. Синтаксис директивы

#include <имя_файла>

или

#include "имя_файла".

Если имя_файла не является полным именем, в первом случае поиск происходит только в пределах специфицированных каталогов включаемых файлов. Во втором случае сначала просматривается текущий каталог.

Директива #define

Директива #define определяет подстановку в тексте программы. Она используется для определения:

- символических констант:

#define имя текст__подстановки

(все вхождения имени заменяются на текст подстановки);

- макросов, которые выглядят как функции, но реализуются подстановкой их текста в текст программы:

#define имя (параметры текст_полстановки;

- символов, управляющих условной компиляцией. Они используются вместе с директивами #i fdef и #i fndef. Формат:

#define имя Примеры:

#define VERSION I

#define VASIA "Василий Иванович"

#define MAX(х,у) ((x)>(y) ? (x) : (y))

Имена рекомендуется записывать прописными буквами, чтобы зрительно отличать их от имен переменных и функций. Параметры макроса используются при макроподстановке, например, если в тексте программы используется вызов макроса y = MAX(suml,. sum2); он будет заменен на

у = ((suml)>(sum2)? (suml):(sum2));

Отсутствие круглых скобок может привести к неправильному порядку вычисления, поскольку препроцессор не оценивает вставляемый текст с точки зрения синтаксиса. Например, если к макросу #deflne sqr(x) (х*х) обратиться как sqr(y+l), в результате подстановки получится выражение (у+1*у+1).

Директивы #undef удаляет объявленную макроподстановку

Условная компиляция

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

#if выражение_1

// эта часть файла компилируется, если выражение_1 истинно

#elif выражение_2

// эта часть файла компилируется, если выражение_1 ложно, а

// выражение_2 истинно

...

#else

// эта часть файла компилируется, когда все выражения ложны

#endif

Директивы #elif и #else могут быть опущены.

Пример.Простое исключение секции кода.

#if 0

// исключенная секция кода

#endif

Значения выражений в директивах #if и #elif должны быть целыми константами. В выражениях нельзя использовать операцию sizeof.

В качестве выражения в директивах #if и #elif можно использовать оператор defined . Он проверяет, был ли определен макрос.

Пример.Выбор между секциями кода.

#if defined(DEBUGGING)

space = 1000;

#else

space = 10;

#endif

Директивы #ifdef и #ifndef являются сокращением для директив

#if defined и #if !defined соответственно.

Пример.Предотвращение многократной трансляции заголовочного файла sample.h.

#ifndef __SAMPLE_H__

#define __SAMPLE_H__

// здесь содержание файла

#endif

Если файл sample.h окажется многократно включенным в исходный код программы, то при таком “обрамлении” его содержимого будет оттранслировано лишь первое вхождение заголовочного файла.

Замечание.В Visual C++ та же цель достигается применением директивы

#pragmaonce.

Директива #error

Директива #error вызывает во время компиляции сообщение об ошибке.

#error сообщение_об_ошибке

Пример.Обеспечение правильности параметров компиляции.

#if !defined(__cplusplus)

#error Этот файл должен компилироваться в режиме С++

#endif

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

Директива #line

С помощью директивы #line можно изменить внутренний счетчик строк компилятора и имя компилируемого файла. Она имеет следующий вид

#line номер_строки ["имя_файла"]

Директива #pragma

Директива #pragma позволяет влиять на процесс и результат компиляции. Вот несколько опций для компилятора Visual C++.

  • #pragma hdrstop— предписывает компилятору не включать дальнейшую информацию в прекомпилируемый заголовок;

  • #pragma once— предписывает компилятору лишь однажды включать данный заголовочный файл в программу;

#pragma warning— выборочно разрешает или подавляет предупреждающие сообщения.