абстрактными. Создать производный класс «Правильный шестиугольник».Дополнить его свойством длины стороны шестиугольника. Создать методыполучения и установления значения этого свойства. Реализовать в этом классе наследуемые от базового класса методы."
Я опять же открыл книгу по Lazarus(2009г.), старался все делать по ней, вот результат(конечно еще не закончен)
Unit1
- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,unit2,
unit3;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
Figura1:TRectangle;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var q:string;
begin
Figura1:=TRectangle.Create;
s:=Figura1.Info;
label1.Caption:= s ;
Figura1.Free;
end;
end.
Unit2
- Код: Выделить всё
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
type
TFigure=class
private
n:integer;
p:array of real;
public
constructor Create; virtual; abstract;
constructor Perimetr():real;
function Square():real;virtual; abstract;
function Name():string;
function Info:string;virtual; abstract;
end;
implementation
function
TFigure.Perimetr():real;
var
i:integer;
s:real;
begin
s:=0;
for i:=0 to n do
s:=s+p[i];
Perimetr:=s;
end;
end.
Unit3
- Код: Выделить всё
unit Unit3;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils,unit2;
type
TRectangle=class(TFigure)
public
constructor Create;override;
function Square():real; override;
function Name():real; override;
function Info:string; override;
end;
implementation
constructor TRectangle.Create;
var
n:integer;
p:array of real;
begin
n:=6;
SetLength(p,n);
p[0]:=4;
end;
function TRectangle.Square():real;
begin
Square:=(p[0]*p[0])*((3*sqrt(3))/2);
end;
function TRectangle.Info:string;
begin
result:='.......'+'со стороной'+n+'см'+'имеет площадь:'+floatTostr((Square())+'см'+' '
+'и периметр:'+floatTostr((Perimetr())+'см.'+' 'end;
end.
Не понимаю как реализовать свойство класса "имя", если это можно сделать посредством "result:='Шестиугольник'+'со стороной'....", да и вообще, что скажите по реализации?