Informática


Determinantes de matrices en Visual C++


DETERMINANTES DE MATRICES EN VISUAL C++ 2005

El desarrollo de este programa paso a paso se da a conocer a continuación:

  • Abrir Microsoft Visual Studio 2005

  • En el menú Archivo, seleccionar Nuevo proyecto…

  • En los Tipos de proyecto, dentro de Otros lenguajes, seleccionar Visual C++, luego MFC y finalmente Aplicación MFC.

  • Ponerle nombre al proyecto, determinar su ubicación y hacer clic en Aceptar.

  • 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.

  • Hacer clic en Finalizar.

  • En el menú Ver, en Otras ventanas, seleccionar Vista de recursos.

  • 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:

    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:

  • Clic derecho sobre el formulario y seleccionar Insertar control ActiveX:

  • Seleccionar Shockwave Flash Object y hacer clic en Aceptar:

  • 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.

  • 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

  • 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

    void 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.

    Universidad Católica de Occidente

    Santa Ana, 6 de abril de 2007




    Descargar
    Enviado por:Jaime Oswaldo Montoya Guzmán
    Idioma: castellano
    País: El Salvador

    Te va a interesar