Mis practicas karel

26
Profesor: Ing. René Domínguez Escalona Grupo: 404 Especialidad: Informática Turno: Matutino Tema: Mis Prácticas Integrantes: Sánchez Machuca Lizeth Adriana Delgado Apolinar Cynthia Nohemi

Transcript of Mis practicas karel

Page 1: Mis practicas karel

Profesor: Ing. René Domínguez Escalona

Grupo: 404 Especialidad: Informática

Turno: Matutino

Tema: Mis Prácticas

Integrantes: Sánchez Machuca Lizeth Adriana

Delgado Apolinar Cynthia Nohemi

Page 2: Mis practicas karel

PRACTICA1: KAREL 1 Descripción

Karel tiene que llegar hasta donde están los zumbadores pero su camino no es recto, el

tiene que desplazarse por las calles para llegar a los zumbadores.

Tarea

Escribe el programa que ayude a Karel a llegar a los zumbadores

Entrada

Karel inicio orientado al norte

Karel no debe de chocar con ninguna pared

Karel debe de recoger los zumbadores que están ubicados en la parte final , regresar

y dejarlos en donde él empezó

Salida

No importa la posición final de Karel

No tiene que quedar ningún zumbador en la parte final del camino

EJEMPLO SOLUCION

CODIGO DE SOLUCION

niciar-programa

inicia-ejecucion

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

Page 3: Mis practicas karel

avanza;

gira-izquierda;

avanza;

coge-zumbador;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

deja-zumbador;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

coge-zumbador;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

Page 4: Mis practicas karel

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

deja-zumbador;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

coge-zumbador;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

Page 5: Mis practicas karel

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

avanza;

gira-izquierda;

deja-zumbador;

apagate;

termina-ejecucion

finalizar-programa

PRACTICA 2: CAMINANDO

Descripción

Karel quiere visitar a su abuelita, la casa de la abuelita se encuentra siempre adelante de

Karel, en la primera posición que tiene la izquierda y se está junto a un zumbador.

Tarea

Escribe un programa que lleve a Karel a la casa de su abuelita.

Entrada

Karel siempre inicia al principio del camino y orientado en dirección hacia la casa

de su abuelita, el camino es recto y Karel siempre encontrará a su abuelita antes de

caminar 30 pasos.

Salida

Solo se evaluará la posición final en que quede Karel. Que debe ser la primera

posición que cumpla con lo siguiente izquierda bloqueada y junto a un zumbador.

Ejemplo

EJEMPLO SOLUCIÓN

Page 6: Mis practicas karel

CODIGO DE SOLUCION:

iniciar-programa

inicia-ejecución

mientras izquierda-libre o no-junto-a-zumbador hacer inicio

avanza ;

fin ;

apágate;

termina-ejecución

finalizar-programa

PRACTICA 3: NORTE

Descripción

Escribe un programa que tenga una instrucción llamada norte que tenga la finalidad

de orientar a Karel hacia el norte

Entrada

Karel puede aparecer en cualquier parte del mundo y puede aparecer en cualquier

orientación.

Salida

Solo se evaluará que Karel quede orientado al norte la posición final de Karel, que

debe ser la misma donde inicio.

EJEMPLO SOLUCION

Page 7: Mis practicas karel

CODIGO DE SOLUCION

iniciar-programa

inicia-ejecución

si orientado-al-sur entonces inicio

gira-izquierda;

gira-izquierda;

apagate;

fin ;

si orientado-al-este entonces inicio

gira-izquierda;

apágate;

fin ;

si orientado-al-oeste entonces inicio

gira-izquierda;

gira-izquierda;

gira-izquierda;

apágate;

fin ;

apágate;

termina-ejecución

finalizar-programa

Page 8: Mis practicas karel

PRACTICA 4: RECOGE

Descripción

Haz que Karel recoja los zumbadores del renglón y que los coloque en la pared que

esta frente de el

Tarea

Escribe un programa que recoja todos los zumbadores que hay adelante de Karel y

que los deje en la pared ubicada a delante de Karel

Entrada

Karel siempre inicia al principio del renglón y viendo hacia el este, entre Karel

(incluyendo su posición) y la siguiente pared hay montones (de un solo zumbador)

Salida

Solo se evaluará que la cantidad de zumbadores colocada a la orilla de la pared sea

el correcto.

EJEMPLO SOLUCION

CODIGO DE SOLUCION

iniciar-programa

inicia-ejecucion

mientras frente-libre o junto-a-zumbador hacer inicio

avanza; avanza;

coge-zumbador;

fin ;

mientras algun-zumbador-en-la-mochila hacer inicio

deja-zumbador;

fin ;

apagate;

termina-ejecucion

Page 9: Mis practicas karel

finalizar-programa

P5: SUBIENDO Descripción

Karel quiere asomarse por arriba de la barda para ver qué hay del otro lado.

Tarea

Escribe un programa que lleve a Karel a la parte arriba de la barda

Entrada

Karel aparece siempre pegado a la parte inferior de la barda, mirando hacia el norte,

la barda tiene una altura que va desde 1 hasta 20.

Salida

Solo se evaluará la posición final en que quede Karel, esta posición debe ser en el

renglón inmediato por arriba del fin de la barda.

EJEMPLO SOLUCION

CODIGO DE SOLUCION

iniciar-programa

inicia-ejecucion

mientras derecha-bloqueada hacer inicio

avanza;

fin;

apagate;

termina-ejecucion

finalizar-programa

Page 10: Mis practicas karel

P6: NUEVAS INSTRUCCIONES

Crear en karel las siguientes nuevas instrucciones

Gira-derecha

Norte

Sur

Este

Oeste

Media-vuelta

Caminar-hasta-pared

Recoger-todo

Dejar-todo

CODIGO DE SOLUCION

iniciar-programa

define-nueva-instruccion derecha como inicio

repetir 3 veces gira-izquierda;

fin;

define-nueva-instruccion recogetodo como inicio

mientras junto-a-zumbador hacer coge-zumbador;

fin;

define-nueva-instruccion dejatodo como inicio

mientras algun-zumbador-en-la-mochila hacer deja-zumbador;

fin;

define-nueva-instruccion media-vuelta como inicio

repetir 2 veces gira-izquierda;

fin;

define-nueva-instruccion norte como inicio

mientras no orientado-al-norte hacer gira-izquierda;

fin;

Page 11: Mis practicas karel

define-nueva-instruccion sur como inicio

mientras no orientado-al-sur hacer gira-izquierda;

fin;

define-nueva-instruccion este como inicio

mientras no orientado-al-este hacer gira-izquierda;

fin;

define-nueva-instruccion oeste como inicio

mientras no orientado-al-oeste hacer gira-izquierda;

fin;

define-nueva-instruccion caminar-hasta-pared como inicio

mientras frente-libre hacer avanza;

fin;

inicia-ejecucion

derecha;

avanza;

recogetodo;

avanza;

norte;

avanza;

sur;

avanza;

este;

avanza;

oeste;

avanza;

media-vuelta;

caminar-hasta-pared;

dejatodo;

apagate;

termina-ejecucion

finalizar-programa

Page 12: Mis practicas karel

KARELOTITLAN 1 AMONTONAR ZUMBADORES

Descripción

Por su naturaleza, Karel es un robot muy ordenado y le gusta tener todos sus

zumbadores acomodados en montones.

Tras un fin de semana de juegos, Karel tiene su cuarto lleno de zumbadores

regados en columnas, por lo que ahora deberá juntar los zumbadores de cada

columna y hacer un montón con ellos en la base de la misma.

Problema

Tu tarea consiste en escribir un programa que ayude a Karel a amontonar los

zumbadores de cada columna en un montón en la base de la misma.

Consideraciones

nicialmente, Karel se encuentra en la posición (1,1) orientado hacia el norte.

El cuarto de Karel se encuentra lleno de columnas de zumbadores como se

muestra en el ejemplo.

Las columnas de zumbadores pueden tener cualquier altura desde 1 hasta 100

zumbadores, y se suceden una a la otra sin dejar espacios.

Al encontrar la primera columna vacía, Karel sabrá que ha llegado al final del

cuarto.

Karel no tiene zumbadores en la mochila.

La cantidad de zumbadores en cada casilla es desconocida.

No importa la posición ni la orientación final de Karel

EJEMPLO SOLUCION

Page 13: Mis practicas karel

RESULTADO DE EVALUACION

CODIGO DE SOLUCION

iniciar-programa

define-nueva-instruccion come como inicio

si no orientado-al-norte entonces inicio

gira-izquierda;

fin;

mientras junto-a-zumbador y no frente-bloqueado hacer inicio

mientras junto-a-zumbador y no frente-bloqueado hacer coge-zumbador;

avanza;

mientras junto-a-zumbador y frente-bloqueado hacer

coge-zumbador;

fin;

fin;

define-nueva-instruccion dejalotodo como inicio

mientras algun-zumbador-en-la-mochila hacer deja-zumbador;

Page 14: Mis practicas karel

fin;

define-nueva-instruccion vuelta-atras como inicio

repetir 2 veces gira-izquierda;

fin;

define-nueva-instruccion hazlo como inicio

come;

vuelta-atras;

mientras frente-libre hacer inicio

avanza;

fin;

dejalotodo;

gira-izquierda;

avanza;

gira-izquierda;

fin;

inicia-ejecucion

mientras junto-a-zumbador hacer hazlo;

apagate;

termina-ejecucion

finalizar-programa

RECOGE BASURA Descripción

Karel tiene muchos zumbadores regados en su cuarto y como Karel es un robot

muy ordenado tiene que recogerlos y dejarlos en donde inicio

Tarea

Crea el programa en el cual Karel recoja todos los zumbadores y los deje en la

esquina inicial

Entrada

Karel inicia en la posición (1,1) orientado al norte

Karel está rodeado de pared no importa la altura ni la anchura

Puedes colocar hasta 100 zumbadores

Salida

No importa la posición final de Karel

No tiene que quedar ningún zumbador en el cuarto

Page 15: Mis practicas karel

EJEMPLO SOLUCION

CODIGO DE SOLUCION

iniciar-programa

define-nueva-instruccion derecha como inicio

repetir 3 veces gira-izquierda;

fin;

define-nueva-instruccion recogetodo como inicio

mientras junto-a-zumbador hacer coge-zumbador;

fin;

define-nueva-instruccion dejatodo como inicio

mientras algun-zumbador-en-la-mochila hacer deja-zumbador;

fin;

define-nueva-instruccion mediavuelta como inicio

repetir 2 veces gira-izquierda;

fin;

define-nueva-instruccion norte como inicio

mientras no orientado-al-norte hacer gira-izquierda;

fin;

define-nueva-instruccion sur como inicio

mientras no orientado-al-sur hacer gira-izquierda;

fin;

define-nueva-instruccion este como inicio

mientras no orientado-al-este hacer gira-izquierda;

fin;

Page 16: Mis practicas karel

define-nueva-instruccion oeste como inicio

mientras no orientado-al-oeste hacer gira-izquierda;

fin;

define-nueva-instruccion camina como inicio

mientras frente-libre hacer avanza;

fin;

inicia-ejecucion

mientras frente-libre hacer inicio

recogetodo;

avanza;

recogetodo;

si frente-bloqueado entonces inicio

sur;

camina;

este;

si frente-libre entonces inicio

avanza;

fin sino inicio

oeste;

camina;

dejatodo;

apagate;

fin;

norte;

fin;

fin;

apagate;

termina-ejecucion

finalizar-programa

LABERINTO Descripción

Karel tiene 3 laberintos diferentes en los cuales tiene que recoger los zumbadores y

dejarlos en el punto “x”

Page 17: Mis practicas karel

Tarea

