namespace Pry01_OperArreglos
{
//Definir metodos que represmnetan las operaciones
//mas importantes del arreglo
public class COperArreglos
{
//Metodo para agregar elemntos al arreglo
//a representa el arreglo
//len la longitud-tamaño
//v es el nuevo valor que es agregqado
public static int agregarArray(int[] a,ref int len,int v)
{ a[len]=v;//asignar el valor v al arreglo a en posicion leb
len++;//incremnetar en la longitud del arreglo
//retorna el tamañao dl arreflo disminuido en
//pues el indice del arreglo inicia en
return len-1;
}
//metodo de busqueda de elemnto en el arreglo
public static int buscarArray(int[] a,int len,int v)
{
int i = 0;//posicio-indice del arreglo
//recorremos el arreglo
//mientras q el valor del indice(i) sea menor al tamaño del arreglo y
el elemento del arreglo a en el indice i
//sea diferente del elemnto buscado, recorre el arreglo y captura su
posicion en i
while(i<len && a[i]!=v)
{
i++;//incrementa el indice del arreglo
}
//retornar i si es menor q len(longitud del arreglo)
//caso contrario -1
return i<len ? i : -1;//en caso q len sea menor a i--retorna i--caso
contrario -1
}
//metodo paar buscar y agregar los elemntos en el arreglo
//a areglo, len el taño
//v es el valor a buscar y ser agregado si no existe
//enc indica si el elemneto ya esta en el arreglo
public static int buscaryAgregarArray(int[] a,ref int len,int v,ref int
enc)
{
//buscar elemnto y capturaar posicion
int pos = buscarArray(a, len, v);
//si existe elemnto
if (pos>=0)
enc=1;
else
{
//no existe el elmento, hay q agregarlo
enc=0;
pos=agregarArray(a, ref len, v);
}
return pos;
}
//metodo para insertar un elemnto en el arreglo
//en una determinada posicion
public static void insertarArray(int[] a,ref int len, int v,int pos)
{
int i;
//recorre arreglo desde abajo
//todos los elementos del arreglo a apartir de la poscion(pos)
//bajan una poscion mas para ser alamacenados
for (i=len; i<pos; i--)
{
//alamcenar desde la ultima posicon del arreglo
//el elemnto de la poscicion anterior
a[i]=a[i-1];
}
//almacenamos el nuevo valor(v) en el arreglo a
//segun poscion(pos)
a[pos]=v;
//actualizamos el tamaño del arreglo +1
len++;
}
//metodo para eliminar un elemento del arreglo
//en una determinada posicion
public static void eliminarArray(int[] a, ref int len,int pos)
{
int i;
//recorre arreglo a apartir de pos
//todos los elementos del arreglo a apartir de la poscion(pos)
//suben una poscion mas para ser alamacenados
for (i=pos;i<len-1; i++)
{
//alamcenamos desde la poscion(pos) del arreglo
//el elemnto d ela posicion siguiente
a[i]=a[i+1];
}
//actualizamos el tamaño del arreglo -1
len--;
}
//metodo para ordenar los elemntos del arreglo(metodo burbuja)
public static void OrdenarBurbujaArray(int[] a, int len)
{
int ordenado = 0;//indica si el arreglo esta ordenado o no
while (ordenado==0)
{
ordenado=1;//asignar 1 a ordenado
int i;
for (i=0; i<len-1; i++)
{
//comparar el elemnto actual del arreglo
//con el elemnto siguiente
if (a[i]>a[i+1])
{
//intercambiamos
int aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
//ordenado sea 0
ordenado=0;
}
}
}
}
//metodo para mostrar los elementos del arreglo
public static void mostrarArray(int[] a,int len)
{
int i;
for (i=0; i<len; i++)
{
Console.Write(a[i]+"\t");
}
}
//metodo para mostrar el menu de arreglos
public static int menuArray()
{
int opc;//opcion del menu seleccionado
Console.Clear();
Console.WriteLine("Menu-Operaciones con arreglos");
Console.WriteLine("*******************************");
Console.WriteLine("[1] AGREGAR");
Console.WriteLine("[2] BUSCAR");
Console.WriteLine("[3] BUSCAR Y AGREGAR");
Console.WriteLine("[4] INSERTAR");
Console.WriteLine("[5] ELIMINAR");
Console.WriteLine("[6] ORDENAR (Método Burbuja) ");
Console.WriteLine("[7] SALIR\n");
Console.Write("Ingrese Opción : ");
opc=int.Parse(Console.ReadLine());
return opc;
}
}
static void Main(string[] args)
{
//definri el arreglo (arr) de tamaño 50
int[] arr = new int[50];
int len = 0;//longitud del arreglo
int v;//Valor del elemnto del arreglo
int enc = 0;//indica si el elemnto se encuentra en el arreglo
int pos;//posicion del elemento del arreglo
int opcion;//opcion para el menu
do
{
//llamar al menu
opcion=COperArreglos.menuArray();
//limpiamos consola
Console.Clear();
//controalr opciomnes del menu
switch (opcion)
{
case 1: //Agregar elemntos al arreglo
Console.WriteLine("AGREGANDO ELEMNTOS AL ARREGLO");
Console.WriteLine("******************************");
COperArreglos.agregarArray(arr, ref len, 13);
COperArreglos.agregarArray(arr, ref len, 1);
COperArreglos.agregarArray(arr, ref len, 100);
//MOstrar arreglo
COperArreglos.mostrarArray(arr, len);
break;
}
//pausa
Console.ReadKey();
} while (opcion!=7);
}