Examen Practico IA sep00

Anuncio
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
Descargar