Ej 2 Busqueda y Ord
unknown
csharp
25 days ago
4.9 kB
8
Indexable
Never
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(); } }