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,334 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:
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,...
Ordenamiento de arreglos por el Método de la Burbuja Simple. Burbuja Doble y Burbuja Triple
Resumen:
El código de este programa está desarrollado en Microsoft Visual C++ 2005. El usuario deberá asignar variables a cada uno de los Edit Control, desde m_a1 hasta m_a11 en l...
Lenguajes de Programación
Resumen:
Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a e...
Modelo de base de datos con ER/studio
Resumen:
ER/Studio. Diseño. Relaciones. Efectos en la Cardinalidad. Repositorio de ER/Studio. Es una herramienta de modelado de datos fácil de usar y multinivel, para el diseño y ...
Pseudo código
Resumen:
Mucho se habla del pseudo código en las carreras de Analista de Sistemas y Programación, pero no existe mucha bibliografía al respecto. En este articulo voy a tratar de e...
Copyright © 2011 ilustrados.com, Monografias, tesis, bibliografias, educacion. Tofos los temas y publicaciones son propiedad de sus respectivos autores ©