using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arreglos__Consola_
{
public class ClaseArregloDesordenado
{
private readonly int Max; // Tamaño del arreglo
private int Top; // Variable para contar la cantidad de celdas ocupadas
private int[] Arreglo; // Declaración del arreglo
public ClaseArregloDesordenado(int m) // Constructor
{
Max = m; // Se inicializa el tamaño del arreglo
Top = 0; // Se inicializa el arreglo vacío
Arreglo = new int[Max]; // Creación del arreglo
}
private bool EstaLleno() // Método para detectar si el arreglo está lleno
{
if (Top == Max)
return (true);
else
return (false);
}
public bool EstaVacio() // Método para detectar si el arreglo está vacío
{
if (Top == 0)
return (true);
else
return (false);
}
public bool Insertar(int dato) // Método para insertar un dato en el arreglo desordenado
{
if (!EstaLleno()) // Si no está lleno ...
{
for (int i = 0; i <= Top-1; i++)
if (Arreglo[i] == dato) // Comparación para detectar si el dato ya existe
return (false); // No se insertó el dato (duplicado)
Arreglo[Top] = dato; // Se inserta el dato en el arreglo
Top++; // Se incrementa la cantidad de datos del arreglo
return (true); // Dato insertado con exito
}
else
return (false); // No se insertó el dato (arreglo lleno)
}
public bool Eliminar(int dato) // Método para eliminar un dato del arreglo
{
int i = 0;
if (!EstaVacio()) // Si no está vacío ...
{
for (i = 0; i <= Top-1; i++)
{
if (Arreglo[i] == dato)
{
for (int y = i; y <= Top - 2; y++) // Desplazamiento de los valores de las celdas sucesoras
Arreglo[y] = Arreglo[y + 1];
Top--; // Se decrementa la cantidad de datos del arreglo
return (true); // Dato eliminado con exito
}
}
return (false); // No se encuentra el dato
}
else
return (false); // No se eliminó el dato (Arreglo vacío)
}
public string Mostrar() // Método para desplegar los datos en pantalla
{
string Resultado = "\n\nTop="+Top+"\n";
if (!EstaVacio()) // Si no está vacío ...
{
for (int i = 0; i <= Top-1; i++)
Resultado=Resultado+"\n["+i+"] -> "+Arreglo[i];
}
else
Resultado=Resultado+"\nArreglo vacío !!!";
return (Resultado);
}
public bool Ordenar()
{
int p = 0, i = 0, temporal=0;
if (!EstaVacio()) // Si no está vacío ...
{
for (p = 0; p <= Top - 2; p++) // Ciclo de la celda pivote
for (i = p + 1; i <= Top - 1; i++) // Ciclo del resto de los datos del arreglo
if (Arreglo[i] < Arreglo[p]) //Comparación
{
temporal = Arreglo[p];
Arreglo[p] = Arreglo[i]; // Intercambio de valores
Arreglo[i] = temporal;
}
return (true);
}
else
return (false);
}
public int ObtenerMayor() // Método que devuelve el valor más grande del arreglo
{
int Mayor = Arreglo[0]; // Inicializa la variable Mayor con el primer valor del arreglo
for (int i = 1; i <= Top-1; i++)
if (Arreglo[i] > Mayor) // Comparación
Mayor = Arreglo[i];
return (Mayor);
}
}
}
/////////////////////////////OTRA CLASE
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arreglos__Consola_
{
class Program
{
static ClaseArregloDesordenado ArregloDesordenado = new ClaseArregloDesordenado(10); // Declaracion del objeto
static void Main(string[] args)
{
Int16 opcion = 0;
do
{
Console.Clear();
Console.WriteLine("ARREGLO UNIDIMENSIONAL DESORDENADO");
Console.WriteLine("\n1.- Insertar dato");
Console.WriteLine("2.- Eliminar dato");
Console.WriteLine("3.- Ordenar datos del arreglo");
Console.WriteLine("4.- Mostrar datos del arreglo");
Console.WriteLine("5.- Mostrar el dato mayor");
Console.WriteLine("0.- Salir");
Console.Write("\n\nOpción ? ");
opcion = Int16.Parse(Console.ReadLine());
switch (opcion)
{
case 1: InsertarEnArreglo(); break;
case 2: EliminarEnArreglo(); break;
case 3: OrdenarArreglo(); break;
case 4: MostrarArreglo(); break;
case 5: BuscarMayor(); break;
}
} while (opcion != 0);
}
public static void InsertarEnArreglo()
{
int Dato = 0;
Console.Clear();
Console.WriteLine("INSERTAR DATO EN EL ARREGLO");
if (!ArregloDesordenado.EstaLleno()) // Si no está lleno ...
{
Console.Write("\nNúmero ? ");
Dato = int.Parse(Console.ReadLine()); // Captura el dato entero que se desea insertar
if (ArregloDesordenado.Insertar(Dato))
Console.WriteLine("\nDato insertado con éxito !!!");
else
Console.WriteLine("\nNo se pudo insertar el dato ...");
}
else
Console.WriteLine("\nArreglo Lleno ...");
Console.ReadKey();
}
public static void EliminarEnArreglo()
{
int Dato = 0;
Console.Clear();
Console.WriteLine("ELIMINAR DATO DEL ARREGLO");
if (!ArregloDesordenado.EstaVacio()) // Si no está vacío ...
{
Console.Write("\nNúmero ? ");
Dato = int.Parse(Console.ReadLine()); // Captura el dato que se desea eliminar
if (ArregloDesordenado.Eliminar(Dato))
Console.WriteLine("\nDato eliminado con éxito !!!");
else
Console.WriteLine("\nNo se pudo eliminar el dato ...");
}
else
Console.WriteLine("\nArreglo vacío ...");
Console.ReadKey();
}
public static void OrdenarArreglo()
{
Console.Clear();
if (ArregloDesordenado.Ordenar()) // Se invoca el método para ordenar el arreglo
{
Console.WriteLine("ARREGLO ORDENADO");
Console.WriteLine(ArregloDesordenado.Mostrar()); // Muestra los datos ordenados del arreglo
}
else
Console.WriteLine("\nArreglo vacío ...");
Console.ReadKey();
}
public static void MostrarArreglo()
{
Console.Clear();
Console.WriteLine("ARREGLO");
Console.Write(ArregloDesordenado.Mostrar()); // Despliega los datos del arreglo
Console.ReadKey();
}
public static void BuscarMayor()
{
Console.Clear();
Console.WriteLine("BÚSQUEDA DEL DATO MAYOR DEL ARREGLO");
if (!ArregloDesordenado.EstaVacio())
Console.WriteLine("\nEl valor mayor es: "+ArregloDesordenado.ObtenerMayor());
else
Console.WriteLine("\nArreglo vacío !!!");
Console.ReadKey();
}
}
}
hola tengo algunas preguntas para ti... espero me contestes
ResponderBorrary como seria en lenguaje c ?
ResponderBorrar