Busca monografías, tesis y trabajos de investigación

Buscar en Internet 

       Revistas   Cursos   Biografías

rss feeds RSS / /

Determinantes de Matrices en Visual C++2005

Resumen: Este trabajo presenta paso a paso el desarrollo de este Programa.

Publicación enviada por 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



Valora este artículo 5   4   3   2   1

Comparte  Enviar a facebook Facebook   Enviar a menéame Menéame   Digg   Añadir a del.icio.us Delicious   Enviar a Technorati Technorati   Enviar a Twitter Twitter
Artículos Destacados