Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses crt;
- type
- // Наш новый объект
- ObjPos = object
- private
- Line:word; //Поле - кол-во линий
- col:word; //Поле - кол-во колонок
- public
- constructor init(init_line,init_col:word); //Ф-ия инициализации
- function getLine:word; //Ф-ия возвращает self.Line
- function getCol:word; //Ф-ия возвращает self.Col
- procedure Print; virtual; //Воспроизводим звуковой сигнал
- end;
- // Объект-наследник(Символ)
- ObjSym = object( ObjPos )
- private
- Sym: char; //Символ
- public
- constructor Init(init_line,init_col:word; init_sym:char); //Ф-ия инициализации
- procedure Print; virtual; //Выводим символ
- end;
- // Объект-наследник(Строка)
- ObjString = OBJECT( ObjPos )
- private
- SubSt: String;
- public
- constructor Init(init_line,init_col:Word; init_ss:string ); //Ф-ия инициализации
- procedure Print; virtual; //Выводим строку
- END;
- {***************Реализация методов объектов***************}
- {*********************************************************}
- //Объект ObjPos
- constructor ObjPos.init(init_line,init_col:word);
- begin
- Line:=init_line; // Устанавливаем значение поля Line соотв. введенному
- Col:=init_col; // Устанавливаем значение поля Col соотв. введенному
- end;
- // Ф-ия позволяет "достать" значение поля Line из объекта
- function ObjPos.getLine:word;
- begin GetLine:=line; end;
- // Ф-ия позволяет "достать" значение поля Line из объекта
- function ObjPos.getCol:word;
- begin GetCol:=col; end;
- // Процедура воспроизводит системный звуковой сигнал
- procedure ObjPos.Print;
- begin write(#7); end;
- {*********************************************************}
- //Объект ObjSym
- constructor ObjSym.Init(init_line,init_col:word; init_sym:char);
- begin
- ObjPos.Init(init_line,init_col); // Вызываем ObjPos.init, которая Устанавливаем значение поля Line и Col соотв. введенным
- Sym:=init_sym; // Устанавливаем значение поля Sym соотв. введенному
- end;
- procedure ObjSym.Print;
- begin
- CRT.gotoXY(Col,Line); // Перемещаем курсор в Точку (Col,Line)
- write(Sym); // Выводим Sym (В ранее указанные координаты)
- end;
- {*********************************************************}
- constructor ObjString.Init(init_line,init_col:Word; init_ss:String);
- begin
- ObjPos.Init( init_line, init_col ); // Вызываем ObjPos.init, которая Устанавливаем значение поля Line и Col соотв. введенным
- SubSt := init_ss; // Устанавливаем значение поля SubSt соотв. введенному
- end;
- procedure ObjString.Print;
- begin
- CRT.GotoXY(Col, Line); // Перемещаем курсор в Точку (Col,Line)
- Write(SubSt); // Выводим Sym (В ранее указанные координаты)
- end;
- {*********************************************************}
- // Процедура, которая выполняет процедуру Print указанного объекта (Obj.Print)
- procedure PrintObj(var Obj:ObjPos);
- begin
- Obj.Print;
- end;
- {*******************Основная программа********************}
- var
- ObjSymVar : ObjSym; // Экземпляр объекта ObjSym
- ObjStringVar : ObjString; // Экземпляр объекта ObjString
- a:word;
- begin
- ObjSymVar.Init( 10, 10, '*' ); // Инициализация экземпляра ObjSym
- ObjStringVar.Init( 20, 20, '...ПОДСТРОКА...' ); // Инициализация экземпляра ObjString
- PrintObj( ObjStringVar ); // Вызываем процедуру ObjString.Print
- PrintObj( ObjSymVar ); // Вызываем процедуру ObjSym.Print
- a:=ObjSymVar.GetCol;
- ObjSymVar.Col:=30; // Должно вызвать ошибку
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement