Ej 2 Busqueda y Ord
unknown
csharp
2 years ago
4.9 kB
16
Indexable
class Program2
{
static int Buscar(int[] arr, int n)
{
int len = arr.Length;
int pos = -1;
int i = 0;
while (i < len && pos < 0)
{
if (arr[i] == n)
{
pos = i;
}
i++;
}
return pos;
}
static int Insertar(int[] arr, int n)
{
int len = arr.Length;
int i = len-1;
int pos = -1;
while (i >= 0 && pos < 0)
{
if ((arr[i] != 0 && i<len-1))
{
arr[i+1] = n;
pos = i+1;
}else if((i == 0 && arr[i] == 0))
{
arr[i] = n;
pos = i;
}
i--;
}
return pos;
}
static void getEstrenos(int[] pelisEstreno, char[] esEstreno, int[] codPelicula, int CANT_PELICULAS)
{
for (int i = 0; i < CANT_PELICULAS; i++)
{
pelisEstreno[i] = 0; //lo llenamos de 0s para que este "vacio"
}
for (int i = 0; i < CANT_PELICULAS; i++)
{
if (esEstreno[i] == 'S')
{
Insertar(pelisEstreno, codPelicula[i]); //recorremos el array de estrenos, si es estreno agregamos el codigo correspondiente
}
}
}
static void Main()
{
const int CANT_PELICULAS = 3;
int[] codPelicula = new int[CANT_PELICULAS];
float[] precioPel = new float[CANT_PELICULAS];
char[] esEstreno = new char[CANT_PELICULAS];
for(int i = 0; i < CANT_PELICULAS; i++)
{
Console.WriteLine("Ingrese codigo de pelicula: ");
codPelicula[i] = int.Parse(Console.ReadLine());
Console.WriteLine("Ingrese precio de la pelicula: ");
precioPel[i] = float.Parse(Console.ReadLine());
Console.WriteLine("Es estreno?(S/N) ");
esEstreno[i] = char.Parse(Console.ReadLine().ToUpper());
if(esEstreno[i] != 'S' && esEstreno[i] != 'N')
{
esEstreno[i] = 'N';
}
}
//a
int[] pelisEstreno = new int[CANT_PELICULAS]; //creamos el vector con el tamaño máximo posible
getEstrenos(pelisEstreno, esEstreno, codPelicula, CANT_PELICULAS);
//Imprimimos
string estrenos = "";
int j = 0;
while(j<CANT_PELICULAS && pelisEstreno[j] != 0)
{
estrenos += "\n\t-" + pelisEstreno[j];
j++;
}
Console.WriteLine("Peliculas de estreno:" + estrenos+"\n");
//b
Console.WriteLine("Ingrese pelicula a actualizar: (0 para salir)");
int codPeliculaCambio = int.Parse(Console.ReadLine());
while(codPeliculaCambio != 0) {
int pos = Buscar(codPelicula, codPeliculaCambio);
if(pos == -1)
{
Console.WriteLine("No se encontro la pelicula");
}
else
{
esEstreno[pos] = 'N';
precioPel[pos] *= 0.8f;
}
Console.WriteLine("Ingrese pelicula a actualizar: (0 para salir)");
codPeliculaCambio = int.Parse(Console.ReadLine());
}
getEstrenos(pelisEstreno, esEstreno, codPelicula, CANT_PELICULAS);
estrenos = "";
j = 0;
while (j < CANT_PELICULAS && pelisEstreno[j] != 0)
{
estrenos += "\n\t-" + pelisEstreno[j];
j++;
}
Console.WriteLine("Peliculas de estreno actualizadas:" + estrenos + "\n");
string vectorPeliculas = "\n\t[" + codPelicula[0];
string vectorPrecios = "\n\t[" + precioPel[0];
string vectorEstrenos = "\n\t[" + esEstreno[0];
for (int i = 1; i < CANT_PELICULAS; i++)
{
vectorPeliculas += " , " + codPelicula[i];
vectorPrecios += " , " + precioPel[i];
vectorEstrenos += " , " + esEstreno[i];
}
vectorPeliculas += "]";
vectorPrecios += "]";
vectorEstrenos += "]";
Console.WriteLine("Vectores actualizados:" + vectorPeliculas + vectorPrecios + vectorEstrenos);
Console.ReadKey();
}
}Editor is loading...