Crea el programa en el cual Karel recoja todos los zumbadores y los deje en el

punto “X”

Entrada

Karel inicia en la posición donde comience el laberinto

Karel deberá de dejar los zumbadores

El programa que realices para que recoja los zumbadores tiene que servir en todos

los laberintos

Salida

Los zumbadores tiene que estar en el punto “X”

No tiene que quedar ningún zumbador en los laberinto

EJEMPLO 1 SOLUCION 1

EJEMPLO 2 SOLUCION 2

Page 18: Mis practicas karel

EJEMPLO 3 SOLUCION 3

CODIGO DE SOLUCION

iniciar-programa

define-nueva-instruccion makekarel como inicio

mientras junto-a-zumbador hacer

coge-zumbador;

mientras frente-libre hacer inicio

avanza;

mientras junto-a-zumbador hacer

coge-zumbador;

mientras frente-libre

y algun-zumbador-en-la-mochila

y izquierda-libre

y derecha-libre hacer

deja-zumbador;

si ningun-zumbador-en-la-mochila

y derecha-libre

y izquierda-libre entonces

apagate;

fin;

si frente-bloqueado

y derecha-bloqueada entonces

gira-izquierda;

si izquierda-bloqueada

y frente-bloqueado entonces

repetir 3 veces gira-izquierda;

mientras frente-libre hacer inicio

avanza;

mientras junto-a-zumbador hacer

coge-zumbador;

mientras frente-libre

y izquierda-libre

y derecha-libre

y algun-zumbador-en-la-mochila hacer

deja-zumbador;

si ningun-zumbador-en-la-mochila

entonces apagate;

fin;

Page 19: Mis practicas karel

si frente-bloqueado y izquierda-bloqueada

entonces

repetir 3 veces gira-izquierda;

fin;

inicia-ejecucion

repetir 100 veces makekarel;

apagate;

termina-ejecucion

finalizar-programa

KARELOTITLAN 2 RECOGE ZUMBADORES

Problema

Hay varios zumbadores tirados en el cuarto de Karel, en varias posiciones del

mismo.

Debes hacer un programa que haga que Karel recorra todo el cuarto y recoja todos

los zumbadores que encuentre. Una vez que tenga todos los zumbadores deberá

depositarlos en la esquina inferior izquierda del cuarto y apagarse.

Consideraciones

Karel se encuentra inicialmente orientado hacia el norte.

Karel está inicialmente en la esquina inferior izquierda del cuarto.

El cuarto es totalmente rectangular rodeado por paredes.

El cuarto rectangular puede tener cualquier medida de 1x1 hasta 20x20.

No importa la posición ni la orientación final de Karel.

Page 20: Mis practicas karel

EJEMPLO SOLUCION

CODIGO DE SOLUCION

iniciar-programa

define-nueva-instruccion esoeso como inicio

mientras izquierda-bloqueada y frente-bloqueado y derecha-libre hacer

repetir 3 veces gira-izquierda;

mientras frente-libre o no-junto-a-zumbador hacer inicio

avanza;

mientras junto-a-zumbador hacer coge-zumbador;

mientras algun-zumbador-en-la-mochila y orientado-al-oeste y frente-bloqueado y

izquierda-bloqueada y derecha-libre

hacer inicio

deja-zumbador;

fin;

mientras orientado-al-sur y izquierda-bloqueada y derecha-bloqueada y frente-bloqueado

hacer inicio

repetir 3 veces gira-izquierda;

Page 21: Mis practicas karel

mientras algun-zumbador-en-la-mochila y orientado-al-oeste y frente-bloqueado y

izquierda-bloqueada y derecha-libre

hacer

deja-zumbador;

si ningun-zumbador-en-la-mochila entonces apagate;

fin;

mientras algun-zumbador-en-la-mochila y orientado-al-oeste y frente-bloqueado y

izquierda-bloqueada y derecha-bloqueada

hacer inicio

deja-zumbador;

si ningun-zumbador-en-la-mochila entonces apagate;

fin;

mientras orientado-al-oeste y frente-bloqueado y izquierda-bloqueada y derecha-libre

hacer apagate;

si orientado-al-sur y frente-bloqueado y izquierda-libre entonces inicio

gira-izquierda; avanza; gira-izquierda;

fin;

si orientado-al-sur y izquierda-bloqueada y frente-bloqueado entonces

repetir 3 veces gira-izquierda;

si frente-bloqueado entonces inicio

repetir 2 veces gira-izquierda;

fin; fin;

si orientado-al-sur y frente-bloqueado entonces inicio

gira-izquierda; avanza;

fin;

fin;

inicia-ejecución

esoeso;

apagate;

termina-ejecucion

finalizar-programa

Page 22: Mis practicas karel

RESULTADO DE EVALUACION

TORRE MÁS ALTA

Descripción

Karel tiene muchas torres y debe identificar cual es la torre más alta y al ubicarla

deslizarse y recoger todos los zumbadores

Tarea

Hacer que Karel recorra el mundo y encontrar la torre más alta y recoger los

zumbadores

Entrada

Karel inicia en la posición (1,1)

Karel deberá recorrer el mundo y buscar la torre más alta

Al encontrar la torre más alta bajar y recoger los zumbadores

Salida

Los zumbadores tiene que quedar en la misma fila donde bajo

No importa la orientación final de Karel

EJEMPLO SOLUCION

Page 23: Mis practicas karel

CODIGO DE SOLUCION

iniciar-programa

define-nueva-instruccion alta como inicio

mientras frente-libre hacer

avanza;

si frente-bloqueado entonces

gira-izquierda;

mientras frente-libre hacer

avanza;

si frente-bloqueado entonces

gira-izquierda;

mientras frente-libre hacer

avanza;

fin;

define-nueva-instruccion gira como inicio

si frente-bloqueado entonces inicio

gira-izquierda;

si frente-libre entonces

avanza;

gira-izquierda;

fin;

mientras frente-libre y no junto-a-zumbador hacer

avanza;

si junto-a-zumbador entonces

mientras no orientado-al-sur hacer

Page 24: Mis practicas karel

gira-izquierda;

si frente-bloqueado entonces inicio

gira-izquierda;

gira-izquierda;

gira-izquierda;

si frente-libre entonces

avanza;

gira-izquierda;

gira-izquierda;

gira-izquierda;

fin;

mientras frente-libre y no junto-a-zumbador hacer inicio

avanza;

fin;

mientras frente-libre hacer inicio

si junto-a-zumbador entonces

coge-zumbador;

avanza;

si junto-a-zumbador entonces

coge-zumbador;

fin;

si frente-bloqueado y algun-zumbador-en-la-mochila entonces

apagate;

fin;

inicia-ejecucion

mientras no orientado-al-este hacer

gira-izquierda;

mientras ningun-zumbador-en-la-mochila y frente-libre hacer

alta;

mientras frente-bloqueado hacer

gira;

apagate;

termina-ejecucion

finalizar-programa

KARELOTITLAN 3 SEMBRANDO

Page 25: Mis practicas karel

Problema

Se le ha pedido a Karel que siembre zanahorias en un terreno rectangular de un

mínimo de 3x1 hasta un máximo de 9x10.

Consideraciones

El terreno siempre iniciará en la calle 2, avenida 2.

El terreno siempre tendrá 2 entradas/salidas que estarán ubicadas a la izquierda y

derecha del terreno de tamaño uno.

Karel siempre inicia en la avenida 1, calle 1 pero su orientación puede ser

cualquiera

En la calle 1 avenida 2 siempre habrá 99 zumbadores para que los utilices como

quieras

Karel no inicia con zumbadores en la mochila

Sólo cabe una zanahoria por cada cruce.

No importa los zumbadores que deje karel en el camino.

No importa la posición ni la orientación con que termine Karel.

EJEMPLO SOLUCION

RESULTADO DE EVALUACION

Page 26: Mis practicas karel