, , , ( ).
, , (, ), :
UNIT Cmplx;
{---------------------}
INTERFACE
{---------------------}
type complex = record
re, im:real
end;
Procedure AddC | (x, | : complex; | var z | : complex); |
Procedure SubC | (x, | : complex; | var z | : complex); |
Procedure MulC | (x, | : complex; | var z | : complex); |
Procedure DivC | (x, | : complex; | var z | : complex); |
const | ||||
: complex = | (re: | 0.1; im: | -1); |
{---------------------}
IMPLEMENTATION
{---------------------}
Procedure AddC; begin
z.re:= x.re + y.re; z. im:= x.im + y. im
end {AddC};
Procedure SubC;
begin
z.re:= x.re - y. re;
z.im:= x.im - y.im
end {SubC};
Procedure MulC;
begin
z.re:= x.re*y.re - x.im*y. im;
z.im:= x.re*.im + x.im*y.re
end {MulC};
Procedure DivC;
var
zz: real;
begin
zz:= sqr(y.re) + sqr(y.im);
z. re:= (x.re * y.re + x.im * y.im) / zz;
z.im:= (x.re * y.im - x.im * y.re) / zz
end {DivC};
end.
CMPLX.PAS.
, TPU-, .
, , , .
SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBOS GRAPH3.
GRAPH, TURBOS GRAPHS TPU-, TURBO.TPL.
SYSTEM , , USES.
.
SYSTEM. , , (, INC, DEC, GETDIR ..).
, SYSTEM , USES , , .
PRINTER.
.
LST TEXT, PRN. , , :
Uses Printer;
begin
writeln (LST, ' ')
end.
CRT.
, .
, , . , .
|
|
GRAPH.
, , .
, GRAPH, .
GRAPH .
- , GRAPH. TPU, .
DOS.
, MS- DOS.
OVERLAY.
.
, , .
MS-DOS 580 (
).
, .
(system, crt, graph ..), .
.
.
P/Q (P , Q - ):
- ;
- ;
- ;
- ;
- ;
- N (N );
- , (, , , , , ).
:
Type Frac=Record
: Integer;
Q: 1..32767
End;
, :
1. , .
; .
2. , .
.
Unit Droby;
Interface
Type
Natur=l..High(Longlnt);
Frac=Record
P: Longlnt;
Q: Natur
End;
Procedure Sokr(Var A: Frac);
Procedure Summa(A,B: Frac; Var C: Frac);
Procedure Raznost(A,B: Frac; Var C: Frac);
Procedure Proizvedenie(A,B: Frac; Var C: Frac);
Procedure Chastnoe(A,B: Frac; Var C: Frac);
Procedure Stepen(A: Frac; N: Natur; Var C: Frac);
Function Menshe(A,B: Frac): Boolean;
Function Bolshe(A,B: Frac): Boolean;
Function Ravno(A,B: Frac): Boolean;
Function MensheRavno(A,B: Frac): Boolean;
Function BolsheRavno(A,B: Frac): Boolean;
Function NeRavno(A,B: Frac): Boolean;
{ } Implementation
{ - , ) Function NodEvklid(A,B: Natur): Natur;
|
|
Begin
While AOB Do
If A>B Then
If A Mod B<>0 Then A:=A Mod
Else A:=B
Else
If Mod A<>0 Then B:=B Mod A
Else B:=A;
NodEvklid:=A End;
( }
Procedure Sokr;
Var M,N: Natur;
Begin
If A.P<>0
Then
Begin
If A.P<0
Then M:=Abs(A.P)
Else M:=A.P;
{ , .. . -Longint}
N:=NodEvklid(M,A.Q);
A.P:=A.P Div N;
A.Q:=A.Q Div N
End
End;
Procedure Summa; { }
Begin
{ }
C.Q:=(A.Q*B.Q) Div NodEvklid(A.Q,B.Q);
{ }
C.P:=A.P*C.Q Div A.Q+B.P*C.Q Div B.Q;
Sokr(C)
End;
Procedure Raznost; { }
Begin
{ }
C.Q:=(A.Q*B.Q) Div NodEvklid(A.Q,.Q);
{ )
C.P:=A.P*C.Q Div A.Q-B.P*C.Q Div B.Q;
Sokr(C)
End;
Procedure Proizvedenie; { )
Begin
{ }
C.Q:=A.Q*B.Q;
{ }
.:=.*.;
Sokr()
End;
Procedure Chastnoe;
{ }
Begin
{ }
C.Q:=A.Q*B.P;
{ }
C.P:=A.P*B.Q;
Sokr()
End;
Procedure Stepen; { }
Var I: Natur;
Begin
C.Q:=1;
C.P:=1;
Sokr(A);
For I:=l To N Do
Proizvedenie(,,)
End;
Function Menshe; { '<' }
Begin
Menshe:=A.P*B.Q<A.Q*B.P
End;
Function Bolshe; { '>' }
Begin
Bolshe:=A.P*B.Q>A.Q*B.P
End;
Function Ravno; { '=' }
Begin
Ravno:=A.P*B.Q=A.Q*B.P
End;
Function BolsheRavno; { '>=' }
Begin
BolsheRavno:=Bolshe(,) Or Ravno(A,B)
End;
Function MensheRavno; { '<=' }
Begin
MensheRavno:=Menshe(,) Or Ravno(A,B)
End;
Function NeRavno; { '<>' }
Begin
NeRavno:=Not Ravno(A,B)
End;
{ }
Begin
End.
:
, .. .
.
, .
droby. pas .
, .
: droby. pas.
, droby. tpu, , .
:
Compile/Destination Disk, Compile/Build.
, .
.
Program Sum; Uses Droby;
Var A: Array[1..100] Of Frac;
I,N: Integer;
S: Frac;
Begin
Write(' :);
ReadLn(N);
S.P:=0; S.Q:=1; { }
For I:=l To N Do { }
Begin
Write(' ',I,' - :');
ReadLn(A[I]. );
Write (' ',1,'- :');
ReadLn(A[I].Q);
Summa(A[I],S, S);
End;
WriteLn (':',S.P, '/',S.Q)
End.
.
, uses,
.
.
, .
, .
, . . .
.
, .
|
|