100 REM Dot product 110 DECLARE EXTERNAL FUNCTION DotProduct 120 OPTION BASE 0 130 DIM Zero3D(2), X(2), Y(2), Z(2), Q(2), R(2) ! some example vectors 140 LET Zero3D(0) = 0 150 LET Zero3D(1) = 0 160 LET Zero3D(2) = 0 170 ! 180 LET X(0) = 1 190 LET X(1) = 0 200 LET X(2) = 0 210 ! 220 LET Y(0) = 0 230 LET Y(1) = 1 240 LET Y(2) = 0 250 ! 260 LET Z(0) = 0 270 LET Z(1) = 0 280 LET Z(2) = 1 290 ! 300 LET Q(0) = 1 310 LET Q(1) = 1 320 LET Q(2) = 3.14159 330 ! 340 LET R(0) = -1 350 LET R(1) = 2.618033989 360 LET R(2) = 3 370 ! 380 PRINT " Q dot R ="; DotProduct(Q, R) 390 PRINT " Zero3D dot X ="; DotProduct(Zero3D, X) 400 PRINT " Z dot Z ="; DotProduct(Z, Z) 410 PRINT " Y dot Z ="; DotProduct(Y, Z) 420 END 430 ! 440 EXTERNAL FUNCTION DotProduct(A(), B()) 450 IF UBOUND(A) <> UBOUND(B) THEN 460 PRINT "Sizes of arrays should be equal." 470 STOP 480 END IF 490 LET DP = 0 500 FOR I = 0 TO UBOUND(A) 510 LET DP = DP + (A(I) * B(I)) 520 NEXT I 530 LET DotProduct = DP 540 END FUNCTION