Ошибка: Failed to parse the Currency Converter XML document.
$985.56


Ошибка: Failed to parse the Currency Converter XML document.
$18 054.97


Ошибка: Failed to parse the Currency Converter XML document.
$1 196.28


Объектное программирование

Тип объект содержит:
— поля: вектор, его размер и его идентификатор в символьном виде
— методы: введение вектора, вывод вектора, сортировка за ростом элементов вектора.

Реализовать экземпляр этого типа и выполнить над ним все возможные действия

Текст программы
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. Итак, приступим сразу к делу.Прикол первый:Давайте напишем программу, которая будет выводить в какую-то часть экрана кнопку с...
Подробнее...
Собираем Apache + PHP +...
Итак попробуем все это собрать. Для начала нам понадобиться apache, php, sablot, xpat, iconv. Последние три представляют собой программы для обработки XML/XSLT файлов.
Подробнее...
Захват чужих имен
Особенности доменных имен, уже бывших в чей-то собственностиНе знаю, как вам, но мне иногда кажется, что все лучшие доменные имена уже разобрали. Не раз я придумывал потрясающее доменное имя, и...
Подробнее...
Чем отличаются Windows XP...
Обе эти системы имеют очень много общего, xp pro и xp home построены на одном и том же ядре, nt 5.1. Разница между ними заключается только в том, что xp home не поддерживает несколько функций,...
Подробнее...
Почтовые функции в РНР
Одним из возможных применений imap функций является создание почтового демона, который будет управлять подпиской и отпиской пользователей от вашей почтовой рассылки. Для реализации этой задачи,...
Подробнее...
Полезные возможности...
Утилита Windows XP «Восстановление системы» (System Restore) позволяет возвращать последнюю удачную конфигурацию системы в случае возникновения различных проблем. Для этого утилита постоянно...
Подробнее...
Отдых
Отпуск: как не пожалеть о потраченном времени Для большинства людей отпуск – желанное и долгожданное событие, к тому же длится он сравнительно недолго, что делает его еще более ценным....
Подробнее...
Социальная инженерия
Что такое социальная инженерия?? Многие задают себе этот вопрос.Одни думают что это какая то новая точная наука наподобоие математики или физики. А нет!!!!Это искусство ведения разговора и...
Подробнее...
Утилиты Windows XP
Локальные параметры безопасностиПолитика паролей, учетных записей пользователей, назначение прав пользователей, параметры безопасности и другое.Оснастка консоли secpol.mscГрупповая политика...
Подробнее...
Восстановление системы...
Для специалиста слова «Windows NT/2K/XP не грузится» не значат ровным счетом ничего. Может сломаться жесткий диск, пострадать файловая система, разрушиться таблица разделов, слететь...
Подробнее...