Vectores y Matrices

48
MATRICES Y VECTORES QUE SON MATRICES QUE SON VECTORES

description

Ejercicios en c#

Transcript of Vectores y Matrices

Page 1: Vectores y Matrices

MATRICES Y

VECTORES

QUE SON

MATRICES

QUE SON

VECTORES

Page 2: Vectores y Matrices

INTRODUCCION:

En esta revista hemos recogido lo aprendido lo que se refiere a programar con c# guiándonos en

las anteriores clases para poder hacer en esta revista códigos para vectores y matrices.

C# ha ido superando con creces todas mis expectativas: es un lenguaje moderno, potente, flexible

y orientado a objetos., a sintaxis de C# es muy parecida a la de C, C++ y, sobre todo, Java.

Para esta revista que hemos realizado vamos a poner todo lo que se puede hacer en vectores y

matrices.

Sabiendo que en el vector y en la matriz nos si8rve para almacenar varios elementos.

En cada una de nuestras hojas se va especificando conceptos, ejercicios hechos por cada persona,

que se utilizó y para qué sirve cada uno de ellos.

Page 3: Vectores y Matrices

QUIENES SOMOS:

INGENIERA:

Lorena Aguirre

INTEGRANTES:

Andrea Santillán (5344)

Belén Haro (5466)

Tamara Noriega (5186)

Gerardo Vera ()

FACULTAD:

Facultad de Informática y Electrónica

ESCUELA:

Escuela de Ingeniería en Sistemas

SEMESTRE:

Tercero “A”

PEERIODO

Septiembre (2010)- Enero (2011)

Page 4: Vectores y Matrices

1.1 DEFINICIÓN GENERAL

Un vector (array, cadena, arreglo...) es un conjunto ordenado de variables que se almacenan bajo

un mismo nombre y se distinguen por un índice.

Los vectores son una forma de almacenar datos que permiten contener una serie de valores del

mismo tipo, cada uno de los valores contenidos tiene una posición asociada que se usará para

accederlos. Está posición o índice será siempre un número entero positivo.

Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se

realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar

ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista, ya que esta

estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa.

Un vector en C# es radicalmente diferente a un vector en C++: más que una colección de variables que comparten un nombre y accesibles por índice, en C# se trata de una instancia de la clase System.Array, y en consecuencia se trata de una colección que se almacena en el heap y que está bajo el control del gestor de memoria.

Todas las tablas que definamos, sea cual sea el tipo de elementos que contengan, son objetos que derivan de System.Array. Ese espacio de nombres proporciona métodos para la creación, manipulación, búsqueda y ordenación de matrices, por lo tanto, sirve como clase base para todas las matrices de la CLR (Common Language Runtime).

En C# las tablas pueden ser multidimensionales, se accede a los elementos por índice, siendo el índice inicial de cada dimensión 0.

Siempre se comprueba que se esté accediendo dentro de los límites. Si se intenta acceder a un elemento de un vector especificando un índice fuera del rango, se detecta en tiempo de ejecución y se lanza una excepción IndexOutOfBoundsException.

La sintaxis es ligeramente distinta a la del C++ porque las tablas son objetos de tipo referencia:

Page 5: Vectores y Matrices

double [] array; // Declara un a referencia // (no se instancia ningún objeto) array = new double[10]; // Instancia un objeto de la clase // System.Array y le asigna 10 casillas.

que combinadas resulta en (lo habitual):

double [] array = new double[10];

El tamaño del vector se determina cuando se instancia, no es parte de la declaración. string [] texto; // OK string [10] texto; // Error

1.2 COMO SE DECLARA UN VECTOR EN C#:

La declaración de un vector en c# es diferente a la programación en c++ y se lo declara de la

siguiente manera:

int []Vec=new int[8]; //vec es un vector de 8 enteros

Otras formas de declarar una matriz:

La declaración emplea los paréntesis vacíos [ ] entre el tipo y el nombre para determinar el número de dimensiones (rango). string [] Mat1D; // 1 dimension string [,] Mat2D; // 2 dimensiones string [,,] Mat3D; // 3 dimensiones string [,,,] Mat4D; // 4 dimensiones

1.3 COMO SE INICIALIZA UN VECTOR

Un vector puede inicializarse a la misma vez que se declara. Las tres definiciones siguientes son equivalentes:

int[] prime1 = new int[10] {1,2,3,5,7,11,13,17,19,23}; int[] prime2 = new int[] {1,2,3,5,7,11,13,17,19,23}; int[] prime3 = {1,2,3,5,7,11,13,17,19,23};

Los vectores pueden dimensionarse dinámicamente (en tiempo de ejecución). Por ejemplo, el siguiente código:

Page 6: Vectores y Matrices

