, , . . . ᒺ (. prt of).
:
type TRectangle=class
Points: array [1..4] of TPoint; // ᒺ- //
//
end;
var R1: TRectangle;
X1: Real;
//
X1:=R1.Points[1].X;
- (T1) (T2), , , : , .
TRectangle=class(TQuadrangle);
//
End;
TQuadrangle , TRectangle ( ).
(. inheritance). ³ ᒺ (. is a).
ᒺ . , Points TQuadrangle, ᒺ TRectangle. .
.
:
TPolygon → TQuadrangle → TRectangle → TSquare
TSquare TPolygon, TQuadrangle TRectangle.
.
. :
TFigure → TClosedFigure → TPolygon → TQuadrangle → TRectangle → TSquare
:
TFigure: Origin, Points (), Draw Rotate ();
TClosedFigure Perimeter ();
TQuadrangle Diagonal1, Diagonal2 ();
TRectangle Side1, Side2 ( ).
:
Points Origin, Draw Rotate, .
Perimeter TClosedFigure .
Diagonal TQuadrangle .
, . , virtual ( ). , , override.
|
|
, , , .
abstract. , , . , ᒺ .
type
TFigure=class
//
procedure Draw; virtual; abstract;
procedure Rotate (X, Y, Angle: Real); virtual; abstract;
end;
TClosedFigure=class(TFigure)
//
function Perimeter: Real; virtual;
//
end;
TPolygon=class(TClosedFigure)
//
end;
TQuadrangle=class(TPolygon)
//
procedure Draw; override;
procedure Rotate (X, Y, Angle: Real); override;
end;
TRectangle=class(TQuadrangle)
//
function Perimeter: Real; override;
//
end;
Perimeter TRectangle :
function TRectangle.Perimeter: Real;
begin
Perimeter:=(Side1+Side2)*2;
end;
- - () () .
- ( inherited). :
type
TFilledRectangle=class(TRectangle)
{}
procedure TFilledRectangle.Draw;
begin
inherited Draw;
Fill;
end;
5.
. . .
ᒺ ( ):
, , , ᒺ ᒺ - .
-ᒺ ( ).
(. polymorphism); , .
ᒺ ᒺ , !
:
var P1, P2: TPolygon; R1, R2: TRectangle;
//
P1:=R1; //
R2:=P2; //
ϳ P 1:= R 1, , TPolygon P 1, TRectangle .
Object Pascal . .
. .
ᒺ . ij, ᒺ . , , .
|
|
:
var P1: TPolygon; R1: TRectangle;
X1: Real;
//
P1:=R1;
X1:= P1.Perimeter; // ᒺ P1 - Perimeter
P 1 .Perimeter , Perimeter ᒺ P 1 (TPolygon) , .
erimeter TRectangle . erimeter TRectangle, .
:
var Figures: array [1..4] of TFigure;
R: TRectangle; T: TTriangle; E: TEllipse; S: TSquare;
//
Figures[1]:= R;
Figures[2]:= T;
Figures[3]:= E;
Figures[4]:= S;
for i:=1 to 4 do
Figures[i].Draw;
4 Draw ( ), , Draw ( ) , .
ᒺ.
ᒺ, TObject:
function ClassName: ShortString;
is, :
var P: TPolygon; R:TRectangle;
//
P:=R;
if P is TRectangle then (P as TRectangle).Side1:=10;
is true, P TRectangle .
as p TRectangle.
, , ᒺ , ( ). , . .
, .
'+':
5 + 3 = 8 //
'5' + '3' = '53' //
(5) + (3) = (3, 5) //
.
Object Pascal , , overload. , , , overload reintroduce.
:
type
TNumber=class
function Add (X, Y: Integer): Integer; overload; // 1
Function Add (X, Y: Real): Real; overload; // 2
Function Add (X: Integer; Y: Real): Real; overload; // 3
Function Add (X: Real; Y: Integer): Real; overload; // 4
End;
Var N: TNumber;
A: Integer; B: Real;
A:=N.Add(1, 2); // 1
B:=N.Add(1.0, 2.0); // 2
B:=N.Add(1, 2.0); // 3
B:=N.Add(1.0, 2); // 4
, , , . ( X, Y) .
6.
Assembler. Assembler . , , Fortran ( ).
(Pascal, C)
- ;
- ;
- .
() , , .
|
|
, . (Re, Im), ().
(. units) ; :
- , ( uses);
- , , : (interface) , (implementation) .
, , . .
. , .
1. .
2. .
, , , .
, , .
г
- ( ).
- ( ).
- ( ).
- ( , ).
- ( ).
5, 4, 3, 2, 1.
г
- ( ).
- ( , , ).
- ( , , ).
- ( ).
- ( ).
- ( ).
- ( ) .
, .
, C M.
I. :
M :
- ;
- , M.
- .
1 2.
II. ᒺ:
ᒺ, :
1) ;
2) ;
3) ;
4) .
procedure TMyClass.Draw;
begin
Form1.Canvas.LineTo (10, 100); // ;
end;
procedure TMyClass.Draw (MyCanvas: TCanvas);
begin
MyCanvas.LineTo (10, 100); // ( 1);
end;
7.
Try
:
Program Text;
Var a, b: integer;
Begin
Readln (a, b); //
Writeln(a div b); // 0
End.
() ᒺ Exception , , . , 0, , .
|
|
, .
, HandleException TApplication.
( ), ᒺ , .
, , .
Exception
1) ³ TObject :
- ;
- ClassName ( ), : EZeroDivide, EOverflow, EConvertError, EInOutError.
2) 2 Exception
- Message ;
- HelpContext ( F 1) .
3) 8
Create
Create Fmt
Create Res
Create ResFmt
Create Help
Create FmtHelp
Create ResHelp
Create ResFmtHelp
Fmt = ;
Res = ;
Help = .
raise.
raise EZeroDivide.Create (ij );
raise EMyError.CreateFmt ( %d %d,[1, 2]);
.
: try, except, finally.
:
1) try
// , ( )
xcept
// ,
end;
.
{$R+}
procedure TForm1.Button1Click (Sender: TObject);
var A, B: Integer;
C: Shortint;
begin
try
A:= StrToInt (Edit1.Text);
B:= StrToInt (Edit2.Text);
C:= A div B;
except
on EConvertError do
MessageDlg ( , mtWarning, [mbOK], 0);
on EDivByZero do
MessageDlg ( , mtWarning, [mbOK], 0);
on EIntOverflow do
if (A*B)>=0 then C:=127 else C:=-128;
end;
Edit3.Text:=IntToStr(C);
End;
2) try
// ,
finally
// ( )
end;
.
procedure TForm1.Button1Click (Sender: TObject);
begin
Screen.Cursor:= crHourglass; //
j:= 0;
try
for i:=1000 downto 1 do
j:= j + j div i; //
finally
Screen.Cursor:= crDelault; //
end;
end;
8. ᒺ-
CRC
ij 䳿
, .
.
:
- ;
- , .
- .
- ;
- , , ᒺ . , .
.
1) () , .
2) (, ).
ᒺ- , ( ).
, , , .
:
1) ;
2) , .
CRC -.
, - , , .
: .
:
1) ;
2) ;
3) ;
4) ;
|
|
5) ³ ;
6) ClipBoard;
7) : , , , .
ij 䳿
.
( ).
( ᒺ 䳿).
:
1. -
2. (, ( ))
3.
4. , .
, , .
(User Manual), 䳿 .
() ( + ᒺ), .
:
1) , ;
2) _;
3) ;
4) ;
5) ;
6) , , .
CRC -.
:
. (), .
.
(. stub). .
:
- (. ptch);
- ( );
- .
˳:
- .. Delphi 6. . .: , 2001.
- . - . .: , 1997.
- . - ++. ., , ., , 2001.
- . Delphi 7 , , , 2004.
- . , . Borland Delphi 6. , ., , 2002.
- Meyer B. Object-Oriented Software Construction. London: Prentice Hall International, 1997.
-в
ֲ
- ( 6.09.27)
( 6.08.04).
:
..
60x84 1/16. . 30 .
. . . 2,0