Vectores y Matrices en C#

Un array (matriz o vector) es un conjunto finito y ordenado de elementos homogéneos. La propiedad “ordenado” significa que el elemento primero, segundo y tercero,…, enésimo de un array puede ser identificado. Los elementos del array son homogéneos, es decir, del mismo tipo de datos. Los array también se conocen como matrices-en matemáticas- y tablas- en cálculos financieros.

En otras palabras un arreglo es una especie de variable que contiene muchos valores pero cada uno con una posición diferente. Un arreglo puede ser unidimensional o vectorial, bidimensional o matricial, o multidimencional.

Vectores en C#

Qué es un vector? Un vector (o arreglo unidimensional) es una estructura de datos en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que un arreglo es una lista de n elementos que posee las siguientes características:

  • Se identifica por un único nombre de variable
  • Sus elementos se almacenan en posiciones contiguas de memoria
  • Se accede a cada uno de sus elementos en forma aleatoria


Matrices en C#


Ejercicios Sobre Vectores y Matrices en C#

Ejercicio 1

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


Ejemplo 2

Se desea saber la temperatura media trimestral de cuatro provincias. Para ello se tiene como dato las temperaturas medias mensuales de dichas provincias.
Se debe ingresar el nombre de la provincia y seguidamente las tres temperaturas medias mensuales.
Seleccionar las estructuras de datos adecuadas para el almacenamiento de los datos en memoria.
  1. Ingresar por teclado los nombres de las provincias y las temperaturas medias mensuales.
  2. Imprimir los nombres de las provincias y las temperaturas medias mensuales de las mismas.
  3. Calcular la temperatura media trimestral de cada provincia.
  4. Imprimir los nombres de las provincias y las temperaturas medias trimestrales.
  5. Imprimir el nombre de la provincia con la temperatura media trimestral mayor.

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

namespace Matriz
{
    class Matriz
    {
        private string[] paises;
        private int[,] tempmen;
        private int[] temptri;

        public void Cargar()
        {
            paises = new String[4];
            tempmen = new int[4, 3];
            for (int f = 0; f < paises.Length; f++)
            {
                Console.Write("Ingrese el nombre de la provincia "+(f+1)+": ");
                paises[f] = Console.ReadLine();
                for (int c = 0; c < tempmen.GetLength(1); c++)
                {
                    Console.Write("Ingrese temperatura mensual " + (c + 1) + ": ");
                    string linea = Console.ReadLine();
                    tempmen[f, c] = int.Parse(linea);
                }
            }
        }

        public void ImprimirTempMensuales()
        {
            for (int f = 0; f < paises.Length; f++)
            {
                Console.Write("Provincia:" + paises[f] + ":");
                for (int c = 0; c < tempmen.GetLength(1); c++)
                {
                    Console.Write(tempmen[f, c] + " ");
                }
                Console.WriteLine();
            }
        }

        public void CalcularTemperaturaTri()
        {
            temptri = new int[4];
            for (int f = 0; f < tempmen.GetLength(0); f++)
            {
                int suma = 0;
                for (int c = 0; c < tempmen.GetLength(1); c++)
                {
                    suma = suma + tempmen[f, c];
                }
                temptri[f] = suma / 3;
            }
        }

        public void ImprimirTempTrimestrales()
        {
            Console.WriteLine("Temperaturas trimestrales.");
            for (int f = 0; f < paises.Length; f++)
            {
                Console.WriteLine(paises[f] + " " + temptri[f]);
            }
        }

        public void PaisMayorTemperaturaTri()
        {
            int may = temptri[0];
            string nom = paises[0];
            for (int f = 0; f < paises.Length; f++)
            {
                if (temptri[f] > may)
                {
                    may = temptri[f];
                    nom = paises[f];
                }
            }
            Console.WriteLine("Provincia con temperatura trimestral mayor es " + nom + " que tiene una temperatura de " + may);
        }

        static void Main(string[] args)
        {
            Matriz ma = new Matriz();
            ma.Cargar();
            ma.ImprimirTempMensuales();
            ma.CalcularTemperaturaTri();
            ma.ImprimirTempTrimestrales();
            ma.PaisMayorTemperaturaTri();
            Console.ReadKey();
        }
    }
}

Al ejecutar el código muestra el siguiente resultado



1 comentario:

  1. Hola buenas noches!! Quería hacerle una consulta!! TENGO UNA ENORME DUDA DE ESTE PROBLEMA Y SE QUE UD ME PODRIA DAR UNA MANO. Yo tengo una matriz llamada Comidas, de 3 filas por 6 columnas, y un vector llamado Precios, de 6 posiciones.
    En las 3 filas tengo diferentes platos de restaurante.
    En las 6 columnas los diferentes productos que lleva cada plato
    En el vector los precios de los 6 productos.
    • Consultar el costo de un plato (producto). El usuario podrá ingresar el código de la misma y se le mostrará solamente el precio final.
    •Listar por pantalla (en una grilla) los precios de todos los platos del restaurante.
    •Mostrar el costo de un plato en particular, detallando en una grilla la cantidad de productos que requiere, el precio por unidad y el costo del producto requerido.
    •Imprimir los costos por platos detallando el costo de cada producto que se utiliza para la preparación de la misma.
    •Actualizar los precios de los productos. El usuario podrá ingresar un porcentaje de aumento y serán actualizados los precios de los 6 productos almacenados en el vector.
    •Consultar la cantidad que se requiere de un producto para cada plato. El usuario deberá ingresar el código de insumo y se listará la información por pantalla (en una grilla).

    ResponderEliminar