Ilustrados comunidad mundial educativa
Inicio | Escribenos
User: Pass: Recordar ó (Registrate!)

| !Publicar Articulo¡

Determinantes de Matrices en Visual C++2005

Resumen: Este trabajo presenta paso a paso el desarrollo de este Programa.
2,077 visitas
Rating: 0
Tell a Friend
Autor: Jaime Montoya

El desarrollo de este programa paso a paso se da a conocer a continuación:
1. Abrir Microsoft Visual Studio 2005
2. En el menú Archivo, seleccionar Nuevo proyecto…
3. En los Tipos de proyecto, dentro de Otros lenguajes, seleccionar Visual C++, luego MFC y finalmente Aplicación MFC.
4. Ponerle nombre al proyecto, determinar su ubicación y hacer clic en Aceptar.
5. En el Asistente para aplicaciones MFC, el único cambio necesario es que en Tipo de aplicación debe cambiarse de Múltiples documentos a Basada en cuadros de diálogo.
6. Hacer clic en Finalizar.
7. En el menú Ver, en Otras ventanas, seleccionar Vista de recursos.
8. Dentro de la Vista de recursos, buscar la carpeta Dialog, y luego aparecerán dos formularios. El último de ellos será en el que se va a trabajar todo el programa. Hacer doble clic sobre el último formulario.

Luego se deben ubicar los Edit Control y botones, y agregar variables a los Edit Control. Para agregar variables a cada Edit Control, hacer clic derecho sobre cada uno de ellos, luego en Agregar variable…, en Categoría poner Value, en Tipo de variable cambiar a Int y en nombre de la variable ponerle el nombre que se desea. Un ejemplo se muestra en la siguiente figura:
 

Para este programa, agregar variables a los Edit Control desde m_a1 hasta m_a25, en el orden desde la primera fila hacia la derecha, hasta llegar al último Edit Control de la última fila, que sería la variable m_a25. Poner hasta arriba un Edit Control con la variable m_respuesta, que contendrá la respuesta de la matriz.

Quedaría así el formulario en tiempo de diseño: 

  1. Luego, para ponerle un Flash de fondo, obviamente primero debe crearse en Macromedia Flash. Suponiendo que ya se ha creado un Flash con movimiento y apariencia llamativa, para ponerle un archivo Flash como fondo a este programa en Visual C++, se deben seguir los siguientes pasos:

    1. Clic derecho sobre el formulario y seleccionar Insertar control ActiveX:
  1. Seleccionar Shockwave Flash Object y hacer clic en Aceptar:
  1. Hacer que el objeto Flash cubra todo el formulario:

Automáticamente el color del objeto Flash aparece negro en tiempo de diseño, pero en tiempo de ejecución se verá el objeto Flash que se haya introducido.

4. En las propiedades del objeto Flash, específicamente en la propiedad Movie, poner exactamente la dirección de la ubicación del archivo Flash que se quiere que aparezca. Un ejemplo de una dirección es la siguiente (aunque obviamente esto depende de la ubicación en la que se tenga el archivo Flash en la computadora que se esté usando):

C:\Documents and Settings\Jaime Oswaldo\Desktop\determinantescincoporcinco\CImageButton\res\jaimemontoyashomepage.swf 

5. El archive Flash que se introdujo tiene movimiento, aunque para efectos de este documento no será posible apreciarlos. Sin embargo al crear un programa cada usuario podrá personalizar su fondo Flash de acuerdo a sus necesidades y creatividad. Al ejecutar el proyecto se verá de esta forma:

Para dar código a los botones, en tiempo de diseño, dar doble clic sobre el botón que se desea programar, y luego introducirle el código deseado. Para este programa, se debe dar el siguiente código:
 

 BOTÓN MATRIZ 2X2 

void CCImageButtonDlg::OnBnClickedButton1()

{

      // TODO: Agregue aquí su código de controlador de notificación de control
      UpdateData(TRUE);
      m_respuesta=(m_a1)*(m_a7)-(m_a2)*(m_a6);
      UpdateData(FALSE);
}

 BOTÓN MATRIZ 3X3
 
