1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
| Program FourAn;
uses crt,graph;
type BaseType=real;
FourAngle=object
x1,y1,x2,y2,x3,y3,x4,y4,
A,B,C,D,D1,D2,Alpha,Beta,Gamma,
Delta,P,S: BaseType;
Procedure Init;
Procedure Storony;
Procedure Diagonali;
Procedure Angles;
Procedure Perimetr;
Procedure Ploshad;
Procedure PrintElements;
end;
Parall=object (FourAngle)
Procedure Storony;
Procedure Perimetr;
Procedure Ploshad;
End;
Romb=object (Parall)
Procedure Storony;
Procedure Perimetr;
end;
Kvadrat=object (Romb)
Procedure Angles;
Procedure Ploshad;
end;
Procedure FourAngle.Init;
begin
clrscr;
Writeln ('Vvedite koordinati vershin chetitirehugolnika');
readln (x1,y1,x2,y2,x3,y3,x4,y4);
end;
Procedure FourAngle.Storony;
begin A:=sqrt(sqr(x2-x1)+sqr(y2-y1));
B:=sqrt(sqr(x3-x2)+sqr(y3-y1));
C:=sqrt(sqr(x4-x3)+sqr(y4-y3));
D:=sqrt(sqr(x4-x1)+sqr(y4-y1));
end;
Procedure FourAngle.Diagonali;
begin
D1:=sqrt(sqr(x1-x3)+sqr(y1-y3));
D2:=sqrt(sqr(x2-x4)+sqr(y2-y4));
end;
Procedure FourAngle.Angles;
Function Ugol (Aa,Bb,Cc:BaseType):BaseType;
var VspSin:BaseType;
begin
VspCos:=(sqr(Aa)+sqr(Bb)-sqr(Cc)/(2*Aa*Bb);
VspSin:=sqrt(1-sqr(VspCos));
if Abs (VspCos)>Le-7
Then Ugol:=(ArcTan(VspSin/VspCos)+Pi*Ord(VspCos<0))/Pi*180
else Ugol:=90
end;
Begin Alpha:=Ugol(D,A,D2);
Beta:=Ugol(A,B,D1);
Gamma:=Ugol(B,C,D2); Delta:=Ugol(C,D,D10;
end;
Procedure FourAngle.Perimetr;
Begin P:=A+B+C+D; end;
Procedure FourAngle.Ploshad;
Var Per1,Per2:BaseType;
Begin
Per1:=(A+D+D)2/2; Per2:=(B+C+D1)/2;
S:=sqrt(Per1*(Per1-A)*(Per1-D)*(Per-D2))+sqrt(Per2*(Per2-B)*(Per2-C*(Per-D1))
end;
Procedure FourAngle.PrintElements;
begin;
writeln ('storony:',A:10:6, B:10:6, C:10:6, D:10:6,
'Ugli:',Alpha:10:4, Beta:10:4, Gamma:10:4,
Gamma:10:4, Delta:10:4, 'Perimtr:',P:10:6,
Ploshad:',S:10:6,'Diagonali:',D1:10:6,D2:10:6) end;
Procedure Parall.Storony;
begin A:=sqrt(sqr(x2-x1)*sqr(y2-y1));
B:=sqrt(sqr(x3-x2)+sqr(y3-y2));
C:=A; D:B end;
Procedure Parall.Perimetr;
Begun P:=2*(A+B) end;
Procedure Parall.Ploshad;
var Per:BaseType;
begin Per:=(A+D+D2)/2;
S:=2*sqrt(Per*(Per-A)*(Per-D)*(Per-D2)); end;
Procedure Romb.Storony;
begin
A:=sqrt(sqr(x2-x1)+sqr(y2-y1));
B:=A; C:=A; D:=A; end;
Procedure Romb.Perimetr;
Begin P:=2*A end;
Procedure Kvadrat.Angles;
begin Alpha:=90; Beta:=90; Gamma:=90; Delta:=90; end;
Procedure Kvadrat.Ploshad;
begin
{Osnovnaya programma}
var obj:Kvadrat;
begin
obj.Init;
obj.Storony;
obj.Diagonali;
obj.Angles;
obj.Perimetr;
obj.Ploshad;
obj.PrintElements;
end. |