El estilo más simple del programa Karel usa texto para especificar una secuencia de comandos incorporados que deben ejecutarse cuando el programa es run . Considere el sencillo programa Karel continuación. El texto a la izquierda es el programa. El estado del Karel de Karel se muestra a la derecha:
Presiona el botón "Ejecutar" para ejecutar el programa. Los programas se escriben típicamente en una aplicación especial llamada Entorno de Desarrollo Integrado (IDE) y la mayoría de los programas Karel están escritos en un IDE llamado Eclipse. Al igual que un IDE, este lector tiene la capacidad de ejecutar programas para ayudarleverCómo funcionan las cosas a medida que aprendes.
El programa se compone de varias partes. La primera parte consta de las siguientes líneas:
/* * Archivo: Primero Karel .java * --------------------------- * El programa Primero Karel define un método " run " * con tres comandos. Estos comandos causan Karel a * moverse reenviar un bloque, recoger un cono y lueg * o moverse avanzar a la siguiente esquina. */
Estas líneas son un ejemplo de una comentario , que es simplemente un texto diseñado para explicar el funcionamiento del programa a lectores humanos. Los comentarios tanto en Karel como en Java comienzan con los caracteres. /* y terminar con los personajes. */ . Aquí, el comentario comienza en la primera línea y termina varias líneas más tarde. Las estrellas en las líneas individuales que forman el texto del comentario no son necesarias, pero hacen que sea más fácil para los lectores humanos ver el alcance del comentario. En un programa simple, los comentarios extensos pueden parecer tontos porque el efecto del programa es obvio, pero son extremadamente importantes como medio para documentar el diseño de programas más grandes y complejos. La segunda parte del programa es la línea:
import stanford.karel.*;
Esta línea solicita la inclusión de todas las definiciones de la stanford.karel biblioteca. Esta biblioteca contiene las definiciones básicas necesarias para escribir programas Karel , como las definiciones de las operaciones estándar moverse() y recogerCono() . Debido a que siempre necesita acceder a estas operaciones, cada programa Karel que escriba incluirá este comando de importación antes de escribir el programa real.
La parte final del programa Karel consiste en la siguiente definición del programa:
public class PrimeroKarel extends Karel {
public void run() {
moverse();
recogerCono();
moverse();
}
}
Para entender esta definición, es útil mirar más detenidamente su estructura. La definición del programa Primero Karel consiste en la línea que comienza con public class y abarca todo entre la llave al final de esa línea y la llave de cierre correspondiente en la última línea del programa. La única línea que introduce la nueva clase se llama encabezamiento de la definicion El código entre las llaves se llama cuerpo .
En programación, a menudo es muy útil pensar en una definición particular y su cuerpo como ideas separables. En este ejemplo, la definición de Primero Karel tiene la siguiente forma, donde todo el cuerpo de la definición se puede sacar de su mente por el momento:
public class PrimeroKarel extends Karel {
cuerpo de la definición del programa
}
La línea de encabezado en la parte superior le dice bastante sobre el programa Primero Karel , incluso antes de que haya visto lo que contiene el cuerpo. La frase public class Se inicia la definición de un programa. La frase extends Karel se usa para indicar que PrimeroKarel Es un programa Karel .
Ahora veamos el cuerpo del programa Primero Karel . Ese cuerpo consta de las siguientes líneas:
public void run() {
moverse();
recogerCono();
moverse();
}
Estas líneas representan la definición de un nuevo método , que especifica la secuencia de pasos necesarios para responder a un comando. Como en el caso del programa Primero Karel , la definición del método consta de dos partes que se pueden considerar por separado: la primera línea constituye el encabezado del método y el código entre las llaves es el cuerpo del método. Si ignora el cuerpo por ahora, la definición del método se ve así:
public void run() {
cuerpo de la definición del método
}
Las dos primeras palabras en el encabezado del método, public y void , son parte de la estructura sintáctica de Java, y debería sentirse libre de ignorarlos en este momento. La siguiente palabra en la línea del encabezado especifica el nombre del nuevo método, que en este caso es el método run . Definir un método significa que Karel ahora puede responder a un nuevo comando con ese nombre. los run El comando juega un papel especial en un programa Karel . Cuando inicia un programa Karel , crea una nueva instancia Karel , agrega Karel a un mundo que usted especifique y luego emite el comando run . El efecto de ejecutando el programa está definido por el cuerpo del método run , que es una secuencia de comandos que el robot ejecutará en orden. Por ejemplo, el cuerpo del método run para el programa Primero Karel es:
moverse();
recogerCono();
moverse();
Por lo tanto, si el estado inicial del mundo coincide con el ejemplo dado en el Capítulo 1, Karel primero moverse s adelante en la esquina que contiene cono , recoge cono y finalmente moverse s adelante a la esquina justo antes de la pared, como se muestra en El siguiente diagrama de antes y después:
El programa Primero Karel definido anteriormente todavía no hace mucho. Tratemos de hacerlo un poco más interesante. Supongamos que el objetivo no es simplemente obtener Karel para recoger el cono sino moverse cono desde su posición inicial en la 2ª columna y 1ª fila hasta el centro de una repisa. Por lo tanto, su próxima tarea es definir un nuevo programa Karel que cumpla con la tarea ilustrada en este diagrama:
Los primeros tres comandos en el nuevo programa, los que moverse , recogen cono y luego moverse hasta el borde, son los mismos que antes:
moverse();
recogerCono();
moverse();
Desde aquí, el siguiente paso es girar a la izquierda para comenzar a subir la cornisa. Esa operación es fácil, porque Karel tiene un comando girarIzquierda en su repertorio estándar. La ejecución de un comando girarIzquierda al final de la secuencia de comandos anterior deja Karel hacia el norte en la esquina de la 1ª fila y la 3ª columna. Si Karel ejecuta un comando moverse , será moverse norte para alcanzar la siguiente posición:
A partir de aquí, lo siguiente que debe hacer es conseguir que Karel gire a la derecha para que esté nuevamente orientado hacia el este. Si bien esta operación es conceptualmente tan fácil como hacer que Karel gire a la izquierda, hay un pequeño problema: el lenguaje de Karel incluye un girarIzquierda comando, pero no girarDerecha mando. Es como si comprara el modelo económico y ahora descubriera que le faltan algunas características importantes.
En este punto, tiene su primera oportunidad de comenzar a pensar como un programador. Tiene un conjunto de comandos, pero no exactamente el conjunto que necesita. ¿Qué puedes hacer? ¿Puede lograr el efecto de un comando girarDerecha usando solo las capacidades que tiene? La respuesta, por supuesto, es sí. Puede lograr el efecto de girar a la derecha girando a la izquierda tres veces. Después de tres giros a la izquierda, Karel estará orientado en la dirección deseada. Desde aquí, todo lo que debe hacer es programar Karel a moverse en el centro de la repisa, colocar el cono y luego moverse hacia adelante hasta la posición final. Aquí está una implementación completa de un Aumentar Programa que realiza toda la tarea: