Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка2(4-8).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
166.4 Кб
Скачать

3. Лабораторное задание и методические указания по его выполнению

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

Отчет должен содержать:

  • Наименование и цель работы.

  • Краткие теоретические сведения.

  • Листинг программы и полученные результаты

4. Варианты заданий

  1. Решить задания:

  2. Написать программу для вычисления какого-либо арифметического действия, все параметры которого задаются с клавиатуры.

  3. Написать программу для определения наибольшего и наименьшего элемента массива.

  4. Написать программу, которая выводит введенную с клавиатуры строку в обратном порядке

  5. Написать программу, которая сортирует массив по возрастанию.

  6. Написать программу, которая определяет вхождение элемента в введенную с клавиатуры строку.

  7. Написать программу, которая вычисляет сумму цифр, входящих в число.

с использованием:

а. функций, возвращающих значение;

б. функций, не возвращающих значения;

Варианты задания выглядят, например, так 6а.

Лабораторная работа №8 объекты

1. Цель работы: отработка навыков программирования с использованием возможностей языка по организации циклов.

2. Домашнее задание и методические указания по его выполнению

2.1. Введение в ООП под платформой С++

Инкапсуляция – механизм, который определяет данные и код, манипулирующий этими данными, а также защищает то и другое от постороннего вмешательства.

Абстракция данных – возможность определять новые типы данных, с которыми можно работать почти так же как и с основными типами данных. Такие типы данных называют абстрактными типами данных или типами данных определенные пользователем.

Понятие класс реализует эти два основных понятия.

Класс – это вид структуры, инкапсулирующей данные и функции в удобную упаковку.

В объектно-ориентированном программировании в С++ также используются понятия наследование и полиморфизм.

Наследование – процесс, посредством которого один объект может приобретать свойства другого.

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

2.2. Члены класса. Инициализация членов класса

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

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

Пример:

/*класс для хранения даты и времени*/

class TTime {

private: // спецификатор доступа

int year; //

int month; //

int day; // закрытые данные-члены

int hour; //

int minute; //

public: // спецификатор доступа

void GetTime (int &m, int &d, int &y, int &hr, int &min) //встраиваемая функция-член

{

m = month;

d = day;

y = year;

hr = hour;

min = minute;

}

void SetTime(int m, int d, int y, int hr, int min); //открытая функция-член

} firstTime, secondTime;

Для записи функций-членов за пределами класса используется следующий формат записи:

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

{

//тело_функции

}

где операция в виде двух двоеточий - это операция расширения области видимости.

Пример:

void TTime::SetTime(int m, int d, int y, int hr, int min)

{

month = m;

day = d;

year = y;

hour = hr;

minute = min;

}

Встраиваемые функции члены также могут быть вынесены за пределы класса и записаны представленным выше способом, но тогда перед типом функции должно стоять ключевое слово inline.

Пример:

inline void TTime::SetTime(int m, int d, int y, int hr, int min)

{

}

Для инициализации членов класса необходимо объявить объект данного класса и только после этого с помощью оператора “->”, для доступа по указателю, или оператора точка (.), для доступа по ссылке, присвоить его членам значения.

Пример:

class TTime {

private:

int year;

int month;

int day;

int hour;

int minute;

public:

void SetTime(int m, int d, int y, int hr, int min);

};

main()

{

TTime now; //объект типа TTime

TTime *tomorrow; //указатель на объект типа TTime

now.SetTime(4,15,2008,15,18); //обращение по ссылке

tomorrow->SetTime(4,16,2008,15,18); //обращение по указателю

cout << “Дата и время установлены”;

return 0;

}

void TTime::SetTime(int m, int d, int y, int hr, int min)

{

month = m;

day = d;

year = y;

hour = hr;

minute = min;

}