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

Ejercicios De Vectores y Matrices en C#

Ejercicios De Vectores y Matrices en C#

Ejercicio 
Se tiene la siguiente información:
· Nombres de 4 operarios.
· Ingresos en concepto de sueldo, cobrado por cada operario, en los últimos 3 meses.
Realizar un programa para:
  1. Realizar el ingreso de la información mencionada. 
  2. Generar un vector que contenga el ingreso acumulado en sueldos en los últimos 3 meses para cada operario.
  3. Mostrar por pantalla el total pagado en sueldos a todos los operarios en los últimos 3 meses 
  4. Obtener el nombre del operario que tuvo el mayor ingreso acumulado
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Matriz
{
    class Matriz
    {
        private string[] empleados;
        private int[,] sueldos;
        private int[] sueldostot;
        public void Cargar()
        {
            empleados = new String[4];
            sueldos = new int[4, 3];
            for (int f = 0; f< empleados.Length; f++)
            {
                Console.Write("Ingrese el nombre del operario "+(f+1)+": ");
                empleados[f] = Console.ReadLine();
                for (int c = 0; c < sueldos.GetLength(1); c++)
                {
                    Console.Write("Ingrese sueldo " + (c + 1) + ": ");
                    string linea;
                    linea = Console.ReadLine();
                    sueldos[f, c] = int.Parse(linea);
                }
            }
        }
        public void CalcularSumaSueldos()
        {
            sueldostot = new int[4];
            for (int f = 0; f< sueldos.GetLength(0); f++)
            {
                int suma = 0;
                for (int c = 0; c < sueldos.GetLength(1); c++)
                {
                    suma = suma + sueldos[f, c];
                }
                sueldostot[f] = suma;
            }
        }
        public void ImprimirTotalPagado()
        {
            Console.WriteLine("Total de sueldos pagados por Operario.");
            for (int f = 0; f< sueldostot.Length; f++)
            {
                Console.WriteLine(empleados[f] + " - " + sueldostot[f]);
            }
        }
        public void EmpleadoMayorSueldo()
        {
            int may = sueldostot[0];
            string nom = empleados[0];
            for (int f = 0; f< sueldostot.Length; f++)
            {
                if (sueldostot[f] > may)
                {
                    may = sueldostot[f];
                    nom = empleados[f];
                }
            }
            Console.WriteLine("El operario con mayor sueldo es " + nom + " que tiene un sueldo de " + may);
        }
        static void Main(string[] args)
        {
            Matriz ma = new Matriz();
            ma.Cargar();
            ma.CalcularSumaSueldos();
            ma.ImprimirTotalPagado();
            ma.EmpleadoMayorSueldo();
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado

Suma de Matrices en C#

Suma de Matrices en C#

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

Ejemplo de Matrices en C#

Ejemplo de Matrices en C#

Realizar un programa que permita imprimir la siguiente serie: 

1   0   0   0   0   0
0   1   0   0   0   0
0   0   1   0   0   0
0   0   0   1   0   0
0   0   0   0   1   0
 0   0   0   0   0   1 

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 (i==j)
                    {
                        serie[i, j] = 1;
                    }
                    else
                    {
                        serie[i, j] = 0;
                    }
                }
            }
        }
        public void visualizar()
        {
            for (int i = 1; i< = 6; 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

Estructuras Condicionales en C#

Estructuras Condicionales en C# 

Hemos visto hasta ahora que los programas van ejecutando las líneas de código con orden. Sin embargo, hay muchas situaciones en las que es preciso alterar ese orden, o bien puede ocurrir que sea necesario que se efectúen una serie de operaciones que pueden ser distintas en otras circunstancias. Por ejemplo, si el programa pide una clave de acceso, deberá continuar con la ejecución normal en caso de que la clave introducida por el usuario sea correcta, y deberá salir del mismo en caso contrario. Pues bien: para todas estas cuestiones que, por otra parte, son muy frecuentes, tenemos las estructuras de control de flujo.
En C# contamos con varias de estas estructuras, así que las iremos explicando con calma una a una, empezando en esta entrega con las estructuras condicionales. De nuevo he de avisar a los programadores de C/C++: el comportamiento de algunas de estas estructuras cambia ligeramente en C#, así que leed esta entrega atentamente, pues de lo contrario podéis encontraros con varios problemas a la hora de usarlas.
Por supuesto que en un problema se combinan estructuras secuenciales y condicionales.

Estructura Condicional if - else en c#

Es la instrucción condicional mas usada en los diversos lenguajes de programación, su formato completo y de trabajo en C Sharp es:
cargar o asignar la variable de condición;
if (condición)
{ grupo cierto de instrucciones;}
else
{ grupo falso de instrucciones; };
Tenemos 2 casos de estructuras condicionales  y son:

  1. estructuras condicionales simples 
  2. estructuras condicionales compuesta 

Estructura condicional simple.

Cuando se presenta la elección tenemos la opción de realizar una actividad o no realizar ninguna.
Representación gráfica:


Podemos observar: El rombo representa la condición. Hay dos opciones que se pueden tomar. Si la condición da verdadera se sigue el camino del verdadero, o sea el de la derecha, si la condición da falsa se sigue el camino de la izquierda.
Se trata de una estructura condicional simple porque por el camino del verdadero hay actividades y por el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias operaciones, entradas y salidas, inclusive ya veremos que puede haber otras estructuras condicionales.

Matrices en C#

Matrices en C# 

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# 

  • Matrices multidimensionales:
  • Matrices de matrices (escalonadas):
  • Matrices multidimensionales:
  • Matrices de matrices (escalonadas):

Matrices unidimensionales:
             int[] numbers;

             string[,] names;

             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];

            string[,] names = new string[5,4];

            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# 



Crear una matriz de 3 filas por 4 columnas con elementos de tipo int, ingresar sus posiciones y luego imprimirlas.
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:

Ejemplo 1


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:


Suma de Matrices en C#

Suma de Matrices en C#

Suma o adición de matrices, por ejemplo tenemos el siguiente ejemplo:

Dadas las matrices m-por-n ,A y B, su suma A + B es la matriz m-por-n calculada sumando los elementos correspondientes.

Solución en el lenguaje c#

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