void CCImageButtonDlg::OnBnClickedButton2()
{

      // TODO: Agregue aquí su código de controlador de notificación de control
      UpdateData(TRUE);
      m_respuesta=m_a1*((m_a7)*(m_a13)-(m_a8)*(m_a12))-m_a2*((m_a6)*(m_a13)-(m_a8)*(m_a11))+m_a3*((m_a6)*(m_a12)-(m_a7)*(m_a11));
      UpdateData(FALSE);

BOTÓN MATRIZ 4X4 

void CCImageButtonDlg::OnBnClickedButton3()
{

      // TODO: Agregue aquí su código de controlador de notificación de control
      UpdateData(TRUE);
 m_respuesta = m_a1 * (m_a7 * ((m_a13) * (m_a19) - (m_a14) * (m_a18)) - m_a8 * ((m_a12) * (m_a19) - (m_a14) * (m_a17))
+ m_a9 * ((m_a12) * (m_a18) - (m_a13) * (m_a17))) - m_a2 * (m_a6 * ((m_a13) * (m_a19) - (m_a14) * (m_a18)) - m_a8 * ((m_a11) * (m_a19) - (m_a14) * (m_a16))
+ m_a9 * ((m_a11) * (m_a18) - (m_a13) * (m_a16))) + m_a3 * (m_a6 * ((m_a12) * (m_a19) - (m_a14) * (m_a17)) - m_a7 * ((m_a11) * (m_a19) - (m_a14) * (m_a16))
+ m_a9 * ((m_a11) * (m_a17) - (m_a12) * (m_a16))) - m_a4 * (m_a6 * ((m_a12) * (m_a18) - (m_a13) * (m_a17)) - m_a7 * ((m_a11) * (m_a18) - (m_a13) * (m_a16))
+ m_a8 * ((m_a11) * (m_a17) - (m_a12) * (m_a16)));

      UpdateData(FALSE);
}

 BOTÓN MATRIZ 5X5 

v oid CCImageButtonDlg::OnBnClickedButton4()
{

      // TODO: Agregue aquí su código de controlador de notificación de control
      UpdateData(TRUE);
 m_respuesta = m_a1 * (m_a7 * (m_a13 * ((m_a19) * (m_a25) - (m_a20) * (m_a24)) - m_a14 * ((m_a18) * (m_a25) - (m_a20) * (m_a23))
+ m_a15 * ((m_a18) * (m_a24) - (m_a19) * (m_a23))) - m_a8 * (m_a12 * ((m_a19) * (m_a25) - (m_a20) * (m_a24)) - m_a14 * ((m_a17) * (m_a25) - (m_a20) * (m_a22))
+ m_a15 * ((m_a17) * (m_a24) - (m_a19) * (m_a22))) + m_a9 * (m_a12 * ((m_a18) * (m_a25) - (m_a20) * (m_a23)) - m_a13 * ((m_a17) * (m_a25) - (m_a20) * (m_a22))
+ m_a15 * ((m_a17) * (m_a23) - (m_a18) * (m_a22))) - m_a10 * (m_a12 * ((m_a18) * (m_a24) - (m_a19) * (m_a23)) - m_a13 * ((m_a17) * (m_a24) - (m_a19) * (m_a22))
+ m_a14 * ((m_a17) * (m_a23) - (m_a18) * (m_a22)))) - m_a2 * (m_a6 * (m_a13 * ((m_a19) * (m_a25) - (m_a20) * (m_a24)) - m_a14 * ((m_a18) * (m_a25)
 - (m_a20) * (m_a23)) + m_a15 * ((m_a18) * (m_a24) - (m_a19) * (m_a23))) - m_a8 * (m_a11 * ((m_a19) * (m_a25) - (m_a20) * (m_a24)) - m_a14 * ((m_a16) * (m_a25)
 - (m_a20) * (m_a21)) + m_a15 * ((m_a16) * (m_a24) - (m_a19) * (m_a21))) + m_a9 * (m_a11 * ((m_a18) * (m_a25) - (m_a20) * (m_a23)) - m_a13 * ((m_a16) * (m_a25)
- (m_a20) * (m_a21)) + m_a15 * ((m_a16) * (m_a23) - (m_a18) * (m_a21))) - m_a10 * (m_a11 * ((m_a18) * (m_a24) - (m_a19) * (m_a23)) - m_a13 * ((m_a16) * (m_a24)
- (m_a19) * (m_a21)) + m_a14 * ((m_a16) * (m_a23) - (m_a18) * (m_a21)))) + m_a3 * (m_a6 * (m_a12 * ((m_a19) * (m_a25) - (m_a20) * (m_a24))
- m_a14 * ((m_a17) * (m_a25) - (m_a20) * (m_a22)) + m_a15 * ((m_a17) * (m_a24) - (m_a19) * (m_a22))) - m_a7 * (m_a11 * ((m_a19) * (m_a25) - (m_a20) * (m_a24))
 - m_a14 * ((m_a16) * (m_a25) - (m_a20) * (m_a21)) + m_a15 * ((m_a16) * (m_a24) - (m_a19) * (m_a21))) + m_a9 * (m_a11 * ((m_a17) * (m_a25) - (m_a20) * (m_a22))
 - m_a12 * ((m_a16) * (m_a25) - (m_a20) * (m_a21)) + m_a15 * ((m_a16) * (m_a22) - (m_a17) * (m_a21))) - m_a10 * (m_a11 * ((m_a17) * (m_a24) - (m_a19) * (m_a22))
- m_a12 * ((m_a16) * (m_a24) - (m_a19) * (m_a21)) + m_a14 * ((m_a16) * (m_a22) - (m_a17) * (m_a21)))) - m_a4 * (m_a6 * (m_a12 * ((m_a18) * (m_a25)
- (m_a20) * (m_a23)) - m_a13 * ((m_a17) * (m_a25) - (m_a20) * (m_a22)) + m_a15 * ((m_a17) * (m_a23) - (m_a18) * (m_a22))) - m_a7 * (m_a11 * ((m_a18) * (m_a25)
 - (m_a20) * (m_a23)) - m_a13 * ((m_a16) * (m_a25) - (m_a20) * (m_a21)) + m_a15 * ((m_a16) * (m_a23) - (m_a18) * (m_a21))) + m_a8 * (m_a11 * ((m_a17) * (m_a25)
- (m_a20) * (m_a22)) - m_a12 * ((m_a16) * (m_a25) - (m_a20) * (m_a21)) + m_a15 * ((m_a16) * (m_a22) - (m_a17) * (m_a21))) - m_a10 * (m_a11 * ((m_a17) * (m_a23)
- (m_a18) * (m_a22)) - m_a12 * ((m_a16) * (m_a23) - (m_a18) * (m_a21)) + m_a13 * ((m_a16) * (m_a22) - (m_a17) * (m_a21)))) + m_a5 * (m_a6 * (m_a12 * ((m_a18) * (m_a24)
- (m_a19) * (m_a23)) - m_a13 * ((m_a17) * (m_a24) - (m_a19) * (m_a22)) + m_a14 * ((m_a17) * (m_a23) - (m_a18) * (m_a22))) - m_a7 * (m_a11 * ((m_a18) * (m_a24)
 - (m_a19) * (m_a23)) - m_a13 * ((m_a16) * (m_a24) - (m_a19) * (m_a21)) + m_a14 * ((m_a16) * (m_a23) - (m_a18) * (m_a21))) + m_a8 * (m_a11 * ((m_a17) * (m_a24)
- (m_a19) * (m_a22)) - m_a12 * ((m_a16) * (m_a24) - (m_a19) * (m_a21)) + m_a14 * ((m_a16) * (m_a22) - (m_a17) * (m_a21))) -  m_a9 * (m_a11 * ((m_a17) * (m_a23)
- (m_a18) * (m_a22)) - m_a12 * ((m_a16) * (m_a23) - (m_a18) * (m_a21)) + m_a13 * ((m_a16) * (m_a22) - (m_a17) * (m_a21))));

      UpdateData(FALSE);

}

Eso es todo. El programa ya está listo para ejecutarse y encontrar el determinante de cualquier matriz que se desee, desde una 2x2 hasta una 5x5.  

PANTALLAS DEL PROGRAMA EN EJECUCIÓN 

MATRIZ 2X2

MATRIZ 3X3

MATRIZ 4X4

MATRIZ 5X5

 


De esa manera, es posible determinar el determinante de cualquier matriz de números enteros, desde una 2x2 hasta una 5x5.

Autor:
Jaime Oswaldo Montoya Guzmán,
Estudiante de 3er. Año de Ingeniería en Sistemas Informáticos de la
Universidad Católica de Occidente (UNICO)

jaimemontoya@gmail.com
http://jaimemontoya.googlepages.com

Universidad Católica de Occidente (UNICO)
Santa Ana, 10 de marzo de 2007
El Salvador

Articulos relacionados:
Ingeniería de Sistemas: Catedra Assembler
Resumen:
Componentes Básicos de un Sistema MS -DOS. Arquitectura interna del Intel 80 x 86. Sistemas: Decimal. Binario. Octal. Hexadecimal. Transformaciones. Conversiones. Gráfico...
CMDB(Configuration Manager Database) (doc)
Resumen:
La informática no es una ciencia estancada sino que por el contrario, evoluciona y va cambiando con el paso del tiempo. Con el paso de los años, se ha observado una marca...
Algoritmos de Ordenamiento
Resumen:
Qué es ordenamiento? Tipos de ordenamientos. Internos y externos. Eficiencia en tiempo de ejecución. Clasificación. Algoritmos de inserción, de intercambio, de selección,...
Controles y clases en Visual Basic, programación
Resumen:
Introducción a los controles. Propiedades, métodos, Funciones y Eventos. Creación de un control. Manos a la obra. Creación de las propiedades del control textbox especial...
Estructura de datos
Resumen:
Base De Datos. Recursividad. Lista. Árboles binarios. Variables Constantes. Diagramas de estructura de datos. Algoritmo. Características de un algoritmo de computador. Bú...
Copyright © 2011 ilustrados.com, Monografias, tesis, bibliografias, educacion. Tofos los temas y publicaciones son propiedad de sus respectivos autores ©