Universidad Autónoma de Baja California Facultad de Ingeniería Tecnologías de Programación - Práctica #3 Ejercicios para el uso funciones simples, que regresan valor y paramétricas Ejercicio 1: Este programa consistirá en dibujar laberintos. Para dibujar laberintos deberás considerar los siguientes puntos: Un laberinto estará compuesto por los caracteres alfabéticos A‐Z, * y espacios en blanco. La aplicación deberá dibujar laberintos y para ello se tendrá una secuencia de laberintos, cada uno descrito por una secuencia de caracteres que tu programa deberá interpretar para dibujar el laberinto. Cada laberinto será descrito por una serie de números y caracteres, donde los números antes de un carácter representa la cantidad de veces que debe ser repetido ese carácter. Si antes de un carácter aparece un número de varios dígitos, entonces el número de veces a repetir el caracter es la suma de los dígitos antes de ese carácter. La letra minúscula “b” se usara para representar espacios en blanco en el laberinto. Las descripciones para filas diferentes en el laberinto estarán separadas por el signo de exclamación (!), o por el fin de la línea. La lectura terminara cuando la línea tenga longitud 0, es decir que se dé una línea en blanco. NO hay límite para el número de filas en un laberinto. El número de laberintos para tu aplicación será de 10. El dibujo de cada laberinto debe ser impreso. Tu aplicación deberá tener 5 laberintos definidos y almacenados en un arreglo. La aplicación deberá tener un menú con las siguientes opciones en una función cada una: Almacenar Laberintos: que tiene la funcionalidad de capturar nuevos laberintos y almacenarlos dentro del arreglo sin exceder su capacidad. Listar Laberintos: Lista todas las definiciones de laberintos almacenados. Eliminar Laberinto: Permitirá eliminar un laberinto del arreglo de laberintos que se tiene, para esto la función recibirá el arreglo de laberintos y la cantidad de laberintos que tiene el arreglo y la función no regresará ningún valor. Generar Laberinto: Generará un numero aleatorio entre 1 y la cantidad total de laberintos almacenados en el arreglo, y mostrara el laberinto que le corresponda. Se deberá verificar que el número aleatorio generado para el laberinto no puede ser igual a ninguno de los últimos 4 generados para asegurar que se tendrán nuevos laberintos. Se deberá tener una función que genere el número aleatorio y que reciba un arreglo que contendrá únicamente los últimos números generados para verificar que el valor generado y que regresará la función no esté en los 4 últimos. Ejemplo: Contenido del Arreglo de laberintos: “uno” “1T1b5T!1T2b1T1b2T!1T1b1T2b2T!1T3b1T1b1T!3T3b1T!1T3b1T1b1T!5T1*1T” “dos” “11X21b1X” “tres” “4X1b1X” Salida generada por la aplicación: Para Laberinto “uno” T TTTTT T T TT M.C. Pablo M. Navarro Álvarez Pagina # 1 Universidad Autónoma de Baja California Facultad de Ingeniería Tecnologías de Programación - Práctica #3 T T TT T TT TTT T T TT TTTTT*T Para Laberinto “dos” XX X Para Laberinto “tres” XXXX X Ejercicio 2: Desarrolle un programa en C que implemente la funcionalidad que ofrecen algunas funciones estándares que conoce de C. El programa deberá tener como datos de entrada dos valores que serán ingresados al momento de la ejecución del programa desde la línea de mandos y ofrecerá un menú de opciones como el que se muestra a continuación: [1] [2] [3] [4] [5] Función Trim Función Limpiar Función Minúsculas Función Comparar Sin Importar Case Salir La opción Función Trim tendrá el siguiente prototipo int trim(char []), esta función elimina todos los espacios en blanco al inicio y al final de la cadena, regresara el total de espacios en blanco eliminados, o un -1 si no se eliminó ninguno. La opción Función Limpiar tendrá el siguiente prototipo int limpiar(char []) y regresara el total de espacios en blanco eliminados, o un -1 si no se eliminó ninguno. Lo que esta función hace es eliminar todos los espacios en blanco ingresados por “error” por el usuario como se muestra en el siguiente ejemplo: La cadena: “Esto_ _ _ _ es_ _ un_ejemplo” Quedaría como: “Esto_es_un_ejemplo” (Los guion bajo representan espacios en blanco) La opción Función Minúsculas tendrá el siguiente prototipo int minusculas(char[ ]) y regresará un valor que representa la cantidad de letras que fueron cambiadas de mayúscula a minúscula o un -1 si no se hizo ningún cambio. La opción Función Comparar Sin Importar Case tendrá el siguiente prototipo int CompararSinImportarCase(char[ ], char[]) y regresará un valor de -1 si la cadena1 es menor que la cadena2, el número 1 si la cadena1 es mayor que la cadena2 y un valor de 0 si la cadena1 es igual a la cadena2, sin hacer distinción entre minúsculas y mayúsculas. Las funciones no pueden utilizar ninguna de las funciones que ofrece “C”. M.C. Pablo M. Navarro Álvarez Pagina # 2