РЕЙТИНГ
ЭКЗАМЕН
ЭКЗАМЕН
ЭКЗАМЕН
ЭКЗАМЕН
Объектно-ориентированное программирование (ООП)
Основные понятия ООП
Основные понятия ООП
Основные принципы ООП. Инкапсуляция
Основные принципы ООП. Наследование
Основные принципы ООП. Наследование
Основные принципы ООП. Полиморфизм
Введение в Си++
Введение в Си++
Введение в Си++
Введение в Си++. Реализация методов
Введение в Си++
Введение в Си++
550.00K
Category: programmingprogramming

Рейтинг. Лекция12

1. РЕЙТИНГ

При условии, что сданы все
лабораторные работы и домашние
задания:
60% - 74% - оценка «удовлетворительно»
75% - 89% - оценка «хорошо»
90% и больше – оценка «отлично»
Студенты согласные с оценкой по
рейтингу на экзамен не приходят

2. ЭКЗАМЕН

1. Допуск к экзамену – выполненные
лабораторные работы и домашние задания.
2. Сдать лабораторные работы и домашние
задания можно на консультации перед
экзаменом (без баллов). В день экзамена
задолженности не принимаются
3. Расписание консультаций:
гр. 422-3,4 – вторник, 10 января 13.00
гр. 422-1,2 – среда, 18 января 13.00

3. ЭКЗАМЕН

4. Начало экзамена - 9.00 (для всех групп,
опоздавшие на экзамен не допускаются, в
ведомость ставится оценка «не аттестован»
или текущая оценка по рейтингу).
5. Экзамен проводится 3 часа.
6. Билет состоит из трех заданий:
1. Конструкции структурного программирования (нахождение
минимальных и максимальных значений, целочисленная арифметика,
последовательности).
2. Массивы (поиск в массивах, сортировки массивов, изменение
порядка элементов в массивах).
3. Массивы и матрицы. Функции (удаление и добавление элементов
массива и матрицы)

4. ЭКЗАМЕН

1. Дано натуральное число n. Проверить,
является ли число палиндромом.
2. Дан массив из n элементов. Если в массиве
повторяется первый элемент, то найти сумму
элементов между первым и вторым
вхождениями этого элемента.
3. Дана матрица из n строк и m столбцов, n<m.
Сделать матрицу квадратной, удалив
столбцы, начиная с заданного.

5. ЭКЗАМЕН

Критерии оценки
только одна задача (удовлетворительно)
две задачи (хорошо)
три задачи (отлично)

6. Объектно-ориентированное программирование (ООП)

История развития
Идеология
процедурного
программирования
Объектноориентированное
программирование
данные и подпрограммы
(процедуры, функции)
их обработки
формально не
связаны
Вводятся понятия
КЛАСС и
ОБЪЕКТ
6

7. Основные понятия ООП

Объект – это какая-либо
формальная единица,
которая имеет
определенное состояние
(обладает какими-либо
свойствами) и
определенные операции,
которые могут управлять
состоянием (изменять
свойства) объекта
7

8. Основные понятия ООП

Элементы объекта,
которые можно
представить данными
принято называть
полями.
Элементы класса,
изменяющие поля
объекта называют
методами.
Объект – квадратное уравнение
Поля:
Методы:
нахождение корней уравнения
нахождение значения функции
при заданном значении x
вывод на экран уравнения
Объект – точка в декартовой
системе координат
Поля:
Методы:
8

9. Основные принципы ООП. Инкапсуляция

Понятие
«инкапсуляция»
означает, что
элементы объекта,
определяющие и
изменяющие его
свойства,
рассматриваются в
качестве единого
целого. Это
подразумевает
«защиту» данных в
пределах объекта
a
Поля
GetA
Методы
GetB
SetA
GetC
SetB
GetX
SetC
b
c
Root
x
Func(x1)
Объект – квадратное
уравнение
9

10. Основные принципы ООП. Наследование

Наследование - это
способность брать
существующий объект,
будем называть его
базовым, и порождать от
него новый объект потомок, с
наследованием всех его
свойств и поведения.
Точка
Правильный nугольник
Закрашенный nугольник
Точка - x,y, может изменять
координаты
Правильный n-угольник –
x,y,радиус r, количество
углов n, может изменять
координаты, может изменять
радиус и количество углов
Закрашенный n-угольник –
x,y,радиус r, количество углов n,
цвет c, может изменять
координаты, может изменять
радиус и количество углов,
может изменять цвет
10

11. Основные принципы ООП. Наследование

Множественное
наследование
Плоды
Фрукты
Овощи
Ягоды
Математический анализ
я
г
а
м
к
с
м
к
ч
б
р
й
о
а
в
а
л
е
л
у
в
р
р
е
л
у
р
о
ш
а
к
т
к
и
б
н
к
о
а
о
о
л
н
н
и
в
ф
а
а
и
к
ь
е
к
а
л
а
Линейная алгебра
Высшая математика
ь
11

12. Основные принципы ООП. Полиморфизм

Статический
полиморфизм – это
способность объектапотомка переопределять
свойства объектародителя.
Точка
Правильный nугольник
Закрашенный nугольник
Рисовать
Рисовать
Рисовать
Динамический
полиморфизм – это
возможность
использования одного и
того же объекта поразному.
12

13. Введение в Си++

Типы данных
int – целые числа
float – вещественные
числа
double –
вещественные числа
char - символы
bool – true, false
Конструкции структурного
программирования
if () {…} else {…}
for (секция инициализации; секция
проверки условия; секция коррекции)
{…}
int x[] = { 1,2,3 };
for (int i = 0; i < 3; i++) cout << x[i];
for ( объявление для диапазона :
выражение)
for (int y : x) cout << y << " ";
while ( условие) {…}
do {…} while(условие);
13

14. Введение в Си++

class <имя класс>
{[
<атрибут доступа> <тип> <имя поля 1>
<атрибут доступа> <тип> <имя поля 2>

<атрибут доступа> <тип> <имя поля k>
]
[конструктор1
конструктор 2
…]
[
<атрибут доступа> <тип> <имя метода 1>
<атрибут доступа> <тип> <имя метода 2>

]
[деструктор]
}
class Pixel{
protected:
float X;
float Y;
public:
Pixel();
Pixel (float x, float y);
float GetX();
float GetY() {return y};
void SetX(float x);
void SetY(float y);
void Show();
~Pixel();
};
14

15. Введение в Си++

Поля класса – данные
Методы класса – функции
Конструкторы – носят имя
класса, ничего не
возвращают, используются
для начальной
инициализации полей класса
Деструктор служит для
освобождения памяти,
занятой объектом
Атрибуты доступа
определяют одну из трех
степени видимости
элементов класса.
Поля - float x,y
Методы –
GetX();GetY(); SetY(float y);
Show();
Конструкторы Pixel();
Pixel (float x, float y);
Деструктор ~Pixel();
public, protected, private
15

16. Введение в Си++. Реализация методов

СИНТАКСИС
<тип возвращаемого значения>
<Класс - хозяин> :: <имя
метода> (список параметров
метода)
{ тело метода
}
inline-функции – это методы,
код которых прописывается во
все имеющиеся в программе,
вызовы этих методов
Pixel::Pixel (float x, float y){
X = x;
Y = y;
}
Pixel::Pixel(){
X = 0;
Y = 0;
(Pixel::number)++;
}
Pixel::~Pixel(){
cout << "Deleting object" << endl;
}
float Pixel :: GetX()
{ return X;
}
void Pixel ::SetX(float x){
X = x;
}
void Pixel ::Show(){
cout << "Pixel (" << X << "," <<Y <<")"
<< endl;
}
16

17. Введение в Си++

Для организации ввода
данных с клавиатуры
используется стандартный
поток ввода cin, объект
класса istream.
Для потока ввода
переопределен оператор
>>, который называется
взятием из потока.
Для вывода данных на
экран используется
стандартный объект cout
класса ostream,
Для потока вывода
переопределен оператор
<< (оператор вставки в
поток).
float k;
cin >>k; // ввод вещественной
переменной
int z;
cin >>z; // ввод целочисленной
переменной
char str[20];
cin >> str;// вводимая строка будет
содержать только символы до первого
пробела
cin.getline(str); // ввод произвольной
строки
int z = 12;
float k = 17.4;
char m [25] = “Пример строки”;
cout << “Значение переменной z -”
<< z << endl;
cout << “Значение переменной k -”
<< k << endl;
cout << “Значение переменной m -”
<< m << ‘/n’;
17

18. Введение в Си++

Описание и
инициализация
объектов
1) Pixel Obj;
Pixel Obj1(7,5);
2) Pixel *Obj2,
*Obj3;
Obj2 = new Pixel();
Obj3 = new
Pixel(8,20);
Обращение к полям и методам
объекта
Obj.x = 8;
Obj1.y = 12;
Obj.Show(); // Вызов метода Show()
Obj1.PutY(12); // Вызов метода
PutY()
int m=Obj.GetX(); // Вызов метода
GetX()
cout << “Obj.x = ”<< m;
Obj2->Show(); // Вызов метода
Show()
Obj3->PutX(7); // Вызов метода
PutX()
int p = Obj2->GetX(); // Вызов
метода GetX()
18
English     Русский Rules