6.1. EXPERIMENTA
Suponemos que vas a
empezar una nueva sesión, en otro caso, borra el Area de Trabajo.
?botodo
Introduce en
la unidad A el Disco de
Utilidades
1) Ejecuta las
siguientes primitivas, y trata de descubrir el significado de dir.
?pt bt
?dir
2) Ejecuta
las siguientes órdenes y observa la función de la primitiva carga.
?carga
"primeros
?pt bt imts
?bp abeto
?pt bt
boda
?botodo
?carga "tema3
?imts
?abetos
3) Sustituye el Disco de Utilidades por tu Disco de Trabajo, ejecuta las siguientes órdenes y observa la
función de la primitiva guarda.
?guarda
"martes
?guarda "abetos [abetos abeto]
?botodo
?imts
?carga "martes
?imts
?casa
?botodo
?carga "abetos
?pt imts
?abetos
4) Ejecuta las siguientes
órdenes y fíjate en la variable global arranque
?botodo
?carga "abetos
?haz "arranque [bp ponfondo 1 ponpaleta 0 abetos]
?guarda "cruz
?carga
"cruz
5) Vuelve a sustituir tu Disco de Trabajo por el Disco de Utilidades, ejecuta las
siguientes órdenes y observa la función de las primitiva cargadib.
?cargadib "tortuga
?ponfondo 0
?cargadib "mujer
?ponfondo 1 cargadib "sommerfe
?botodo
6) Vuelve a sustituir el Disco de Utilidades por tu Disco de Trabajo, ejecuta las
siguientes órdenes y observa la función de la primitiva guardadib.
?bp bt
?carga "cruz
?bt guardadib "cruz
?abetos
?bt guardadib "cruz1
?abetos
?bt guardadib "cruz2
?pt bt dir
?cargadib "cruz
?cargadib "cruz1
?cargadib "cruz2
7) Ejecuta las
siguientes órdenes y observa la función de la primitiva boarchivo.
?pt dir
?boarchivo "cruz. log
?boarchivo "cruz.dib
?boarchivo
"cruz1.dib
?boarchivo "cruz2.dib
?dir
6.2. OBSERVA
ARCHIVO
O FICHERO
Es un conjunto de
procedimientos y/o variables globales, o una pantalla, que bajo un nombre se
guardan en un disco.
DIRECTORIO
Es el conjunto de los
nombres de los archivos o ficheros que hay en un disco. Para ver el directorio
de un disco se utiliza la primitiva.
dir
Ejemplo:
Directorio
de
A:\
PRIMEROS LOG 233 11-01-88 0:42a
TEMA3 LOG 1401 18-10-97 8:16p
CUADRADO LOG 492 12‑01-88 0:14a
TEMA4 LOG 1649 12‑01‑88 2:26a
ANGULOS LOG 1699 13‑01‑88 12:05p
OPERANGU LOG 4050 15‑01‑88 2:58a
MARTES LOG 1401 16‑01‑88 7:24a
ABETOS LOG 223 16‑01‑88 7:36a
SB DIB 16480 17‑01‑88 0:05a
MUJER DIB 16480 19‑01‑88 0:05a
TORTUGA DIB 16480 21‑01‑88 0:10a
LOGO DIB 16480 25‑01‑88 0:15a
SOMMERFE DIB 16480 26‑01‑88 0:18a
GLOBO DIB 16480 26‑01‑88 0:20a
CRUZ LOG 272 27‑01‑88 0:24a
CRUZ DIB 16480 28‑12‑92 0:41a
17 Archivo
(s)
223232 Bytes libres
La primera columna son
los nombres de los ficheros o archivos.
La segunda
es su extensión, nos indica de que tipo de fichero se trata. Los que tienen
extensión LOG son ficheros de procedimientos LOGo,
los que llevan de extensión DIB, corresponden a DIBujos
de pantallas de Logosb, a su vez puede haber ficheros
correspondientes a textos, a bases de datos, a hojas de cálculo, al sistema
operativo, a otros lenguajes de programación, etc.
La
tercera columna nos indica el número de Bytes que
ocupa cada fichero, un Byte en un carácter, una
letra, un número, un espacio en blanco, en general cualquier signo del teclado.
La cuarta
columna es la fecha en la que hemos guardado el archivo con la nomenclatura
dia/mes/año
La quinta y
última columna corresponde a la hora, nos indica si es por la manaña (a) o por la tarde (p).
En las
dos últimas líneas nos indica el número de ficheros que hay y el número de Bytes que aún quedan libres para guardar más ficheros.
GUARDANDO
PROCEDIMIENTOS Y/O VARIABLES GLOBALES
GUARDAr es hacer una
copia del contenido del Area de Trabajo,
o parte de ella, en un disco; a esta copia se le llama archivo o fichero.
Para GUARDAr procedimientos y/o variables globales del Area de Trabajo en un disco se utiliza la orden
guarda
"nombre
Recuerda que
en Logo, nunca se cierran las comillas.
El
nombre de un fichero o archivo es una sola palabra. El número máximo de
caracteres del nombre de un archivo es 8, si le ponemos más, sólo conserva los
8 primeros.
También podemos
guardar parte de los procedimientos del Area de Trabajo, esto
se consigue añadiendo al nombre, la lista de los procedimientos que queremos
guardar.
?guarda "nombre [nombrel nombre2 ....]
FICHEROS
CON ARRANQUE
Es suficiente con definir
una variable global de nombre ARRANQUE y
de contenido la lista de órdenes y procedimientos que queramos ejecutar.
CARGANDO
UN ARCHIVO
CARGAr un archivo del disco, quiere decir, pasarlo
del disco al Area de Trabajo, es decir, a la memoria del
ordenador. Se utiliza la orden:
carga "nombre
CARGANDO
Y GUARDANDO DIBUJOS DE PANTALLA
Para GUARDAr los Dibujos que tengas
en la pantalla se utiliza la orden:
v guardadib
"nombre
Para CARGAr los DIBujos del disco en la pantalla se
útimala orden:
cargadib
"nombre
BORRANDO
ARCHIVOS
Para BOrrar un
ARCHIVO se utiliza la orden:
boarchivo "nombre.ext
6.3.
RESOLUCION DE PROBLEMAS
PROBLEMA
1:
1) Carga el
fichero TEMA3 del Disco de
Utilidades.
2) Guarda en
tu Disco de Trabajo un fichero con solo los procedimientos correspondientes a
la casa, con la
variable arranque.

PROBLEMA 2:
Define un procedimiento
que cargue todos los ficheros del Disco de Utilidades correspondientes a dibujos
de pantallas.
PROBLEMA 3:
1) Define un
procedimiento finteractivo que dibuje cualquier
polígono regular, centrado en la pantalla y al mismo tiempo que calcule el
perímetro y la superficie.

2) Guarda en tu Disco de
Trabajo un fichero con solo los procedimientos correspondientes al polígono, con la
variable arranque.
PROBLEMA
4:
1)Define los
procedimientos necesarios para dibujar el logotipo del Grupo LOGO‑MADRID.
2) Guarda el dibujo de la pantalla en tu
Disco de Trabajo.
3) Guarda los procedimientos
correspondientes con la variable arranque,
4)Imprime los procedimientos correspondientes en papel.
5) Obtén
por impresora una copia de nuestra mascota.

PROBLEMA
5:
Define un
menú para este tema, y guarda procedimientos en un fichero con la variable global arranque,

6.4. SOLUCIONES
PROBLEMA 1:
1) Introduce el Disco de
Utilidades en la unidad A y ejecuta:
?carga
"tema3
2) Introduce tu Disco de
Trabajo y ejecuta:
?pt imts
?haz
"arranque [bt casa]
?guarda "casa [casa
rec1 cua1 tri1 romboide]
Comprobación
¿botodo
dir
?carga "casa
PROBLEMA 2:
para pantallas
pg
cargadib "sb
espera 10
cargadib "mujer
espera 10
cargadib
"tortuga
espera 10
cargadib "logo
espera 10
cargadib "sommerfe
espera 10
cargadib "globo
espera 10
cargadib "cruz
fin
Ejecución: Introduce el
Disco de Utilidades.
?pantallas
PROBLEMA 3:
1)
para polígono
(local "n "d "u)
bp pt bt
es [Polígono regular]
es "
teclea [Dame el número de
lados\ ]
haz "n lp
es "
teclea [Dame la longitud
de cada lado\ ]
haz "d lp
es "
teclea [Dame la unidad medidal\ ]
haz "u lp
es "
ponfondo 1 ponpaleta 0
polc :n :d
perpol :n :d :u
suppol :n :d :u
fin
para polc :n :d
(local "p "A
"t "a)
haz "p :n * :d
haz "A 180
/ :n
haz "t
(sen :A) / cos :A
haz "a :d / (2 * :t)
sl re:a
gi 90 re: d / 2 bl
pol :n :d
sl av : d / 2 gd 90 av:a
bl
fin
para pol :n :d
repite :n [av :d gd
360 / :n]
fin
para perpol :n :d :u
(es
[Perímetro =] :n * :d :u)
fin
para suppol :n :d :u
(local "p "A
"t "a)
haz "p :n * :d
haz "A 180
/ :n
haz "t
(sen :A) / cos :A
haz "a :d / (2 * :t)
(es
[Superficie =] :p * :a / 2
palabra :u 2)
fin
Arbol

Ejecución:
?polígono
2) Introduce tu Disco de
Trabajo
?haz
"arranque [polígono]
?guarda
"polígono [polígono polc pol
perpol suppol]
PROBLEMA 4:
1)
para tortuga
ponfondo 1 ponpaleta 0 poncl 1
bp pg bt si
gd 90 av 40 gi 90 bl
trapecios
gd 90 romboide1
sl gd 90 av
2 gi 90 bl
cabeza sl gi 120 av
47 bl
rayado
sl re 80 bl poncl 2 rellena
letras
apartado
ponct [7 0]
fin
para trapecios
trapecio
sl gi 90 av
124 bl gi 150
repite 3 [trapecio sl gi 90 av
82.5 gd 60 av 2.5 bl gd 90]
fin
para trapecio
poncl 1
gi 90 av 80
gd 120 av 40
gd 60 av 40
gd 60 ay 40
gi 150
poncl 3
sl gi 75 av
10 bl rellena
sl re 10 gd 75 bl
fin
para
romboide1
poncl 1
repite 2 [gi 120 av 40 gi
60 av 80]
poncl 3
sl gi 135 av 10 bl rellena
sl re 10 gd 135 bl
fin
para cabeza
poncl 1
av 40 gd 60
av 40 gd 90
av 35 gd 90
av 20 gi 60
av 40 gd 60
av 40 gd 120
av 40
poncl 3
sl gd 90 av
10 bl rellena
sl re 10 gi 90 bl
fin
para rayado
poncl 3
repite 10 [av 80 re 80 sl gi 60 av 4 gd
60 bl]
av 140
sl gd 90 av
40 gd 90 bl av 30 re 30
sl gi 90 av
35 gd 90 bl av 50 re 50
sl gi 90 av
35 gd 90 bl av 70
fin
para letras
ponct [10]
poncursor [5 6] es
"GRUPO
poncursor [5 10] es
"TOGO
poncursor [5 14] es
"MADRID
fin
para apartado
ponct [3 0]
poncursor [6 18] es
[Apartado 43074]
poncursor [7 20] es
[28080 MADRID]
fin
Arbol:

Ejecución:
?tortuga
2)
?guardadib
"tortuga
3)
?haz "arranque
[tortuga]
?guarda "tortuga
[tortuga trapecios trapecio romboide1 cabeza rayado letras apartado]
4)
?pt
bt
?eco "Ipt1
?im
[tortuga trapecios trapecio romboide1 cabeza rayado letras apartado]
?noeco
5) Para obtener una copia del dibujo en la impresora, ejecuta:
?tortuga
y pulsa las teclas:
![]()
PROBLEMA 5:
Vamos a cambiar
un poquito la estructura del menú utilizaremos un fichero MENU.DIB que lo hemos realizado con un programa de
diseño gráfico DRHALO y luego lo hemos incorporado al Logo. En uno de los apéndices
se explica como funciona.
para menú
ponfondo 1 ponpeleta 0
cargadib "menú
ot
ponct [1 0]
poncursor [6 11] es
[OPCIONES \ \ \ \ \ EJECUCION]
ponct [3 0]
poncursor [10 13] es
[1 \ \ \ \ \ casa]
poncursor [10 14] es
[2 \ \ \ \ \ pantallas]
poncursor [10 15] es
[3 \ \ \ \ \ polígono]
poncursor [10 16] es
[4 \ \ \ \ \ tortuga]
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
si no miembro?
:c [1 2 3 4 5] [opciones alto]
sl 1 = :c [bp bt
casa]
sl 2 = :c [bp bt
pantallas]
sl 3 = :c [bp bt
polígono]
sl 4 = :c [bp bt
tortuga]
sl 5 = :c [pt bt
alto]
continuar
fin
para continuar
local "v
poncursor [3 24]
teclea [¿Quieres
volver al menú? \(S\/N\)\ ]
haz "v lc
sl "s =:v [menú]
pt bt
fin
Arbol:

Ejecución: Introduce el Disco de Utilidades y ejecuta:
?menú
Luego definimos la variable global arranque
?haz
"arranque [menú]
?guarda
"tema6
6.5. PROYECTOS
Crea los procedimientos
que representen el principio de Pascal para el caso de la prensa hidráulica

Vicente Lumbreras García
Josefina Esteso Paños
Francisco Javier Mateos
S. J.
Gerardo del Caz
C. P. Prácticas
"Rufino Blanco".
Madrid.
PROYECTO 2.
Diseño
Define un
procedimiento que dibuje un menú

Antonio España Cerrato
Pedro Largo Enciso
C. P. "Alcalde de Móstoles"
Madrid.