Pascal/Turbo Pascal - Sopa de letras pascal

 
Vista:

Sopa de letras pascal

Publicado por dipper (1 intervención) el 02/11/2018 21:52:00
Muy buenas necesitaria un poco de ayuda para terminar un trabajo, necesito implementar 3 subprogramas relativos al juego sopa de letras

1- funcion deberia retornar true en caso de que la palabra aparezca en el cuadro comenzando en la posición indicada por el parámetro posición. Retorna false en caso contrario. las palabras se leen unicamente de izquierda a derecha,

2- un procedimiento que realize la busqueda de las palabras dentro del cuadro, recibiria de la entrada el cuadro, y el conjunto de palabras a buscar, El arreglo resultado debe construirse de manera tal que
resultado[i] es una lista que indica las posiciones (de comienzo) donde aparece palabra[i] dentro del cuadro.
esta lista debe estar ordenada de menor a mayor posición según el orden definido más arriba.
Observar que:
cada palabra puede aparecer varias veces dentro del cuadro.
algunas de las palabras pueden no aparecer en el cuadro.
en una misma posición podría aparecer más de una palabra

3- Este subprograma analiza una sopa de letras dada por un cuadro y un conjunto de palabras y obtiene algunos datos sobre la estructura propuesta

La salida del subprograma es de tipo DatosSopa que se define como un registro con variante de la siguiente forma:

1
2
3
4
5
6
7
8
9
10
DatosSopa = record
  comun : boolean;
  case HayPalabras : boolean of
    true : (
       MasLarga  : TPalabra;
       MasVeces  : TPalabra;
       Ultima    : TPalabra;
    );
    false : ();
  end;

Una vez finalizado el subprograma, los campos de este registro deberán quedar con la siguiente información:

comun - Indica si la estructura corresponde a una sopa común. Decimos que una sopa de letras es común si todas las palabras aparecen en el cuadro una y una sola vez.

HayPalabras - Es el discriminante del registro variante. Tendrá el valor false solamente en el caso de que ninguna de las palabras aparezca en el cuadro. Si alguna de las palabras aparece en el cuadro quedan definidos los campos de la variante true:
MasLarga - Contiene la palabra más larga que aparece en el cuadro.
MasVeces - Contiene la palabra que aparece más veces en el cuadro.
Ultima - Contiene la palabra que aparece última en el cuadro. Se considera última aquella palabra cuya última letra aparezca en una posición mayor (ver Orden de las posiciones más arriba)

En los casos que hubiera más de una palabra cumpliendo estas condiciones se considera la palabra que aparece primero en el arreglo palabras (la de índice más bajo)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder