Интернет-казино Grand Casino произвело фурор в игорном мире.
Одно из самых важных нововведений - наличие системы контроля честности всех азартных игр казино. Наличие контроля честности дает возможность полностью уйти в игру, не задумываясь о подтасовке или обмане. В Grand Casino можно пополнить счет и вывести выигрыш большим количеством способов:(SMS, E-gold, Rupay, Яндекс.Деньги, Webmoney,Кредитные карты,...). Теперь азартные игры на деньги стали доступнее.
Предоставлены игры: Рулетка, Покер, Блэкджек, Видео Покер, Игровые автоматы, Кено.
Тип объект содержит: - поля: вектор, его размер и его идентификатор в символьном виде - методы: введение вектора, вывод вектора, сортировка за ростом элементов вектора. Реализовать экземпляр этого типа и выполнить над ним все возможные действия
Текст программы program Prg13; uses crt; type TMas=array[1..10] of real; TVector=object Mas:TMas; n:byte; id:char; procedure inp; procedure out; procedure sort; end; var vect:tvector; procedure TVector.inp; var i:byte; begin Writeln('Enter identificator of vector (One symbol) :'); Write('id='); Readln(id); Writeln('Enter number of elements of vector ',id,' :'); Write('n=');readln(n); writeln('Enter elements of vector ',id,' :'); for i:=1 to n do begin Write(id,'[',i,']=');readln(mas[i]); end; end; procedure TVector.out; var i:byte; begin Writeln('Vector ',id,' :'); for i:=1 to n do writeln(id,'[',i,']=',mas[i]:0:3) end; procedure TVector.sort; var i,j:byte; b:real; begin for i:=n-1 downto 1 do for j:=1 to i do begin if mas[j]>mas[j+1] then begin b:=mas[j]; mas[j]:=mas[j+1]; mas[j+1]:=b; end; end; end; begin clrscr; vect.inp; vect.sort; vect.out; readkey; end. Результат работы программы 1) Enter identificator of vector (One symbol) : id=a Enter number of elements of vector a : n=5 Enter elements of vector a : a[1]=1 a[2]=4 a[3]=2 a[4]=7 a[5]=8 Vector a : a[1]=1.000 a[2]=2.000 a[3]=4.000 a[4]=7.000 a[5]=8.000 2) Enter identificator of vector (One symbol) : id=q Enter number of elements of vector q : n=3 Enter elements of vector q : q[1]=2.1 q[2]=5.9 q[3]=2.1 Vector q : q[1]=2.100 q[2]=2.100 q[3]=5.900
Теория к программе Объектное программирование В рамках концепции ОПП данные и методы их обработки (программы) объединяются в единые структуры - так называемые объекты. Кроме того объектам присуще важное качество: если существует некоторый класс объектов (прародитель предок), на его базе может быть построено, "выделено" иной подкласс (наследник потомок), который автоматически наследует все свойства предка (в отношении к данным и средствам работы с ними). Объект определяется типом 'объект', или классом объекта, который описывается в разделе описи типов программы и имеет вид: Type =object ;
end; - содержат объявление наборов логически связанных данных разного типа - содержат объявление процедур и функций работы с этими данными. Такое объединение в единой структуре данных и методов называется инкапсуляцией. Объект-переменная или экземпляр - переменная объектного типа, описание: var : ; - описание типа 'объект' может быть выполнено только в блоке TYPE главной программы или в разделах модулей (т.е. невозможно описывать локальные объекты) - при описании типа 'объект' все поля данных должны предшествовать описаниям методов - компонентами объектов не могут быть файлы (файловые переменные). Данные типа объект не могут быть записаны в файл. Наследование - это возможности создавать новые классы объектов на базе уже существующих и таким образом предоставлять новым классам - 'наследникам' право наследования свойств (полей) и методов существующих классов - 'прародителей'. 'Наследники' рассматриваются как подчиненные (зависимые от) 'прародителей'. 'Наследник' иногда называется производным типом. Такая структура реализуется с помощью следующей конструкции: type =object()
end; В операциях предоставления прародитель всегда должен находиться слева, так как количество его полей всегда меньша или равняется количеству полей наследника :=; Полиморфизм - это существование нескольких одинаковых по именем но разных по смыслу методов (процедур или функций) для разных классов объектов. Благодаря этому становится возможным выполнить одну и ту же самую операцию с объектами разных классов с учетом их специфики. Обработка статических методов похожая на обработку статических переменных, т.е. ссылка на эти методы формируются на стадии компиляции (раннее связывание). Для реализации полиморфизма в полной мере используются виртуальные методы. Виртуальным метод становится после того, если после его заголовка указывается служебное слово VIRTUAL: procedure (); virtual; function ():; virtual; При 'виртуализации' - объявлении метода виртуальным - следует придерживаться правил: 1. Если порождаемый тип объекта описывал метод как виртуальный, то и все производные типы, которые переопределяют метод с тем самым именем, должны описывать его как виртуальный. 2. Если переозначается виртуальный метод, то его заголовок в новой реализации в произвольном типе не может быть изменен. 3. В описи объекта должен обязательно присутствовать присутствующим метод, который инициализирует объект (как правило с именем init) - Заголовок в объявлении и реализации вместо procedure употребляется служебное слово constructor. Конструктор - это специальный вид процедуры, которая выполняет установочную работу по виртуализации метода (обеспечение так называемого позднего связывания). Все типы объектов, которые имеют виртуальные методы, должны содержать конструктор. Конструктор всегда вызывается к первому вызову виртуального метода. Объекты могут быть размещены в динамической области памяти, для этого они должны быть объявлены как и все другие динамические структуры. Var :^; Создание динамических объектов происходит с помощью процедуры NEW а) NEW(); -при этом выделяется место для сохранения базового типа. Если есть виртуальные методы, то динамический объект должен быть инициализован: ^.(); б) расширенный вариант с выполнением инициализации объекта: NEW(,()); в) реализация NEW в виде функции: :=new(); или: :=new(,()); Освобождение объектов происходит а) с помощью процедуры dispose: dispose(); б) или расширенный вариант процедуры: dispose(,); Деструктор - специальная процедура, объявляется в описании типа объект среди других методов. Вместо procedure употребляется зарезервированное слово destructor, как правило эта процедура носит имя done ('выполнено'). Назначение - заключительные действия перед освобождением объекта (например, действия по освобождению динамично распределенных полей). Деструктор может наследоваться. destructor .done; begin . . . end;
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Вы читаете: Delphi, Pascal » Объектное программирование