- •Лекция 1 Создание консольного приложения
- •2. Консоль. Построение консольного проекта
- •3. Запуск приложения
- •4. Сохранение и редактирование проекта
- •Лекция 2
- •4. Функции форматированного ввода и вывода
- •4.1. Функция форматированного ввода с клавиатуры
- •4.2. Функция форматированного вывода на экран
- •5. Математические функции
- •Лекция 3 Линейные вычислительные процессы
- •1. Алгоритм. Управляющие структуры
- •2. Линейные вычислительные алгоритмы
- •2.1. Условный оператор if()
- •2.2. Условное выражение
- •2.3. Оператор выбора switch()
- •Лекция 5 Программирование разветвляющихся вычислительных процессов
- •Лекция 6 Циклические вычислительные процессы.
- •1. Типы циклов
- •3. Операторы безусловного перехода
- •Лекция 7 Вычисление последовательностей
- •4. Примеры вычисления последовательностей
- •5. Структура алгоритмов вычисления рекуррентных последовательностей
- •Лекция 8 Одномерные массивы
- •1. Массивы
- •1.1. Примеры программ обработки одномерных массивов
- •1.2. Сортировка выбором
- •1.3. Сортировка простыми вставками
- •Лекция 10 Двухмерные массивы
- •1. Двухмерные массивы
- •Лекция 11 Алгоритмы матричной алгебры
- •1. Алгоритмы матричной алгебры
- •Лекция 12 Динамические массивы
- •1. Память компьютера. Адресное пространство
- •2. Динамическая память
- •3. Адреса и указатели
- •4. Указатели и массивы. Динамические массивы
- •5. Проблемы, связанные с указателями
- •6. Поразрядные операции
- •1.2. Способы объявления и обращения к элементам двухмерных массивов
- •Лекция 14 Символы и строки
- •1. Символьный тип данных
- •2. Строки
- •Лекция 15 Структуры
- •1. Понятие структуры
- •2. Определение нового имени типа
- •3. Массивы структур. Указатели на структуры
- •3.1. Определение статического массива структур
- •3.1. Определение динамического массива из n структур
- •Лекция 16 Файлы
- •1. Потоковый ввод-вывод данных
- •3. Понятие файла. Функции работы с файлами
- •Лекция 17 Файлы
- •Лекция 18 Функции пользователя
- •I. Приёмы построения алгоритмов
- •2. Понятие функции
- •2.1. Определение функции
- •2.2. Область видимости переменных
- •2.3. Параметры функции
- •2.4. Описание функции
- •2.5. Организация вызова функции
- •2.5. Передача параметров в функцию
- •3. Рекурсия
- •Лекция 20 Нахождение приближенного значения корня нелинейного уравнения
- •На отрезке [a;b] с заданной точностью eps
- •1.1. Метод дихотомии (половинного деления)
- •1.2. Метод хорд
- •1.3. Метод касательных (Ньютона)
- •Лекция 22 Объектно-ориентированное программирование
- •Полиморфизм – это свойство класса, позволяющее определить одно и то же по имени, но разное по смыслу действие. Основные этапы ооп:
- •Уточнённое имя принадлежит классу (т.Е. Компонентной) функции
- •Лекция 23 Объектно-ориентированное программирование
- •1. Конструкторы и деструкторы
- •1.2. Определение компонентных функций
- •Лекция 25 Объектно-ориентированное программирование
- •1. Свойства классов
- •1.1. Наследование классов
- •1.2. Полиморфизм
- •Библиографический список
Уточнённое имя принадлежит классу (т.Е. Компонентной) функции
<имя объекта> . <обращение к компонентной функции>
обеспечивает вызов компонентов функции класса для обработки данных именно того объекта, имя которого использовано в уточнённом имени. Например, можно таким образом определить значения компонентных данных для определённых выше объектов класса complex:
x1 . def( ); // Параметры выбираются по умолчанию: re==0.0, im==0.0
x2 . def( 4.3,20.0); // Комплексное число 4.3+i*20.0
C помощью принадлежащей классу complex функции disp( ) можно вывести на экран значения компонентных данных любого из объектов класса. Например, следующий вызов принадлежащей классу complex функции:
x2 . disp( );
приведёт к печати
real=4.3 , imag=20.0;
Другой способ доступа к элементам объекта некоторого класса предусматривают явное использование указателя на объект класса и операции косвенного выбора компонента ( ' –>') :
<указатель на объект класса> -> <имя класса>
Определив, как сделано выше, указатель point, адресующий объект D класса complex, можно следующим образом присвоить значения данного объекта D:
point -> re=2.3; // Присваивание значения элементу области D
point -> im=6.1; // Присваивание значения элементу области D
Указатель на объект класса позволяет вызывать принадлежащие классу функции для обработки данных того объекта, который адресуется указателями. Формат вызова функции:
<указатель на объект класса> -> <обращение к компонентной функции>
Например, вызвать компонентную функцию disp( ) для данных объекта D позволяет выражение
point -> disp( );
В качестве второго примера рассмотрим класс, описывающий товары на складе магазина. Компонентами класса будут:
-
Название товара
-
Оптовая (закупочная) цена
-
Розничная (торговая) наценка
-
Функция ввода данных о товаре
-
Функция печати (вывода на дисплей) сведений о товаре с указанием розничной цены.
Определение класса:
// GOODS.H - класс «товары на складе магазина»
#include “iostream.h”
class goods
{
char name [40];
float price;
static int percent; // Торговая наценка, в %
// Компонентные функции
void input ( ) // Ввод сведений о товаре
{
cout << «Наименование товара: »; cin >> name;
cout << «Закупочная цена: »; cin >> price;
}
void disp( ) // Вывод данных о продаваемом товаре
{
cout << « \n» << name;
cout << «, розничная цена: »;
cout << long ( price * ( 1.0 + goods : : percent *0.01));
}
};
Торговая наценка определена как статический компонент класса. Статические компоненты классов не «дублируются» при создании объектов класса, то есть каждый статический компонент существует в единственном экземпляре. Доступ к статическому компоненту возможен только после его инициализации. Для инициализации используется конструкция:
<тип> <имя класса> : : <имя компонента> <инициализатор>;
В нашем примере может быть такой вариант:
int goods : : percent=12;
Это предложение должно быть размещено в глобальной области после определения класса. Только при инициализации статический компонент класса получает память и становится доступным. Для обращения к статическому компоненту используется квалифицированное имя:
<имя класса> : : <имя компонента>
Кроме того, статический компонент доступен «через» имя конкретного объекта:
<имя объекта>.<имя класса> : : <имя компонента>
либо
<имя объекта>. <имя компонента>