PDF de programación - Curso XLogo - Capítulo 15 - Manejo de Archivos

Imágen de pdf Curso XLogo - Capítulo 15 - Manejo de Archivos

Curso XLogo - Capítulo 15 - Manejo de Archivosgráfica de visualizaciones

Publicado el 21 de Abril del 2018
446 visualizaciones desde el 21 de Abril del 2018
304,6 KB
12 paginas
Creado hace 13a (20/12/2010)
15.1. LAS PRIMITIVAS

153

--> /Capturas

--> /Escritorio
--> /Imagenes

Al iniciar xLogo, la ruta de trabajo será /home/alumno/. Para llegar al directorio Programas
podemos escribir alternativamente:

pondirectorio "/home/alumno/Documentos/xLogo/Programas
cambiadirectorio "Documentos/xLogo/Programas

Una vez en él, podemos ir hacia atrás de forma absoluta o relativa:

pondirectorio "/home/alumno/Documentos/xLogo
cambiadirectorio "..

y listar su contenido, que se mostrará en el Histórico de Comandos separando los directorios
de los archivos:

catalogo
--> Directorio(s):

Programas Capturas
Archivo(s):
manual.pdf prueba.lgo tortuga.png transfo.png xlogo.jar

Hay dos posibilidades de que esto no sea exactamente así:

cuando se abre un archivo .lgo desde el Menú Archivo, el directorio donde se encon-
traba éste queda establecido como directorio de trabajo. Por ejemplo, si abrimos el
fichero:

/home/alumno/Documentos/xLogo/rosa.lgo

el directorio de trabajo será

/home/alumno/Documentos/xLogo

Si no es la primera vez que se trabaja con xLogo. Al terminar una “sesión”, se guarda
la última ruta de trabajo y se mantiene para ejecuciones posteriores.

Todo lo anterior afecta al guardado en disco de procedimientos o la carga desde disco
duro de procedimientos e imágenes, NO a las capturas de pantalla que pueden hacerse
desde el Menú Archivo −→ Capturar la imagen.

154

CAPÍTULO 15. MANEJO DE ARCHIVOS

15.1.2. Carga y guardado de procedimientos

Finalizando el capítulo 5 te enseñamos a guardar en el disco duro usando las opciones

de Menú:

Menú Archivo −→ Guardar como . . . .

Menú Archivo −→ Guardar

que difieren en que uno te permite asignar un nombre, y el otro sobreescribe el archivo
abierto (si lo hay). Podemos también abrir procedimientos con:

Menú Archivo −→ Abrir

y disponemos de primitivas con las que conseguir lo mismo:

Primitivas

Argumentos

Uso

carga

guarda

palabra

palabra,
lista

guardatodo

palabra

Ejemplos:

Abre y lee el archivo indicado por palabra.
Guarda en el archivo indicado por palabra los
procedimientos especificados en lista, en el di-
rectorio actual. (Ver ejemplo)
Guarda en el archivo indicado por la palabra
todos los procedimientos definidos, en el direc-
torio actual. (Ver ejemplo)

carga "prueba.lgo carga un archivo llamado prueba.lgo del directorio
actual, SIN ABRIR el Editor de Comandos.
Difiere de la opción Abrir del Menú Archivo en que este sí abre el Editor
de Comandos.

guarda "trabajo.lgo [proc1 proc2 proc3] guarda en el directorio ac-
tual un archivo llamado trabajo.lgo que contiene los procedimientos
proc1, proc2 y proc3.

guardatodo "trabajo.lgo guarda en el directorio actual un archivo lla-
mado trabajo.lgo que contiene la totalidad de los procedimientos actual-
mente definidos.
Es equivalente a usar la opción Guardar del Menú Archivo.

En ambos casos, si no se indica la extensión .lgo, será añadida. La palabra es-
pecifica una ruta relativa a partir del directorio corriente. No funciona colocar
una ruta absoluta.

Para borrar todos los procedimientos definidos y cargar el archivo trabajo.lgo,
debes usar:

15.1. LAS PRIMITIVAS

