You are on page 1of 7

Arreglos en C#

Los arreglos en C# (tambin conocidos como Arrays) al igual que en C/C++, son indexados
iniciando en cero (0). La forma de trabajo es muy similar a la mayora de lenguajes pero hay
lagunas diferencias que notarn.

Como Declarar e Inicializar un Arreglo en C#


Cuando vayamos a declarar un arreglo en debemos colocar los corchetes despus de tipo de
dato. En C/C++ se estila poner los corchetes despus del identificador, eso causa un error de
compilacin en C#-

Declaracin de un Arreglo de tipo Vector en C#


//Declaracin erronea
int valores[];
//Declaracin valida
int[] valores;

En C# podemos indicar el tamao del arreglo luego de la declaracin. Esto nos permite decidir
que tamao va a tener el arreglo segn 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# tambin podemos declarar arreglos multidimensionales, aqu unos ejemplos:
//Arreglos unidimensionales o de dimensin 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
using
using
using

System;
System.Collections.Generic;
System.Linq;
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 cdigo muestra el siguiente resultado

Para la declaracin 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 mtodos.


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

Ejemplo 2
Una empresa tiene dos turnos (maana y tarde) en los que trabajan 8 empleados (4 por la
maana 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
using
using
using

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

namespace PruebaVector
{
class PruebaVector3
{
private float[] turnoM; //Declaramos un vector para el turno maana
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 maana.");
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 turnomaana
}
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 turnotarde
}
}
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
vectorturno Maana
tar = tar + turnoT[f]; //Realizamos la suna de los valores del vectorturno Tarde
}
Console.WriteLine("Total de gastos del turno de la maana:" + 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 cdigo muestra el siguiente resultado

Ejemplo 3
Se tienen las notas del primer parcial de los alumnos de dos cursos, Matemtica y el Fsica,
cada curso cuenta con 5 alumnos.
Realizar un programa que muestre el curso que obtuvo el mayor promedio general.
using
using
using
using

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

namespace PruebaVector6
{
class PruebaVector6
{
private int[] quimica; //Declaramos un vector para el curso Qumica
private int[] fisica; //Declaramos un vector para el curso Fsica
private int[] vecSuma;//Declaramos un vector para la suma
public void Cargar()
{

quimica = new int[5]; //Asignamos una longitud de 5 al vector qumica


fisica = new int[5]; //Asignamos una longitud de 5 al vector Fsica
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 cdigo 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 cuntas personas son ms altas que el promedio
y cuntas ms bajas.
using
using
using
using

System;
System.Collections.Generic;
System.Linq;
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 cdigo muestra el siguiente resultado

You might also like