Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

заголовки процедур и функций инкапсулированных в данном типе объекта

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

Билет 20. Концепция объекта в Турбо Паскале.

В языке Турбо Паскаль введено новое понятие объекта, как дальнейшее развитие концепции типа. Как и типы, объекты должны быть описаны в разделе описаний программы. Форма описания объекта аналогична описанию типа Запись. Различие лишь в том, что ключевым словом описания является object, а не record, и кроме обычных полей (элементов структуры данных) в описании объекта используются процедурные поля - заголовки процедур и функций, инкапсулированных в данном типе объекта. Кроме того, возможности описания полей структуры данных расширены - могут описываться кроме переменных также необходимые типы данных, константы. Переменные, образующие структуру данных, называются полями объекта, а процедуры и функции - методами объекта. При этом тела методов должны быть описаны вне описания объекта: обычно в соответствующих модулях.

Некоторые поля и методы объекта можно объявить скрытыми от пользователей объекта с помощью директивы private (частный, скрытый), указываемой после общедоступной части описания объекта. Все поля и методы, описанные после private, доступны только внутри того модуля, где описан сам объект.

Пример описания объекта:

type point = object; {объект - точка на плоскости}

       x,y: integer; {координаты точки}

       c: byte; { цвет точки}

       vis: boolean; { светимость}

     procedure create(a,b:integer); {создание точки}

     procedure move(dx,dy:integer); {сдвиг точки}

     procedure setcolor(color:byte); {установка цвета}

     procedure vis_on; {включить светимость}

     procedure vis_off; {выключение светимости}

     function getX:integer; {получить координату Х}

     function getY:integer; {получить координату Y}

end {point};

Для работы с объектами помимо описания объекта, как и при описании других типов, необходимо объявить переменные типа объект, называемые экземплярами объектов. Например, для описанного выше объекта point можно объявить экземпляры:  var p1,p2:point; {две точки}

Для обращения к полям и к методам объекта используются составные имена (имена с точкой), аналогично тому, как это принято для записей. Например: p1.X:=1; p1.Y:=p1.X; p2.X:=p1.getX; p1.SetColor(green); В описании каждого типа-объекта неявно присутствует стандартное имя Self того же типа, что и сам объект. Это - обобщенное имя экземпляра объекта, которое может использовать любой метод для указания своей принадлежности этому объекту.

Аналогично записям, доступ к полям и методам объекта можно упростить за счет использования оператора with.

Например: with p1 do begin x1:=getX; y1:=getY end;

Для объектов одного типа допустимо присваивание, например: p1:=p2;

В заданной прямоугольной матрице поставить на первое место

столбец с наименьшим количеством нулевых элементов,

перестаиви все нули в конец этого столбца.  (Измененная

матрица должна сожержать все элементы исходной матрицы).

program z433_20;

program Z433_20;

uses Z433_20;

Var a:matr; i,j:integer;

Begin

for i:=1 to n do

for j:=1 to m do

read(a[i,j]);

obmen_nul(a);

for j:=1 to m do

for i:=1 to n do

writeln(a[i,j]);

end.

unit Z433_20;

interface

Const n=4; Const m=5;

Type matr=array[1..n,1..m] of real;

Var a:matr; i,j:integer;

procedure nul_schet(a:matr; Var k:mas);

procedure nom_stol(k:mas; Var w:integer);

procedure obmen_nul(Var a:matr);

implementation

procedure nul_schet;

Var i,j:integer;

Begin

for j:=1 to m do

for i:=1 to n do

if a[i,j]=0 then k[j]:=k[j]+1;

end;

end;{proc1}

procedure nom_stol;

Var i,j:integer;

Begin w:=0;

for j:=1 to m do

if k[j]>k[j+1] then w:=i+1;

end;

end;{proc2}

procedure obmen_nul;

Var j, k,l:integer;

Begin k:=1; l:=m;

for i:=1 to n do

for j:=1 to m do

while k<>l do Begin

if a[i,k]=0 then Begin

if a[i,l]=0 then l:=l-1

else Begin a[i,l]:=a[i,k]; a[i,k]:=0; k:=k+1; l:=l+1; end; end

else k:=k+1;

end;

end;{proc}




1. Der Umweltschutz (немецкий)
2. Расчет рекуперативного теплообменника газотурбинного двигателя
3. а имеет ряд существенных преимуществ
4. . Принципы и правовые основы Поручительство; Платежное обязательство
5. Технология основных производств Зав
6. тематика УЧЕБНИК- Моя математика Т.
7. Вклад ЛЭйлера в совершенствование математического анализа
8. Тютчев Федор
9. Торговые марки консалтинговых компаний
10. Учебное пособие- Эволюция понятий о качестве
11. на тему- ldquo;Макроелементи P K S Cl C Mg N Ferdquo; ldquo;Макроелементи P K S C
12. инвестиционный маркетинг связанный с освоением новой продукции и новых рынков что находит отражение в инв
13. Тема- ldquo;Предмет метод и задачи статистикиrdquo; Предмет финансовой статистики рассматривает финансовые и
14. Понятие и сущность коммерции как одного из видов предпринимательства
15. Родился я и вырос в Хартфорде в штате Коннектикут [6] в пригороде сразу за рекой
16. Поярков Василий Данилович
17. тематична педагогічна діяльність спрямована на розвиток екологічної культури особистості
18. на тему Птицы Растения Животные фонохрестоматия карточки с тестами заданиями
19. Territorial varieties of English pronunciation
20. Агилера Кристина (Christin guiler)