
- •Лабораторная работа №5 массивы и строки
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Одномерные массивы
- •2.2. Строки
- •2.3. Двухмерные массивы
- •2.4. Массивы строк
- •2.5. Многомерные массивы
- •2.6. Инициализация массивов
- •2.7. Массивы переменной длины
- •2.8. Пример
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Лабораторная работа №6 организация циклов
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Организация цикла
- •2.1.1 Оператор цикла с предусловием while
- •2.1.2 Оператор цикла с постусловием do-while
- •2.1.3 Оператор цикла с параметром for
- •2.2. Пример
- •2.3. Контрольный пример
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Контрольные вопросы
- •5. Задание
- •Лабораторная работа №7 функции
- •2. Домашнее задание и методические указания по его выполнению
- •2.1 Понятие функции
- •2.2. Общий вид функции
- •2.3. Аргументы функций
- •2.4. Виды функций
- •2.5. Прототипы функций
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Лабораторная работа №8 объекты
- •2. Домашнее задание и методические указания по его выполнению
- •2.2. Члены класса. Инициализация членов класса
- •2.3. Конструкторы и деструкторы
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Библиографический список
3. Лабораторное задание и методические указания по его выполнению
Изучить организацию функций и их вызов в языке С++, используя теоретические сведения данного методического пособия, а также на практике реализовать полученные знания в виде программы, выполняющей указанные задачи с помощью функций определенного типа.
Отчет должен содержать:
Наименование и цель работы.
Краткие теоретические сведения.
Листинг программы и полученные результаты
4. Варианты заданий
Решить задания:
Написать программу для вычисления какого-либо арифметического действия, все параметры которого задаются с клавиатуры.
Написать программу для определения наибольшего и наименьшего элемента массива.
Написать программу, которая выводит введенную с клавиатуры строку в обратном порядке
Написать программу, которая сортирует массив по возрастанию.
Написать программу, которая определяет вхождение элемента в введенную с клавиатуры строку.
Написать программу, которая вычисляет сумму цифр, входящих в число.
с использованием:
а. функций, возвращающих значение;
б. функций, не возвращающих значения;
Варианты задания выглядят, например, так 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;
}