- •Объектно-ориентированное программирование
- •/ И. М. Виноградова. — Барановичи: рио БарГу, 2011 — с. Экз.
- •Структура программы. Операторы и выражения
- •Краткие теоретические сведения
- •Классификация данных
- •Декларирование объектов
- •Стандартные математические функции
- •Структура программы
- •Ввод с помощью потока cin
- •Вывод с помощью потока cout
- •Пример программы работы
- •Задания:
- •Контрольные вопросы
- •Операторы ветвления. Битовые операции
- •Краткие теоретические сведения
- •If (условие) оператор1; [else оператор2;]
- •Замечания
- •Цикл с предусловием (while)
- •Битовые операции
- •Примеры
- •Задания
- •Варианты задания
- •Контрольные вопросы
- •Циклические и вычислительные процессы
- •Краткие теоретические сведения Цикл с постусловием (do while)
- •Оператор break
- •Оператор break
- •Задания
- •Контрольные вопросы
- •Обработка статических массивов
- •Краткие теоретические сведения Объявление массива
- •Пример решения задачи по массивам
- •Полный текст программы
- •Варианты задания
- •Контрольные вопросы
- •Массивы и указатели
- •Краткие теоретические сведения
- •Указатели
- •Указатели и массивы
- •Формирование динамических массивов с использованием операций new и delete
- •Постановка задачи
- •Порядок выполнения работы
- •Варианты задания
- •Контрольные вопросы
- •Обработка символов, строк, текста
- •Краткие теоретические сведения
- •"Строковый ввод-вывод"
- •Примеры решения задач
- •Код программы
- •Код программы 2
- •Варианты задания:
- •Контрольные вопросы
- •Модульное программирование
- •Цель работы:
- •Краткие теоретические сведения.
- •Параметры функции
- •Локальные и глобальные переменные
- •Передача одномерных массивов как параметров функции
- •Передача строк в качестве параметров функций
- •Передача многомерных массивов в функцию
- •Постановка задачи
- •Порядок выполнения работы
- •Варианты заданий
- •Контрольные вопросы
- •Цель работы:
- •Краткие теоретические сведения
- •Id_класса id_объекта;
- •Id_объекта. Id_метода;
- •Задание к лабораторной работе № 8
- •Постановка задачи
- •Контрольные вопросы
- •Объектно-ориентированное программирование Методические указания
- •225404 Г. Барановичи, ул. Войкова, 21
Id_класса id_объекта;
и пусть в составе класса есть метод с идентификатором ID_метода.
Тогда:
1. Прямой вызов метода
Id_объекта. Id_метода;
- использована операция привязки «точка».
2. Использование косвенной адресации Пусть объявлен указатель с типом ID_класса:
ID класса * ID_указателя;
Теперь указатель типа ID_класса можно устанавливать на существующие объекты этого класса:
ID_указателя = & ID_объект;
- указатель идентифицирован адресом объекта.
Косвенный вызов метода:
ID__указателя -> ID_метода;
- использована операция привязки «стрелка».
3. Создание объектов (безымянных) в динамической области памяти
ID класса * ID_указателя = new ID_класса;
Компилятор создает объект на этапе работы проекта. Косвенный вызов метода:
ID_указателя -> ID_метода;
Пример класса
#include <iostream.h>
class kls
{ int sm; // по умолчанию предполагается private
intm[5];
public:
void inpt(int i) // функция ввода данных в компоненту m класса
{ cin >>m[i]; }
int summ(); // прототип функции summ
int kls: :summ() // описание функции summ
{ sm=0; // инициализация компоненты sm класса
for(int i=0; i<5; i++) sm+=m[i];
return sm;}
void main()
{ kls k1,k2; // объявление объектов k1 и k2 класса kls
int i;
cout<< "Вводите элементы массива ПЕРВОГО объекта : ";
for(i=0;i<5; k1. inpt(i++)); // ввод данных в первый объект
cout<< "Вводите элементы массива ВТОРОГО объекта : "; for(i=0;i<5; k2.inpt(i++)); // во второй объект
cout<<"\n Сумма элементов первого объекта (k1) = " << k1.summ(); cout<<"\n Сумма элементов второго объекта (k2) = " << k2.summ();
}
Задание к лабораторной работе № 8
Общая постановка. Написать программу, иллюстрирующую прямой и косвенный способы обращения к методам. Пользовательский класс должен содержать необходимые элементы-данные, метод установки их начальных значений:
void Set (double X,...); метод печати:
void Print (void);
метод, решающий поставленную задачу:
void Run (void);
Коды методов - вне пространства определения класса.
class X{
…..
public:
void Set(double X, ...);
void Print(void);
void Run(void);
};
……..
#include <math.h>
void X::Run(void) {
double dop, a, b, c;
puts(" Работа 1 - Линейный алгоритм ");
dop = fabs(y-x);
а = pow(x, y+l) + exp(y-l);
b = 1 + x*fabs(y-tan(z));
с = 0.5*pow(dop,2) - pow(dop,3)/3;
rezult = a/b*(l+dop) + c;
}
где x, y, z, rezult - вещественные элементы-данные класса X.
Постановка задачи
Составить метод Run для вычисления выражения.
1.
2.
3.
4.
При , ,
5.
При x=-15,246 y=4,642* z=20,001* α=-182,036
6.
, y=-2.75, z=0.15
7.
При x=0,1722; y=6,33; z=3,25*10-4; F=-205,305
8.
При , , , .
9.
При
10.
При x=6,251 y=0,827 z=25,001 b=0,7121
11.
При x=3,251, y=0,325, z=0,466
12.
X = 17,421 y = 0,010365 z = 82800 f = 0,33056