Practica # 3 - UABC-Facultad de Ingeniería campus Mexicali

Anuncio
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
Descargar