- •Билет №1:
- •I,j:Integer;
- •Билет №2:
- •Билет №3:
- •I,j:Integer;
- •//Логические константы
- •2) //Сравнения
- •3) //Логические операции
- •Билет №4:
- •Билет №6
- •Цикл с постусловием
- •3) Для того чтобы досрочно завершить виток цикла используется оператор Continue, для завершения цикла полностью – оператор Break.
- •Билет№7
- •Циклы с пред условиями
- •3)Отличие состоит в том что в цикле с постусловием цикл завершится в случае когда условие станет истинным, в цикле же с предустловием наоборот – ложным.
- •Билет №8:
- •Билет №9:
- •Program _Case;
- •1:Goto Met1;
- •2:Goto Met2;
- •Билет №10:
- •Многомерные массивы
- •I,j:Integer;
- •I:Integer;
- •IMax,iMin:Integer; {Наибольший и наименьший}
- •I:Integer;
- •Билет №11, 12:
- •Билет №13, 14:
- •Var //Раздел описаний подпрограммы
- •I:Integer;
- •Var //Раздел описаний подпрограммы
- •I:Integer;
- •X:String; //Раздел описаний основной программы
- •Билет №20: Оконные диалоги. Обработка ошибок
- •Билет №21:
- •Inherited Create; //Вызываем старый конструктор
- •Var I,j,k:Integer;
- •I,j:Integer;
- •I,j:Integer;
- •Inherited Destroy; //Вызываем старый деструктор
- •Билет №22:
- •Var //переменные:
- •Билет №23,24:
- •Билет №25: Битовые карты
- •3) Копирование изображений
- •Билет №26,27:
- •Билет №28:
- •Билет №29:
Билет №21:
Класс
Что такое класс
это структура подобная записи, объединяющая в одно целое данные (свойства) и подпрограммы (методы) их обработки
процесс объединения свойств и методов в один класс называется инкапсуляцией
формирование класса удобно тогда, когда над группой обособленных данных требуется выполнить уникальные действия
по способу описания класс напоминает модуль: в его разделе Type пишется заголовок (определяется тип класса), а ниже описываются методы в виде подпрограмм
по окончании формального описания класса в разделе Var формируются переменные данного класса, которые называются объектами
объекты используются аналогично записям
на основании одних классов могут разрабатываться другие, в которых либо появляются новые свойства и методы (наследование), либо заменяются старые (полиморфизм)
Как описывается класс
Класс имеет заголовок (интерфейс), в котором указываются имя класса, перечисляются его свойства и методы. Структура заголовка такова Type имя класса = Class свойства заголовки методов End; Свойства перечисляются в виде переменных с указанием типов (без слова Var). Заголовки методов пишутся без кода так же, как в разделе Inteface модуля (исключительно заголовки процедур и функций)
Ниже интерфейсной части размещаются полные тексты методов. Текст метода начинается дублем его заголовка, однако, перед именем метода подписывается через точку имя класса. Внутри методов доступны все свойства класса по своим именам
Как используется класс
Чтобы воспользоваться описанным классом, необходимо сформировать переменные этого класса. Такие переменные называются объектами и описываются в разделе Var при помощи имён.
В каждом классе имеется два особых метода – конструктор и деструктор, первый чтобы выделить, а второй – освободить память, занимаемую объектом. Перед использованием объекта необходимо вызвать конструктор, а по окончании работы – деструктор.
Доступ к свойствам и методам объектов осуществляется по именам объектов, где через точку пишутся имена соответствующих свойств или методов.
Пример разработки и использования класса
program Sampl_Class;
{Использование класса для работы с матрицами}
{$APPTYPE CONSOLE}
uses
SysUtils;
//===============================================
Type
TMat= //Имя класса
Class //ИНТЕРФЕЙС КЛАССА
m:Array Of Array Of Real; //Свойство "матрица"
Constructor Create(h:Integer=1; w:Integer=1); //КОНСТРУКТОР
Procedure Put(p:Array Of Real); //Метод ввода данных
Procedure Wrt(k:Integer=5; p:Integer=2); //Метод вывода матрицы
Procedure Add(a:TMat); //Метод сложения матриц
Destructor Destroy; override; //ДЕСТРУКТОР
End;
//=============================================== ОПИСАНИЕ МЕТОДОВ КЛАССА
//Конструктор служит для создания объекта.
//Он резервирует память и формирует начальные значения переменных
//
//ВХОД: h-высота матрицы m, w-ширина матрицы
//-----------------------------------------------
Constructor TMat.Create(h:Integer=1; w:Integer=1);
Begin