Вы находитесь на странице: 1из 15

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


Ejemplo 3

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

Suma de Matrices en C# 

Ejemplo 4

Realizar un programa que permita la suma de dos matrices de 3x3 y el


resultado almacenar en un tercer matriz 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaVector
{
    class PruebaVector
    {
        private int[,] MatrizA;
        private int[,] MatrizB;
        private int[,] MatrizC;

        public void Cargar()
        {
            MatrizA = new int[10,10];
            MatrizB = new int[10, 10];
            MatrizC = new int[10, 10];

            Console.WriteLine("Ingresando datos al matriz A");


            for (int i = 1; i<= 3; i++)
            {
                for (int j = 1; j <= 3; j++)
                {
                    Console.Write("Ingrese posicion [" + i + "," + j + "]: ");
                    string linea;
                    linea = Console.ReadLine();
                    MatrizA[i, j] = int.Parse(linea);
                }
            }

            Console.WriteLine("Ingresando datos al matriz B");


            for (int i = 1; i <= 3; i++)
            {
                for (int j = 1; j <= 3; j++)
                {
                    Console.Write("Ingrese posicion [" + i + "," + j + "]: ");
                    string linea;
                    linea = Console.ReadLine();
                    MatrizB[i, j] = int.Parse(linea);
                }
            }

            //Sumamos la matrizA y la MatrizB


            for (int i = 1; i <= 3; i++)
            {
                for (int j = 1; j <= 3; j++)
                {
                    MatrizC[i,j]=MatrizA[i,j]+MatrizB[i,j];
                }
            }
        }
        // visualizamos la suma de las matrices
        public void visualizar()
        {
            Console.WriteLine("La suma de la MatrizA y MatrizB es :");
            for (int i = 1; i <= 3; i++)
            {
                Console.Write("\n");
                for (int j = 1; j <= 3; j++)
                {
                    Console.Write(MatrizC[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


No hay comentarios:
Etiquetas: arreglos y vectores en c#, c# matrices, ejemplo de matrices en c#, ejercicios
resueltos de matrices en c#, matrices en c#

Arreglos en C#

Los arreglos en C# (también conocidos como Arrays) al igual que en C/C++, son indexados
iniciando en cero (0). La forma de trabajo es muy similar a la mayoría de lenguajes pero
hay lagunas diferencias que notarán.

Como Declarar e Inicializar un Arreglo en C#

Cuando vayamos a declarar un arreglo en debemos colocar los corchetes después de tipo de
dato. En C/C++ se estila poner los corchetes después del identificador, eso causa un error
de compilación en C#-

Declaración de un Arreglo de tipo Vector en C#


        //Declaración erronea
        int valores[];
        //Declaración valida
        int[] valores;

En C# podemos indicar el tamaño del arreglo luego de la declaración. Esto nos permite
decidir que tamaño va a tener el arreglo según lo que necesitemos. 
        int[] valores; //valores sin inicializar
        valores = new int[100];  //100 elementos
        valores = new int[20];  //ahora contiene 20 elementos

Arreglos Multi-dimensionales

En C# también podemos declarar arreglos multidimensionales, aquí unos ejemplos:

//Arreglos unidimensionales o de dimensión simple


        int[] valores1;                       //sin inicializar
        int[] valores2 = new int[50];

        //Arreglos multidimensionales


        int[,] valores1;                    //sin inicializar
        int[,] valores2 = new int[3,7];
        int[,,] valores3 = new int[3,4,2]; //Arreglo de tres dimensiones

        //Arreglo de arreglos


        int[][] matriz;                   //sin inicializar
        //Los arreglos de arreglos se inicializan de manera diferente
        int[][] matriz = new int[3][];
        for (int i = 0; i < matriz.Length; i++)
        {
            matriz[i] = new int[4];
        }

Para entender mejor el tema de arreglos en c# veremos algunos ejemplos de aplicacion 

Ejercicios Resueltos de Arreglos en C# 

Ejemplo 1

Realizar un programa que guardar los sueldos de 5 operarios en un arreglo de tipo vector

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaVector1
{
    class PruebaVector1
    {
        private int[] sueldos; //Declaramos un vector
        public void Cargar()
        {
            sueldos = new int[6]; //Inicializamos el vector en 5
            for (int f = 1; f <= 5; f++)
            {
                Console.Write("Ingrese sueldo del operario "+f+": ");
                String linea;
                linea = Console.ReadLine();
                sueldos[f] = int.Parse(linea); //Asignamos los 5 sueldos al vector
            }
        }
        //Muestra los sueldos de los operarios en el vector sueldos[f]
        public void Imprimir()
        {
            Console.Write("Los 5 sueldos de los aperarios \n");
            for (int f = 1; f <= 5; f++)
            {
                Console.Write("["+sueldos[f]+"] ");
            }
            Console.ReadKey();
        }
        //main principal
        static void Main(string[] args)
        {
            PruebaVector1 pv = new PruebaVector1();
            pv.Cargar();
            pv.Imprimir();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado

Para la declaración de un vector le antecedemos al nombre los corchetes abiertos y


cerrados:

private int[] sueldos;

Lo definimos como atributo de la clase ya que lo utilizaremos en los dos métodos.


En el método de Cargar lo primero que hacemos es crear el vector (en C# los vectores son
objetos por lo que es necesario proceder a su creación mediante el operador new):
sueldos = new int[6];

Ejemplo 2

Una empresa tiene dos turnos (mañana y tarde) en los que trabajan 8 empleados (4 por la
mañana y 4 por la tarde)
Desarrollar un programa que permita almacenar los sueldos de los empleados agrupados
por turno.
Imprimir los gastos en sueldos de cada turno.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaVector
{
    class PruebaVector3
    {
        private float[] turnoM; //Declaramos un vector para el turno mañana
        private float[] turnoT; //Declaramos un vector para el turno tarde

        public void Cargar()


        {
            string linea;
            turnoM = new float[4]; //Asignamos al vector una de longitud 4
            turnoT = new float[4]; //Asignamos al vector una de longitud 4
            Console.WriteLine("Sueldos de empleados del turno de la mañana.");
            for (int f = 0; f < 4; f++)
            {
                Console.Write("Ingrese sueldo "+(f+1)+": ");
                linea = Console.ReadLine();
                turnoM[f] = float.Parse(linea); //Asignamos valores al vector turno
mañana
            }
            Console.WriteLine("Sueldos de empleados del turno de la tarde.");
            for (int f = 0; f < 4; f++)
            {
                Console.Write("Ingrese sueldo "+(f+1)+": ");
                linea = Console.ReadLine();
                turnoT[f] = float.Parse(linea); //Asignamos valores al vector turno
tarde
            }
        }

        public void CalcularGastos()


        {
            float man = 0;
            float tar = 0;
            for (int f = 0; f < 4; f++)
            {
               man = man + turnoM[f]; //Realizamos la suna de los valores del vector
turno Mañana
               tar = tar + turnoT[f]; //Realizamos la suna de los valores del vector
turno Tarde
            }
            Console.WriteLine("Total de gastos del turno de la mañana:" + man);
            Console.WriteLine("Total de gastos del turno de la tarde:" + tar);
            Console.ReadKey();
        }

        static void Main(string[] args)


        {
            PruebaVector3 pv = new PruebaVector3();
            pv.Cargar();
            pv.CalcularGastos();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado

Ejemplo 3

Se tienen las notas del primer parcial de los alumnos de dos cursos, Matemática y el Física,
cada curso cuenta con 5 alumnos.
Realizar un programa que muestre el curso que obtuvo el mayor promedio general.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaVector6
{
    class PruebaVector6
    {
        private int[] quimica; //Declaramos un vector para el curso Química
        private int[] fisica; //Declaramos un vector para el curso Física
        private int[] vecSuma;//Declaramos un vector para la suma

        public void Cargar()


        {
            quimica = new int[5]; //Asignamos una longitud de 5 al vector química
            fisica = new int[5]; //Asignamos una longitud de 5 al vector Física 
            Console.WriteLine("Ingrese notas del curso Quimica");
            for (int f = 0; f < 5; f++)
            {
                Console.Write("Ingrese nota "+(f+1)+": ");
                string linea;
                linea = Console.ReadLine();
                quimica[f] = int.Parse(linea);
            }
            Console.WriteLine("Ingrese notas del Fisica");
            for (int f = 0; f < 5; f++)
            {
                Console.Write("Ingrese nota "+(f+1)+": ");
                string linea;
                linea = Console.ReadLine();
                fisica[f] = int.Parse(linea);
            }
        }

        public void CalcularPromedios()


        {
            int suma1 = 0;
            int suma2 = 0;
            for (int f = 0; f < 5; f++)
            {
                suma1 = suma1 + quimica[f];
                suma2 = suma2 + fisica[f];
            }
            int promedioa = suma1 / 5;
            int promediob = suma2 / 5;
            if (promedioa > promediob)
            {
                Console.WriteLine("El curso de Quimica tiene un promedio mayor.");
            }
            else
            {
                Console.WriteLine("El curso de Fisica tiene un promedio mayor.");
            }
            Console.ReadKey();
        }

        static void Main(string[] args)


        {
            PruebaVector6 pv = new PruebaVector6();
            pv.Cargar();
            pv.CalcularPromedios();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado


Ejemplo 4

Realizar un programa que defina un vector de 5 componentes de tipo float que representen
las alturas de 5 personas.
Obtener el promedio de las mismas. Contar cuántas personas son más altas que el promedio
y cuántas más bajas.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaVector2
{
    class PruebaVector2
    {
        private float[] alturas;
        private float promedio;

        public void Cargar()


        {
            alturas = new float[5];
            for (int f = 0; f < 5; f++)
            {
                Console.Write("Ingrese la altura de la persona: "+(f+1)+": ");
                string linea = Console.ReadLine();
                alturas[f] = float.Parse(linea);
            }
        }

        public void CalcularPromedio()


        {
            float suma;
            suma = 0;
            for (int f = 0; f < 5; f++)
            {
                suma = suma + alturas[f];
            }
            promedio = suma / 5;
            Console.WriteLine("Promedio de alturas es:" + promedio);
        }
        public void MayoresMenores()
        {
            int may, men;
            may = 0;
            men = 0;
            for (int f = 0; f < 5; f++)
            {
                if (alturas[f] > promedio)
                {
                    may++;
                }
                else
                {
                    if (alturas[f] < promedio)
                    {
                        men++;
                    }
                }
            }
            Console.WriteLine("Cantidad de personas mayores al promedio:" + may);
            Console.WriteLine("Cantidad de personas menores al promedio:" + men);
            Console.ReadKey();
        }

        static void Main(string[] args)


        {
            PruebaVector2 pv2 = new PruebaVector2();
            pv2.Cargar();
            pv2.CalcularPromedio();
            pv2.MayoresMenores();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado

Вам также может понравиться