Mostrando entradas con la etiqueta ejercicios resueltos de matrices en c#. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejercicios resueltos de matrices en c#. Mostrar todas las entradas

Ejercicios Resueltos de Matrices en C#

Ejercicios Resueltos de Matrices en C# 

Ejemplo 1

Crear una matriz de 3 filas por 4 columnas con elementos de tipo int, ingresar sus posiciones y luego imprimirlas.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Matriz
{
    class Matriz
    {
        private int[,] mat;
        public void Ingresar()
        {
            mat = new int[3, 4];
            for (int f = 0; f < 3; f++)
            {
                for (int c = 0; c < 4; c++)
                {
                    Console.Write("Ingrese posicion ["+(f+1)+","+(c+1)+"]: ");
                    string linea;
                    linea = Console.ReadLine();
                    mat[f, c] = int.Parse(linea);
                }
            }
        }
        public void Imprimir()
        {
            for (int f = 0; f < 3; f++)
            {
                for (int c = 0; c < 4; c++)
                {
                    Console.Write(mat[f, c] + " ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Matriz ma = new Matriz();
            ma.Ingresar();
            ma.Imprimir();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado


Ejemplo 2

Crear una matriz de 3 filas por 4 columnas e ingresar valores enteros, imprimir la primer fila. Imprimir la última fila e imprimir la primer columna

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Matriz
{
    class Matriz
    {
        private int[,] mat;
        public void Cargar()
        {
            mat = new int[3, 4];
            for (int f = 0; f < 3; f++)
            {
                for (int c = 0; c < 4; c++)
                {
                    Console.Write("Ingrese posicion ["+(f+1)+","+(c+1)+"]: ");
                    string linea;
                    linea = Console.ReadLine();
                    mat[f, c] = int.Parse(linea);
                }
            }
        }
        public void PrimerFila()
        {
            Console.WriteLine("\nPrimer fila de la matriz:");
            for (int c = 0; c< 4; c++)
            {
                Console.Write(mat[0, c]+"  ");
            }
        }
        public void UltimaFila()
        {
            Console.WriteLine("\nUltima fila de la matriz:");
            for (int c = 0; c< 4; c++)
            {
                Console.Write(mat[2, c]+"  ");
            }
        }
        public void PrimerColumna()
        {
            Console.WriteLine("\nPrimer columna:");
            for (int f = 0; f< 3; f++)
            {
                Console.Write(mat[f, 0]+"  ");
            }
        }
        static void Main(string[] args)
        {
            Matriz ma = new Matriz();
            ma.Cargar();
            ma.PrimerFila();
            ma.UltimaFila();
            ma.PrimerColumna();
            Console.ReadKey();
        }
    }
}
Al ejecutar el código muestra el siguiente resultado

Matrices en C Sharp

Una matriz es una estructura de datos que permite almacenar un conjunto de datos del mismo tipo.
Con un único nombre se define la matriz y por medio de DOS sub índices hacemos referencia a cada elemento de la misma (componente)

Hemos graficado una matriz de 3 filas y 5 columnas. Para hacer referencia a cada elemento debemos indicar primero la fila y luego la columna, por ejemplo en la componente 1,4 se almacena el valor 97.
En este ejemplo almacenamos valores enteros. Todos los elementos de la matriz deben ser del mismo tipo (int, float, string etc.)
Las filas y columnas comienzan a numerarse a partir de cero, similar a los vectores.

Declaración  de una Matriz en C# 

C# admite matrices de una dimensión, matrices multidimensionales (matrices rectangulares) y matrices de matrices (matrices escalonadas). El siguiente ejemplo muestra cómo declarar diferentes tipos de matrices:

Matrices unidimensionales:
             int[] numbers;


Matrices multidimensionales:
             string[,] names;


Matrices de matrices (escalonadas):
             byte[][] scores;


La declaración de matrices (como se muestra arriba) no crea realmente las matrices. En C#, las matrices son objetos (se explica más adelante en este tutorial) cuyas instancias deben crearse. Los siguientes ejemplos muestran cómo crear matrices:


Matrices unidimensionales:
            int[] numbers = new int[5];


Matrices multidimensionales:
            string[,] names = new string[5,4];


Matrices de matrices (escalonadas):
            byte[][] scores = new byte[5][];
            for (int x = 0; x < scores.Length; x++) 
           {
                   scores[x] = new byte[4];
            }


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

            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[][,,][,] numbers;

Ejercicios Resueltos de Matrices en C#

Ejercicios Resueltos de Matrices en C#

Ejemplo 1
Desarrollar un programa que permita cargar 5 nombres de personas y sus edades respectivas. Luego de realizar la carga por teclado de todos los datos imprimir los nombres de las personas mayores de edad (mayores o iguales a 18 años)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaVector10
{
    class PruebaVector
    {
        private string[] nombres;
        private int[] edades;
        public void Cargar()
        {
            nombres = new string[5];
            edades = new int[5];
            for (int f = 0; f < 5; f++)
            {
                Console.Write("Ingrese nombre "+(f+1)+": ");
                nombres[f] = Console.ReadLine();
                Console.Write("Ingrese edad "+(f+1)+": ");
                string linea;
                linea = Console.ReadLine();
                edades[f] = int.Parse(linea);
            }
        }
        public void MayoresEdad()
        {
            Console.WriteLine("Personas mayores de edad.");
            for (int f = 0; f < nombres.Length; f++)
            {
                if (edades[f] >= 18)
                {
                    Console.WriteLine(nombres[f]);
                }
            }
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            PruebaVector pv = new PruebaVector();
            pv.Cargar();
            pv.MayoresEdad();
        }
    }
}
Al ejecutar el código muestra el siguiente resultado



Ejemplo 2
Realizar un programa que permita imprimir la siguiente serie:
1   0   1   0   1   0
1   0   1   0   1   0
1   0   1   0   1   0
1   0   1   0   1   0
1   0   1   0   1   0
 1   0   1   0   1   0 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PruebaVector
{
    class PruebaVector
    {
        private int[,] serie;
        public void Cargar()
        {
            serie = new int[10,10];
            for (int i = 1; i<= 6; i++)
            {
                for (int j = 1; j <= 6; j++)
                {
                    if (j % 2 == 0)
                    {
                        serie[i, j] = 0;
                    }
                    else
                    {
                        serie[i, j] = 1;
                    }
                }
            }
        }
        public void visualizar()
        {
            for (int i = 1; i< = 5; i++)
            {
                Console.Write("\n");
                for (int j = 1; j <= 6; j++)
                {
                    Console.Write(serie[i,j]+" ");
                }
            }
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            PruebaVector pv = new PruebaVector();
            pv.Cargar();
            pv.visualizar();
        }
    }
}
Al ejecutar el código muestra el siguiente resultado


Matrices en C#

Matrices en C# 

Este también es un tipo de dato estructurado, que está compuesto por n dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada dimensión. 
Conceptos básicos

Los arreglos multidimensionales tienen más de una dimensión. En C#, las dimensiones se manejan por medio de un par de corchetes, dentro de los que se escriben los valores de cada dimensión, separados por comas.
Operaciones.
Para manejar un arreglo, las operaciones a efectuarse son:

  • Declaración del arreglo, 
  • Creación del arreglo,
  • Inicialización de los elementos del arreglo, 
  •  Acceso a los elementos del arreglo. 

A continuación describiremos cada una de estas operaciones, en C#.

Declaración de Matrices en C#


La sintaxis para declarar un arreglo multidimensional es la siguiente:

<tipo>[ , ...]<identificador >; 

Donde:
Tipo indica el tipo correspondiente a los elementos del arreglo,Identificador es el nombre del arreglo, y el par de corchetes, la coma y las diéresis,[ , ...], representan las dimensiones del arreglo. Los corchetes encierran todas las comas necesarias para separar las dimensiones del arreglo.

Ejemplos:

double [ , ] bidim;// Dos dimensiones.
int [ , , ] tridim ;// Tres dimensiones.
char [ , , , ] enciclopedia;// Cuatro dimensiones. 

Observe que, en la declaración, el espacio entre los corchetes está vacío. Esto se debe a que, durante dicha operación, no se reserva espacio en la memoria.
Creación
La creación de un arreglo multidimensional consiste en reservar espacioen la memoria para todos sus elementos, utilizando la siguiente sintaxis:

<identificador > =new<tipo> [dim1, dim2 ... dimN] 

Donde:

new es el operador para gestionar espacio de memoria, en tiempo de ejecución, dim1, dim2 ,dimN son valores enteros que representan las dimensiones del arreglo.
El tamaño del arreglo es el resultado de multiplicar los valores de las dimensiones y representa el número de elementos del arreglo.
Veamos la siguiente gráfica donde se muestra una matriz (2x5), en donde se almacena 5 nombres con sus respectivas edades