Console.Write ("Num. casillas: "); string strTam = Console.ReadLine(); int tam = Convert.ToInt32(strTam); int[] VecDin = new int[tam]; for (int i=0; i<tam; i++) VecDin[i]=i; Console.Write ("Contenido de VecDin = "); foreach (int i in VecDin) Console.Write(i + ", "); Console.ReadLine();

produce este resultado: Num. casillas: 6 Contenido de VecDin = 0, 1, 2, 3, 4, 5,

Esta facilidad es una gran ventaja, aunque una vez que el constructor actúa y se crea una instancia de la clase System.Array no es posible redimensionarlo. Si se desea una estructura de datos con esta funcionalidad debe emplearse una estructura colección disponible en System.Collections (por elemplo, System.Collections.ArrayList).

En el siguiente ejemplo observe cómo el vector palabras se declara como un vector de string. Se instancia y se inicia después de la ejecución del método Split(), que devuelve un vector de string.

string frase = "Esto es una prueba de particion"; string [] palabras; // vector de cadenas (no tiene tamaño asignado) palabras = frase.Split (null); Console.WriteLine ("Frase = {0}", frase); Console.WriteLine ("Hay = {0} palabras", palabras.Length); for (int i=0; i < palabras.Length; i++) Console.WriteLine (" Palabra {0} = {1}", i, palabras[i]);

El resultado es: Frase = Esto es una prueba de particionHay = 6 palabras Palabra 0 = Esto Palabra 1 = es Palabra 2 = una Palabra 3 = prueba Palabra 4 = de Palabra 5 = partición

Page 7: Vectores y Matrices

1.4 OPERACIONES CON VECTORES

Las operaciones que se pueden realizar con los vectores son las siguientes:

Buscar un elemento de un vector

Buscar el mayor elemento de un vector

Buscar el menor elemento de un vector

Ordenar el vector ascendentemente

Ordenar el vector en forma descendente

Eliminar un elemento e imprimir en el mismo vector

Eliminar un elemento e imprimir en otro vector

Insertar un elemento y ordenar ascendentemente

Insertar un elemento y ordenar descendentemente

Insertar un elemento y ordenar ascendentemente

Sumatoria de todos los elementos del vector

Promedio de el vector

Sacar la media aritmética del vector

Etc

Page 8: Vectores y Matrices

2.1 DEFINICIONES GENERALES

Una matriz es una estructura de datos que contiene una serie de variables del mismo tipo. Las matrices se declaran con un tipo:

type[] arrayName;

Existen conjuntos de datos que por su naturaleza son mejor representados mediante tablas o matrices multidimensionales que por vectores.

Por ejemplo, se puede representar las calificaciones de 4 asignaturas cursadas por 6 estudiantes mediante una tabla como la que abajo se ilustra:

Columna 1 Columna 2 Columna 3 Columna 4

Fila 1

Fila 2

Fila 3

Fila 4

Fila 5

Fila 6

donde cada fila correspondería a un estudiante y cada columna a una asignatura. Cada dato individual (la calificación de un estudiante en una asignatura dada) es un elemento de esta tabla y ocupa una celda identificable por el número de la fila y el número de la columna.

Page 9: Vectores y Matrices

Columna 1 Columna 2 Columna 3 Columna 4

Fila 1 M(1,1) M(1,2) M(1,3) M(1,4)

Fila 2 M(2,1) M(2,2) M(2,3) M(2,4)

Fila 3 M(3,1) M(3,2) M(3,3) M(3,4)

Fila 4 M(4,1) M(4,2) M(4,3) M(4,4)

Fila 5 M(5,1) M(5,2) M(5,3) M(5,4)

Fila 6 M(6,1) M(6,2) M(6,3) M(6,4)

De esta manera, cada elemento de la tabla queda completamente identificado mediante dos subíndices: el primero para identificar la fila y el segundo para identificar la columna.

M( i , j )

Cada elemento de la matriz representaría la calificación de un estudiante dado en una asignatura dada. Por ejemplo:

M(4,2) = C

significa que el estudiante número 4 obtuvo C en la asignatura 2. La posición del elemento dentro de la matriz corresponde a la celda sombreada en la tabla de la figura de arriba.

La matriz de arriba representa un arreglo bidimensional con (6x4) 24 elementos, donde

i = 1, 2, 3, ...,6

j = 1, 2, 3, 4

En una matriz multidimensional cada dimensión tiene su propio rango.

Con frecuencia se manejan arreglos de más de dos dimensiones, correspondiendo un subíndice a cada dimensión.

El programador debe tener presente que la memoria de las computadoras es lineal, por lo que la mayoría de los compiladores almacenan en memoria los elementos de una matriz linealizandola por filas; es decir, todos los elementos de la primera fila primero, los de la segunda después y así sucesivamente.

Una matriz tiene las propiedades siguientes:

Una matriz puede ser unidimensional, multidimensional o escalonada. El valor predeterminado de los elementos numéricos de matriz se establece en cero y el

de los elementos de referencia se establece en null.

Page 10: Vectores y Matrices

Una matriz escalonada es una matriz de matrices y por consiguiente sus elementos son tipos de referencia y se inicializan en null.

Las matrices se indizan basadas en cero: una matriz con n elementos se indiza desde 0 hasta n-1.

Los elementos de una matriz pueden ser de cualquier tipo, incluido el tipo matriz. Los tipos de matriz son tipos de referencia derivados del tipo base abstracto Array. Puesto

que este tipo implementa IEnumerable e IEnumerable(Of T), puede utilizar la iteración foreach en todas las matrices de C#.

2.2 COMO SE DECLARA UNA MATRIZEN C#

C# admite matrices multidimensionales (matrices rectangulares) y matrices de matrices (matrices escalonadas). El siguiente ejemplo muestra cómo declarar diferentes tipos de matrices: Matrices multidimensionales: string[,] nombres; Matrices de matrices (escalonadas): byte[][] notas; La declaración de matrices (como se muestra arriba) no crea realmente las matrices. En C#, las matrices son objetos cuyas instancias deben crearse. Los siguientes ejemplos muestran cómo crear matrices: Matrices multidimensionales: string[,] nombres = new string[5,4]; Matrices de matrices (escalonadas): byte[][] notas = new byte[5][];

for (int x = 0; x < notas.Length; x++)

{

notas[x] = new byte[4];

} También se pueden utilizar matrices más grandes. Por ejemplo, se puede utilizar una matriz rectangular de tres dimensiones:

Page 11: Vectores y Matrices

int[,,] buttons = new int[4,5,3]; Incluso, se pueden combinar matrices rectangulares y escalonadas. Por ejemplo, el siguiente código declara una matriz unidimensional que contiene matrices tridimensionales de matrices bidimensionales de tipo int: int[][,,][,] numeros;

2.3 INICILAIZAR MATRICES

C# proporciona métodos simples y sencillos para inicializar matrices en el momento de la declaración encerrando los valores iniciales entre llaves ({}). Los siguientes ejemplos muestran diferentes modos de inicializar diferentes tipos de matrices.

int[,] numeros = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} }; string[,] hermanos = new string[2, 2] { {"John","Willy"}, {"Fer","Juan"} };

El tamaño de la matriz se puede omitir, como se indica a continuación:

int[,] numeros = new int[,] { {1, 2}, {3, 4}, {5, 6} }; string[,] hermanos = new string[,] { {"John","Willy"}, {"Fer","Juan"} };

También se puede omitir el operador new si se utiliza un inicializador como el siguiente:

int[,] numeros = { {1, 2}, {3, 4}, {5, 6} }; string[,] hermanos = { {"John","Willy"}, {"Fer","Juan"} };

Matriz escalonada (matriz de matrices) Las matrices escalonadas se pueden inicializar como en el siguiente ejemplo:

int[][] numeros = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; El tamaño de la primera matriz se puede omitir, como se indica a continuación: int[][] numeros = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; O tambien int[][] numeros = { new int[] {2,3,4}, new int[] {5,6,7,8,9} }; Observe que no existe sintaxis de inicialización para los elementos de una matriz escalonada.

Page 12: Vectores y Matrices

2.4 TIPOS DE MATRICES 2.4.1 MATRIZ CUADRATICA

1 2 3

4 5 6

7 8 9

Una matriz cuadrática es aquella que tiene el mismo número de filas y de columnas.

2.4.2 MATRIZ NO CUADRATICA

1 1 1 1

1 1 1 1

La matriz no cuadrática es aquella que no tiene el mismo número de filas y de columnas.

2.4.3 MATRIZ UNIDAD

1 0 0

0 1 0

0 0 1

Una matriz unidad es una matriz diagonal en la que los elementos de la diagonal principal

son iguales a 1, y los demás elementos son cero.

2.4.4 MATRIZ NULA

En una matriz nula todos los elementos son ceros.

0 0 0

0 0 0

0 0 0

Page 13: Vectores y Matrices

2.4.5 MATRIZ TRANPUESTA

Dada una matriz A, se llama matriz traspuesta de A a la matriz que se obtiene cambiando

ordenadamente las filas por las columnas.

2.4.6 MATRIZ ESCALAR

Una matriz escalar es una matriz diagonal en la que los elementos de la diagonal principal

son iguales.

2 6 8

1 5 7

3 4 9

2 1 3

6 5 4

8 7 9

2 1 3

6 2 4

8 7 2

Page 14: Vectores y Matrices

ANDREA TATIANA SANTILLÁN

CHAGÑAY

EJERCICIO #1

INSERTAR UNA FILA EN UNA MATRIZ NO CUADRATICA

Para ingresar una fila en una matriz no cuadrática he utilizado:

3 Label

3 textbox

1 groupbox

2 buttons

Page 15: Vectores y Matrices

Primero se le declara a la matriz de la siguiente manera:

int[,] Mat = new int[7, 7];

Luego le programamos lo que realiza cada uno de los elementos.

Textbox1 (TxtFila)

El primer textbox sirve para ingresar el número de filas de una matriz.

Textbox2 (TxtColumna)

El segundo textbox sirve para ingresar el número de columnas de una matriz.

Botón Insertar

El botón insertar escribe la matriz con números aleatorios en el texbox, ya insertada la fila.

Este botón tiene el siguiente código:

int a = int.Parse(TxtFila.Text); int b = int.Parse(TxtColumna.Text); Random rdm = new Random(); for (int i = 0; i < a + 1; i++) { for (int j = 0; j < b ; j++) { Mat[j, i] = rdm.Next(10); TxtMatriz.Text += Mat[j, i] + " "; } TxtMatriz.Text += "\r\n\n";

}

Page 16: Vectores y Matrices

Textbox3(TxtMatriz)

En este textbox se muestra la matriz ya hecha, como es aumentada la matriz en una fila.

Botón Salir

Este botón sale del programa y su código es:

this.Close();

Al compilar ya el programa la pantalla nos sale de la siguiente manera:

Page 17: Vectores y Matrices

EJERCICIO#2

ELEMENTO MAYOR DE CADA FILA DE UNA MATRIZ

Para realizar este ejercicio he utilizado:

2 Label

2 textbox

3 groupbox

3 buttons

1 lisbox

1 picturebox

Primero se le declara a la matriz de la siguiente manera:

int[,] Mat = new int[7, 7];

Luego le programamos lo que realiza cada uno de los elementos.

Page 18: Vectores y Matrices

Textbox1 (TxtDato)

El primer textbox utilizamos para poner la dimensión de la matriz.

Textbox2 (TxtMatriz)

En este textbox generamos la matriz que nosotros deseamos.

Listbox1

En este listbox se generan los números mayores de cada fila.

Botón Generar

Page 19: Vectores y Matrices

Este botón genera la matriz dada en el segundotextbox.

Y su código es el siguiente:

Random objrandon = new Random(); int a = int.Parse(TxtDato.Text); for (int k = 0; k < a; k++) { for (int l = 0; l < a; l++) { mat[l, k] = objrandon.Next(20); TxtMatriz.Text += mat[l, k] + " "; } TxtMatriz.Text += " \r\n"; }

Botón Mayor

Este botón genera los números mayores y los muestra en el lisbox.

Su código es el siguiente:

int may;

int fi = (int.Parse(TxtDato.Text));

listBox1.Items.Clear();

for (int fil = 0; fil < fi; fil++)

{

may = mat[fil, 0];

for (int col = 0; col < fi; col++)

{

if (may <= mat[col, fil])

may = mat[col, fil];

}

listBox1.Items.Add(may.ToString());

}

Botón Salir

Page 20: Vectores y Matrices

Este botón sale del prigrama.

Su código es el siguiente:

this.Close();

Al compilar el programa nos sale de la siguiente manera:

Page 21: Vectores y Matrices

EJERCICIO #3

ELIMINAR UN ELEMENTO DE UN VECTOR

Para realizar este ejercicio se ha utilizado:

5 label

4 groupbox

3 textbox

1 listbox

5 buttons

Primero le declaramos al vector de la siguiente manera:

int[] vec = new int[5]; int i = 0;

Ahora vamos a describir para que se utilizó cada uno de los elementos.

Textbox1 (txtNumeros)

Este textbox sirve para escribir los elementos del vector.

Page 22: Vectores y Matrices

Botón OK

Este botón sirve para guardar los elementos del vector.

Y su código es el siguiente:

vec[i] = int.Parse(txtNumeros.Text); i++; if (i >= 5) bttnOK.Enabled = false;

Textbox2 (txtVectororiginal)

Este textbox sirve para imprimir el vector.

Textbox 3 (txtElementoeliminar)

Aquí ingresamos el elemento que deseamos eliminar.

Listbox1

Page 23: Vectores y Matrices

Aquí se imprime todos el vector excepto el elemento eliminado.

Botón Mostrar vector original

Este botón permite mostrar el vector original en un textbox.

Su código es:

for (int j = 0; j < i; j++) txtVectororiginal.Text += vec[j]+" "; txtVectororiginal.Text += "\r\n";

Botón Eliminar

Este botón sirve para eliminar el elemento, pero cuando ya se compila no hay que utilizarlo.

Su código es:

int a = int.Parse(txtElementoeliminar.Text); int aux; for (int j = 0; j < i-1; j++) { if (vec[j] == a) { for (aux = j; aux < i; j++) vec[aux] = vec[aux + 1]; } }

Botón Mostrar vector nuevo

En este botón se muestra el nuevo vector sin el elemento a eliminar.

Su código es:

int a = int.Parse(txtElementoeliminar.Text); for (int j = 0; j < i; j++) { if (vec[j]!= a)

Page 24: Vectores y Matrices

{ listBox1.Items.Add(vec[j].ToString()); } }

Botón Salir

Este botón sale de la programación.

Su código es:

this.Close();

Al compilar elprogramaqueda dela siguiente manera:

Page 25: Vectores y Matrices

MARÍA BELÉN HARO SANTAMARÍA

CONTENIDOS

- Como Insertar una columna en una matriz no cuadrática

- Escribir una matriz cuadrática

- Matriz Unidad

DESCRIPCIÓN DE CONTENIDOS

- Como Insertar una columna en una matriz no cuadrática

Para insertar una columna en una matriz en C# primero debemos declarar la matriz de la siguiente

manera:

int[,] Mat = new int[7, 7];

Los números que vamos a generar en la matríz son de manera aleatoria,

luego procedemos a insertar una nueva columna en la matriz:

int a = int.Parse(TxtFila.Text);

int b = int.Parse(TxtColumna.Text);

Random rdm = new Random();

for (int i = 0; i < a; i++)

{

for (int j = 0; j < b + 1; j++)

{

Mat[j, i] = rdm.Next(10);

TxtMatriz.Text+= Mat[j,i]+" ";

}

TxtMatriz.Text += "\r\n\n";

Page 26: Vectores y Matrices

}

A continuación se muestra a través de pantallas y todo el código que se

ha implementado para obtener la insercción de una nueva columna.

CODIGO

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WinAppLeerMatriz

{

public partial class Form2 : Form

{

int[,] Mat = new int[7, 7];

public Form2()

{

InitializeComponent();

}

private void BtnSalir_Click(object sender, EventArgs e)

{

this.Close();

}

private void BtnInsertar_Click(object sender, EventArgs e)

{

int a = int.Parse(TxtFila.Text);

int b = int.Parse(TxtColumna.Text);

Page 27: Vectores y Matrices

Random rdm = new Random();

for (int i = 0; i < a; i++)

{

for (int j = 0; j < b + 1; j++)

{

Mat[j, i] = rdm.Next(10);

TxtMatriz.Text+= Mat[j,i]+" ";

}

TxtMatriz.Text += "\r\n\n";

}

}

private void Form2_Load(object sender, EventArgs e)

{

}

private void LblIngrese_Click(object sender, EventArgs e)

{

}

private void label1_Click(object sender, EventArgs e)

{

}

private void TxtFila_TextChanged(object sender, EventArgs e)

{

}

private void TxtColumna_TextChanged(object sender, EventArgs e)

{

}

private void TxtMatriz_TextChanged(object sender, EventArgs e)

{

}

}

}

Page 28: Vectores y Matrices

- Escribir una matriz cuadrática

Para escribir una matriz necesitamos el siguiente código:

int a = int.Parse(TxtDato.Text);

Random rdm = new Random();

for (int i = 0; i < a; i++)

{

for (int j = 0; j < a; j++)

{

Mat[j, i] = rdm.Next(10);

TxtMatriz.Text += Mat[j, i] + " ";

}

TxtMatriz.Text += "\r\n\n";

}

La siguiente pantalla muestra como queda implementado el código

using System;

using System.Collections.Generic;

using System.ComponentModel;

Page 29: Vectores y Matrices

using System.Data; using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WinAppLeerMatriz

{

public partial class Form3 : Form

{

int[,] Mat = new int[7, 7];

public Form3()

{

InitializeComponent();

}

private void BtnInsertar_Click(object sender, EventArgs e)

{

int a = int.Parse(TxtDato.Text);

Random rdm = new Random();

for (int i = 0; i < a; i++)

{

for (int j = 0; j < a; j++)

{

Mat[j, i] = rdm.Next(10);

TxtMatriz.Text += Mat[j, i] + " ";

}

TxtMatriz.Text += "\r\n\n";

}

}

private void Form3_Load(object sender, EventArgs e)

{

}

private void BtnSalir_Click(object sender, EventArgs e)

{

this.Close();

}

}

}

Page 30: Vectores y Matrices

- Matriz Unidad

La matriz unidad es una matriz cuadrática en la que su diagonal principal

esta formada por 1 y sus demás elementos son 0 el código que se ingresa a

continuación muestra una matríz unidad:

int a = int.Parse(TxtDato.Text);

for (int i = 0; i < a; i++)

{

for (int j = 0; j < a; j++)

{

if ( i == j )

Mat[j,i] = 1;

else

Mat[j,i] = 0;

TxtMatriz.Text += Mat[j, i] + " ";

}

TxtMatriz.Text += "\r\n\n";

}

A continuación se muestra en la pantalla como queda el código

implementado

Page 31: Vectores y Matrices

CODIGO

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WinAppLeerMatriz

{

public partial class Form4 : Form

{

int [,]Mat= new int[7,7];

public Form4()

{

InitializeComponent();

}

private void BtnSalir_Click(object sender, EventArgs e)

{

this.Close();

}

private void BtnInsertar_Click(object sender, EventArgs e)

{

int a = int.Parse(TxtDato.Text);

for (int i = 0; i < a; i++)

{

for (int j = 0; j < a; j++)

{

Page 32: Vectores y Matrices

if ( i == j )

Mat[j,i] = 1;

else

Mat[j,i] = 0;

TxtMatriz.Text += Mat[j, i] + " ";

}

TxtMatriz.Text += "\r\n\n";

}

}

private void Form4_Load(object sender, EventArgs e)

{

}

private void LblTitulo_Click(object sender, EventArgs e)

{

}

private void LblIngrese_Click(object sender, EventArgs e)

{

}

private void TxtDato_TextChanged(object sender, EventArgs e)

{

}

private void label3_Click(object sender, EventArgs e)

{

}

private void TxtMatriz_TextChanged(object sender, EventArgs e)

{

}

}

}

Page 33: Vectores y Matrices

Programador: Gerardo David Vera Cabrera

EJERCICIO # 1

Descripción:

Realizar un programa que permita ingresar N elementosde un vector, y encontrar en

mayor de ellos. Al ingresar el tamaño del vector procedemos a escribir cada número hasta

llenar los N ingresados. Procedemos hacer clic en el botón Mostrar para obtener el

número mayor de dicho vector.

Botón Crear.-Controla si el textbox está vacio saldrá un mensaje “Ingrese Número”,

caso contrario crea el vector.

Botón Escribir.-Escribe o ingresa cada valor del vector hasta llegar al número

máximo, controla la cantidad de valores ingresar mediante en mensaje de texto "Vector Lleno".

Botón Mostrar.-Este botón muestra en lista los valores escritos anteriormente

mediante el botón Escribir.

Botón Mayor.- Muestra el resultado, mayor valor ingresado.

Botón Cerrar.- Sale del programa.

Page 34: Vectores y Matrices

1) DISEÑO

2) CODIGO

Declaracióndel Vector:

publicpartialclassForm_mayor : Form

{

int x = 0;

int[] vector = newint[30];

int i = 0;

BotónCrear:

privatevoid button_Crear_Click(object sender, EventArgs e)

{

if (txt_vector.Text == "")

MessageBox.Show("Ingrese numero");

else

{

string d = txt_vector.Text;

x = int.Parse(d);

txt_numero.Focus();

}

}

Botón Escribir:

privatevoid button_escribir_Click(object sender, EventArgs e)

{

vector[i]=int.Parse(txt_numero.Text);

if (i<(x-1))

{

i++;

txt_numero.Text = "";

}

else

MessageBox.Show("Vector Lleno");

}

BotónMostrar:

privatevoid button2_Click(object sender, EventArgs e)

{

Page 35: Vectores y Matrices

for (i=0; i<x; i++)

{

listBox_vector.Items.Add(vector[i]);

}

}

Botón Mayor:

privatevoid button_mayor_Click(object sender, EventArgs e)

{

int j;

int mayor=0;

for (j = 0; j < x; j++)

{

if (vector[j] > mayor)

{

mayor = vector[j];

}

}

listBox_mayor.Items.Add(mayor);

}

Botón Salir:

privatevoid button_salir_Click(object sender, EventArgs e)

{

this.Close();

}

3) DISEÑO EJECUTADO

EJERCICIO # 2

Descripción:

Page 36: Vectores y Matrices

Realizar un programa que permita dimensionar una matriz aleatoria de N orden, hallar el

número mayor.

Mediante este programa ingresamos una dimensión o tamaño de una matriz, los valores

mostrados en el listbox saldrán aleatoriamente, luego se ejecutara el botón mayor para

obtener en número mayor de dicha matriz.

Botón Crear.- Controla si el textbox está vacio saldrá un mensaje "Ingrese la

Dimensión” caso contrario crea el vector.

Botón Cargar.-Este botón carga o muestra en lista los valores aleatorios creados

por un Rango(Random) mediante el botón Crear.

Botón Mayor.- Muestra el resultado, mayor valor de la matriz ingresado.

Botón Cerrar.- Sale del programa.

1. DISEÑO

2. CODIGO

Declaración de la matriz.

publicpartialclassForm_matriz_mayor : Form

{

int x = 0;

int y = 0;

int[,] matriz = newint[4, 4];

BotónSalir

privatevoid button_salir_Click(object sender, EventArgs e)

{

this.Close();

}

BotónCargar

Page 37: Vectores y Matrices

privatevoid button_cargar_Click(object sender, EventArgs e)

{

int i = 0;

int j = 0;

for (i = 0; i < x; i++)

{

for (j = 0; j < y; j++)

listBox_matriz.Items.Add(matriz[i, j]);

}

}

Botón Crear

privatevoid button_crear_Click(object sender, EventArgs e)

{

int j = 0;

int i=0;

string d1 = txt_matrix.Text;

string d2 = txt_matrix.Text;

x = int.Parse(d1);

y = int.Parse(d2);

Random obj = newRandom();

if (txt_matrix.Text == "")

MessageBox.Show("Ingrese la Dimensión");

else

{

for (i = 0; i < x; i++)

{

for (j = 0; j < y; j++)

matriz[i, j] = obj.Next(5);

}

}

}

Botón Mayor

privatevoid button_mayor_Click(object sender, EventArgs e)

{

int j = 0;

int h = 0;

int mayor=0;

for (j = 0; j < x; j++)

{

for (h = 0; h < y; h++)

if (matriz[j, h] > mayor)

{

mayor = matriz[j, h];

}

}

listBox_mayor.Items.Add(mayor);

}

Page 38: Vectores y Matrices

3. DISEÑO EJECUTABLE

EJERCICIO # 3

Descripción:

Realizar un programa que permita ingresar ejecutar una matriz de orden 3 x 3, y la sumatoria de

dicha matriz.

Ingresamos en el textbox los 9 elementos de la matriz orden 3 x 3. Mediante el botón Mostrar

visualizamos los elementos. Procedemos hacer clic en el botón Sumatoria para tener como

resultado la sumatoria total de la Matriz 3 x 3.

Botón Crear.- Controla si el textbox está vacio saldrá un mensaje "Ingrese

numero” caso contrario crea el vector. algun

Botón Mostrar.-Este botón o muestra en lista los valoresde la matriz 3 x3,

escritas mediante el botón Crear.

Botón Mayor.- Muestra el resultado, mayor valor de la matriz 3 x 3 ingresado.

Botón Cerrar.- Sale del programa.

1. DISEÑO

2. CODIGO

Declaración de la matriz

Page 39: Vectores y Matrices

publicpartialclassForm1 : Form

{

int[,] matriz = newint[3, 3];

int i=0;

int j = 0;

Botón Crear

privatevoid btncrear_Click(object sender, EventArgs e)

{

if (numero.Text == "")

MessageBox.Show("Ingrese algun numero");

else

{

matriz [i, j] = int.Parse(numero.Text);

j++;

if (i < 2)

{

if (j > 2)

{

i++;

j = 0;

}

}

numero.Text = "";

if ((i >= 2) && (j > 2))

{

MessageBox.Show("Esta llena la matriz");

ingresar.Enabled = false;

}

}

}

Botón Mostrar

privatevoid button1_Click(object sender, EventArgs e)

{

for (int g = 0; g < 3; g++)

for (int z = 0; z < 3; z++)

List_Box_mostrar.Items.Add(matriz[g, z]);

}

privatevoid btnsumar_Click(object sender, EventArgs e)

{

int suma = 0;

for (int g = 0; g < 3; g++){

for (int z = 0; z < 3; z++)

suma = suma + matriz[g, z];

}

List_Box_mayor.Items.Add(suma);

}

3. DISEÑO EJECUTABLE

Page 40: Vectores y Matrices

Programas sobre Matrices

Carla Noriega. A

Programas realizados:

Mayor elemento de cada fila de una matriz

Eliminar una fila de una matriz

Ordenar una matriz cuadrática

Estos programas han sido realizados con el objetivo de facilitar al usuario el uso de matrices, para un buen

entendimiento del manejo de estos programas se explicaría detalladamente todo respecto a sus

propiedades y las instrucciones para poderlos ejecutar bien, paso a paso se irá explicando y mediante un

ejemplo, se podrá ver a través de imágenes los resultados de cada ejercicio.

Page 41: Vectores y Matrices

Ejercicio #1:

Titulo: “Mayor elemento de cada fila de una matriz”

Este programa tiene como objetivo mostrar el elemento mayor de cada fila, para ello primero ingresamos el

número de filas y el número de columnas, con los cuales especificaremos los limites de nuestra matriz.

La matriz es declarada en el formulario de la siguiente manera:

int[,] mat = new int[8, 8];

Después de haber ingresado esos datos, procedemos a dar click en el botón y mediante

la clase random generaremos números aleatorios que nos permitirán llenar la matriz.

private void button3_Click(object sender, EventArgs e)

{

Random objrandon = new Random();

Page 42: Vectores y Matrices

for (int k = 0; k < (int.Parse(textBox1.Text)); k++)

{

for (int l = 0; l < (int.Parse(textBox2.Text)); l++)

{

mat[k, l] = objrandon.Next(20);

textBox3.Text += mat[k, l]+ " ";

}

textBox3.Text += "\r\n";

}

}

Para poder ver la matriz creada, usaremos un textbox y podremos ver cada elemento de dicha matriz.

Una vez generado la matriz, damos click en el botón con el cual se cumple la meta de

este programa, que es obtener el mayor elemento de cada fila de la matriz. Este botón está diseñado de la

siguiente manera:

private void button1_Click(object sender, EventArgs e)

{

int may;

int fi = (int.Parse(textBox1.Text));

int co = (int.Parse(textBox2.Text));

listBox1.Items.Clear();

for (int fil = 0; fil < (fi); fil++)

{

may = mat[fil, 0];

for (int col = 0; col < (co); col++)

if (may < mat[fil, col])

may = mat[fil, col];

listBox1.Items.Add(may.ToString());

}

A través de un listbox podremos ver los elementos mayores de cada fila de toda la matriz.

Page 43: Vectores y Matrices

Para salir del programa damos click en el botón .

private void button2_Click(object sender, EventArgs e)

{

this.Close();

}

Ejercicio #2:

Titulo: “Ordenar los elementos de una matriz cuadrática”

Una matriz se declara d la siguiente forma:

int[,] mat = new int[8, 8];

Primero ingresamos el número de elementos de la matriz, como es una matriz cuadrática entonces el

número de filas debe ser igual al número de columnas:

Luego nos dirijimos a las opciones :

Page 44: Vectores y Matrices

Y damos click en la opción , este botón permitirá crear la matriz utilizando números

aleatorio gnerados por Random.

private void button1_Click(object sender, EventArgs e)

{

Random objrandon = new Random();

for (int k = 0; k < (int.Parse(textBox1.Text)); k++)

{

for (int l = 0; l < (int.Parse(textBox1.Text)); l++)

{

mat[k, l] = objrandon.Next(20);

textBox3.Text+= mat[k, l] + " ";

}

textBox3.Text += "\r\n";

Con un el uso de un textbox podremos ver los elementos de la matriz.

Después damos click en el botón , este botón nos permitirá ordenar la matriz. private void button2_Click(object sender, EventArgs e)

{

int aux;

for (int f = 0; f < (int.Parse(textBox1.Text)); f++)

for (int c = 0; c < (int.Parse(textBox1.Text)); c++)

for (int k = 0; k < (int.Parse(textBox1.Text)); k++)

for (int l = 0; l < (int.Parse(textBox1.Text)); l++)

Page 45: Vectores y Matrices

{

if (mat[k, l] > mat[f, c])

{

aux = mat[f, c];

mat[f, c] = mat[k, l];

mat[k, l] = aux;

}

}

}

Para ver los resultados presionamos el botón , con la ayuda de un textbox vamos a

mostrar en pantalla la matriz ordenada.

Para abandonar el programa presionamos en el botón , ques eta programado de la

siguiente manera:

private void button3_Click(object sender, EventArgs e)

{

this.Close();

}

Ejercicio #3:

Titulo: “Eliminar una fila de una matriz”

Page 46: Vectores y Matrices

Declaramos la matriz de la siguiente manera:

int [,] mat = new int[6, 6];

Ingresamos el numero de filas y columnas en los textboxs, y tambien el núermo de la fila que deseemso

eliminar.

En las opciones encotramos tres botones:

Page 47: Vectores y Matrices

Elejimos el botón , para llenar la matriz de números aleatorios mediante el Random, este botón ta

programado de la siguiente manera:

private void button1_Click(object sender, EventArgs e)

{

Random objrandon = new Random();

for (int k = 0; k < (int.Parse(textBox1.Text)); k++)

{

for (int l = 0; l < (int.Parse(textBox2.Text)); l++)

{

mat[k, l] = objrandon.Next(20);

textBox4.Text += mat[k, l] + " ";

}

textBox4.Text += "\r\n";

}

}

Y con un textbox veremos la matriz que generamos recientemente.

Despues de haber creado la matriz, procedemos a eliminar la fila con el botón , este bóton elimina toda la

fila que el usuario definió en el ingreso de datos.

private void button2_Click(object sender, EventArgs e)

{

for (int i = 0; i < (int.Parse(textBox1.Text)); i++)

{

for (int j = 0; j < (int.Parse(textBox2.Text)); j++)

{

if (i == int.Parse(textBox3.Text))

{

Page 48: Vectores y Matrices

for (int k = i; k < (int.Parse(textBox1.Text) - 1); k++)

{

for (int m = 0; m < (int.Parse(textBox2.Text)); m++)

{

mat[k, m] = mat[k + 1, m];

}

}

}

}

}

}

private void button3_Click(object sender, EventArgs e)

{

for (int i = 0; i < (int.Parse(textBox1.Text)); i++)

{

for (int j = 0; j < (int.Parse(textBox2.Text)); j++)

{

if (i != int.Parse(textBox3.Text))

textBox5.Text += mat[i, j] + " ";

}

textBox5.Text += "\r\n";

}

}

Al igual que los programas anterirores el uso de un textbox con tarea MultiLine, nos permitirá observar la

nueva matriz sin la fila quel usurio decidió eliminar.

Para salir damos click en el botón , que tiene una imagen en forma de x, este

botón está programado de la siguiente forma:

private void button4_Click(object sender, EventArgs e)

{

this.Close();

}