Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2009, 20:14   #1
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию OBJECT

Объясните, начал изучать OBJECT …..
Как описывается модуль примерно догнал.
Вот что то, в таком роде.

Unit DDD;
Interface
Type
Temples = OBJECT
Private
(переменные любого типа )
Public
Procedure 1 ………..
Procedure 2………..
Procedure 3………..
Implementation
( описание процедур1)
( описание процедур2)
( описание процедур3)
End;

А, что дальше….не могу понять….
К примеру….использовать модуль, и его процедуры могу без OBJECT …все работает…
Объясните зачем указывать модуль как OBJECT ????
И какое преимущество дает объявлять таким способом модуль?
Doholyan вне форума Ответить с цитированием
Старый 05.08.2009, 20:19   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
Объясните зачем указывать модуль как OBJECT ????
Для работы с объектами совсем не обязательно использовать модуль, также как и модуль не обязательно содержит объекты.
puporev вне форума Ответить с цитированием
Старый 05.08.2009, 20:23   #3
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

puporev
_________
Поясни ... я, не врубился....

Последний раз редактировалось Doholyan; 05.08.2009 в 20:25.
Doholyan вне форума Ответить с цитированием
Старый 05.08.2009, 20:25   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот посмотри небольшой пример работы с объектом, там что-то считант в матрице.
Код:
Program pr7;
uses crt;
type matr=array [1..10,1..10] of integer;
ooo = object
a:matr;
procedure Vvod(n,m:byte);
procedure Vivod(n,m:byte);
function sum_m(n,m:byte): integer;
end;

procedure ooo.vvod;
var i,j:byte;
begin
 for i:=1 to n do
  for J:=1 to m do
  a[i,j]:=random(20)-2;
end;

procedure ooo.vivod;
var i,j:byte;
begin
for i:=1 to n do
 begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
 end;
end;

function ooo.sum_m(n,m:byte): integer;
var i, j: byte;
    Summ, ResSumm,k,l: integer;
begin
  ResSumm := 0;
  for j := 1 to m do
  begin
    k:=0;Summ := 0;
    for i:=1 to n do
    if a[i,j]<0 then inc(k);
    if k=0 then
    for l:=1 to n do
    Summ:=Summ+a[l,j];
    ResSumm := ResSumm + Summ;
  end;
  sum_m := ResSumm;
end;

var x,y,z:ooo;
begin
clrscr;
x.vvod(5,6);
y.vvod(10,8);
z.vvod(8,7);
writeln('Matrica X:');
x.vivod(5,6);
writeln('Summa v stolbcah bez otricatelnyh elementov=',x.sum_m(5,6));
readln;
writeln('Matrica Y:');
y.vivod(10,8);
writeln('Summa v stolbcah bez otricatelnyh elementov=',y.sum_m(10,8));
readln;
writeln('Matrica Z:');
z.vivod(8,7);
writeln('Summa v stolbcah bez otricatelnyh elementov=',z.sum_m(8,7));
readln
end.
puporev вне форума Ответить с цитированием
Старый 06.08.2009, 13:50   #5
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

puporev
________
читав программу, выше ....мне...показалось большое сходство с процедурой RECORD...отличие втом что OBJECT работает с процедурами и функциями...так как в RECORD работает только с разнотипными
переменными ..
Так ли это?
и переменная массива "а"....она действует на все тело програмы?
Doholyan вне форума Ответить с цитированием
Старый 06.08.2009, 14:20   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вам правильно показалось, это действительно похоже на тип запись, отличие в наличии слбственных методов. Переменная а действует в пределах объекта.
puporev вне форума Ответить с цитированием
Старый 06.08.2009, 14:40   #7
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

puporev
______________
Еще маленький вопросик....WITH... можно ли его использывать в
качестве сокращений к OBJECT ?
Doholyan вне форума Ответить с цитированием
Старый 06.08.2009, 14:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
WITH... можно ли его использывать в
качестве сокращений к OBJECT ?
Безусловно можно. и к обиектам и их внутренностями. впрочем что мешает самому попробовать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.08.2009, 16:18   #9
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

Stilet
__________
Теоретически догадываюсь что должно работать вроде как.... практически...глюк получился...

Сначала учу материал молностью..так сказать абстрактно, потом он сам "пополочкам" становится...не заморачиваюсь на одном....
Doholyan вне форума Ответить с цитированием
Старый 06.08.2009, 17:00   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
практически...глюк получился...
Кот в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выражения и функции языка Object Paskal etrom Помощь студентам 1 23.10.2008 22:42
Проблемма с object, procedure AngelOfDeath Общие вопросы Delphi 2 20.08.2008 15:08
OleContainer, Com object Shuraken Компоненты Delphi 6 09.11.2007 12:13