Libro de Logo
-
Upload
eduardo-banegas -
Category
Documents
-
view
218 -
download
0
Transcript of Libro de Logo
-
8/19/2019 Libro de Logo
1/119
INDICE
1. INTRODUCCIÓN 3
2. LOGO 4
2.1 LOGO en los centros educativos 4
2.2 Características de LOGO 4
2.3 Instalacin 5
2.! Re"ueri#ientos #íni#os $ara e%ecutar &'(Lo)o 9
2.* Inicio de &'(Lo)o 9
2.+ Conociendo el entorno de &'(Lo)o 10
2.+.1 Las ventanas de &'(Lo)o 10
2.+.2 Ele#entos ,-sicos de una ventana 11
3. ROGR/&/CIÓN EN &'(Lo)o 12
3.1 ri#itivas 12
3.1.1 ri#itivas $ara di,u%ar 13
3.1.2 ri#itivas $ara escri,ir0 editar tra,a%ar con icero 14
3.1.3 ri#itivas $ara crear condiciones ,ucles 15
3.1.! ri#itivas $ara salir de &'(Lo)o 15
3.2 4aria,les 19
3.3 rocedi#ientos 203.! Uso de 4aria,les Glo,ales 23
3.!.1 Las varia,les en el #odo directo5 24
3.* Recursividad 27
3.*.1 'entencias condicionales 28
3.*.2 Control de la recursividad $or #edio de un contador 29
3.+ Car)ar un icero 30
3.6 Tra,a%ar con i#-)enes 31
3.7 Usar ventanas ,otones en &'(Lo)o 32
3.8 Otros E%e#$los con ri#itivas 9-sicas 33
3.8.1 aso De /r)u#entos Entre rocedi#ientos 54
!. ORIENT/CIONE' &ETODOLÓGIC/' / LO' RO:E'ORE' /R/ INICI/R
L/ EN'E;/N
-
8/19/2019 Libro de Logo
2/119
!.1 re$aracin De Las ri#eras /ctividades De ro)ra#acin 69
!.2 resentacin Did-ctica Del &odo Directo 69
!.3 El /$rendi=a%e De Las ri#eras ri#itivas 71
!.! El Cuaderno De Lo)o 74
!.* La Utilidad De Los &ensa%es De Error 75
!.+ Recursos &etodol)icos ara lantear Los rocedi#ientos Lo)o En El /ula. 76
!.+.1 /l)unas su)erencias $ara $ro$oner el a$rendi=a%e de $rocedi#ientos
LOGO 76
!.+ ro)ra#as Estructurados 92
!.+.1 ro)ra#acin 92
!.6 Las 4aria,les 95
!.6.1. 4aria,les Locales 95!.6.2. 4aria,les Glo,ales 96
!.6.3 &etodolo)ía ara La resentacin De Las 4aria,les Locales 97
!.6.!. &etodolo)ía ara La resentacin De Las 4aria,les Glo,ales 100
*. 'ENTENCI/' CONDICION/LE' 102
*.1 &etodolo)ía 102
*.2 Los :iltros 103
*.3 Los &en>s 105
*.! Es$irales recursivas. 108
*.+ /l)unos E%ercicios r-cticos5 El 'e#-oro. 109
+. 9I9LIOGR/:I/ 114
3
-
8/19/2019 Libro de Logo
3/119
1. INTRODUCCIÓN
El objetivo fundamental de este libro es para difundir un lenguaje de programacin gratuito
como lo es !"#"$ %ue fue creado por 'e#our a$ert con la idea principal de %ue los
ni&os aprendieran matem'ticas programando en este lenguaje(
En la actualidad nosotros podemos ver una infinidad de soft)are orientado a la
programacin$ pero todo este soft)are %ue se encuentra en el mercado no es accesible para
todos los %ue %uieran *acer uso de el por el alto costo de sus licencias$ en este sentido
!"#" es un lenguaje de programacin %ue en todas sus versiones desarrolladas para
+,-.$ /acintos* indo)s$ son gratuitas pueden ser copiadas distribuidas sin
restricciones con fines educativos(
!"#" es uno de los pocos lenguajes con instrucciones en espa&ol cua finalidad no es
ense&ar programacin pero debido a su f'cil manejo se puede usar para ense&ar la maora
de los principales conceptos de programacin(
El smbolo de !"#" es una tortuga %ue se mueve obedeciendo las ordenes %ue introduce
el programador( En algunas versiones esta tortuga a sido modificada como en el caso de
/!ogo %ue se *a convertido en un triangulo(
!as rdenes o instrucciones b'sicas %ue se le dan a la tortuga se llaman $ri#itivas$ %ue en
el transcurso de este libro iremos conociendo m's sobre este trmino(
En este libro se trabajara con &'(Lo)o$ en el cual se eplicara el manejo de las*erramientas m's comunes se enfatiara de cmo se puede utiliar esta *erramienta como
un nuevo recurso did'ctico en nuestras aulas de clase(
4
-
8/19/2019 Libro de Logo
4/119
2. LOGO
2.1 LOGO en los centros educativos
!"#" como una *erramienta para ense&ar a pensar puede ser de muc*o provec*o en los
centros educativos %ue se caracterian en dar una buena educacin a sus estudiantes esto
se debe a %ue !"#" no es solo una *erramienta de programacin sino %ue es toda una
teora de aprendiaje$ a %ue propicia crear un clima agradable para %ue el estudiante
raone durante todas las etapas de la clase(
odemos destacar tambin %ue !"#" permite al estudiante %ue durante todo el transcurso
%ue el se sienta a resolver un determinado problema$ est desarrolle una serie de ideas para
poder llegar a la solucin$ *asta llegar a formular una estrategia adecuada para lograr la
resolucin de est problema problemas similares(
odemos decir %ue !"#" puede ser una *erramienta %ue si el docente le da buen uso
puede ocasionar en el estudiante un clima de alegra entusiasmo para seguir aprendiendo(
2.2 Características de LOGO
!ogo es un lenguaje de programacin %ue al igual %ue otros posee caractersticas
especficas %ue lo *acen ser diferente a los dem's$ a continuacin presentamos algunas
caractersticas especiales de !"#"
1( ermite %ue el estudiante eplote su creatividad intelectual(2( rea en el estudiante una actitud activa participativa permanente(
3( ermite %ue el estudiante no solo resuelva problemas mecaniadamente$ sino %ue
apli%ue el raonamiento para solucin de ellos(
4( ermite el trabajo en e%uipos(
5( e pueden crear micromundos(
6( ermite comparar los enfo%ues seguidos por otros grupos para la solucin de un
determinado problema(
7( ermite fomentar la autoestima de los estudiantes(
8( :omenta la auto evaluacin(
9( :omenta la motivacin para seguir aprendiendo(
;Error< ,o se encuentran entradas de
ndice(
5
-
8/19/2019 Libro de Logo
5/119
2.3 Instalacin
omo se menciono anteriormente en este libro para *ablar de la programacin en !"#" se
trabajara con /!ogo 6(5a$ a %ue es una de las versiones m's amigables %ue *a por su
entorno grafico mu bien dise&ado$ a continuacin se presentan los pasos para su
instalacin
1( rimero lo %ue se debe *acer es buscar en donde esta ubicado el instalador(
2( uando *ace doble clic= sobre el instalador le aparecer' esta pantalla>
i %uieres continuar con la instalacin *a clic= en el botn 'í para %ue apareca el
asistente de instalacin
ara continuar solo
*a clic= en 'i)uiente(
3( omo anteriormente se *aba dic*o %ue /!ogo es un soft)are gratuito
entonces aparecer' la ventana de la licencia de /!ogo(
6
-
8/19/2019 Libro de Logo
6/119
ara continuar con la instalacin solo *a clic= en 'i)uiente(4( ?*ora aparece esta pantalla %ue es la %ue indica en %ue directorio del disco duro
estar' ubicado /!ogo se recomienda %ue no se cambie el %ue esta dando el
asistente por defecto %ue solo *aga clic= sobre 'i)uiente para continuar con la
instalacin.
5( ?*ora aparece la ventana donde aparece la opcin de seleccin de la carpeta del
/en@ -nicio en donde se van a crear los accesos directos$ se recomienda solo
*acer clic= en el botn 'i)uiente para continuar con la instalacin(
7
-
8/19/2019 Libro de Logo
7/119
6( En est' pantalla muestra al usuario los datos de la configuracin de la instalacin si
todo est' correcto solo se debe *acer clic= en el botn Instalar(
7( Est' pantalla muestra todo proceso de la instalacin de /!ogo espere %ue
finalice todo el proceso para continuar(
8
-
8/19/2019 Libro de Logo
8/119
8( uando el proceso de instalacin a finaliado le aparecer' est' pantalla$ a%u solo
tiene %ue *acer clic= en el botn de :inaliar todo *abr' concluido con ito(
9
-
8/19/2019 Libro de Logo
9/119
2.! Re"ueri#ientos #íni#os $ara e%ecutar &'(Lo)o
ara ejecutar /!ogo en su ordenador es necesario tener instalado indo)s 3(1 o
posterior los siguientes re%uerimientos mnimos de *ard)are
A +n ordenador ?B$ 386 o superior(
A 2 /egabtes de memoria etendida(
A 2 /egabtes de disco fijo libres(
A +na unidad de CD"/
A +na tarjeta gr'fica F#? o superior(
A +n ratn o dispositivo de control para navegar por las opciones del entorno(
A +na impresora$ opcional(
A +na tarjeta de sonido$ opcional(
2.* Inicio de &'(Lo)o
ara el inicio de /!ogo lo @nico %ue tienes %ue *acer clic en el men@ inicio$
seleccionar todos los programas buscar en la lista donde esta ubicado /!ogo *acer
clic sobre el as a estar' todo listo para usar /!ogo(
2.+ Conociendo el entorno de &'(Lo)o
2.+.1 Las ventanas de &'(Lo)o
ada ve %ue iniciamos /!ogo nos aparece esta ventana
En la cual se
muestran las tres
ventanas m's
importantes la
10
-
8/19/2019 Libro de Logo
10/119
ventana de #r'ficos de Brabajo$ cada una de estas ventanas tiene una funcin
determinada
La 4entana de Gr-icos5 Es el mundo de las tortugas$ es a%u donde se ver'n
representados los dibujos$ decorados la escritura gr'fica(
La 4entana de Tra,a%o Es donde se escriben las primitivas(
Otras ventanas de (inLo)o
in!ogo tambin tiene otras ventanas %ue de acuerdo a la necesidad estas se van
utiliando$ a continuacin mostramos algunas de estas ventanas
1.4entana de Edicin5 ?%u se podr' editar procedimientos a creados o edutar
nuevos procedimientos(
2.+.2 Ele#entos ,-sicos de una ventana
ada una de las ventanas posee elementos indispensables %ue le servir'n al usuario para
poder interactuar$ a continuacin se detallan algunos de estos elementos
11
Garra de titulo
Gotn/inimiar
Gotn/aimiar
Garra dedesplaamientovertical
Garra dedesplaamiento*oriontal
Hrea de trabajo
Gotn /en@de control
-
8/19/2019 Libro de Logo
11/119
9arra de Titulo5 a%u aparece el nombre de la ventana$ cuando la ventana est'
activa aparecer' de otro color %ue la distinguir' de las dem's ventanas(
9otn &en> de Control5 Este botn se encuentra a la i%uierda en la es%uina
superior$ al *acer clic sobre el botn aparecer' un men@ en el cual aparecer'n las
opciones como minimiar$ maimiar$ cerrar$ mover$ tama&o$ restaurar siguiente(
?rea de Tra,a%o5 Es toda la parte %ue se encuentra limitada por los mismos bordes
de la ventana(
9arra de Des$la=a#iento 4ertical5 e encuentra en la parte derec*a de la ventana$
la @nica ventana %ue no tiene esta barra de desplaamiento es la ventana de :ormas(
9arra de Des$la=a#iento @ori=ontal5 e encuentra en la parte inferior de la
ventana(
9otn de &ini#i=ar5 irve para reducir la ventana al menor tama&o posible(
9otn &aAi#i=ar5 irve para *acer m's grande la ventana a su maor tama&o
posible(
12
-
8/19/2019 Libro de Logo
12/119
3. ROGR/&/CIÓN EN &'(Lo)o
3.1 ri#itivas
!as primitivas son procedimientos instrucciones b'sicas %ue a vienen por defecto en el
programa /!ogo( !as primitivas se pueden escribir tanto en ma@scula como en
min@scula se escriben en la parte inferior de la ventana de trabajo(
!o importe de usar las primitivas es %ue se *ace f'cil entender la lgica el funcionamiento
de las ma%uinas conocer su comportamiento$ a %ue es un lenguaje sencillo podemos
decir %ue casi natural el cual facilita %ue el estudiante comprenda lo %ue esta *aciendo
cuando esta programando tambin facilita la labor docente(
Eisten dos tipos de primitivas Co#andos :unciones0 los comandos son primitivas %ue
ejecutan una accin directamente( !as funciones son primitivas %ue producen un resultado
%ue debe ser interpretado por otra primitiva o por otro procedimiento(
or ejemplo 9orra$antalla es un comando$ pues si lo ejecuto$ se produce una accin
como resultado$ en este caso$ limpiar la ventana gr'fica( En cambio 'u#a 2 3 es una
funcin$ pues si lo ejecuto produce el siguiente mensaje de error No #e as dico "uB
acer con *( Entiende %ue se trata de una suma$ pero no sabe %u es lo %ue tiene %ue *acer
con el resultado( +na posibilidad sera Escri,e 'u#a 2 3( Ce esta forma$ la primitiva
uma produce un resultado$ 5$ se lo entrega a la primitiva Escribe$ %ue es un comando(
Esta primitiva sabe %u *acer con el resultado nos lo muestra en la pantalla(Banto los comandos como las funciones pueden re%uerir el uso de par'metros para su
correcto funcionamiento( or ejemplo 9orra$antalla no necesita ning@n par'metro para
funcionar$ su misin es clara( En cambio$ Escri,e necesita alg@n par'metro para funcionar$
de lo contrario no sabra %u es lo %ue tiene %ue escribir(
!os par'metros son objetos !"#" a los describiremos m's adelante(
Brataremos de dar eplicacin a las primitivas m's comunes$ de las cuales *aremos algunos
ejemplos sencillos funcionales( !o interesante de programar en /!ogo es %ue cada
ve %ue se escribe una orden en la ventana al pulsar ENTER o *acer clic= en el botn
Ejecutar$ la primitiva se ejecuta$ pero lo interesante es %ue podemos ver la accin %ue *ace
esa primitiva en el mismo momento %ue se ejecuta$ pero si la primitiva esta mal escrita
entonces al momento de ejecutarse$ aparece lo siguiente en la ventana de trabajo el
13
-
8/19/2019 Libro de Logo
13/119
siguiente mensaje No se co#o0 lo %ue significa %ue no puede ejecutar la accin %ue se
esta ordenando(
!as primitivas se pueden escribir de dos formas al momento de dar una orden
Escribiendo la palabra completa$ por ejemplo /4/N
-
8/19/2019 Libro de Logo
14/119
","!"!?-I O000 000 255Q R ?ul
"+!B?B"B+#? "B "culta la tortuga Mel tri'nguloN en la pantalla(/"B?B"B+#? /B /uestra la tortuga Mel tri'nguloN en la pantallaG"??,B?!!? G Gorra la pantalla coloca a la tortuga en el
centro(
"B+!? OJ"!?Q " OJ"!?Q Escribe un teto en la direccin en %ue seencuentra la tortuga(
",#"" O10 10Q ",# O10 10Q oloca el anc*o del traado del l'pi la alturaespecificados( /!ogo utilia solamente elvalor de la anc*ura(
3.1.2 ri#itivas $ara escri,ir0 editar tra,a%ar con icero
ri#itiva /,reviatura Descri$cin
/+EB? objeto omando %ue escribe la entrada oentradas en la salida de escritura %ueactualmente est Minicialmente es elterminalN(
E-GE objeto E objeto omando %ue escribe la entrada oentradas en la salida de escritura %ueactualmente est Minicialmente es elterminalN( i la entrada es una lista$ loscorc*etes m's eternos no se muestran$ pero s los de los de las sublistas(
EC-B? ",BE,-C" EC-B?B"C" omando %ue abre la ventana del editor permite modifica las definiciones de
los elementos Mprocedimientos$variables$ etc(N(Jace lo mismo %ue el botn Ed( Bodo(
EC-B?"EC-/-E,B"
EC-B?"EC-/-E,B" omando %ue abre la ventana del editor permite modifica las definiciones delos procedimientos(
?#? Snombfic*ero omando %ue lee las instrucciones delfic*ero dado las ejecuta(
#+?C? Snombfic*ero omando %ue guarda en el fic*ero dadolas definiciones de todos los procedimientos$ variables listas de propiedades sin tapar(
3.1.3 ri#itivas $ara crear condiciones ,ucles
ri#itiva Descri$cin
- condicin instrucciones ermite ejecutar una o varias instruccionesdependiendo si se cumple la condicin
--," condicin instrucciones1 instrucciones2 Cependiendo si se cumple una condicin ejecuta la
15
-
8/19/2019 Libro de Logo
15/119
primera lista de instrucciones$ si no se cumpleejecuta la siguiente lista de instrucciones
J?I(J?B? instrucciones condicin Eval@a las instrucciones repetidamente tantasveces *asta %ue se cumpla la condicin( Ce estamanera se asegura %ue las instrucciones seejecutan al menos una ve$ antes de comprobar la
condicin( EK+-F?!E,BE a J?B?J?B? condicin instrucciones epite las instrucciones tantas veces *asta %ue la
condicin epresada se cumpla(J?I(/-E,B? instrucciones condicin Eval@a las instrucciones repetidamente tantas
veces como se cumpla la condicin( Ce estamanera las instrucciones se pueden o no ejecutar$dependiendo si se cumple la condicin(EK+-F?!E,BE ? /-E,B?
/-E,B? condicin instrucciones epite las instrucciones tantas veces como lacondicin epresada se cumpla(
-E/E instrucciones Ejecuta las instrucciones de forma repetida(E-BE numero instrucciones Ejecuta las instrucciones tantas veces como se
le indica en n@mero
3.1.! ri#itivas $ara salir de &'(Lo)o
ri#itiva Descri$cin
?C-" omando %ue sale de !ogo$ devolviendo el controlal sistema operativo(
ara irnos familiariando con estas primitivas m's comunes vamos a realiar algunos
ejemplos
E%e#$lo 3.1
Cibujar un cuadrado color rojo(
Esta actividad la podemos *acer de la siguiente manera
onColorLa$i= F2**
/van=a 1
GiraDereca 8
/van=a 1GiraDereca 8
/van=a 1
GiraDereca 8
/van=a 1
16
-
8/19/2019 Libro de Logo
16/119
Bambin podemos escribir este pe%ue&o programa para *acer el cuadrado usando las
abreviaturas de las primitivas nos va a dar el mismo resultado(
onCL F2**
/4 1
GD 8
/4 1
GD 8
/4 1
GD 8
/4 1
?l finaliar la actividad podemos utiliar las primitivas %ue nos sirven para dejar en limpio
la ventana donde aparecen los dibujos la ventana de teto *acindolo se la siguientemanera
ara borrar la pantalla escribimos BorraPantalla BP en su forma abreviada para borrar
el teto escribimos BorraTexto BT en su forma abreviada autom'ticamente nos %uedara
totalmente limpia nuestra 'rea de trabajo(
Ejercicio 3.1
Dibuja un cuadrado color verde y que tenga una inclinación de 45° acia la dereca.
Ja casos %ue la tortuga en este caso de /!ogo %ue es un triangulo aparece oculta
entonces nosotros podemos *acer %ue apareca *aciendo uso de la primitiva
&ostrarTortu)a &T1 si es el caso %ue %ueremos %ue este oculta entonces utiliamos la
primitiva OcultaTortu)a OT(
E%e#$lo 3.2
Jagamos el cuadrado del ejemplo 1$ a*ora lo %ue vamos *acer es %ue apareca en la
ventana de gr'ficos lo siguiente !E"te e" un cuadrado de l#nea" color rojo$
ara *acer %ue apareca el teto *acemos lo siguiente
?l finaliar de *acer el cuadrado$ el triangulo %ueda en la posicin donde iniciamos pero
con direccin *acia la i%uierda escribimos lo siguiente en la ventana de trabajo
1 ?l principio en este material siempre se escribir' el nombre completo de la primitiva su e%uivalente enabreviatura$ mas adelante solo se escribir'n las abreviaturas(
17
-
8/19/2019 Libro de Logo
17/119
GiraI="uierda 8
'u,eLa$i=
/van=a 2
GiraI="uierda 8
9a%aLa$i=
Rotula FEste es un cuadrado de líneas color ro%o
ecuerda las rdenes se escriben en la ventana de Brabajo( !ogo muestra sus mensajes
tetos en la ventana de Betos$ sus gr'ficos los representa en la ventana de #r'ficos(
i se comete un error al escribir una primitiva como por ejemplo ordenar a la primitiva una
accin incompleta$ !ogo enva su mensaje de error a travs de la ventana de TEHTO'(
ara comprobarlo se teclea E''CRI9E @OL/> la palabra escribe se *a escrito con dos
eses> el ordenador en este caso emitir' un mensaje de error en la ventana de TEHTO'. El
mensaje de error %ue va a parecer es no se cmo *acer E''CRI9E( Bambin se pueden
escribir dos m's rdenes en una misma lnea como por ejemplo
9orraantalla /van=a 1 GiraDereca 8 /van=a + GiraI="uierda !* /van=a 1
9 /4 1 GD 8 /4 + GI !* /4 1
"tra primitiva interesante bastante @til es %e&ite a %ue nos a*orra escribir una misma
orden varias veces$ utiliando el ejemplo 1 vamos a *acer el mismo cuadrado pero esta ve
utiliando la primitiva Re$ite(
onCL F2**
Re$ite !F/van=a 1 GiraDereca 8
E%ercicio 3.2
Escribe el siguiente conjunto de rdenes escribe en la pantalla el nombre de la figura %ue
se forma
REITE 6 F/4 3 GD 3+ J 6
REITE 1F/4 * GD 8 /4 2 GD 8 /4 * GI 8 /4 2 GI 8
18
-
8/19/2019 Libro de Logo
18/119
E%ercicio 3.3
Reali=a la si)uiente actividad
Jasta a%u *emos visto como podemos utiliar las primitivas m's comunes$ para
familiariarte m's puedes *acer las actividades %ue vienen en el C2 de ejercicios(
3.2 4aria,les
+na variable es un dato$ %ue tiene un no#,re$ %ue puede tomar distintos valores(El concepto de variable es mu importante %ue como usuarios de !ogo lo entendamos mu
bien$ para eplicar este concepto primero miremos este ejemplo
'e tiene una li"ta de 5 &er"ona" que "e van a e"tar utili(ando con"tante)ente* &ero no
"e quiere e"tar e"cribiendo el no)bre de e"a" 5 &er"ona" entonce" &uedo crear un
docu)ento que "e lla)e li"ta y cada ve( que "e nece"ite e"cribir el no)bre de la" cinco
&er"ona" lo +nico que "e tiene que acer e" e"cribir li"ta y a&arecer,n lo" 5 no)bre" de
la" cinco &er"ona".$
En /!ogo para asignar un valor a una variable se utilia la primitiva @/
-
8/19/2019 Libro de Logo
19/119
i se %uiere %ue solo apareca en la ventana de trabajo entonces se *ace de la siguiente
forma
Escri,e 5no#,re aparecer' -e gu"ta la cla"e de Progra)ación en /0/
i se %uiere %ue apareca en la pantalla de gr'ficos entonces se *ace de la siguiente forma
Rotula 5no#,re aparecer' -e gu"ta la cla"e de Progra)ación en /0/ en la pantalla
de gr'ficos
ara %ue apareca de forma *oriontal primero escribir la orden de 0irarDereca 2
luego la orden anterior(
E%e#$lo 3.2.2
Famos a trabajar con el ejemplo del cuadrado$ pero en esta ocasin *aciendo uso de
variables(
@a= lado 1
Re$ite !F/4 5lado GD 8
En este caso a no se escribi el valor del tama&o %ue iba a tener cada uno de los lados del
cuadrado sino %ue se creo una variable se utilio esta variable para la creacin del
cuadrado(
3.3 rocedi#ientos
20
-
8/19/2019 Libro de Logo
20/119
uando se *abla de procedimientos o programar de forma procedimental consiste en
ense&ar procedimientos al ordenador %ue despus va utiliar como nuevas primitivas$ a
cuando estas son asimiladas(
!a sintais para crear un procedimiento es
ara No#rocedi#iento F$ar-#etros
.
.
.
:in
+n procedimiento se puede crear de dos formas
1N Utili=ar la ventana de Tra,a%o para %ue apareca la ventana de trabajo primero se
debe escribir en la caja de entrada de datos primitivas ara o)Procedi)iento &ar,)etro" despus pulsar la tecla Enter o el botn Ejecutar aparecer' la
siguiente ventana(
!uego se ir'n introduciendo en esta ventana una a una las sentencias de las %ueconsta el procedimiento se ir' pulsando el botn "T( ara terminar con ladefinicin del procedimiento se introducir' la primitiva:-,(
2N Utili=ar la 4entana de Edicin para acceder a la Fentana de Edicin se usar' la
primitiva ED6T7T/D/ o en el men@ 7rcivo 8 Editar ( ?dem's de definir
procedimientos$ en la ventana de edicin se pueden definir variables$ propiedades$comentarios$ etc( uando se *a acabado de definir el procedimiento se guardar' en
la opcin del men@ 7rcivo 8 0uardar (
21
-
8/19/2019 Libro de Logo
21/119
Es necesario saber %ue los procedimientos %ue se crean solo se pueden estar utiliando
siempre cuando no se salga de /!ogo$ si los %uiere utiliar otra ve %ue entre a
/!ogo tiene %ue guardarlos esto lo puede *acer de la siguiente manera
Cesde la barra de men@ teniendo activa la ventana de ED696: 5 e elige la opcin
#uardar en 'rea de trabajo dentro del men@ 7%9;6
-
8/19/2019 Libro de Logo
22/119
E%e#$lo 3.3.2
igamos trabajando con los procedimientos$ a*ora digamos %ue o %uiero un tri'ngulo pero
%uiero %ue cada ve %ue de la orden de *acer el tri'ngulo pueda escribir el tama&o %ue lo
%uiero para eso entonces vamos *acer lo siguiente
ara Trian)ulo2 5lon)itud
re$ite 3Fav 5lon)itud )d 12
:in
En este ejemplo lo %ue *icimos fue crear un procedimiento con una variable$ la variable es
longitud %ue es la %ue toma el valor del tama&o %ue se le %uiere dar al tri'ngulo$ si
%ueremos probar cual es el resultado escribimos en la ventana lo siguiente “triangulo=152$ autom'ticamente se dibujara un tri'ngulo de 150 de tama&o$ puedes probar con
otros tama&os(
E%e#$lo 3.3.3
?*ora utiliando el ejemplo anterior vamos *acer un procedimiento %ue se va a llamar
!>igura$ *agamos lo siguiente
ara :i)ura
Re$ite 3FTrian)ulo2 1* GD 12
:in
!a figura esperada es la %ue aparece en la imagen(
3.! Uso de 4aria,les Glo,ales
23
-
8/19/2019 Libro de Logo
23/119
!as variables pueden ser comparadas con cajas a las %ue se les pone una eti%ueta MnombreN
en cuo interior eiste un contenido( +na variable$ por ejemplo$ puede llamarse J"!?
contener el n@mero 34> otra puede llamarse E+:"C contener la palabra -nform'tica
Educativa( Ce este modo$ al ejecutar la orden de escribir el contenido de J"!?$ el
ordenador escribe 34$ de la misma manera %ue si se le mandase escribir el contenido de
E+:"C escribira -nform'tica Educativa(
3.!.1 Las varia,les en el #odo directo5
it@ate en la ventana de trabajo(
Escribe
@/< REU:OD Inor#-tica Educativa
ulsa FINTRO./ediante la instruccin anterior se *a creado la variable E+:"C se le *a asignado
como contenido la palabra -nform'tica Educativa(
Escribe
E'CRI9E 5 REU:OD
ulsa FINTRO.
En la ventana de tetos$ aparece escrito el contenido de la variable G?"$ en este caso
-nform'tica Educativa( onviene destacar %ue para conocer el contenido de una variable$ es
necesario escribir la instruccin E'9%6BE ? @no)brevar $ donde nombrevar es el nombre
de la variable
rueba el siguiente ejemplo
@/< ++
E'CRI9E 5K8
@/< NO&9RE contenido
untos -mportantes para la creacin de variables globales
24
-
8/19/2019 Libro de Logo
24/119
El nombre %ue se da a la variable debe ser un conjunto de caracteres sin espacios en
blanco debe ir precedido por comillas( El contenido de la variable puede ser
+n n@mero
El resultado de una operacin
+na palabra %ue ir' precedida de comillas
+na lista entre corc*etes
+na serie de datos introducidos desde teclado durante la ejecucin del programa por
medio de ciertas primitivas(
El contenido de una variable aparece cuando se escribe precedida por el smbolo
5no#,re.
irva como ejemplo el siguiente procedimiento
/R/ CU/DR/DO
9 9T
E' FEscri,e la lon)itud del lado de un cuadrado
@/< L/DO LEE/L/9R/
REITE ! F /4 5L/DO GD 8
:IN
En este procedimiento aparece una nueva primitiva !EEP77B%7$ lo %ue *ace esta
primitiva es !lee la &ri)era &alabra introducida de"de el teclado o le#da de"de un
>icero$ su forma abreviada es !P$.
E%e#$lo 3.!.2
/R/ '/LUDO
E' FC#o te lla#asM
@/< NO&9RE LEE/L/9R/
E' :R/'E FEncantado de conocerte 5NO&9RE
:IN
25
-
8/19/2019 Libro de Logo
25/119
En este ejemplo lo %ue *ace el procedimiento es preguntar el nombre al momento de
ejecutarse cuando se escribe el nombre en la caja$ lo escribe en la pantalla de gr'ficos(
E%e#$lo 3.!.3
/R/ CU9O
9 9T
E' FEste $ro)ra#a calcula el cu,o de los n>#eros
E' FDe "uB n>#ero deseas el cu,oM
@/< NU&ERO LEEC/R
@/< CU9O 5NU&ERO 5NU&ERO 5 NU&ERO
E' :R/'E FEl cu,o de 5 NU&ERO F es 5CU9OP:IN
En este procedimiento aparece la primitiva !EE97%$ lo %ue *ace es !lee el &ri)er
car,cter de un arcivo o la &ri)era &ul"ación de"de el teclado "in nece"idad de &ul"ar
6T%/$ su forma abreviada es !9$.
?dem's de !EE? !EE?!?G? tambin est'n las primitivas !EE6'T7$ %ue
significa !ee una li"ta de caractere" introducido" de"de el teclado o le#do" de"de un
arcivo$ su forma abreviada es !$ !EE97%' nu)$ %ue significa !lee lo" nu)
&ri)ero" caractere" &ul"ado" de"de el teclado o le#do" de un arcivo$ su forma
abreviada es !9' nu)$. ara ver la funcionalidad de cada una de estas primitivas se
presentan los siguientes ejemplos
E%e#$lo 3.!.!
/R/ E%e#$lo!
E' FEn "ue universidad estudiasM5
@/< H LC
E' 5H
:IN
26
-
8/19/2019 Libro de Logo
26/119
E%e#$lo 3.!.*
/R/ E%e#$lo*
E' FEn "ue universidad estudiasM5
@/< H LC' !
E' 5H
:IN
E%e#$lo 3.!.+
/R/ E%e#$lo+E' FEn "ue universidad estudiasM5
@/< H L
E' 5H
:IN
E%e#$lo 3.!.6
/R/ E%e#$lo6
E' FEn "ue universidad estudiasM5
@/< H LL
E' 5H
:IN
3.* Recursividad
e llama recursividad a la posibilidad %ue ofrece un programa dise&ado en !ogo de
llamarse a s mismo en un bucle sin fin( +n sencillo ejemplo lo constitue el siguiente
programa$ %ue dibuja una circunferencia de modo recursivo
/R/ CRECUR
27
-
8/19/2019 Libro de Logo
27/119
/4 1
GD 1
CRECUR
:IN
+n primer problema por resolver en un procedimiento recursivo$ es encontrar la forma de
abandonar su ejecucin infinita de procedimiento sin pulsar la tecla OEQ( e puede
abandonar dic*a ejecucin mediante la primitiva TE97 en una condicin(
3.*.1 'entencias condicionales
!ogo puede UvalorarU el contenido de una condicin UdecidirU entre dos opciones( ara
dejar claros estos conceptos se utiliar' la primitiva TE97$ %ue devuelve 96E%T/ oA7'/ seg@n se *aa pulsado o no una tecla(
El programa -E %ueda controlado al anteponer el condicional '6 a la primitiva TE97
E%e#$lo
/R/ /RCO
'I TECL/M F/LTO
/4 1
GD 1
/RCO
:IN
Este programa va dibujando un arco con avances giros *asta %ue se pulse una tecla(
!a sentencia condicional se epresa con la primitiva - tiene varias sintais> las dos m's
usadas son
'I condicin Faccin 1 Faccin 2
28
-
8/19/2019 Libro de Logo
28/119
Esta sentencia significa %ue$ si se cumple la condicin$ se ejecutan las acciones contenidas
en el primer corc*ete $ en caso contrario$ las incluidas en el segundo( En ambos casos$ una
ve realiadas todas las acciones incluidas en uno de los corc*etes$ el programa ejecuta la
lnea siguiente del programa(
'I condicin Faccin
En este caso$ si se cumple la condicin$ se ejecutan las acciones contenidas en el corc*ete>
despus el programa pasa a la lnea siguiente> si no se cumple la condicin$ el programa
pasa a la lnea siguiente(
3.*.2 Control de la recursividad $or #edio de un contador
E%e#$lo5
/R/ CONT/DOR 5N
'I 5NQ FE'CRI9E GOL /LTO
E' 5N
CONT/DOR 5N1
:IN
El programa contiene una variable local ? %ue slo sirve para escribir su contenido cada
ve %ue el programa se ejecuta( El programa se llama a s mismo *ace disminuir el valor
de la variable en cada paso( !a sentencia condicional de la primera lnea controla la ruptura
del bucle en el momento en %ue se llega a un valor negativo$ se escribe la palabra #"! se
detiene el programa( "bsrvese %ue la comparacin numrica entre el contenido de la
variable la constante no se *a *ec*o con el signo R sino con el signo V a %ue$ si el
incremento se *iciera con decimales 9/T7D/% ?82* 3C* nunca se cumplira la
condicin el bucle sera indefinido(
Famos a realiar un procedimiento %ue genere un cuadrado de lado 100 se rellene de
negro(
!lama a este procedimiento CU/DRONEGRO.
/R/ CU/DRONEGRO
29
-
8/19/2019 Libro de Logo
29/119
REITE ! F/4 1 GD 8
'L GD !* /4 * 9L
RELLEN/
'L /4 S* GI !*
:IN
?%u tienes una forma de provocar una intermitencia entre un cuadro negro una pantalla
blanca$ de forma %ue el cuadro negro permaneca 2 segundos la pantalla blanca 4 seg(
/R/ CONTROL1
9 E'ER/ !
CU/DRONEGRO E'ER/ 2CONTROL1
:IN
?*ora deseamos %ue nuestro 97D%/E0%/ pase de negro a rojo cada 4 segundos por
lo %ue ser' necesario realiar un procedimiento 97D%/%// provocar recursividad
ara temporiar cada estado se utiliar' la primitiva E'PE%7 a descrita E'PE%7
422 y E'PE%7 =22.
3.+ Car)ar un icero
En la parte de procedimientos se eplico la forma de guardar un fic*ero o procedimiento$
a*ora vamos a ver la forma de cargar un fic*ero cuando se nos apareca la necesidad de
usar uno de estos fic*eros$ para eso *acemos lo siguiente
,os vamos a la opcin del men@ /rcivo seleccionamos Car)ar la primitiva 9arga
!no)b>icero permiten la carga de las instrucciones del fic*ero dado( Es importante
destacar %ue cuando se carga un fic*ero se leen las instrucciones %ue contiene se ejecutan(
En la ventana de seleccin del arc*ivo a cargar solo aparecen los arc*ivos con etensin
(!#"( ara %ue aparecan todos los arc*ivos se debe seleccionar en Bipo de arc*ivos todos
los arc*ivos MW(WN(
30
-
8/19/2019 Libro de Logo
30/119
i no se *an guardado el entorno de trabajo de la sesin actual en disco o si en el arc*ivo
eisten procedimientos a definidos en la sesin actual$ se sobrescribir'( ero antes de eso
/!ogo emite una ventana de aviso
3.6 Tra,a%ar con i#-)enes
El men@ Gitmap de /!ogo ofrece la posibilidad de trabajar con im'genes o dibujos
cargarlos$ guardarlos e imprimirlos(
/!ogo permite la posibilidad de cargar im'genes con formato (bmp( ara poner cargar
una imagen de este tipo en la pantalla principal se debe utiliar la funcin Gitmap argar(
Bambin permite guardar im'genes en formato (bmp( ara ello se usa el men@
31
-
8/19/2019 Libro de Logo
31/119
Gitmap #uardar o Gitmap #uardar como(
3.7 Usar ventanas ,otones en &'(Lo)o
on /!ogo se pueden crear aplicaciones procedimientos con ventanas botones(
ara ello se utilian primitivas como creaventana* creaboton*F
? continuacin se muestra un ejemplo de una aplicacin %ue consta de varios
procedimientos %ue crean una ventana %ue consta de varios botones %ue permite escribir
borrar un teto
/R/ 4entanaE%e#$lo rocedi#iento "ue crea la ventana del e%e#$lo 9T ,orra
$antalla de teAto 9 ,orra $antalla de )r-icos
OT
creaventana $rinci$al 4EVE& FE%e#$lo de a$licacin con ventanas 12 1* 276
1 F
crea)rou$,oA 4EVE& E4entana * 26! 7*
crea)rou$,oA 4EVE& EEscri,ir 2 2 12 *
crea,oton 4EVE& Escri,ir FE'CRI9IR 2* 1 11 3* Factuali=aestatico teAto
FE%e#$lo de ventanas
crea)rou$,oA 4EVE& E9orrar 1!* 2 12 *
32
-
8/19/2019 Libro de Logo
32/119
crea,oton 4EVE& 9orrar F9ORR/R 1* 1 11 3* Factuali=aestatico teAto F
crea)rou$,oA 4EVE& EteAto 2 * 12 3
creaestatico 4EVE& teAto Fulse un ,otn 2* + 7 1*
crea,oton 4EVE& 'alir F'alir 1* + 11 2 F9T 9 #uestratortu)a
,orraventana
4EVE&
:IN
/R/ &ostrarE%e#$lo
4entana inicial del e%e#$lo
er#ite ver el e%e#$lo o a,andonarlo
sisino sino,oA F4isuali=ar e%e#$lo FWuiere ver el e%e#$loM. F4entanaE%e#$lo F9T9
:IN
/R/ 9orrar4entanaE%e#$lo
,orraventana 4EVE&
:IN
3.8 Otros E%e#$los con ri#itivas 9-sicas
1( rea un procedimiento llamado $or %ue calcule el producto de 10 por 42 lo presente en
la pantalla gr'fica
ara $or
@a= nu#ero1 1
@a= nu#ero2 !2
@a= resultado 5nu#ero1 5nu#ero2
9 GD 8
Rotula F1 A !2 X
/4 8
33
-
8/19/2019 Libro de Logo
33/119
Rotula 5resultado
:IN
Es importante %ue comprendas la diferencia entre el no#,re de una variable el valor de
esa misma variable( or ejemplo
rotula ola $roducir- ola
rotula Fola $roducir- ola
a= ola 68
rotula 5ola $roducir- 68
rotula ola 2 $roducir- error
rotula 5ola 2 $roducir- 1*7
2( rea un procedimiento llamado #ensa%e1 %ue muestre en la pantalla un aviso pidiendo
%ue lo aceptes o lo rec*aces
ara #ensa%e1
&ensa%e Flan $ara esta tarde FWuieres ir a estudiarM
:in
3( /odifica el procedimiento #ensa%e1 para %ue pregunte otra cosa distinta(
fic*ero X editar X mensaje1
ara #ensa%e1
&ensa%e Flan $ara esta tarde FWuB tal si va#os al cineM
:in
4( rea un procedimiento llamado tra=os %ue dibuje una lnea de traos$ de 100 piel de
largo( ?l terminar el procedimiento$ muestra la tortuga en el centro de la pantalla(
ara tra=os
Li#$ia
34
-
8/19/2019 Libro de Logo
34/119
'L OT
on$os F*
GD 8
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
on$os F
GI 8
&T
:in
5( Ja un procedimiento$ llamado eAa)ono$ %ue dibuje un *e'gono de lado 120$ con
grosor 3 de color marrn M8N sobre fondo carmin M12N(
ara eAa)ono
9 9L
onc$ 12
oncl 7
on) F3 3
Re$ite + Fav 12 )d +
OT
:in
6( Ja un procedimiento llamado VdodecaedroY %ue dibuje un dodec'gono de lado 40$ con
grosor 2 de color aul M1N sobre fondo amarillo M6N
ara dodecaedro
9 9L
onc$ 1! oncl 1 on) F2 2
35
-
8/19/2019 Libro de Logo
35/119
Re$ite 12 Fav ! )d 3
OT
:in
:jate %ue$ para dibujar cual%uier polgono regular de 80 puntos de lado$ el conjunto de
rdenes es el mismo( !a @nica variacin entre un polgono otro es el n>#ero de lados$
%ue coincide con el n@mero de repeticiones$ el -n)ulo %ue debe girar la tortuga(
7( Escribe un procedimiento capa de dibujar un cuadrado cual%uiera( El tama&o del
cuadrado se especificar' mediante la variable lado %ue acompa&ar' al nombre del
procedimiento cuando lo invo%ues(
ara cuadro 5lado
Re$ite ! F/4 5lado GD 8
:in
8( Escribe un procedimiento$ de nombre $oli)ono seguido de la variable lados$ %ue dibuje
un polgono regular de 80 puntos de lado$ con el n@mero de lados indicado en la variable
lados
ara $oli)ono 5lados
9 9L
onc$ 12 oncl 7 on) F3 3
@a= an)ulo 3+J5lados
Re$ite 5lados F/4 7 GD 5an)ulo
OT
:in
9( /odifica el procedimiento $oli)ono para %ue admita dos par'metros el n@mero de lados
la lon)itud de esos lados(
36
-
8/19/2019 Libro de Logo
36/119
ara $oli)ono 5lados 5lon)itud
9 9L
onc$ 12 oncl on) F3 3
@a= an)ulo 3+J5lados
Re$ite 5lados F/4 5lon)itud GD 5an)ulo
OT
:in
10( Z$ si somos capaces de dibujar un polgono cual%uiera$ [podremos dibujar un crculo\
Escribe un procedimiento$ llamado circulo$ capa de dibujar un crculo del radio %ue se le
indi%ue(
ara circulo 5radio
@a= avance 5radiotan 1
Re$ite 3+ F/4 5avance GD 1
:in
11( ?*ora$ para practicar la programacin de reiteraciones con par'metros$ modifica el
procedimiento tra=o para crear otro procedimiento llamado tra=o1 longitud$ %ue dibuje en
la pantalla una lnea de traos de lon)itud ajustable( edacta un programa con el #enor
n>#ero $osi,le de líneas de cdi)o$ utiliando la repeticin de una @nica orden( El
procedimiento debera tener un aspecto como este
ara tra=o 5lon)itud
Li#$ia
'L OT
on$os F*
GD 8
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
37
-
8/19/2019 Libro de Logo
37/119
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
9a%ala$i= /van=a 1 'u,ela$i= /van=a 1
on$os F
GI 8
&T
:in
12( Famos a crear el procedimiento cuadro para %ue el cuadrado %ue resulta %uede relleno
de color(
ara cuadro 5lado
9 9Lonc$ 1! oncl oncolorrelleno 1
Re$ite ! F /4 5lado GD 8
'L GD !* /4 3
Rellena
OT
:in
13( Ja un procedimiento$ llamado $enta)ono$ %ue dibuje en la pantalla gr'fica un
pent'gono de cual%uier longitud de lado( osteriormente utilia ese procedimiento a
creado$ en uno nuevo %ue dibuje seis pent'gonos$ unidos entre s por un vrtice formando
una estrella(
ara $enta)ono 5lado
Re$ite * F/4 5lado GD 62
:in
ara estrella 5lado
9 9L
onc$ 1 oncl on) F3 3
38
-
8/19/2019 Libro de Logo
38/119
Re$ite + F$enta)ono 5lado GD +
OT
:in
:jate %ue$ en el cdigo del procedimiento estrella aparece una llamada al procedimiento
$enta)ono lado$ ;como si fuese una primitiva m's del lenguaje<
14( #uarda este gr'fico$ creado con /!ogo$ en una carpeta de tu disco duro con
formato de mapa de bits .,#$( ara ello abre el men@
bitmap X #uardar como((( X Estrellapenta
15( [odrias dibujar una flor\ +n mtodo sencillo podra consistir en dibujar cada ptalocon un cuarto de crculo *ec*o con varios segmentos( or ejemplo
ara cuarto 5$aso
Re$ite 8 F/4 5$aso GD 1
:in
Cibujar un ptalo es f'cil$ con dos cuartos de crculo
ara $etalo 5$aso
Re$ite 2 Fcuarto 5$aso GD 8
:in
?*ora te toca a ti lo m's f'cil escribe un procedimiento$ llamado lor %ue sea capa de
dibujar una flor compuesta de varios ptalos(
16( Ja un procedimiento$ llamado no#,re$ %ue te pregunte tu nombre$ lo guarde en una
variable$ lo muestre en la ventana de trabajo con el formato B+ ,"/GE E nombre(
ara no#,re Co#ien=a el $rocedi#iento lla#ado no#,re
39
-
8/19/2019 Libro de Logo
39/119
9 'L OT GD 8 ,orra la $antalla sit>a la tortu)a en $osicin
Rotula FC#o te lla#asM
@a= tuno#,re lee$ala,ra asi)na la entrada tecleada a tuno#,re
9 GD 8 li#$ia la $antalla
Rotula FY@olaZ0 escri,e un teAto de saludo un es$acio
on$os F+ se des$la=a a la dereca
Rotula 5tuno#,re $resenta el valor de la varia,le
on$os F 2* se des$la=a a la línea inerior
Rotula FWuB tal est-sM co#$leta el saludo
:in in del $rocedi#iento no#,re
17( Ja un procedimiento$ llamado su#ar$ %ue nos pida dos n@meros nos devuelva elresultado de sumarlos en la ventana de gr'ficos(
ara su#ar
9 GD 8 OT 'L 9T iniciali=a las $antallas
on$os F2 sit>a el $untero
Rotula FWuB n>#eros "uieres su#arM
@a= nu#1 lee$ala,ra ca$tura la $ri#era varia,le
@a= nu#2 lee$ala,ra ca$tura la se)unda varia,le
9 GD 8 li#$ia la $antalla
on$os F2 sit>a el $untero al co#ien=o
Rotula FL/ 'U&/ DE
on$os F7* de cada uno de los
Rotula 5nu#1
on$os F!* ra)#entos del #ensa%e
Rotula FK
on$os F3 de salida
Rotula 5nu#2
on$os F1
Rotula FX
40
-
8/19/2019 Libro de Logo
40/119
on$os F3
Rotula 5nu#1 K 5nu#2 calcula la su#a la $resenta
:in
"bserva %ue$ si intentas sumar n@meros largos$ se producen problemas al rotular cada una
de las partes del mensaje de salida( i %uieres %ue la presentacin del resultado sea m's
elegante$ en una sola lnea de cdigo sin tener %ue preocuparte de cu'nto espacio
necesitas para cada cifra$ puedes conseguirlo utiliando la primitiva lista( El procedimiento
su#ar %uedara as
ara su#ar
9 GD 8 OT 'L 9T
on$os F2 Rotula FWuB n>#eros "uieres su#arM
@a= nu#1 lee$ala,ra
@a= nu#2 lee$ala,ra
9 GD 8
on$os F2
Rotula lista La su#a de 5nu#1 K 5nu#2 X 5nu#1K5nu#2P
:in
18( Ja un procedimiento llamado identidad$ capa de preguntarte tu nombre luego
saludarte escribindolo en la pantalla(
ara identidad
9 GD 8 OT 'L 9T
Rotula FCu-l es tu no#,re a$ellidosM
@a= na$el leelista
9 GD 8
Rotula FY@olaZ
on$os F6 rotula 5na$el
:in
41
-
8/19/2019 Libro de Logo
41/119
19( Ja un procedimiento con el nombre inicial$ %ue pregunte tu nombre responda cu'l
es la letra inicial de tu nombre(
ara inicial
9 OT 'L GD 8
Rotula FCu-l es tu no#,reM
@a= letra $ri#ero lee$ala,ra
9 GD 8
on$os F1
Rotula FTu no#,re e#$ie=a $or
on$os F12*
Rotula 5letra:in
20( Escribe un procedimiento capa de convertir dlares a lempiras(
ara le#$iras
9 GD 8 'L OT
on$os F2
Rotula FDe cu-ntos dlares se trataM
@a= dolares $ri#ero leelista
@a= le#$iras 5dolares 18.2
9 GD 8
on$os F2 Rotula 5dolares
on$os F1* Rotula FDlares son5
on$os F! Rotula 5le#$iras
on$os F+ Rotula FLe#$iras.
:in
Cel mismo modo %ue *icimos en el procedimiento su#ar$ podemos resolver la
presentacin del resultado en una @nica lnea de cdigo con la primitiva lista
42
-
8/19/2019 Libro de Logo
42/119
ara le#$iras
9 GD 8 'L OT
on$os F2
Rotula FDe cu-ntos dlares se trataM
@a= dolares $ri#ero leelista
@a= le#$iras 5dolares 18.2
9 GD 8
on$os F2 Rotula lista 5dolares Dlares son5 5le#$iras Le#$irasP
:in
21( Ja un procedimiento$ con el nombre de tri)o$ %ue nos pida el valor de un 'ngulo nosdevuelva el seno$ el coseno la tangente en la ventana de trabajo(
ara tri)o
9T ,orra la $antalla de tra,a%o
@a= valor lee$ala,ra
Escri,e lista ?n)ulo5 5valor )radosP
Escri,e lista 'u seno es5 sen 5valorP
Escri,e lista 'u coseno5 cos 5valorP
Escri,e lista [ su tan)ente5 tan 5valorP
:in
22( Ja un procedimiento %ue nos pida un n@mero con decimales nos devuelva la parte
entera del mismo$ el n@mero redondeado su ra cuadrada$ en la ventana de trabajo(
ara nu#eros
9T
Escri,e FE'CRI9E UN NU&ERO CON DECI&/LE'
@a= valor lee$ala,ra
Escri,e lista NU&ERO 'OLICIT/DO5 5valorP
43
-
8/19/2019 Libro de Logo
43/119
Escri,e lista L/ /RTE ENTER/ E'5 entero 5valorP
Escri,e lista 'U 4/LOR REDONDE/DO E'5 redondea 5valorP
Escri,e lista 'U R/I< CU/DR/D/ E'5 rc 5valorP
:in
23( Ja un procedimiento$ llamado loteria$ %ue genere dos n@meros aleatorios entre el 0
el 255 los muestre en la ventana de trabajo( ?dem's devolver' el resultado de dividir el
primero entre el segundo$ su resto(
ara loteria
9T,orra la $antalla de tra,a%o
@a= nu#1 a=ar 2** )enera al a=ar dos n>#eros #enores "ue 2**@a= nu#2 a=ar 2**
Escri,e lista ri#er n>#ero aleatorio5 5nu#1P
Escri,e lista 'e)undo n>#ero aleatorio5 5nu#2P
Escri,e lista 'u cociente es5 5nu#1J5nu#2P
Escri,e lista [ "ueda un resto de5 resto 5nu#1 5nu#2P
:in
24( Escribe un procedimiento$ llamado nu#1$ %ue sea capa de escribir 6 n@meros
aleatorios entre 0 10(
ara nu#1
9T
Re$ite + F#uestra a=ar 11
:in
25( ?*ora escribe un procedimiento$ al %ue llamaremos nu#2*$ %ue escriba oc*o cifras
elegidas al aar entre el 2 el 5( !as cifras no deben ser menores %ue 2 ni maores %ue 6(
ara nu#2*
44
-
8/19/2019 Libro de Logo
44/119
9T
Re$ite 7 Fa= nu#1 a=ar !
Escri,e 5nu#1K2
:in
26( or ejemplo$ escribe un procedimiento llamado nu# 5,a%o 5alto$ %ue muestre una ve=
cada se)undo un n@mero elegido al aar$ entre dos cifras lmite(
ara nu# 5,a%o 5alto
9T
@a= la$so 5alto5,a%o
@a= nu#1 a=ar 5la$soK1Escri,e 5,a%oK5nu#1
Es$era +
nu# 5,a%o 5alto
:in
uedes detener la ejecucin del procedimiento tecleando /lto en la botonera del 'rea de
comandos(
27( "tro ejemplo *agamos un procedimiento %ue dibuje una lnea en =i)=a)$
indefinidamente
ara =i)=a)
onru#,o !*
/4 * GD 8
/4 * GI 8
Es$era 1
=i)=a)
:in
45
-
8/19/2019 Libro de Logo
45/119
28( Ja un procedimiento llamado ta,asci$ %ue genere una tabla entre el 0 el 255 en la
%ue apareca el valor decimal su correspondiente cdigo ?--( e mostrar' en la
ventana de trabajo(
ara ta,asci
9T 9orra la $antalla de tra,a%o
@a= A Crea un contador lo $one a
Re$ite 2** Fescri,e lista 5A caracter 5APc Escri,e un n>#ero el car-cter
@a= A 5AK1 e"uivalente en ascii
:in
29( Escribe a*ora un procedimiento %ue nos pida una letra devuelva su cdigo ?-- enla pantalla(
ara traduce
9T ,orra la $antalla de tra,a%o
Escri,e FINTRODUCE UN/ LETR/ EN L/ 4ENT/N/
@a= valor lee$ala,ra
9T
Escri,e lista LETR/5 5valorP
Escri,e lista 'u valor /'CII es5 ascii 5valorP
:in
30( Ja un procedimiento llamado nu#$os %ue nos pida un n@mero( i el n@mero %ue
introducimos es positivo se mostrar' su ra cuadrada( i es negativo no debe calcularlo$ a
%ue dara un error(
ara nu#$os
9T
Escri,e FINTRODUCE UN N\&ERO EN L/ 4ENT/N/
@a= valor lee$ala,ra
46
-
8/19/2019 Libro de Logo
46/119
9T
Escri,e lista El n>#ero es5 5valorP
'i 5valor] Fescri,e lista 'u rai= cuadrada es5 rc 5valorP
:in
!a primitiva si tambin permite ordenar al programa %ue ejecute una accin u otra$ en
funcin de %ue una condicin se cumpla o no( En este caso$ la sintais de la primitiva si es
la siguiente si condicin Oaccion1Q Oaccion2Q
i la condicin es verdadera ejecutar' la accin1( i la condicin es alsa ejecutar' la
accin 2( or ejemplo
31( Escribe un procedimiento$ llamado $osne)$ %ue nos pida un n@mero( i el n@mero %ueintroducimos es positivo se mostrar' su ra cuadrada( i es negativo se escribir' un
mensaje %ue diga U," E +ECE ?!+!? !? ?-I CE +, ,E#?B-F"U(
ara $osne)
9T
Escri,e FINTRODUCE UN N\&ERO EN L/ 4ENT/N/
@a= valor lee$ala,ra
9T
Escri,e lista El n>#ero es5 5valorP
'i 5valor] Fescri,e lista 'u rai= cuadrada es5 rc 5valorP Fescri,e lista No
tiene rai=0 es un n>#ero ne)ativoP
:in
!a sintais de la primitiva si eige %ue las dos acciones estn en la #is#a línea de cdi)o(
Ja una primitiva %ue se comporta de un modo semejante se llama sisino( u sintais es
similar sisino condicin Oaccion1Q Oaccion2Q
32( Escribe un procedimiento$ llamado santia)o$ %ue formule una pregunta %ue informe
si la respuesta es correcta o no lo es(
47
-
8/19/2019 Libro de Logo
47/119
ara santia)o
9T 9 'L OT GD 8 onc$ 1!
on$os F* 1
Rotula FDe "uB color es el ca,allo ,lanco de 'antia)oM
@a= res$uesta lee$ala,ra
Li#$ia on$os F* 1
'isino 5res$uestaX,lanco FRotula lista YZ&u ,ienZZ Y/certasteZ Es ,lancoP
FRotula lista YYCu-nto lo sientoZZ :allaste. No es 5res$uestaP
:in
33( Escribe un procedimiento llamado lo)ica$ %ue nos pida dos n@meros( i los dos
n@meros son maores de 100$ nos devolver' la suma de ambos( i es alguno de ellos esigual o menor %ue 100 nos devolver' un mensaje de error(
ara lo)ica
9 GD 8 'L OT on$os F2
Rotula lista Introduce dos n>#eros #aores "ue 1P
@a= nu#1 lee$ala,ra
@a= nu#2 lee$ala,ra
9 GD 8 on$os F2
'isino 5nu#1]1 5nu#2]1 FRotula lista La su#a de 5nu#1 5nu#2 es5
5nu#1K5nu#2P Frotula lista YYYErrorZZZ Uno de los dos n>#eros es #enor
"ue 1P
:in
!a funcin lgica o eval@a varias epresiones( Cevuelve el valor cierto si al)una de las
epresiones evaluadas tienen el valor cierto devuelve el valor also si todas las
epresiones son falsas( u sintais es como sigue o epresion1 epresion2 si debe evaluar
2 epresiones Mo epresion1 epresion2 epresion3 (((N si debe evaluar m's de 2 epresiones
48
-
8/19/2019 Libro de Logo
48/119
34( ara comprenderlo$ vamos a redactar un procedimiento llamado lo)ica2 %ue nos pida
dos n@meros$ uno de los cuales de,e ser maor %ue 500( i uno o los dos n@meros son
maores %ue 500$ nos devolver' la suma de ambos( i los dos n@meros son iguales o
menores %ue 500$ nos devolver' un mensaje de error(
ara lo)ica2
9 GD 8 'L OT on$os F2
Rotula lista Introduce dos n>#eros. Uno de ellos de,e ser #aor "ue
*P
@a= nu#1 lee$ala,ra
@a= nu#2 lee$ala,ra
9 GD 8 on$os F2 'isino o 5nu#1]* 5nu#2]* Frotula lista La su#a de 5nu#1 5nu#2 es5
5nu#1K5nu#2P Frotula lista YYYErrorZZZ /#,os n>#eros son #enores "ue
*P
:in
!a primitiva ,it devuelve el resultado de aplicar la funcin lgica [ sobre dos o m's
n@meros$ %ue deben ser n@meros enteros( u sintais es como sigue
,it numero1 numero2
i debe *acer el c'lculo con 2 n@meros
M,it numero1 numero2 numero3 (((N
i debe calcularlo con m's de 2 n@meros
!a primitiva ,ito devuelve el resultado de aplicar la funcin lgica O sobre dos o m's
n@meros enteros( u sintais es similar a la de la primitiva bit(
35( ara practicarlo$ escribe un procedimiento llamado unciono$ %ue nos pida dos
n@meros enteros nos devuelva el resultado de *acer la funcin lgica V[Y entre ellos$ la
funcin lgica VOY(
49
-
8/19/2019 Libro de Logo
49/119
ara unciono
9 GD 8 'L OT
on$os F*
Rotula lista Introduce dos n>#eros enteros.P
@a= nu#1 lee$ala,ra
@a= nu#2 lee$ala,ra
9 GD 8
on$os F*
Rotula lista Los n>#eros introducidos son5 5nu#1 5nu#2P
on$os F* 2
Rotula lista El resultado de a$licar la uncin [ es5 ,it 5nu#1 5nu#2P
on$os F* !Rotula lista El resultado de a$licar la uncin O es5 ,ito 5nu#1 5nu#2P
:in
!a primitiva $rue,a eval@a una epresin recuerda si el resultado *a sido cierto o also$
para %ue luego puedan utiliarlo las otras dos primitivas sicierto$ %ue puede abreviarse
como sic sialso$ %ue puede abreviarse como si (
!a sintais del conjunto es como sigue
$rue,a epresion
sic Oacciones a realiarQ
si Oacciones a realiarQ
36( Feamos un ejemplo$ con un procedimiento$ llamado sorteo* %ue genera un n@mero
aleatorio entre el 0 el 100( i el n@mero generado es menor %ue 50 aparecer' un mensaje
indic'ndolo( i el n@mero es igual o maor %ue 50 aparecer' otro mensaje %ue nos lo
indica(
ara sorteo*
9 GD 8 'L OT
@a= nu# a=ar 1
50
-
8/19/2019 Libro de Logo
50/119
on$os F*
Rotula lista El n>#ero a)raciado es5 5nu#P
on$os F* 2
rue,a 5nu#Q*
'ic FRotula lista "ue es #enor "ue *P
'i FRotula lista "ue es #aor "ue *P
:in
+n bucle en un programa es una parte del mismo %ue se ejecuta repetidamente un n@mero
determinado de veces( Este n@mero puede ser fijo o depender de determinadas
circunstancias(
!as primitivas #ientras asta dirigen la ejecucin de una o varias instrucciones mientras
una epresin sea cierta( u sintais es como sigue
#ientras OepresionQ OinstruccionesQ
asta OepresionQ OinstruccionesQ
!o primero %ue *acen es evaluar si la epresin da como resultado cierto$ por lo %ue las
instrucciones podran no ejecutarse nunca si la evaluacin de las epresiones arrojase como
resultado also(
37( or ejemplo$ *a un procedimiento$ llamado ta,la#ul$ %ue genere un n@mero aleatorio
entre el 0 el 30( +na ve elegido ese n@mero$ el programa debe presentarlo en la pantalla
$ adem's$ presentar' en la ventana de teto la tabla de multiplicar por 7$ desde el 0 *asta el
n@mero generado al aar(
ara ta,la#ul
9 9T GD 8 'L OT
@a= nu# a=ar 3 eli)e un n>#ero al a=ar #enor "ue 3
Rotula lista N>#ero ele)ido5 5nu#P
Escri,e lista T/9L/ DEL 'IETE DE / 5nu#P
Escri,e F línea en ,lanco
51
-
8/19/2019 Libro de Logo
51/119
@a= contador iniciali=a un contador
&ientras F5contadorQ5nu#K1 FEscri,e lista 5contador A 6 X 5contador 6P
@a= contador 5contador K 1
:in
37( ara redundar en la ejecucin de tareas asta %ue se cumpla una condicin$ vamos a
*acer un procedimiento$ llamado ta,latri)o$ %ue calcule los valores del seno el coseno de
un 'ngulo$ desde 0 a 120 grados$ los presente en la pantalla en forma de tabla ordenada(
ara ta,latri)o
9 GD 8 'L OT
onc$ F2!* 18+ 126@a= an)ulo
@a= A !
@a= 3
@asta F5an)ulo]12 Fon$os lista 5A 5P Rotula lista ?n)ulo5 5an)uloP on$os
lista 5AK1* 5P Rotula lista 'eno5 sen 5an)uloP on$os lista 5AK!* 5P Rotula
lista Coseno5 cos 5an)uloP @a= an)ulo 5an)uloK* @a= 52
:in
Es posible %ue tengas %ue retocar las coordenadas iniciales S e S para %ue la tabla %uede
correctamente centrada en tu pantalla(
!as primitivas a=.#ientras a=.asta son semejantes ejecutan un grupo de
instrucciones #ientras una condicin sea cierta o asta %ue una condicin sea cierta( u
sintais es como sigue
a=.#ientras OinstruccionesQ OcondicinQ
a=.asta OinstruccionesQ OcondicinQ
or ejemplo
@a= U? 0
52
-
8/19/2019 Libro de Logo
52/119
@a=.#ientras OJa U? ?]1 escribe ?Q O?V3Q
roduce
1
2
3
38( Ja un procedimiento llamado or#ato23 %ue genere una lista de n@meros entre el
5$00 el 15$00 con dos decimales con un incremento entre ellos de 03(
ara or#ato23
9TEscri,e FN\&ERO' DE * / 1*
Escri,e FINCRE&ENTO5 .3
Escri,e F
@a= nu#1 *.
@a=.asta FEscri,e or#atonu#ero 5nu#1 * 2 @a= nu#1 5nu#1K.3F5nu#1 ]
1*
:in
39( Ja un procedimiento$ llamado #ulti$i$ %ue genere la lista de m@ltiplos de ^
M3$141592N$ comprendidos entre el 0 el 150$ con una precisin de tres decimales( !a serie
de n@meros debe aparecer en la ventana de teto con una cadencia de 0$5 segundos entre
cada n@mero presentado(
ara #ulti$i
9T
Escri,e F&\LTILO' DE I QnQ1*
Escri,e F
@a= nu#
@a=.#ientras FEscri,e or#atonu#ero 5nu# 6 3 @a= nu# 5nu# K 3.1!1*82+*!
53
-
8/19/2019 Libro de Logo
53/119
Es$era 3 F5nu#Q1*
:in
3.8.1 aso De /r)u#entos Entre rocedi#ientos
e puede realiar un procedimiento %ue necesite alg@n dato previo para poder realiar
alguna operacin con l luego nos devuelva el dato o los datos del resultado(
Estos datos %ue se pasan al procedimiento$ en el momento de llamarlo o ejecutarlo o %ue
devuelve el procedimiento al finaliar su ejecucin$ se denominan argumentos(
40( Ja un procedimiento llamado #ulti$lica$ %ue reciba dos n@meros devuelva el
producto de ambos a otro procedimiento %ue lo llame(
ara $rod 5A 5 'e inicia un $rocedi#iento con dos datos de entrada
@a= = 5A 5
devuelve 5= /l inali=ar devuelve = al $rocedi#iento "ue lo lla#
:in
ara #ulti$lica
9T
Escri,e FIntroduce los actores
@a= A lee$ala,ra
@a= lee$ala,ra
9T
Escri,e FEl resultado es5
Escri,e lista 5A A 5 X $rod 5A 5P Lla#a a Q$rod] le da los datos. De Q$rod]
reci,e un dato lo $resenta
:in
41( Ja un procedimiento llamado rectanA3$ %ue reciba un n@mero dibuje un rect'ngulo
de lado *oriontal 3 veces el vertical( !a altura del lado vertical ser' el n@mero recibido(
!as variables %ue utilice dic*o procedimiento ser'n de car'cter local(
54
-
8/19/2019 Libro de Logo
54/119
ara rectanA3 5lado
9 9L on) F2 2
local anco
@a= anco 5lado 3
Re$ite 2 F/4 5lado GD 8 /4 5anco GD 8
OT
:in
3.8.2 ro)ra#acin Orientada / O,%etos
!a tcnica de programacin orientada a objetos consiste$ a diferencia de la programacin
estructurada mediante procedimientos$ en organiar la interaccin con el usuario a travs de
objetos %ue aparecen en pantalla( on objetos caractersticos las ventanas$ botones$ casillasde seleccin$ etc(
!os objetos son los elementos b'sicos de la interfa gr'fica de usuario
+na ventana es un 'rea de trabajo$ tpica del entorno indo)s$ dotada de una barra de
ttulo$ sobre la %ue aparecer'n otros objetos para facilitar la interaccin del usuario( +na
ventana puede arrastrase por la pantalla$ maimiar$ minimiar$ borrar$ etc(
42( rea tu primera ventana tecleando la siguiente orden
creaventana $ri#era F&i $ri#era ventana 8 * 12 7 F
"bserva %ue la ventana tiene un nombre MprimeraN$ su ,arra de título muestra el teto V/i
primera ventanaY$ su posicin respecto a la es%uina superior i%uierda M90 50N su tama&o
M120 80N( !a ventana *a sido creada en la ventana principal de la pantalla MSN
uedes desactivar la ventana o volverla a activar con las rdenes
a,ilitarventana $ri#era also
a,ilitarventana $ri#era verdadero
43( ?*ora borra la ventana$ utiliando la orden siguiente
55
-
8/19/2019 Libro de Logo
55/119
,orraventana $ri#era
ara saber m's sobre la sintais de las ventanas consulta la auda(
44( uedes crear teAtos est-ticos$ en el interior de una ventana$ %ue se mueven con ella(
or ejemplo$ si est' creada activa la ventana S$ri#era tecleas
creaestatico $ri#era teAto1 /N * 2 1* 8
Fer's aparecer un teto en la ventana Sprimera$ llamado Steto1$ %ue contiene la palabra
M?,N$ est' situado en las coordenadas M5 20N desde la es%uina superior i%uierda de laventana tiene un tama&o de M15 9N(
Famos a introducir un nuevo teto est'tico con la orden
creaestatico $ri#era teAto2 '/RDIN/' /'/D/' * 3 1* 8
"bservar's %ue las nuevas coordenadas M5 30N son adecuadas$ pero las dimensiones del
teto son insuficientes deber's aumentarlas$ por lo menos$ *asta M65 9N
45( ara borrar los tetos est'ticos debes emplear las rdenes
,orraestatico teAto1
,orraestatico teAto2
46( ara practicar la creacin de ventanas la introduccin de tetos est'ticos$ escribe un
procedimiento llamado resultado$ %ue reciba dos n@meros devuelva el producto de
ambos en una nueva ventana(
ara resultado
56
-
8/19/2019 Libro de Logo
56/119
9 GD 8 OT 'L
on$os F1 1
Rotula FIntroduce dos n>#eros
@a= nu#1 lee$ala,ra
@a= nu#2 lee$ala,ra
@a= resul 5nu#1 5nu#2
9
Creaventana root calculo F Resultado del $roducto5 2 1* 1 ! F
Creaestatico calculo resul1 5nu#1 * * 2 1
Creaestatico calculo resul2 FA 2* * 1 1
Creaestatico calculo resul3 5nu#2 3* * 2 1
Creaestatico calculo resul! FX ** * 1 1Creaestatico calculo resul* 5resul +* * 2 1
:in
i te fijas$ la posicin de cada uno de los tetos est'ticos est' calculada para n@meros de
tama&o medio( ero$ tanto si se introducen n@meros mu pe%ue&os$ como si los n@meros
son mu grandes$ las coordenadas fijas de los tetos producen una presentacin pobre
desajustada(
!a presentacin mejora al reemplaar las cinco primitivas creaest-tico por una sola lnea
de cdigo %ue llama a una lista
ara resultado
9 GD 8 OT 'L
on$os F1 1
Rotula FIntroduce dos n>#eros
@a= nu#1 lee$ala,ra
@a= nu#2 lee$ala,ra
@a= resul 5nu#1 5nu#2
9
Creaventana root calculo FResultado del $roducto5 2 1* 1 ! F
57
-
8/19/2019 Libro de Logo
57/119
Creaestatico calculo resul1 lista 5nu#1 A 5nu#2 X 5resulP * 1 8 1
:in
Ja una prueba des*abilita la ventana Scalculo ver's %ue no puedes manejarla con el
ratn( i la *abilitas de nuevo podr's activarla arrastrarla por la pantalla(
ara despejar la pantalla$ debes teclear la orden
,orraventana calculo
+n botn es un elemento %ue permite manipular un programa mediante el ratn$ %ue puede
*acer clic en l o$ simplemente$ pasar sobre l(
47( Escribe un procedimiento %ue cree una ventana$ llamada se)unda$ en la %ue *aa un
botn para cerrarla(
ara se)unda
Creaventana se)unda Fulsa /ce$tar $ara cerrar 2 * 8 ! F
Crea,oton se)unda ,oton1 F/ce$tar 3 * 3 2 Fsesa#o
:in
"bserva %ue la longitud de la ventana M90N *a de ser suficiente para %ue %uepa el teto
Mpulsa aceptar para cerrarN( !a altura de la ventana *a de bastar para %ue %uepa el botn$
%ue tiene 30 20( !as coordenadas de la posicin del botn pretenden %ue %uede centrado
en la ventana( Z a*ora$ crea el procedimiento sesa#o$ %ue se encargar' de cerrar la
ventana
ara sesa#o
9orraventana se)unda
:in
58
-
8/19/2019 Libro de Logo
58/119
48( Ja un procedimiento$ con el nombre ven3,oton$ %ue dibuje en pantalla una ventana
con tres botones( ?l pulsar el primero aparecer' un mensaje en la misma ventana %ue diga
$ulsado( ?l pulsar el segundo se dibuja un donut en la ventana gr'fica el teto del botn
cambia a DONUT( ?l pulsar el tercero se cierra la ventana con todo su contenido(
ara ven3,oton
Creaventana nueva F4entana con tres ,otones 16 * 18 6 F
Crea,oton nueva $ri#ero Fulsar 1* 3 ! 2 F,oton1
Crea,oton nueva se)undo F/rrancar +6 3 * 2 F,oton2
Crea,oton nueva tercero FCerrar 13 3 ! 2 F,orraventana nueva $onc$ 6
:in
ara ,oton1
Creaestatico nueva ,oton1 FUL'/DO 16 1 3* 1*
:in
ara ,oton2
/ctuali=a,oton se)undo FDONUT
Donut *
OT
:in
;:jate %u a*orro< En el tercer botn se inclue a el cdigo de lo %ue debe *acer al ser
pulsado borrar la ventana( ,o es necesario un procedimiento adicional(
+na barra de desplaamiento es un objeto %ue tiene un cursor %ue puede desplaarse
mediante el ratn$ para dar diversos valores a una variable(
49( Escribe un procedimiento %ue cree una ventana$ llamada tercera$ en la %ue *aa un
botn para cerrarla una barra de desplaamiento(
59
-
8/19/2019 Libro de Logo
59/119
ara tercera
Creaventana tercera F&i $ri#era ,arra desli=ante 2 * 1! + F
Crea,arrades$la=a#iento tercera cien 3 1 7 1 F
on,arrades$la=a#iento cien 1 *
Crea,oton tercera close FCerrar ** 2* 3 2 F,orraventana tercera
:in
"bserva %ue la longitud de la ventana M140N *a de ser suficiente para %ue %uepa el ttulo
M/i primera barra deslianteN la barra$ %ue mide 80 de largo( !a altura de la ventana *a de
bastar para %ue %uepan tanto la barra M80 10N como el botn M30 20N( !as coordenadas
de la posicin del botn de la barra pretenden %ue %ueden centrados en la ventana(
omprueba %ue puedes mover el cursor con el ratn %ue puedes cerrar la ventana(
50( ?plica lo %ue *as aprendido$ escribiendo un procedimiento llamado ven,ar$ %ue dibuje
en pantalla una barra de desplaamiento dentro de una ventana( !a barra tendr' un rango de
valores entre 50 250( ada ve %ue se mueva se debe visualiar en la ventana el valor de
su posicin su ra cuadrada( Bendremos$ adem's$ un botn %ue sirva para cerrar la
ventana(
ara ven,ar
Creaventana ulti#a FCalculadora auto#-tica de raices 1* 6 17 6 F
Creaestatico ulti#a estat F1* 1! 1 2 1*
Creaestatico ulti#a estat1 F'u rai= cuadrada es5 1* 3 6 1
Creaestatico ulti#a estat2 rai=cuadrada 1* 3* ! 3 1
Crea,arrades$la=a#iento ulti#a ,arra 1* 1 11 1 Flee,arra
on,arrades$la=a#iento ,arra * 2* 1*
Crea,oton ulti#a $ri#ero FCerrar 12* 3 ! 2 F,orraventana ulti#a
:in
!a barra de desplaamiento adoptar' el valor inicial de 150 Men el centro de su recorridoN(
or lo tanto$ el est'tico estat2 deber' tener como valor inicial la ra cuadrada de 150
60
-
8/19/2019 Libro de Logo
60/119
Mse&alado en amarilloN( uando el cursor de la barra se mueva se ejecutar' el procedimiento
llamado lee,arra %ue *abr' %ue escribir
ara lee,arra
@a= A lee,arrades$la=a#iento ,arra
@a= rai=cuadrada 5A
/ctuali=aestatico estat 5A
/ctuali=aestatico estat2 5
:in
+na ventana de dialogo se utilia como marco de trabajo en el %ue se pueden a&adir otros
objetos o controles como botones$ barras de desplaamiento$ listboes$ etc( Este objeto essimilar a una ventana$ ecepto %ue no devolver- el control al $rocedi#iento lla#ante
asta "ue la ventana de di-lo)o se cierre(
51( Famos a crear una ventana de di'logo %ue pida al usuario %ue acepte pulsando un
botn( ero$ en primer lugar$ vamos a crear el procedimiento %ue cerrar' la ventana al
pulsar el botn
ara vendialo
Crea,oton dialo)o1 ,otvale /CET/R 2* 1 ! 2 F,orradialo)o dialo)o1
:in
?*ora %ue est' preparado teclea$ en la ventana de trabajo$ la orden siguiente
Creadialo)o dialo)o1 FEl siste#a de,e reiniciarse 12 + 8 * Fvendialo
,aturalmente$ una ve pulsado el botn pueden ponerse en marc*a procedimientos m's
ambiciosos %ue el simple cierre de la ventana de di'logo(
61
-
8/19/2019 Libro de Logo
61/119
52( Escribe un procedimiento %ue pregunte al usuario$ mediante una ventana de di'logo$
cu'ntos das faltan para su cumplea&os
ara altan
Creaestatico cu#$le eca F17 1** 1 2 1*
Crea,arrades$la=a#iento cu#$le desli=adias 1* 1 13 1 Fa= dias lee,arra
Des$la=a#iento desli=adias actuali=aestatico eca 5dias
on,arrades$la=a#iento desli=adias 3+* 17
Crea,oton cu#$le o^ F/ce$tar 6 3 ! 2 F,orradialo)o cu#$le
:in
Z teclea a continuacin
Creadialo)o cu#$le FCu-ntos dias altan $ara tu cu#$lea_osM 12 + 17
6 Faltan
ara practicar introduce alguna novedad de tu propia cosec*a( or ejemplo$ %ue rotule al
cerrar el di'logo$ sobre una pantalla roja con letras grandes$ cu'ntos das faltan(
+n botn radio es un objeto %ue permite seleccionar una opcin con dos estados verdadero
Mbotn seleccionadoN o falso Mbotn no seleccionadoN(
Bodos los botones radio$ %ue se corresponden con cada una de las opciones %ue se
presentan al usuario$ deben estar asociados en un grupo o grou&box.
53( ara practicar$ escribiremos el cdigo de una ventana llamada cuarta$ en la %ue el
usuario deber' elegir su rango de edad seleccionando uno de los botones radio %ue se
presentan reunidos en un grou&box.
ara edad
Creaventana cuarta F'eleccione su )ru$o de edad 2 * 11* +* F
Crea)rou$,oA cuarta #arco * * +* !
62
-
8/19/2019 Libro de Logo
62/119
Crea,otonradio cuarta #arco ,ot1 FQ1* a_os 1 13 ! 8
Crea,otonradio cuarta #arco ,ot2 F1* a 17 a_os 1 23 ** 8
Crea,otonradio cuarta #arco ,ot3 F]17 a_os 1 33 ! 8
Escri,e,otonradio ,ot1 verdadero
Crea,oton cuarta cierre F/ce$tar 6* 2 3 2 F,orraventana cuarta
:in
:jate bien$ todas las coordenadas est'n referidas a un origen com@n situado en la es%uina
superior i%uierda de la ventana( !a creacin de cada objeto inclue una ruta compuesta por
la ventana padre$ el objeto padre su propio nombre(
lo puede estar seleccionado uno de los botones radio de un groupbo( uando el usuario
selecciona una de las opciones lo pone en estado Sverdadero $ autom'ticamente$ el resto delas opciones se ponen en estado Sfalso( ?dem's$ al iniciar el groupbo$ una de las opciones
declararse verdadera(
54( Ja un procedimiento llamado calcac#e$ %ue pida dos n@meros dibuje en una
ventana un grupo con cuatro botones radio( ada botn tendr' asignada una operacin
matem'tica( uando pulsemos un botn aparecer' el resultado de aplicar la operacin
matem'tica seleccionada a los dos n@meros introducidos( Bendr'$ adem's$ otro botn %ue
permita cerrar la ventana
ara calcac#e
9 'L GD 8 OT
on$os F!* 1*
Rotula lista Introduce dos n>#eros en la ventanaP
@a= nu#1 lee$ala,ra
@a= nu#2 lee$ala,ra
9
Creaventana ulti#a FCalculadora arit#Btica #arca /C&E 1* 6 17 1 F
Crea)rou$,oA ulti#a )ru$o 1 1 1+ *
Crea,otonradio ulti#a )ru$o ,oton1 F K 1* 1* 2* 1
63
-
8/19/2019 Libro de Logo
63/119
Crea,otonradio ulti#a )ru$o ,oton2 F 1* 2* 2* 1
Crea,otonradio ulti#a )ru$o ,oton3 FA 1* 3* 2* 1
Crea,otonradio ulti#a )ru$o ,oton! FJ 1* !* 2* 1
Escri,e,otonradio ,oton1 verdadero
Crea,oton ulti#a calcular FC/LCUL/R 2 +6 !* 1* Fcalculo
Crea,oton ulti#a cerrar F/C/9/R 11* +6 !* 1* F,orraventana ulti#a
Creaestatico ulti#a estat FNU&ERO'5 * 2* !* 1*
Creaestatico ulti#a estat1 5nu#1 11 2* 2 1*
Creaestatico ulti#a estat2 5nu#2 1! 2* 2 1*
Creaestatico ulti#a estat3 FRE'ULT/DO5 * ! * 1*
Creaestatico ulti#a estat! F 11 ! 3 1* 'e crea un est-tico sin #ensa%e
:in
ara calculo
@a= A lee,otonradio ,oton1
'i 5AX verdadero Fa= nu#3 5nu#1 K5nu#2
@a= A lee,otonradio ,oton2
'i 5AX verdadero Fa= nu#3 5nu#15nu#2
@a= A lee,otonradio ,oton3
si 5AX verdadero Fa= nu#3 5nu#1 5nu#2
@a= A lee,otonradio ,oton!
si 5AX verdadero Fa= nu#3 5nu#1J5nu#2
/ctuali=aestatico estat! 5nu#3
:in
+n objeto cec^,oA es una casilla %ue el usuario puede seleccionar( Bodas las casillas
cec^,oA deben estar reunidas en un groupbo( El usuario puede seleccionar varias casillas
simult'neamente(
64
-
8/19/2019 Libro de Logo
64/119
55( Ja un procedimiento$ llamado venco#$ %ue dibuje en una ventana un grupo con tres
botones de tipo cec^,oA( ada uno tendr' como eti%ueta un n@mero( uando pulsemos un
botn aparecer' un mensaje indicando el estado de cada uno de ellos(
Bendr'$ adem's$ otro botn %ue permita cerrar la ventana(
ara venco#
Creaventana ulti#a F4entana con casillas de co#$ro,acin 1* 6 17 8 F
Crea)rou$,oA ulti#a )ru$o 1 * 1+ *
Creacec^,oA ulti#a )ru$o ,oton1 Fri#ero 1* 1* !* 1
Creacec^,oA ulti#a )ru$o ,oton2 F'e)undo 1* 2* !* 1
Creacec^,oA ulti#a )ru$o ,oton3 FTercero 1* 3* !* 1
Crea,oton ulti#a co#$ro,ar FCO&RO9/R 1* + + 1* Fco#$rue,aCrea,oton ulti#a cerrar FCERR/R 12 + ! 1* F,orraventana ulti#a
Creaestatico ulti#a estat1 FDesactivado 1 1* + 1
Creaestatico ulti#a estat2 FDesactivado 1 2* + 1
Creaestatico ulti#a estat3 FDesactivado 1 3* + 1
:in
ara co#$rue,a
@a= A estadocec^,oA ,oton1
sisino 5AX verdadero Factuali=aestatico estat1 F/ctivado Factuali=aestatico es
tat1 FDesactivado
@a= A estadocec^,oA ,oton2
sisino 5AX verdadero Factuali=aestatico estat2 F/ctivado Factuali=aestatico es
tat2 FDesactivado
@a= A estadocec^,oA ,oton3
sisino 5AX verdadero Factuali=aestatico estat3 F/ctivado Factuali=aestatico es
tat3 FDesactivado
:in
65
-
8/19/2019 Libro de Logo
65/119
+n objeto li"tbox es una caja de teto$ %ue contiene una lista de opciones entre las %ue el
usuario puede elegir una(
56( Ja un procedimiento llamado ven#enu %ue dibuje en una ventana un men@ de
opciones mediante listbo( Cic*o men@ tendr' 5 opciones -+!"$ +?C?C"$
B-H,#+!"$ E,BH#"," JE.H#","( uando pulsemos un botn se dibujar' la
figura seleccionada en el men@( on otro botn podremos borrar la pantalla gr'fica( Bendr'$
adem's$ otro botn %ue permita cerrar la ventana(
ara ven#enu
creaventana ulti#a FTra=ado de $olí)onos 3 2* 17 8 F
crealist,oA ulti#a #enu 1 1 1 3a_adecadenalist,oA #enu FCIRCULO ROVO
a_adecadenalist,oA #enu FCU/DR/DO /
-
8/19/2019 Libro de Logo
66/119
ara aroro%o
arcodeeli$se 3+ 12 12 sl $occr ! )d 1 av 1 rellena ,l ot
:in
ara cuadro,lue
Re$ite ! Fav 2 )d 8 sl $occr 1 )d 1 av 1 rellena ,l ot
:in
ara triverde
Re$ite 3 Fav 22 )d 12 sl $occr 1 )d 1 av 1 rellena ,l ot
:in
ara $entailloRe$ite * Fav 1* )d 62 sl $occr + )d 1 av 1 rellena ,l ot
:in
ara eAaviol
Re$ite + Fav 12 )d + sl $occr 13 )d 1 av 1 rellena ,l ot
:in
+n objeto co#,o,oA es un objeto compuesto por una lista$ en la %ue el usuario puede
elegir una de las opciones %ue ofrece$ una ventana de teAto en la %ue el usuario puede
introducir una epresin %ue no est' en la lista(
ara crear un combobo *a %ue utiliar la sintais siguiente
creaco#,o,oA Sventana Snombre SBitulo pos pos largo alto
+na ve creado$ podemos a&adir el teto de las opciones %ue se ofrecen en la lista
a_adelineaco#,o,oA Snombre Oepresion 1Q
a_adelineaco#,o,oA Snombre Oepresion 2Q
? continuacin$ designamos cu'l de las opciones aparecer' seleccionada por defecto al
crearse el combobo
$onteAtoco#,o,oA Snombre Oepresion Q
67
-
8/19/2019 Libro de Logo
67/119
ara averiguar cu'l es la opcin elegida por el usuario$ utiliaremos la epresin
leeteAtoco#,o,oA no#,re
57( Famos a escribir el cdigo de un script para una agencia de viajes$ en el %ue el cliente
puede elegir el lugar elegido para sus vacaciones( !a agencia de viajes ofrece una lista de
destinos comunes$ los m's solicitados$ pero tambin permite al cliente solicitar un destino
%ue no est' en esa lista( +n objeto combobo es la opcin ideal
ara via%e
creaventana destino FEli%a el destino de su via%e 1* 7 12 11 F
creaco#,o,oA destino listado 2 * 7 *
a_adelineaco#,o,oA listado FTur"uiaa_adelineaco#,o,oA listado F4iena cl-sica
a_adelineaco#,o,oA listado Fra)a ro#-ntica
a_adelineaco#,o,oA listado FItalia
a_adelineaco#,o,oA listado F:iordos norue)os
a_adelineaco#,o,oA listado F4i_edos de :rancia
a_adelineaco#,o,oA listado FCostas de Es$a_a
a_adelineaco#,o,oA listado FIslas Canarias
$onteAtoco#,o,oA listado F:iordos norue)os
crea,oton destino ,otace$to Ele)ir 2 6 3 2 Fconir#a
crea,oton destino ,otcierre Cerrar 6 6 3 2 F,orraventana destino
creaestatico destino teAto F:iordos norue)os 3 ** 7 8
:in
ara conir#a
@a= lu)ar leeteAtoco#,o,oA listado
actuali=aestatico teAto 5lu)ar
:in
68
-
8/19/2019 Libro de Logo
68/119
!. ORIENT/CIONE' &ETODOLÓGIC/' / LO' RO:E'ORE' /R/ INICI/R
L/ EN'E;/N
-
8/19/2019 Libro de Logo
69/119
• !a tortuga entiende rdenes en castellano(
• !as rdenes se epresan con una palabra(
• ? veces$ la orden va acompa&ada de un par'metro numrico %ue indica cantidad(
•
uando no comprende un mensaje$ !"#" lo indica por medio de otro mensaje enla ventana de tetos(
En cuanto descubran alguna palabra del vocabulario de la tortuga$ la comunicar'n a toda la
clase escribindola en la piarra(
Curante el desarrollo de la sesin$ la funcin del profesor o profesora ser' ante todo de
animacin$ audando al grupo a refleionar sobre los distintos mensajes de error %ue ir'n
recibiendo$ de modo %ue distingan entre
NO 'E CÓ&O @/CER CORRE :/LT/N D/TO' /R/ /4/N as$ en la ventana de #H:-" ver'n %ue la tortuga dibuja pero$ en la de
BE.B"$ !"#" enva mensajes mientras$ los nuestros aparecen en la de B?G?L"(
!es *aremos refleionar sobre el car'cter estricto del lenguaje !"#" en el %ue *asta los
espacios en blanco tienen un valor donde no caben interpretaciones %ue completen una
palabra mal escrita seg@n su conteto de uso$ como ocurre con los lenguajes naturales(
!os giros de la tortuga son difciles de descubrir$ en algunos casos$ por%ue engloban en un
solo trmino la orden el sentido de giro de la tortuga una ve ejecutada la orden(
?udaremos a descubrir uno de ellos escenificando una orden de giro con un alumno
viendo la necesidad de darle un sentido adem's de un par'metro(
El juego no tiene por %u durar m's de 30 minutos$ pues una ve asumida la arbitrariedad
del lenguaje$ el juego se transforma en una lotera en la %ue el profesor o la profesora es el
@nico %ue conoce los resultados(
70
-
8/19/2019 Libro de Logo
70/119
!.3 El /$rendi=a%e De Las ri#eras ri#itivas
El planteamiento m's *eurstico del aprendiaje de !"#" tendra %ue partir deldescubrimiento individual o$ mejor$ grupal de su vocabulario sintais( in llegar a
etremos$ podemos plantearnos presentar las primitivas al grupo conforme las vaan
necesitando para solventar los problemas %ue se les plantean al dise&ar los dibujos( Ce este
modo$ el papel del profesorado$ adem's de animar motivar$ supondr' proporcionar
informacin ser'$ as$ un apoo al %ue se recurre ante las dificultades(
Bambin conviene pensar cu'ndo conviene %ue sean los propios alumnos alumnas
%uienes piensen los dise&os %ue %uieren efectuar (proyectos abiertos) o sea el profesor %uien d las ideas (proyectos libres) o presente un dise&o concreto para %ue los e%uipos
intenten lograr otro igual (proyectos cerrados).
Cespus de dedicar un rato a la investigacin del vocabulario de !"#"$ nos aseguraremos
de %ue todo el alumnado conoce la sintais de estas primitivas
/4/N
-
8/19/2019 Libro de Logo
71/119
• Cibujar un rect'ngulo %ue ocupe un cuadrante de la ventana
• Cibujar los cuatro cuadrantes de la ventana(
Cibujar un camino$ lo m's recto posible$ %ue vaa de etremo a etremo de la ventana(
!a realiacin de estos proectos llevar' a la necesidad de tener limpia la pantalla para
empear un nuevo trabajo( robablemente$ nuestro alumnado demandar' %ue le
informemos de la primitiva %ue realia esta tarea( resentaremos$ entonces$ la primitiva
B/%%7P7T77.
Jabr' llegado el momento de comunicarles %ue muc*as de las primitivas %ue entiende la
tortuga las puede comprender tambin en forma abreviada> 7
-
8/19/2019 Libro de Logo
72/119
abemos %ue !"#" ":EE la posibilidad de repetir una orden o modificarla con slo
subir el cursor a la lnea a ejecutada volver a pulsar O-,B"Q( odemos presentar a
nuestro alumnado esta propiedad de !"#" escribiendo en la piarra el nombre de una
orden incorrectamente$ como 'BE 7P6G.
+na ve escrita ejecutada$ nos aseguraremos de %ue lean el mensaje de error( ubir'n el
cursor modificar'n la orden suprimiendo el espacio intermedio comprobando$ despus
de pulsar O-,B"Q$ %ue aparentemente tampoco pasa nada$ Mno aparece tampoco mensaje
de errorN( er'$ pues$ al ordenar el movimiento de la tortuga$ cuando apreciar'n por medio
de esta primitiva %ue la tortuga puede desplaarse sin dejar rastro( !a primitiva opuesta
podr'n deducirla por s mismos$ as como #"/?$ instrumento de uso cotidiano(
Centro de las posibilidades de edicin inmediata %ue nos ofrece !"#"$ advertiremos %ue
se pueden escribir varias rdenes separadas por espacios dentro de una misma lnea$ %ue no
tiene por %u acabar en el etremo de la ventana( ropondremos como ejemplo la sucesin
7< 52 0D 2 de modo %ue$ al repetirla cuatro veces$ consigan un cuadrado(
+sando el modo directo subiendo el cursor para repetir o modificar rdenes$
propondremos los siguientes ejercicios
• Cibujar las cifras ar'bigas en la pantalla(
• ituar la tortuga en un 'ngulo de la pantalla de gr'ficos para dirigirla posteriormente
al otro etremo$ traando en el recorrido una lnea %uebrada$ de forma %ue cada
segmento concatenado sea cada ve menor los 'ngulos cada ve maores(
• Braar una lnea %uebrada espiral desde el centro de la ventana$ de modo %ue no se
corte a s misma(
• ealiar una espiral doble %ue$ una ve se *a alejado del centro intente regresar por
el pasillo %ue *a dejado el trao anterior(
Braar dos segmentos paralelos(
!os ejercicios dar'n pie para presentar las primitivas 9ET%/ 6-P67 por la
conveniencia de tener controlada la posicin de la tortuga antes de programar una serie de
73
-
8/19/2019 Libro de Logo
73/119
movimientos$ pues suele suponer un serio tropieo en el aprendiaje de la programacin por
parte de nuestros alumnos alumnas( +n simple giro mal concebido cambia totalmente el
aspecto de su dise&o provoca una gran frustracin(
!.! El Cuaderno De Lo)o
Centro de este apartado epondremos una serie de tareas cuo desarrollo supone el
ejercicio del control de la tortuga$ as como el paso previo a la creacin de procedimientos(
ara la realiacin de estos ejercicios$ pediremos a nuestro alumnado %ue dibuje en un
cuaderno de papel cuadriculado el dise&o %ue desea realiar$ as como el conjunto de
rdenes necesario para ello( Cespus$ se trabaja con !"#"(
,o se valorar'n los sucesivos errores cometidos *asta llegar al dise&o final$ a seacorrigiendo con la primitiva #"/?$ a sea retrocediendo$ cambiando el 'ngulo de giro o
*aciendo tanteos a pasos cortos( ?l final$ %uedar' en la pantalla de trabajo una serie de
rdenes separadas por espacios en blanco$ %ue comenar'n con un 9 terminar'n con el
cursor al final de la lnea( uando *aan llegado a esa situacin$ tanto en la pantalla como
en su cuaderno$ llamar'n al profesora para %ue sea testigo de la ejecucin de las rdenes$
con la esperana de %ue el dise&o del cuaderno se repita en la pantalla(
El cuaderno sirve tambin como diccionario !"#" puede ser usado por el profesorado
como recurso de control del trabajo diario realiado en el aula por los distintos e%uipos(
"tros ejercicios @tiles para afianar el aprendiaje de las primitivas son los siguientes
• Cibujar una espiral %uebrada cuadrada con una sucesin de avances %ue aumenten
la longitud de los lados(
• Jacer %ue la tortuga dibuje la palabra !"#"(
• Cibujar unas gafas de cristal rectangular en la pantalla(
• ? lo largo de la sesin$ insistiremos a nuestro alumnado en la necesidad de ad%uirir
algunos *'bitos mu @tiles en la programacin
74
-
8/19/2019 Libro de Logo
74/119
• !a necesidad de simplificar las rdenes para visualiar r'pidamente los errores> as$
dos avances seguidos se transforman en su suma> dos giros opuestos se anulan>
antes retroceder %ue girar 180(
• !a necesidad de tener controlada la tortuga para evitar %ue se salga de la ventana o
dibuje formas no deseadas(
El inters por la b@s%ueda de la figura precisa$ limpia centrada en la ventana sin
conformarnos con el `