Ejercicios Programación

Páginas: 8 (1827 palabras) Publicado: 16 de octubre de 2011
Página 1/10 Ejercicio 1 [0,5 ptos] Escriba un pseudocódigo de bucle que trata una serie de datos, controlado por centinela. obtener dato mientras dato no sea centinela hacer tratar dato obtener dato fin_mientras Ejercicio 2 [0,5 ptos] Escriba un código Pascal equivalente al siguiente, sin usa la sentencia repeat. (La puntuación de este ejercicio es todo o nada): repeat c := c/2 until (c =c*b) c:= c/2; while (c>0) and (d 0 : Representa una celda ocupada por un trozo del ficha i-ésima. Las fichas están numeradas secuencialmente comenzando desde 1, y el número de un ficha no tiene ningún significado en particular, tan sólo sirve para identificarla. Otra posibilidad (tipo TListado) consiste en un vector indexado por ficha que almacene registros con la siguiente información: • La celda (filay columna) donde se encuentra el trozo superior izquierdo de la ficha. • La disposición del ficha, dado como un carácter 'H' indicando horizontal o 'V' indicando vertical. • La longitud (en número de celdas ocupadas) de la ficha. A continuación se muestra una imagen del juego, indicando con flechas la posibilidad de movimiento de las fichas, y al lado la matriz de tipo TTablero y el vector de tipoTListado correspondientes:
1 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 Fil 1 2 3 4 5 6 7 8 Col Tipo Long

-1 -1 -1 -1 -1 -1 -1 -1

-1 3 6 6 6 8 8 -1

-1 3 0 1 0 0 0 -1

-1 0 0 1 0 0 5 -1

-1 0 7 7 7 0 5 -1

-1 0 0 0 0 4 5 -1

-1 2 2 2 0 4 0 -1

-1 -1 -1 0 -1 -1 -1 -1

4 2 2 6 7 3 3 6

3 7 2 6 4 2 5 2

H V H H H V V V

2 3 2 2 3 3 3 2

Página 3/10

Suponiendo definidos lossiguientes tipos de datos:
type TMovim = (arriba,abajo,izda,dcha); TTablero = array[1..8,1..8] of integer; TInfoFich = record Fil,Col: 1..8; Tipo: char; Long: integer end; TListado = array[1..8] of TInfoFich;

a) [1,5 ptos] Crear un subprograma que reciba una matriz de tipo TTablero y devuelva el vector TListado correspondiente, suponiendo que la matriz es correcta b) [1,5 ptos] Crear un subprogramaque reciba un vector de tipo TListado y devuelva la matriz TTablero correspondiente., suponiendo que el vector es correcto c) [1,5 ptos] Crear un subprograma, comprobar, que reciba como parámetros una matriz de tipo TTablero, un entero que identifica un ficha (entre 1 y 8) y un movimiento de ficha (tipo TMovim) y devuelva un valor entero que indique si el movimiento se puede realizar o no, con elsiguiente significado: • 0 : La ficha se puede mover. • -1 : Movimiento bloqueado por el borde del tablero. • -2 : La ficha no se puede mover de ese modo (se ha pedido mover arriba o abajo a una ficha horizontal o izda o dcha a una ficha vertical) • i > 0 : El movimiento de la ficha está bloqueado por la ficha número i. Por ejemplo, con el tablero mostrado en el dibujo, si se pide mover dcha a laficha 4, la respuesta será -1, si se pide mover izda a la ficha 4 la respuesta será 0, si se pide mover dcha a la ficha 7 la respuesta será -2, si se pide mover dcha a la ficha 1 la respuesta será 7.

Se dan a continuación varias aproximaciones solución del apartado a) del ejercicio, y soluciones a los apartados b y c:

Página 4/10

a: Tablero a listado
Procedimiento Entrada: tablero(matriz 8x8). El núcleo lo constituyen las 6x6 posiciones centrales. Salida : fichas del tablero, en formato de lista Suposiciones: el tablero de entrada es correcto (hay exactamente 8 fichas, colocadas así, etc)

Solución 1 (por fichas, en orden de número de ficha)
Para cada ficha p (de 1 a 8) Buscar posición Noroeste de la ficha p en el (núcleo del) tablero → posición = f, c Poner posición en laLista de p calcular y anotar dirección y longitud de la ficha fin_para

Solución 2 (por fichas, según se van encontrando)
Repetir 8 veces (tantas como fichas) Buscar la primera posición del tablero distinta de 0: → f, c, p=número de ficha calcular y anotar dirección y longitud de la ficha borrándola del tablero fin_repetir

Solución 3 (por celdas, procesando ficha cada vez que se encuentra...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ejercicios Programacion
  • ejercicios de programacion
  • Ejercicios Programacion
  • ejercicio de programacion
  • Ejercicio de programación
  • programacion-ejercicio
  • ejercicio de programacion
  • programacion ejercicios

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS