Problem 1 |
Write a program called Matrices to compute the determinant of matrix using recursion. Escriba un programa llamado Matrices para calcular el determinante de una matriz usando recursión. |
Matrices.h |
#pragma once //______________________________________ Matrices.h #include "resource.h" class Matrices: public Win::Dialog { public: Matrices() { } ~Matrices() { } double Determinant(MATRIX& input); void ReduceMatriz(const MATRIX& input, MATRIX& output, int columnIndex); protected: ... }; |
Matrices.cpp |
void Matrices::Window_Open(Win::Event& e) { } void Matrices::btCalcular_Click(Win::Event& e) { MATRIX input; Sys::Convert::ToMatrix(tbxInput.Text, input); tbxDeterminante.DoubleValue = Determinant(input); } double Matrices::Determinant(MATRIX& input) { const int rowCount = input.size(); const int colCount = (rowCount == 0) ? 0 : input[0].size(); if (rowCount != colCount) throw L"The number of rows must be equal to the number of columns"; if (rowCount == 0) return 0.0; if (rowCount == 1) return input[0][0]; if (rowCount == 2) return input[0][0]*input[1][1]-input[1][0]*input[0][1]; //___________________________We get here when matrix size is 3x3, 4x4, 5x5, ... ... } // Returns an identical matrix to the input: without the first row and without the specified column // Regresa una matrix identica a la de entrada: sin el primer renglon y sin la columna especificada void Matrices::ReduceMatriz(const MATRIX& input, MATRIX& output, int columnIndex) { ... } |