Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
104
Task/Quaternion-type/ERRE/quaternion-type.erre
Normal file
104
Task/Quaternion-type/ERRE/quaternion-type.erre
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
PROGRAM QUATERNION
|
||||
|
||||
!$DOUBLE
|
||||
|
||||
TYPE QUATERNION=(A,B,C,D)
|
||||
|
||||
DIM Q:QUATERNION,Q1:QUATERNION,Q2:QUATERNION
|
||||
|
||||
|
||||
DIM R:QUATERNION,S:QUATERNION,T:QUATERNION
|
||||
|
||||
PROCEDURE NORM(T.->NORM)
|
||||
NORM=SQR(T.A*T.A+T.B*T.B+T.C*T.C+T.D*T.D)
|
||||
END PROCEDURE
|
||||
|
||||
PROCEDURE NEGATIVE(T.->T.)
|
||||
T.A=-T.A
|
||||
T.B=-T.B
|
||||
T.C=-T.C
|
||||
T.D=-T.D
|
||||
END PROCEDURE
|
||||
|
||||
PROCEDURE CONJUGATE(T.->T.)
|
||||
T.A=T.A
|
||||
T.B=-T.B
|
||||
T.C=-T.C
|
||||
T.D=-T.D
|
||||
END PROCEDURE
|
||||
|
||||
PROCEDURE ADD_REAL(T.,REAL->T.)
|
||||
T.A=T.A+REAL
|
||||
T.B=T.B
|
||||
T.C=T.C
|
||||
T.D=T.D
|
||||
END PROCEDURE
|
||||
|
||||
PROCEDURE ADD(T.,S.->T.)
|
||||
T.A=T.A+S.A
|
||||
T.B=T.B+S.B
|
||||
T.C=T.C+S.C
|
||||
T.D=T.D+S.D
|
||||
END PROCEDURE
|
||||
|
||||
PROCEDURE MULT_REAL(T.,REAL->T.)
|
||||
T.A=T.A*REAL
|
||||
T.B=T.B*REAL
|
||||
T.C=T.C*REAL
|
||||
T.D=T.D*REAL
|
||||
END PROCEDURE
|
||||
|
||||
PROCEDURE MULT(T.,S.->R.)
|
||||
R.A=T.A*S.A-T.B*S.B-T.C*S.C-T.D*S.D
|
||||
R.B=T.A*S.B+T.B*S.A+T.C*S.D-T.D*S.C
|
||||
R.C=T.A*S.C-T.B*S.D+T.C*S.A+T.D*S.B
|
||||
R.D=T.A*S.D+T.B*S.C-T.C*S.B+T.D*S.A
|
||||
END PROCEDURE
|
||||
|
||||
PROCEDURE PRINTQ(T.)
|
||||
PRINT("(";T.A;",";T.B;",";T.C;",";T.D;")")
|
||||
END PROCEDURE
|
||||
|
||||
BEGIN
|
||||
Q.A=1 Q.B=2 Q.C=3 Q.D=4
|
||||
Q1.A=2 Q1.B=3 Q1.C=4 Q1.D=5
|
||||
Q2.A=3 Q2.B=4 Q2.C=5 Q2.D=6
|
||||
REAL=7
|
||||
|
||||
NORM(Q.->NORM)
|
||||
PRINT("Norm(q)=";NORM)
|
||||
|
||||
NEGATIVE(Q.->T.)
|
||||
PRINT("Negative(q) =";)
|
||||
PRINTQ(T.)
|
||||
|
||||
CONJUGATE(Q.->T.)
|
||||
PRINT("Conjugate(q) =";)
|
||||
PRINTQ(T.)
|
||||
|
||||
ADD_REAL(Q.,REAL->T.)
|
||||
PRINT("q + real =";)
|
||||
PRINTQ(T.)
|
||||
|
||||
! addition is commutative
|
||||
ADD(Q1.,Q2.->T.)
|
||||
PRINT("q1 + q2 =";)
|
||||
PRINTQ(T.)
|
||||
|
||||
ADD(Q2.,Q1.->T.)
|
||||
PRINT("q2 + q1 = ";)
|
||||
PRINTQ(T.)
|
||||
|
||||
MULT_REAL(Q.,REAL->T.)
|
||||
PRINT("q * real =";)
|
||||
PRINTQ(T.)
|
||||
|
||||
! multiplication is not commutative
|
||||
MULT(Q1.,Q2.->R.)
|
||||
PRINT("q1 * q2=";)
|
||||
PRINTQ(R.)
|
||||
|
||||
MULT(Q2.,Q1.->R.)
|
||||
PRINT("q2 * q1=";)
|
||||
PRINTQ(R.)
|
||||
END PROGRAM
|
||||
Loading…
Add table
Add a link
Reference in a new issue