Escuela Politécnica Superior de Elche Ingeniería Industrial EXAMEN PRÁCTICO DE INFORMÁTICA APLICADA Septiembre 2000 Realizar un programa en Visual C++ 5.0, de acuerdo al estándar de documentación, con la siguiente especificación general: q Debe implementar la clase CMatriz que permita manejar matrices de coeficientes double float. q La Matriz se almacenará como un array dinámico permitiendo declarar matrices de cualquier número de filas y columnas. Se podrá así mismo declarar matrices de dimensión cero. Se asignará únicamente la mínima memoria necesaria. q La gestión de memoria debe ser totalmente dinámica, redimensionando su tamaño cuando sea necesario almacenar en una matriz un número mayor de filas o columnas. q Todos los métodos deben ser robustos, comprobando valores incorrectos en sus parámetros. q La clase deberá implementar la sobrecarga de todos los operadores necesarios para poder compilar y ejecutar correctamente el siguiente código: #include “..\inc\CMatriz.h” double datos[] = {1,2,3, 4,5,6, 7,8,9}; // matriz de prueba void main(void ) { CMatriz m1(3,3, datos); CMatriz m2(3),m3; double a=4.0; cin >> m2; m1=13; cout << "Matriz m1:\n" << m1; cout << "Matriz m2:\n" << m2; m3 = 4 + m1*2 + 5 + a*m2*m2; cout << "Matriz m3:\n" << m3; m2 = m1+a; cout << "Matriz m2=m1*a:\n" << m2; m2 = m1*a; cout << "Matriz m2=m1*a:\n" << m2; m3(1,2) = 8.5; cout << m3; } Campus de Elche. Avda. del Ferrocarril s/n – 03202 ELCHE Escuela Politécnica Superior de Elche Ingeniería Industrial A continuación se realiza la especificación detallada de la clase a implementar: 1. Crear la cabecera con la declaración de la clase CMatriz. Declarar dentro de la clase los datos y métodos necesarios para manejar una matriz (Declaración de la clase 0,5 puntos) 2. Implementar todos los métodos necesarios de la clase Constructores: CMatriz(int nf, int nc, double val[]); Constructor parametrizado que crea una matriz de nf filas y nc columnas almacenando los valores dados por el array val. (los valores están ordenados por filas, situándose los componentes de cada fila a continuación de la anterior) Si nf o nc son <=0 debe crear una matriz de dimensión nula (1 punto) CMatriz (const int nf, const int nc); Constructor parametrizado que crea una matriz de nf filas y nc columnas. Los dos parámetros deben tener valores por defecto de forma que se puedan omitir. - si nf y nc se omiten se debe crear una matriz de dimensión nula - si nf <=0 se crea una matriz de dimensión nula - si nc se omite o es <=0 se crea una matriz cuadrada (nf * nf) (1 punto) constructor copia Destructor (1 punto) (0,5 puntos) (Continua ->) Campus de Elche. Avda. del Ferrocarril s/n – 03202 ELCHE Escuela Politécnica Superior de Elche Ingeniería Industrial Operadores Todos los operadores necesarios para ejecutar la función main() indicada anteriormente: (6 puntos) Notas: Es necesario sobrecargar al menos 11 operadores m2=m1; asigna la matriz m1 a m2. Si las dimensiones de m2 son diferentes de las de m1 se debe reasignar dinámicamente memoria del tamaño correcto m1=13 copia el escalar 13 en cada elemento de la matriz m1 m1+4.5 La matriz resultado es la suma del escalar 4.5 con cada elemento de la matriz m1 m1*4.5 La matriz resultado es la producto del escalar 4.5 por cada elemento de la matriz m1 cin >> m2 lee los coeficientes de una matriz por teclado cout << m2 muestra la matriz por pantalla m1(1,2)=5.6 copia el valor 5.6 en la fila 1 , columna 2 de la matriz m1 Se deben comprobar en cada operador si las dimensiones son correctas Campus de Elche. Avda. del Ferrocarril s/n – 03202 ELCHE Escuela Politécnica Superior de Elche Ingeniería Industrial Notas: q El proyecto debe guardarse en un directorio dentro de la unidad c: (Win95) o el directorio c:\invitado (Win NT) q Se recomienda guardar de forma regular el contenido de los ficheros editados. q Se recomienda generar el código en el orden indicado. q Se recomienda así mismo compilar de forma regular el código generado, resolviendo los errores paso a paso. q La única documentación permitida será la ayuda del compilador Visual C++ 5.0 y el estándar de Documentación en C y C++. La presencia de cualquier otra documentación o discos durante el examen supondrá la expulsión del mismo. q Al finalizar el examen se entregará a cada alumno un disco etiquetado para almacenar el resultado. En la etiqueta el alumno escribirá su nombre, apellidos y DNI. q En el disco deberá copiar los siguientes ficheros y directorios: \Directorio del Proyecto \src \inc \exe (Archivos del proyecto) (Archivos fuente) (Archivos cabecera) (Archivo ejecutable) Duración del examen: 3 horas Campus de Elche. Avda. del Ferrocarril s/n – 03202 ELCHE