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


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


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


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

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

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

Текст программы
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;

 

Интересное

Поисковый маркетинг губит...
Что такое «маркетинг веб-сайта»? В 99% случаев первое, что приходит на ум — это SEM, то есть поисковый маркетинг, во многом из-за сходства терминов. Однако подобная логика часто приводит к...
Подробнее...
Уменьшаем траффик вдвое
Заставила меня написать эту статью интересная возможность. Это возможность пользоваться сетью, используя любую технологию, в которой оплата взимается по траффику(например, ADSL или GPRS), снижая...
Подробнее...
Smarty – не просто шаблоны
Скажем сразу, этот материал не будет вас учить пользоваться базовыми возможностями данной библиотеки. Напротив, я копну гораздо глубже. Цель этого материала взглянуть на шаблонизатор Smarty с...
Подробнее...
Простой пример навигации...
Простая система навигации для сайтаПриветствую тебя уважаемый читатель!!! Я очень рад что вы читаете эту статью.... почему спросите вы? да потому что это моя первая статья о модном нынче...
Подробнее...
Простое восстановление данных
Ниже описываются методы восстановления данных с исправных носителей, которыми можно овладеть за минимальное время, не обладая специальными знаниями в этой области.Случилось страшное:Совершенно...
Подробнее...
Определение наличия...
По статистике, около 90% пользователей в наши дни пользуются Internet Explorer (5-й или 6-й версией). В этих браузерах Flash, как правило, уже установлен (если же нет, то, при наличии...
Подробнее...
Хакеры: Приёмы взлома.
Согласно недавнему опросу, проведённому в США, обычные граждане боятся хакеров больше, чем обычных преступников. Интересно, что высокие технологии входят в нашу жизнь очень быстро и становятся её...
Подробнее...
Флэшка или чудо будущего...
Могли ли бы мы раньше, при союзе, представить себе то, что устройство размерами меньшее, чем коробок спичек способно уместить в себе картинную галерею, архив деловой переписки или музыкальный...
Подробнее...
CSS дизайн: с учетом контекста
Веб-стандарты обещают нам улучшенную поддержку мультимедиа: возможность оптимизировать контент под возможности компьютерных экранов, портативных устройств, принтеров, проекторов, и других...
Подробнее...
Создание web-проекта:...
После того, как определен состав работ, задачей руководителя проекта является определение конкретных функций и их наполнение людьми. Лица, назначаемые на выполнение задач, могут быть как штатными...
Подробнее...