### Assignment 6: Vector Math

In this example we will deal with mathematical objects called vectors. The definition of a vector, in Pascal, is:

```   TYPE
Vector = ARRAY[1..MaxDim] OF REAL;
```

For this assignment you have to write an 'include' file for my main program. In other words, your Pascal code should only contain procedures and functions, and I will include your file into my program to get the complete vector math program. You can - and must - use the new type Vector in your procedures, but you should not refer to the named constant MaxDim. All vectors should have an actual length that is less than or equal to MaxDim and that length must be passed to each procedure or function as parameter.

IMPORTANT

 Your file must be called VECT-INC.PAS All procedure and function names must be exactly as indicated The formal parameter lists must be precisely as described

Otherwise your file will not work together with my main program.

Reads real numbers into a vector. The first parameter will contain the vector on output, the second parameter must contain the number of entries in the vector (length of the vector).
 Parameters: 1st 2nd Type: Vector Integer passing: variable value
Procedure WriteVector
Write a vector on the screen. First parameter must contain the vector to write, second parameter indicates the length of the vector.
 Parameters: 1st 2nd Type: Vector Integer passing: value value
Procedure MultiplyVectorByNumber
Multiplies each number in a vector by a real number. First parameter contains the input vector, second parameter contains the number to multiply the vector with, third parameter will contain the resulting vector, and the forth parameter indicates the length of the vector.
 Parameters: 1st 2nd 3rd 4th Type: Vector Real Vector Integer passing: value value variable value
Adds two vectors and returns the result in a third vector. First and second parameters contain the two vectors to be added, third parameter will contain the result, and the fourth parameter indicates the length of the vectors.
 Parameters: 1st 2nd 3rd 4th Type: Vector Vector Vector Integer Passing: value value variable value
Procedure SubtractVectors
Subtracts two vectors and returns the result in a third. First and second parameters contain the two vectors to be subtracted, third parameter will contain the result, and the forth parameter indicate the length of the vectors.
 Parameters: 1st 2nd 3rd 4th Type: Vector Vector Vector Integer Passing: value value variable value

Note:This procedure should not use a loop; it should instead use the AddVectors and MultiplyVectorByNumber procedures.

Procedure MultiplyVectors
Multiplies two vectors and returns the result in a third. First and second parameters contain the two vectors to be multiplied, third parameter will contain the result, and the forth parameter indicate the length of the vectors.
 Parameters: 1st 2nd 3rd 4th Type: Vector Vector Vector Integer Passing: value value variable value
Function FindSum
Adds up all entries in a vector. First parameter contains the vector, second one indicates the length of the vector. The function must return a real type.
 Parameters: 1st 2nd Type: Vector Integer Passing: value value
Function FindDotProduct
Finds the sum of the product of the individual entries of two vectors. In other words, first two vectors are multiplied, and then the sum of the resulting vector is returned. First two parameters contain the two vectors, third one indicates the length of the vectors. The function must return a real type.
 Parameters: 1st 2nd 3rd Type: Vector Vector Integer Passing: value value value

Note:This procedure should not use a loop; it should instead use the MultiplyVectors procedures and FindSum function.

Procedure FindCrossProduct
If the length of the vectors is 3, it finds the crossproduct of two vectors and retuns the result in a third one. Otherwise, it prints an error message. First two parameters contain the input vectors, third one will contain the crossproduct if possible, and the last one indicates the length of the vector.
 Parameters: 1st 2nd 3rd 4th Type: Vector Vector Vector Integer Passing: value value variable value

Note: The crossproduct of two vectors with three entries is defined as follows:

```       / A1 \    / B1 \   / A2*B3 - A3*B2 \
| A2 | x  | B2 | = | A3*B1 - A1*B3 |
\ A3 /    \ B3 /   \ A1*B2 - A2*B1 /
```

The crossproduct is not defined for vectors of lengths different from three.