Mostrando entradas con la etiqueta c# vectores. Mostrar todas las entradas
Mostrando entradas con la etiqueta c# vectores. Mostrar todas las entradas

Ejemplo de Vectores y Matrices en C#

Ejemplo de Vectores y Matrices en C#

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


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

Vectores y Matrices en C#

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 multi-dimencional.

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