Nota: Respete los prototipos de las funciones.
/* como ejemplo se define N como 3, pero el algoritmo debe ser genérico para cualquier N */
#define N 3
int es_ortonormal(double M[N][N], double
eps);
que retorne 1 si la matriz M de N filas y N columnas que se le pasa como argumento es ortonormal y 0 en caso contrario. El valor de eps es la tolerancia. La función no debe modificar de ninguna manera la matriz que se le pasa, ni crear nuevas matrices. Nota: recuerde que en el producto de matrices C = A x B, el elemento C[i,j] = Sum(k) A[i,k]*B[k,j], y que en la traspuesta C^t [i,j] = C[j,i].
Prototipo: void imprime_en_romanos( int n );
Recuerde que los primeros 10 números son: I, II, III, IV, V, VI, VII, VIII, IX, X
| Símbolo | I | V | X | L | C | D | M |
| Valor | 1 | 5 | 10 | 50 | 100 | 500 | 1000 |
Nota: nunca se tiene mas de 3 veces seguidas el mismo símbolo (
IIII no es 4 ).