Está en la página 1de 7

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

También podría gustarte