ESTRUCTURAS DE CONTROL

» REPITE


REPITE número listainstrucción

Ejecuta una lista de instrucciones (listainstrucción) tantas veces como indique la primera entrada (número). Vea también .

número:(ENTERO) Número de veces que se ejecuta una lista de instrucciones.
Listainstrucción:(LISTA) Lista de instrucciones Logo a ejecutar repetidamente.

Ejemplo:

repite 3 [escribe (lista "Es "la "vuelta cuentarepite)]
Es la vuelta 1
Es la vuelta 2
Es la vuelta 3


» CUENTAREPITE


contador CUENTAREPITE

Sólo puede usarse dentro de un . Devuelve el número de repeticiones finalizadas, incluyendo la actual. Esto es, devuelve la primera vez 1; 2, la segunda vez, y así sucesivamente.

contador:(ENTERO) Valor actual del contador de REPITE.

Ejemplo:

repite 3 [escribe (lista "Es "la "vuelta cuentarepite)]
Es la vuelta 1
Es la vuelta 2
Es la vuelta 3


» SI


objeto SI prueba listainstrucción
objeto (SI prueba listainstrucción1 listainstrucción2)

Primitiva condicional con dos formas:

Primera forma:

Si la condición (prueba) tiene el valor CIERTO, entonces SI ejecuta una lista de instrucciones (listainstrucción).
Si prueba tiene como valor FALSO, entonces SI no ejecuta nada. Vea también .
Se produce un error si la condición no tiene un valor CIERTO o FALSO.

Segunda forma:

Funciona igual que SISINO. Si se cumple la condición se ejecuta la primera lista; si no se cumple, se ejecuta la segunda. Observe que la sintaxis requiere el uso de los paréntesis y que si se omiten, por compatibilidad con anteriores versiones de Logo, si una instrucción SI no está entre paréntesis, se trata SI como si fuera , pero se envía un mensaje de advertencia.

objeto:(OBJETO)
prueba:(BOOLEANO) Expresión a probar.
listainstrucción:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es CIERTO.
listainstrucción1:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es CIERTO.
listainstrucción2:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es FALSO.

Ejemplo:

si 1=1 [escribe [Si, es cierto]]
Si, es cierto

Ejemplo (donde funciona igual que SISINO):

para max :a :b
devuelve (si :a > :b [:a] [:b])
fin

muestra max 1 2
2


» SISINO


objeto SISINO prueba listainstrucción1 listainstrucción2

Primitiva condicional. Si la condición prueba tiene el valor CIERTO, entonces SISINO ejecuta istaainstrucción1.
Si la condición prueba tiene como valor FALSO, entonces SISINO ejecuta listainstrucción2.
SISINO puede devolver un valor.

objeto:(OBJETO)
prueba:(BOOLEANO) Expresión que es una prueba de verdad.
listainstrucción:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es CIERTO.
listainstrucción1:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es CIERTO.
listainstrucción2:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es FALSO.

Ejemplo:

sisino 1=1 [escribe [Si, es cierto]] [escribe [No, es falso]]
Si, es cierto
sisino 1=0 [escribe [Si, es cierto]] [escribe [No, es falso]]
No, es falso

Ejemplo (donde sisino devuelve un valor)

para max :a :b
devuelve sisino :a > :b [:a] [:b]
fin

muestra max 1 2
2


» CIERTO


CIERTO

Es una palabra especial que indica el resultado positivo de una condición.

Ejemplo:

muestra 1=1
CIERTO
si "cierto [escribe [cierto es siempre cierto]]
cierto es siempre cierto


» FALSO


FALSO

Es una palabra especial que indica el resultado negativo de una condición.

Ejemplo:

muestra 1=0
falso
sisino "falso [escribe [No puede entrar aquí]] [escribe [Falso es siempre falso]]
Falso es siempre falso


» DEVUELVE


DEVUELVE valor
DEV valor

Termina la ejecución del procedimiento en que aparece y devuelve un valor.

valor:(OBJETO).

Ejemplo:

para miprograma
devuelve [Lo que devuelve es esto]
fin
muestra miprograma
[Lo que devuelve es esto]


» ALTO


ALTO

Termina la ejecución del procedimiento en que aparece. Devuelve el control al contexto en el que se llamó el procedimiento. El procedimiento no devuelve ningún valor.

Ejemplo:

para myprog :arg
escribe [Antes de Alto]
si 1=:arg [alto]
escribe [Después de Alto]
fin

myprog 1
Antes de Alto
myprog 2
Antes de Alto
Después de Alto


» ESPERA


ESPERA tiempo

Retrasa la ejecución durante un tiempo 1/60 de segundo

tiempo:(ENTERO).

Ejemplo:

espera 60


» MIENTRAS


MIENTRAS pruebalista listainstrucción

Ejecuta una lista de instrucciones (listainstrucción) mientras se cumpla la condición pruebalista. Observe que la condición es el primer argumento.
.
pruebalista:(BOOLEANO): La condición dentro de una lista.
listainstrucción:(LISTA): Lista con las instrucciones a ejecutar.

 Ejemplo:

haz "i 0
mientras [:i < 3] [haz "i :i+1 escribe :i]
1
2
3


» HASTA


HASTA pruebalista listainstrucción

Ejecuta una lista de instrucciones hasta que una condición tenga el valor FALSO. La condición es el primer argumento.

listainstrucción:(LISTA) Lista de instrucciones a ejecutar.
pruebalista :(BOOLEANO) Condición dentro de una lista.

Ejemplo:

haz "i 0
hasta [:i > 3] [haz "i :i+1 escribe :i]
1
2
3
4


» HAZ.MIENTRAS


HAZ.MIENTRAS listainstrucción pruebalista

Ejecuta una lista de instrucciones (listainstrucción) mientras se cumpla la condición pruebalista. Observe que la condición es el segundo argumento.

listainstrucción:(LISTA) Lista de instrucciones Logo a ejecutar mientras la cumpla la condición.
pruebalista:(BOOLEANO) Condición dentro de una lista.

Ejemplo:

haz "i 0
haz.mientras [haz "i :i+1 escribe :i] [:i < 3]
1
2
3


» HAZ.HASTA


HAZ.HASTA listainstrucción pruebalista

Ejecuta una lista de instrucciones hasta que una condición tenga el valor FALSO. La condición es el segundo argumento.

listainstrucción:(LISTA) Lista de instrucciones a ejecutar.
pruebalista:(BOOLEANO) Condición dentro de una lista.

Ejemplo:

haz "i 0
haz.hasta [haz "i :i+1 escribe :i] [:i > 3]
1
2
3
4


» EJECUTA


EJECUTA listainstrucción

Ejecuta las instrucciones Logo que contiene la entrada (listainstrucción).

Listainstrucción:(LISTA) Lista de instrucciones Logo a ejecutar.

Ejemplo:

haz "cosasporhacer [escribe]
haz "cosasporhacer ponultimo "\"Hola :cosasporhacer
ejecuta :cosasporhacer
Hola


» ADIOS


ADIOS

Sale de Logo y vuelve al sistema operativo.

Ejemplo:

adios


» DESDE


DESDE desdecontrol listainstrucción

Tiene como primera entrada una lista con tres o cuatro miembros: (1) una palabra que es el nombre de una variable local; (2) una palabra o lista que contiene el valor inicial de la variable; (3) una palabra o lista que indica el valor límite de la variable; (4) y una palabra o lista que determina el incremento opcional. Si falta el cuarto miembro tendrá el valor 1 o –1, dependiendo de que el valor límite sea mayor o menor que el inicial.

La segunda entrada es una lista de instrucciones. DESDE ejecuta repetidamente las instrucciones contenidas en listainstrucción, y asigna un nuevo valor a la variable de control. Primero asigna el valor a la variable de control y compara ese valor con el valor límite. Si la variable es mayor que el valor límite, la ejecución continua en la línea siguiente; en otro caso, se ejecutan las instrucciones contenidas en listainstrucción y se incrementa la variable en el valor del incremento.

desdecontrol:(LISTA).
listainstrucción:(LISTA).

Ejemplo:

desde [i 2 7 1.5] [escribe :i]
2
3.5
5
6.5


» SALTOA


SALTOA etiqueta

Busca un comando con la misma etiqueta en el mismo procedimiento, y continúa ejecutando el procedimiento desde la ubicación de esa ETIQUETA. SALTOA no funciona fuera de un procedimiento.

etiqueta:(PALABRA).

Ejemplo:

para procedimiento
etiqueta "inicio
escribe [otra vez!]
saltoa "inicio
fin


» ETIQUETA


ETIQUETA etiqueta

Las etiquetas son usadas por el comando . La etiqueta debe ser una palabra precedida por comillas dobles, no puede ser el resultado de una expresión.

Ejemplo:

para procedimiento
etiqueta "inicio
escribe [otra vez!]
saltoa "inicio
fin


» PAUSA


valor PAUSA
PAUSA

Introduce una pausa interactiva. El usuario recibe instrucciones en las que aparece el nombre del procedimiento en que se invocó PAUSA. Las variables locales de este procedimiento están disponibles durante la pausa. Cuando termina PAUSA devuelve con una entrada.

valor:(OBJETO) Ejemplo:

para miprograma
repite 180 [gd 2 si 90=cuentarepite [pausa]]
escribe "Hecho
fin
miprograma

Poniendo pausa...miprograma
Hecho


» CONTINUA


CONTINUA valor
CO valor
(CONTINUA)
(CO)

Termina la pausa interactiva, volviendo al contexto desde el que se llamó a . Si se le da una entrada a CONTINUA, devuelve ese valor. Si no, no devuelve nada.

valor:(OBJETO) Valor que enviado a PAUSA que lo devuelve.

Excepcionalmente, CONTINUA se puede usar sin su entrada y sin paréntesis con tal que esté en una línea de instrucciones.

Ejemplo:

para miprograma
repite 180 [gd 2 si 90=cuentarepite [pausa]]
escribe "Hecho
fin
miprograma

Pausando... miprograma

180

Hecho