Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
59
Task/Vector/XPL0/vector.xpl0
Normal file
59
Task/Vector/XPL0/vector.xpl0
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
func real VAdd(A, B, C); \Add two 2D vectors
|
||||
real A, B, C; \A:= B + C
|
||||
[A(0):= B(0) + C(0); \VAdd(A, A, C) => A:= A + C
|
||||
A(1):= B(1) + C(1);
|
||||
return A;
|
||||
];
|
||||
|
||||
func real VSub(A, B, C); \Subtract two 2D vectors
|
||||
real A, B, C; \A:= B - C
|
||||
[A(0):= B(0) - C(0); \VSub(A, A, C) => A:= A - C
|
||||
A(1):= B(1) - C(1);
|
||||
return A;
|
||||
];
|
||||
|
||||
func real VMul(A, B, S); \Multiply 2D vector by a scalar
|
||||
real A, B, S; \A:= B * S
|
||||
[A(0):= B(0) * S; \VMul(A, A, S) => A:= A * S
|
||||
A(1):= B(1) * S;
|
||||
return A;
|
||||
];
|
||||
|
||||
func real VDiv(A, B, S); \Divide 2D vector by a scalar
|
||||
real A, B, S; \A:= B / S
|
||||
[A(0):= B(0) / S; \VDiv(A, A, S) => A:= A / S
|
||||
A(1):= B(1) / S;
|
||||
return A;
|
||||
];
|
||||
|
||||
proc VOut(Dev, A); \Output a 2D vector number to specified device
|
||||
int Dev; real A; \e.g: Format(1,1); (-1.5, 0.3)
|
||||
[ChOut(Dev, ^();
|
||||
RlOut(Dev, A(0));
|
||||
Text(Dev, ", ");
|
||||
RlOut(Dev, A(1));
|
||||
ChOut(Dev, ^));
|
||||
];
|
||||
|
||||
proc Polar2Rect(@X, @Y, Ang, Dist); \Return rectangular coordinates
|
||||
real X, Y, Ang, Dist;
|
||||
[X(0):= Dist*Cos(Ang);
|
||||
Y(0):= Dist*Sin(Ang);
|
||||
]; \Polar2Rect
|
||||
|
||||
real V0(2), V1, V2, V3(2);
|
||||
def Pi = 3.14159265358979323846;
|
||||
[Format(1, 1);
|
||||
V1:= [5., 7.];
|
||||
V2:= [2., 3.];
|
||||
Polar2Rect(@V3(0), @V3(1), Pi/4., sqrt(2.));
|
||||
Text(0, "V1 = "); VOut(0, V1); CrLf(0);
|
||||
Text(0, "V2 = "); VOut(0, V2); CrLf(0);
|
||||
Text(0, "V3 = "); VOut(0, V3); CrLf(0);
|
||||
CrLf(0);
|
||||
Text(0, "V1 + V2 = "); VOut(0, VAdd(V0, V1, V2 )); CrLf(0);
|
||||
Text(0, "V1 - V2 = "); VOut(0, VSub(V0, V1, V2 )); CrLf(0);
|
||||
Text(0, "V1 * 11 = "); VOut(0, VMul(V0, V1, 11.)); CrLf(0);
|
||||
Text(0, "11 * V2 = "); VOut(0, VMul(V0, V2, 11.)); CrLf(0);
|
||||
Text(0, "V1 / 2 = "); VOut(0, VDiv(V0, V1, 2. )); CrLf(0);
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue