7.1. EXPERIMENTA
1) Ejecuta las siguientes
órdenes
?bp
?ponpos [-100 80]
?es pos
?muestra pos
?centro
?muestra pos
2) Antes de ejecutar las
órdenes siguientes, piensa qué figura se obtiene, ¿es abierta o cerrada?, ¿cuántos vértices tiene?, luego
ejecútalas.
?bp
?sl ponpos [-30 -50] bl
?ponpos [-100
40]
?ponpos [60 -50]
?ponpos [-30 -50]
3) Ejecuta
las siguientes órdenes
?bp
?ponx 100
?es coorx
?pony -60
?pos
?es coory
?muestra pos
?ponpos [0 0]
4) Ejecuta las
siguientes órdenes y fíjate en la Tortuga
?bp
?punto [50 50]
?punto [50 -50]
?punto [-50 -50]
?punto [-50 50].
?ot
?repite 100
[punto lista -50 + azar 101-50 + azar 101]
5) Ejecuta las siguientes
órdenes y fíjate ,en la orientación de la Tortuga.
?bp mt
?av
80 re 80
?ponrumbo 120
?ponrumbo 120
?av 80
?es rumbo
6) Ejecuta las siguientes
órdenes
?bp
gd 90 av 30 estampa ay 60
?bp
repite 4 [av 80 estampa gd
90]
7) Ejecuta las siguientes
órdenes.
?bp
ponrumbo hacia [100 50]
?es rumbo
8) Piensa cuál es la
función del procedimiento siguiente, luego defínelo y ejecútalo.
para vector
(local "x1 "y1
"x2 "y2)
teclea [Dame la abcisa del origen\ ]
haz "x1 lp
teclea [Dame la ordenada
del origen\ ]
haz "y1 lp
sl ponpos lista :x1 :y¡1 bl
teclea [Dame la abcisa del extremo\ ]
haz "x2 lp
teclea [Dame la ordenada
del extremo\ ]
haz "y2 lp
ponrumbo hacia lista :x2 :y2
espera 10
ponpos lista :x2 :y2
estampa
módulo
fin
para módulo
(local "a "b)
bt
haz "a :x2 - :x1
haz "b :y2 - :y1
haz "m rc :a * :a
+ :b * :b
(es
[Módulo =] :m)
fin
9) Une
las siguientes letras en orden alfabético, empezando por la A, luego rellena
las regiones cerradas correspondientes a los números 1, 2, 3 y 4.

10) Cuando
hayas terminado el apartado anterior, carga del Disco de utilidades de ficheros
ZEUS.LOG y ZEUS.DIB.
7.2. OBSERVA
La Tortuga es un punto
orientado y su estado viene dado por sus coordenadas y por su rumbo. La posición
inicial es el origen de coordenadas, el rumbo inicial es 0 que corresponde a
mirar al Norte, vertical hacia arriba. Las primitivas referentes a la posición
y rumbo de la Tortuga son las siguientes:
ponpos PONe a la Tortuga en la POSición
indicada por las coordenadas
que
damos entre corchetes.
Si alguna de las coordenadas es
negativa, entre el signo menos
y el
número no hay espacio en blanco.
Si las entradas son variables,
debemos previamente calcular los
valores y luego formar la lista
Ej. ponpos lista :a +
:b azar 50
pos Devuelve la POSición
de la Tortuga, las coordenadas del punto
donde se
encuentra.
centro Lleva la
Tortuga al CENTRO de la pantalla, y le pone rumbo 0.
punto Dibuja un PUNTO en el lugar de la
entrada, sin variarla posición
de la
Tortuga.
ponx PONe la Tortuga en el punto de abscisa indicado x,
sin variar la
ordenada.
pony PONe la
Tortuga en el punto de ordenada indicado y, sin variar la
abscisa.
coorx Devuelve
la COORdenada x de la posición de la
Tortuga.
coory Devuelve
la COORdenada y de la posición de la
Tortuga.

ponrumbo PONe el RUMBO
indicado a la Tortuga.
rumbo Devuelve el RUMBO de la Tortuga, el
ángulo que forma la vertical
hacia arriba con la orientación en
ese momento, medido hacia la
derecha.

hacia Nos da el rumbo que tiene que tomarla
Tortuga para mirar desde
el punto
donde se encuentra HACIA el punto de la entrada.
estampa Deja ESTAMPAda
la imagen de la Tortuga en el punto en que se
encuentre
de la pantalla.

7.3. RESOLUCION DE
PROBLEMAS
PROBLEMA 1:
Define un procedimiento
que dibuje una nube de puntos por toda la pantalla.

PROBLEMA 2:
Define un procedimiento
que dibuje polígonos regulares yescriba en la
pantalla las coordenadas y el rumbo de la Tortuga en cada vértice.

PROBLEMA 3:
Define un
procedimiento que dibuje circunferencias de centro y radio variable.

PROBLEMA 4:
Define un
procedimiento que dibuje un triángulo rectángulo conocidos los catetos y que
calcule la hipotenusa.

PROBLEMA 5:
Define un MENU
para este tema. Guarda el contenido del Area de
Trabajo en un fichero con la variable global arranque.

7.4. SOLUCIONES
PROBLEMA 1:
para nube
local "n
ot
teclea [¿Cuántos
puntos quieres?\ ]
haz "n lp
bt
repite :n [punto lista -150
+ azar 300 -100 + azar 200]
mt
fin
Ejecución:
?bp nube
PROBLEMA 2:
para pol
(local "n "d)
teclea [¿De
cuántos lados?]
haz "n lp
teclea [Longitud de cada
lado =\]
haz "d lp
repite :n [av :d gd
360 / :n (muestra pos rumbo) espera 20]
fin
Ejecución:
?bp bt poncursor
[0 15]
?pol
PROBLEMA 3:
para cir
(local "x "y
"r "paso)
teclea [Dame la abcisa del centro\ ]
haz "x lp
teclea [Dame la ordenada
del centro\ ]
haz "y lp
sl ponpos lista :x :y bl
teclea [Dame el radio\ ]
haz "r lp
sl gi 90 av
:r gd 90 bl
haz "paso
2 * pi * :r / 36
gd 5
repite 36 [av :paso gd 10]
gi 5
sl ponpos lista :x :y bl
fin
Ejecución:
?bp
bt poncursor [0 20] ?cir
PROBLEMA 4:
para trirec
(local "b "c "a)
teclea [Dame un cateto b
=\ ]
haz "b lp ponx :b
teclea [Dame el otro
cateto c =\ ]
haz "c lp
pony :c
ponpos [0 0]
haz "arc:b*:b+:c*:c
(es
[Hipotenusa a =] :a)
fin
Ejecución:
?bp bt poncursor
[0 20]
?trirec
PROBLEMA 5:
para menú
ponfondo 1 ponpaleta 0
cargadib "menú
ot
ponct [10]
poncursor [6 11] es
[OPCIONES \ \ \ \ \ EJECUCION]
ponct [3 0]
poncursor [10 13] es
[1 \ \ \ \ \ nube de puntos]
poncursor [10 14] es
[2 \ \ \ \ \ polígonos regulares]
poncursor [10 15] es
[3 \ \ \ \ \ circunferencia]
poncursor [10 16] es
[4 \ \ \ \ \ triángulo rectángulo]
poncursor [10 17] es
[5 \ \ \ \ \ FIN]
ponct [2 0]
poncursor [8 20] es
[Pulsa la opción deseada]
ponct [7 0]
opciones
fin
para opciones
local "c
haz "c lc
mt
si no miembro?
:c [1 2 3 4 5] [opciones alto]
si 1= :c [bp bt nube]
si 2 = :c [bp bt pol]
si 3 = :c [bp bt cir]
si 4 = :c [bp bt trirec]
si 5 = :c [pt bt alto]
continuar
fin
para continuar
local "v
poncursor [3 24]
teclea [¿Quieres
volver al menú? \(s\/n\)\ ]
haz "v lc
si "s =
:v [menú]
pt bt
fin
Arbol de los procedimientos:

Ejecución:
?menú
Lo guardamos en un fichero con una variable
global arranque.
?haz
"arranque [menú]
?guarda "tema7
7.5. PROYECTOS
Mapa de
España con los ríos más importantes

Enrique Ruiz
Francisco Vázquez
C. Nuestra Señora del
Pilar
Madrid
PROYECTO 2. Física
Símbolos
eléctricos

José Ramón Rodríguez Lago
Alberto Fernández
I. F. P. "San Roque".
Madrid