Sopa de letras en Pascal
Me han mandado hacer un programa usando matrices representando una sopa de letras. La verdad que no se por donde empezar y quisiera saber si podría ayudarme. Lo que se pide es:
Escribir un programa en Pascal que realice la búsqueda de una palabra en una "sopa de letras" con las siguientes características.
· La búsqueda se realizará horizontal y verticalmente, es decir, no hay que realizar búsqueda diagonal.
· La palabra puede aparecer al derecho o al revés, tanto horizontal como verticalmente.
El resultado de la ejecución del programa será una frase indicando cuántas veces aparece la palabra en la "sopa de letras".
La sopa de letras se almacenará en una matriz cuadrada, como máximo de 9x9.
El programa empieza con la elección del fichero con la sopa de letras y a continuación la elección de la palabra que queremos buscar y el resultado de la búsqueda. Para la elección del fichero aparecerá un menú con las cuatro posibles opciones:
1. Fichero 1.-contiene una matriz de 5x5
2. Fichero 2.-contiene una matriz de 7x7
3. Fichero 3.-contiene una matriz de 9x9
4. Salir del programa
Elija una opción(valores numerícos):
En cada una de las opciones se realizarán las siguientes tareas:
Opciones 1, 2 y 3.- mediante estas opciones el programa:
Leerá del fichero de datos correspondiente los valores de la sopa de letras.
Leerá desde Input la palabra que queremos buscar en la sopa de letras. La palabra tendrá entre 2 y N caracteres (siendo N la dimensión de la matriz).
Buscará en la matriz de la sopa de letras la palabra leída.
Imprimirá la matriz de la sopa de letras.
Imprimirá una frase indicando cuántas veces aparece la palabra en la sopa de letras.
Después de realizar la tarea indicada, se volverá a visualizar de nuevo el menú.
Opción 4.- con esta opción se terminará la ejecución del programa.
Si se elige una opción inexistente, el programa volverá a visualizar de nuevo el menú principal.
La solución se ajustará a las siguientes especificaciones:
Especificaciones de entrada :
- Disponemos de 3ficheros de texto en el que se encuentran grabados los caracteres de una matriz NxN que simula la Sopa de letras (N será 5 en el primer fichero, 7 en el 2º y 9 en el 3º), el fichero tendrá:
- En cada línea los N caracteres de cada una de las filas de la matriz, aparecerán todos seguidos sin ningún carácter blanco, tampoco existirán caracteres blancos al principio o al final de las líneas.
- Existirán, por lo tanto, N líneas en el fichero.
- Por teclado se introducirá la palabra que queremos buscar, dicha palabra tendrá como mínimo 2 caracteres y como máximo N caracteres.
- Trabajaremos con caracteres alfabéticos mayúsculas (excluyendo la Ñ y las vocales acentuadas).
- Los ficheros de texto de entrada que estarán almacenados en C:\P1\ tendrán que llamarse obligatoriamente: datos21b.txt (para la matriz 5x5), datos22b.txt (para la matriz 7x7), datos23b.txt (para la matriz 9x9),
- Las opciones del menú tendrán que ser obligatoriamente valores numéricos de 1 a 4
Especificaciones de salida :
- Se utilizará el fichero estándar de salida: Output.
- Aparecerá en la primera línea del fichero de salida los datos: número de matrícula, apellidos y nombre del alumno que realiza la práctica.
- No se deberá limpiar la pantalla después de la realización de una opción del menú, se dejará únicamente dos o tres líneas en blanco.
- Se podrá limpiar la pantalla antes de la visualización, por primera vez, del menú principal.
Especificaciones de diseño :
- No se podrá utilizar el tipo de datos STRING.
- Se recuerda que no se admite, bajo ningún concepto, la utilización de variables globales dentro de los subprogramas.
- El programa deberán contener, al menos, subprogramas que realicen las siguientes tareas.
- Lectura de la sopa de letras: desde el fichero de texto en la matriz.
- Escritura de la sopa de letras en Output.
- Invertir la palabra que queremos buscar, de esta forma se simplifica la búsqueda de la palabra al derecho y al revés.
Muchas gracias, un saludo. Arroba2
Escribir un programa en Pascal que realice la búsqueda de una palabra en una "sopa de letras" con las siguientes características.
· La búsqueda se realizará horizontal y verticalmente, es decir, no hay que realizar búsqueda diagonal.
· La palabra puede aparecer al derecho o al revés, tanto horizontal como verticalmente.
El resultado de la ejecución del programa será una frase indicando cuántas veces aparece la palabra en la "sopa de letras".
La sopa de letras se almacenará en una matriz cuadrada, como máximo de 9x9.
El programa empieza con la elección del fichero con la sopa de letras y a continuación la elección de la palabra que queremos buscar y el resultado de la búsqueda. Para la elección del fichero aparecerá un menú con las cuatro posibles opciones:
1. Fichero 1.-contiene una matriz de 5x5
2. Fichero 2.-contiene una matriz de 7x7
3. Fichero 3.-contiene una matriz de 9x9
4. Salir del programa
Elija una opción(valores numerícos):
En cada una de las opciones se realizarán las siguientes tareas:
Opciones 1, 2 y 3.- mediante estas opciones el programa:
Leerá del fichero de datos correspondiente los valores de la sopa de letras.
Leerá desde Input la palabra que queremos buscar en la sopa de letras. La palabra tendrá entre 2 y N caracteres (siendo N la dimensión de la matriz).
Buscará en la matriz de la sopa de letras la palabra leída.
Imprimirá la matriz de la sopa de letras.
Imprimirá una frase indicando cuántas veces aparece la palabra en la sopa de letras.
Después de realizar la tarea indicada, se volverá a visualizar de nuevo el menú.
Opción 4.- con esta opción se terminará la ejecución del programa.
Si se elige una opción inexistente, el programa volverá a visualizar de nuevo el menú principal.
La solución se ajustará a las siguientes especificaciones:
Especificaciones de entrada :
- Disponemos de 3ficheros de texto en el que se encuentran grabados los caracteres de una matriz NxN que simula la Sopa de letras (N será 5 en el primer fichero, 7 en el 2º y 9 en el 3º), el fichero tendrá:
- En cada línea los N caracteres de cada una de las filas de la matriz, aparecerán todos seguidos sin ningún carácter blanco, tampoco existirán caracteres blancos al principio o al final de las líneas.
- Existirán, por lo tanto, N líneas en el fichero.
- Por teclado se introducirá la palabra que queremos buscar, dicha palabra tendrá como mínimo 2 caracteres y como máximo N caracteres.
- Trabajaremos con caracteres alfabéticos mayúsculas (excluyendo la Ñ y las vocales acentuadas).
- Los ficheros de texto de entrada que estarán almacenados en C:\P1\ tendrán que llamarse obligatoriamente: datos21b.txt (para la matriz 5x5), datos22b.txt (para la matriz 7x7), datos23b.txt (para la matriz 9x9),
- Las opciones del menú tendrán que ser obligatoriamente valores numéricos de 1 a 4
Especificaciones de salida :
- Se utilizará el fichero estándar de salida: Output.
- Aparecerá en la primera línea del fichero de salida los datos: número de matrícula, apellidos y nombre del alumno que realiza la práctica.
- No se deberá limpiar la pantalla después de la realización de una opción del menú, se dejará únicamente dos o tres líneas en blanco.
- Se podrá limpiar la pantalla antes de la visualización, por primera vez, del menú principal.
Especificaciones de diseño :
- No se podrá utilizar el tipo de datos STRING.
- Se recuerda que no se admite, bajo ningún concepto, la utilización de variables globales dentro de los subprogramas.
- El programa deberán contener, al menos, subprogramas que realicen las siguientes tareas.
- Lectura de la sopa de letras: desde el fichero de texto en la matriz.
- Escritura de la sopa de letras en Output.
- Invertir la palabra que queremos buscar, de esta forma se simplifica la búsqueda de la palabra al derecho y al revés.
Muchas gracias, un saludo. Arroba2
Respuesta de elrata
1