Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Unit

Автор: Dj.Boom 22.04.2008 1:35

Написать программу стоящую из двух модулей модуля Unit и главного. Модуль юнит должен содержать описание объекта тпоинт.
В общем программа я написал но без модулей не шарю вмодулях sad.gif.

Код
Type
  Tpoint = Object
  Public
    Constructor Init(aN:string);
    Procedure Show;
    Function Move: Real; Virtual;
  Private
    Name: String[10];
  End;
Constructor Tpoint.Init;
Begin
  Name:=aN;
  Writeln;
  Writeln(' --------- ','Название',' --------- ');
End;
Procedure Tpoint.Show;
Begin
  Writeln(' ========================');
  Writeln(' New value: ',Move:6:2);
End;
Function Tpoint.Move;
Begin
End;
{----------------------------------------------}
type
  Sector = Object(Tpoint)
  Public
    Constructor Init;
    Procedure Show;
    Function Move: Real; Virtual;
  Private
    R: Real;
    A:Real;
  End;
Constructor Sector.Init;
Begin
  Tpoint.Init('Сектор');
  Write(' Введите радиус: ');
  Readln(R);
  Write(' Введите угол: ');
  Readln(A);

End;
Procedure Sector.Show;
Begin
  Tpoint.Show;
  Writeln(' Радиус: ',R:6:2);
  Write(' Угол: ',A:6:2);
End;
Function Sector.Move;
Begin
  Move:=A+10;
End;
{----------------------------------------------}
Type
  Duga = Object(Sector)
  Public
    Constructor Init;
    Procedure Show;
    Function Move: Real; Virtual;
  Private
    A2: Real;
  End;
Constructor Duga.Init;
Begin
  Tpoint.Init('Дуга');
  Write(' Введите радиус: ');
  Readln(R);
  Write(' Введите угол: ');
  Readln(A);
End;
Procedure Duga.Show;
Begin
  Sector.Show;
  Writeln(' Радиус: ',R:6:2);
  Write(' Угол: ',A:6:2);
End;
Function Duga.Move;
Begin
  Move:=Sector.Move/2+20*R*sin(a);
End;

{--------------Main-------------}
Var
  S: Sector;
  Cl: Duga;
Begin
  Writeln;

  S.Init;
  S.Show;

  Cl.Init;
  Cl.Show;
Readln;
End.


Думаю это не тяжело помогите пожалуйста зарание спасибо.

Автор: volvo 22.04.2008 1:49

Цитата
не шарю вмодулях
Ничего особенно сложного в модулях нет:

Файл _unit.pas
unit _unit;

interface { раздел описаний }

Type
Tpoint = Object
Public
Constructor Init(aN:string);
Procedure Show;
Function Move: Real; Virtual;
Private
Name: String[10];
End;

implementation { раздел реализации }

Constructor Tpoint.Init;
Begin
Name:=aN;
Writeln;
Writeln(' --------- ','Название',' --------- ');
End;
Procedure Tpoint.Show;
Begin
Writeln(' ========================');
Writeln(' New value: ',Move:6:2);
End;
Function Tpoint.Move;
Begin
End;

end.

Основной файл - остается все, кроме описания и реализации TPoint, первой строкой добавляешь
Uses _unit;


Все, программа уже использует модули smile.gif

Автор: Dj.Boom 22.04.2008 3:37

Огромное спосибо.

Да пробывал, чото матерился постояно паскаль на места, где я да же не понимал в чем проблемма. Буду разбираться, думаю еще не раз прийдеться с ними столкнуться.