Escolar Documentos
Profissional Documentos
Cultura Documentos
FACULTAD DE EDUCACION
ESPECIALIDAD MATEMATICA E INFORMATICA
TITULO
ASIGNATURA:
ESTRUCTURA DE DATOS
ALGORITMOS II
ALUMNO:
CICLO:
VI
2018 – Cajamarca
INTRODUCCIÓN
Los tipos de matriz son tipos de referencia, y la declaración de una variable de matriz
simplemente establece un espacio reservado para una referencia a una instancia de matriz. Las
instancias de matriz reales se crean dinámicamente en tiempo de ejecución mediante el operador
new. La nueva operación especifica la longitud de la nueva instancia de matriz, que luego se
fija para la vigencia de la instancia. Los índices de los elementos de una matriz van de 0 a
Length.
DETERMINANTE DE UNA MATRIZ
Hay varias maneras de implementar una matriz en C#. El enfoque tradicional y el que se usa en
este artículo, es utilizar una matriz de matrices, a veces llamado una matriz escalonada. Por
ejemplo, este código define una matriz con tres filas y dos columnas:
Un tercer enfoque para implementar matrices en C# es utilizar una sola matriz combinada con
la manipulación del índice de matriz, como este:
Cuando se utiliza un diseño de matriz de matrices de matrices, porque cada fila debe asignarse
por separado, a menudo es conveniente definir un método auxiliar para realizar la asignación
de memoria. Por ejemplo:
Sea A una matriz cuadrada; asociada a esa matriz hay un número llamado determinante, que se
simboliza por |A| o det(A) y que se calcula de la siguiente forma:
El método determinantorder2():
Este método es muy sencillo lo cual no es necesario explicar nada. (Revisen arriba como se
calcula el determinante de orden 2).
Código
El método determinatrec():
viene a ser "el más complicado", porque no es más que una representación en código de la
ecuación que les presenté antes para calcular el determinante de orden mayor que 2.
Este método recibe la matriz desde la cual se van a sacar los valores, la matriz donde se van a
copiar (de un orden menor en una unidad), la fila y la columna que se va a eliminar:
Código
static void FillMatrix(int[,] matrix, int[,] toFill, int row, int column)
{
//Ciclo anidado para recorrer la matriz desde la cual se van a sacar los valores
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{//Si estamos en una fila menor a la que se va a eliminar
if (i < row)
{//Si estamos en una columna menor a la que se va a eliminar
if (j < column)
toFill[i, j] = matrix[i, j]; //Copiamos el valor normalmente
else
if (j > column) //En este momento estamos en una fila menor a la que se va a
//eliminar pero por encima de la columna a eliminar, por lo tanto
//se saca el valor de la matriz y se coloca en una columna con una
//unidad menos (j-1)
toFill[i, j - 1] = matrix[i, j];
else //Si estamos en una fila mayor a la que se va a eliminar
if (i > row)
{
//Si estamos en una columna mayor a la que se va a eliminar
if (j < column)
//En este momento estamos por encima de la fila a eliminar pero por debajo
//de la columna a eliminar, por lo tanto tenemos que quitarle una unidad a la fila//(i-1)
toFill[i - 1, j] = matrix[i, j];
else
if (j > column)
//Aquí estamos por encima tanto de la fila como de la columna a eliminar por lo
//tanto le quitamos una unidad tanto a las filas como a la columna (i-1, j-1)
toFill[i - 1, j - 1] = matrix[i, j];
}
}
}
}
Ejemplo práctico
Código en C# que dada una matriz de 3x3 encuentra el determinante de la misma utilizando el
método de Sarrus, aclaro que está hecho de la forma más simple posible y en modo de consola,
sin más rodeos aquí el código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ejemplo
{
class Program
{
static void Main(string[] args)
{
}
}
}
Conclusiones