How to resolve the algorithm Vector products step by step in the XPL0 programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Vector products step by step in the XPL0 programming language

Table of Contents

Problem Statement

A vector is defined as having three dimensions as being represented by an ordered collection of three numbers:   (X, Y, Z). If you imagine a graph with the   x   and   y   axis being at right angles to each other and having a third,   z   axis coming out of the page, then a triplet of numbers,   (X, Y, Z)   would represent a point in the region,   and a vector from the origin to the point. Given the vectors: then the following common vector products are defined:

Given the three vectors:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Vector products step by step in the XPL0 programming language

Source code in the xpl0 programming language

include c:\cxpl\codes;          \intrinsic 'code' declarations

func DotProd(A, B);             \Return the dot product of two 3D vectors
int A, B;                       \A ù B
return A(0)*B(0) + A(1)*B(1) + A(2)*B(2);

proc CrossProd(A, B, C);        \Calculate the cross product of two 3D vectors
int A, B, C;                    \C:= A x B
[C(0):= A(1)*B(2) - A(2)*B(1);
 C(1):= A(2)*B(0) - A(0)*B(2);
 C(2):= A(0)*B(1) - A(1)*B(0);
]; \CrossProd

func ScalarTriProd(A, B, C);    \Return the scalar triple product
int A, B, C;                    \A ù (B x C)
int D(3);
[CrossProd(B, C, D);
return DotProd(A, D);
]; \ScalarTriProd

proc VectTriProd(A, B, C, D);   \Calculate the vector triple product
int A, B, C, D;                 \D:= A x (B x C)
int E(3);
[CrossProd(B, C, E);
 CrossProd(A, E, D);
]; \CrossProd


int A, B, C, D(3);
[A:= [3, 4, 5];  B:= [4, 3, 5];  C:= [-5, -12, -13];

IntOut(0, DotProd(A,B));  CrLf(0);

CrossProd(A, B, D);
IntOut(0, D(0));  ChOut(0, 9\tab\);
IntOut(0, D(1));  ChOut(0, 9\tab\);
IntOut(0, D(2));  CrLf(0);

IntOut(0, ScalarTriProd(A,B,C)); CrLf(0);

VectTriProd(A, B, C, D);
IntOut(0, D(0));  ChOut(0, 9\tab\);
IntOut(0, D(1));  ChOut(0, 9\tab\);
IntOut(0, D(2));  CrLf(0);
]

  

You may also check:How to resolve the algorithm Walk a directory/Non-recursively step by step in the Pop11 programming language
You may also check:How to resolve the algorithm Compiler/lexical analyzer step by step in the Wren programming language
You may also check:How to resolve the algorithm Jewels and stones step by step in the Cowgol programming language
You may also check:How to resolve the algorithm Special characters step by step in the REXX programming language
You may also check:How to resolve the algorithm Cumulative standard deviation step by step in the Factor programming language