155

borratodo carga "trabajo.lgo

La palabra especifica una ruta relativa a partir del directorio corriente. No
funciona colocar una ruta absoluta, es decir:

borratodo carga "/home/alumno/xLogo/trabajo.lgo

no producirá ningún efecto.

15.1.3. Modificando archivos

Primitivas

Argumentos

Uso

abreflujo

número nombre

cierraflujo

listaflujos

número

lista

leelineaflujo

número

leecarflujo

número

escribelineaflujo número lista

agregalineaflujo

número lista

finflujo?

número

Ejemplo:

Para poder leer o escribir en un fichero, es ne-
cesario crear un flujo hacia él. El argumento
nombre debe ser su nombre, que se refiere al
directorio de trabajo. El argumento n es el nú-
mero que identifica a ese flujo.
Cierra el flujo n.
Carga una lista con los flujos abiertos indicando
su identificador
Abre el flujo cuyo identificador es n, y lee una
línea del fichero
Abre el flujo cuyo identificador es n, después lee
un caracter del fichero. Esta primitiva devuelve
el número correspondiente al caracter unicode
(como leecar - sec. 12.2)
Escribe la línea de texto indicada en lista
al principio del fichero indicado por el flujo n.
Atención: la escritura no se hace efectiva hasta
que se ciera el fichero con cierraflujo.
Escribe la línea de texto indicada en lista al
final del fichero indicado por el flujo n. Atención:
la escritura no se hace efectiva hasta que se ciera
el fichero con cierraflujo.
Devuelve cierto si se ha llegado al final del
fichero, y falso en caso contrario.

El objetivo es crear el fichero ejemplo en el directorio personal: /home/tu_nombre, en

Linux, C:\, en Windows que contiene:

ABCDEFGHIJKLMÑNOPQRSTUVWXYZ
abcdefghijklmñnopqrstuvwxyz
0123456789

156

Para ello:

CAPÍTULO 15. MANEJO DE ARCHIVOS

# abre un flujo hacia el fichero indicado
# identificara el flujo con el numero 2
pondirectorio "/home/tu_nombre
abreflujo 2 "ejemplo
# escribe las lineas que quiero
escribelineaflujo 2 [ABCDEFGHIJKLMNÑOPQRSTUVWXYZ]
escribelineaflujo 2 [abcdefghijklmnñopqrstuvwxyz]
escribelineaflujo 2 [0123456789]
# cerramos el flujo para acabar la escritura
cierraflujo 2

Ahora, comprobamos que está bien escrito:

# abre un flujo hacia el fichero indicado
# identificara el flujo con el numero 0
pondirectorio "/home/tu_nombre
abreflujo 0 "ejemplo
# lee las lineas del fichero consecutivamente
escribe leelineaflujo 0
escribe leelineaflujo 0
escribe leelineaflujo 0
# cerramos el flujo
cierraflujo 0

Si queremos que nuestro fichero termine con la línea Formidable!:

pondirectorio "c:\\
abreflujo 1 "ejemplo
agregalineaflujo 1 [Formidable!]
cierraflujo 1

15.2. Ejecutando programas externos

Si quisiéramos ejecutar un program externo a xLogo, disponemos de la primitiva
comandoexterno. Su argumento debe ser una lista de sub–listas, que contienen en este
orden:

El comando que lanza el programa

Opcionalmente, las opciones del mismo

Por ejemplo:

comandoexterno [ [gedit] ]

15.2. EJECUTANDO PROGRAMAS EXTERNOS

157

Ejecuta el program gedit (en Linux) sin opciones.

comandoexterno [ [notepad] ]

Ejecuta el program block de botas (en Windows) sin opciones.

comandoexterno [ [gedit] [/home/xlogo/ejemplo.txt] ]

Abre el archivo ejemplo.txt con gedit (en Linux).

comandoexterno [ [notepad] [c:\ejemplo.txt]]

Abre el archivo ejemplo.txt con el block de notas (en Windows).

Esta sintaxis tan “especial” permite llamar al sistema con los espacios en blanco adecuados
para que no haya errores. Observa, también, que la ruta a los archivos debe ser absoluta.

15.2.1. Ejemplo: La tortuga . . . ¡Habla!

Si disponemos de un sintetizador de voz en nuestro sistema operativo, algo habitual si
nuestro sistema dispone de Herramientas de Accesibilidad, podemos oír hablar a la tortuga.

En este caso vamos a desarrollar un ejemplo sobre Festival, cuyo verdadero nombre
es Festival Speech Synthesis System, un sistema muy completo para convertir texto
en sonido y viceversa. Podemos encontrar más información en:

http://www.cstr.ed.ac.uk/projects/festival

Vamos a crear un archivo de texto con las órdenes para Festival, de momento un sen-
cillo saludo y la orden de salida, y después llamaremos al sistema con comandoexterno.
El problema no está en crear la secuencia de órdenes, sino en escribir la ruta completa al
archivo.

Usaremos directorio y la forma general de lista:

para habla

abreflujo 1 "habla
escribelineaflujo 1 [(SayText "Hola, amigo.] # Frases que vamos a escuchar
escribelineaflujo 1 [Como estas")]
escribelineaflujo 1 [(quit)]
cierraflujo 1

# Salimos de Festival
# Cerramos el archivo

# Abrimos el archivo de ordenes

#
# Creamos las ordenes como lista de listas y con la ruta completa al archivo
#

comandoexterno lista [festival] (lista palabra directorio "/habla)

fin

158

CAPÍTULO 15. MANEJO DE ARCHIVOS

Una segunda posibilidad consiste en utilizar las opciones de Festival. En el archivo

solo introducimos las frases que queremos escuchar y pasamos la opción --tts:

para habla2

abreflujo 1 "habla2
escribelineaflujo 1 [Hola, amigo.]
escribelineaflujo 1 [Como estas.]
cierraflujo 1
comandoexterno (lista [festival] [--tts] (lista palabra directorio "/habla2))

# Abrimos el archivo de ordenes
# Frases que vamos a escuchar

# Cerramos el archivo

fin

Como ves, mucho más fácil.

15.3. Obtención aproximada de π (2)

Un resultado conocido de teoría de los números pone de manifiesto que la probabilidad
2 ≃ 0,6079. Para

que dos números tomados aleatoriamente sean primos entre ellos es de 6
intentar encontrar este resultado, vamos a:

π

Tomar dos números al azar entre 0 y 1 000 000.

Calcular su m.c.d.

Si su m.c.d. vale 1, añadir 1 a una variable contador.

Repetir 1000 veces

La frecuencia de los pares de números primos entre ellos se obtendrá dividiendo la
variable contador por 1000 (el número de pruebas)

15.3.1. Noción de m.c.d. (máximo común divisor)

Dados dos números enteros, el máximo común divisor define al mayor divisor común

de ambos. Por ejemplo:

42 y 28 tienen como m.c.d. 14, ya que es el número más grande por el que es posible
dividir a la vez 28 y 42

el m.c.d. de 25 y 55 es 5

42 y 23 tienen m.c.d. igual a 1

Cuando dos números tienen m.c.d. 1, se dice que son primos entre sí. Así en el ejemplo
anterior, 42 y 23 son primos entre sí. Eso significa que no tienen ningún divisor común
excepto 1 (¡por supuesto, hablamos de división entera!).

15.3. OBTENCI ÓN APROXIMADA DE π (2)

159

15.3.2. Algoritmo de Euclides

Para determinar del m.c.d. de dos números, se puede utilizar un método llamado algo-
ritmo de Euclides: (Aquí no se demostrará la validez de este algoritmo, se admite que
funciona).

El mecanismo de este método es: “dados dos números naturales a y b, analizamos si b

es nulo.:

En caso afirmativo, entonces el m.c.d. es igual a a.

Si no, se calcula r, el resto de la división de a entre b.

Se su
  • Links de descarga
http://lwp-l.com/pdf10543

Comentarios de: Curso XLogo - Capítulo 15 - Manejo de Archivos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad