programació mswlogo


MSW LOGO:

MSWLogo és un software lliure que s'utilitza  per a programar, amb Logo, una controladora per a circuits o simplement, programar "la tortuga" i donar-li instruccions per a que les realitze.
Logo és un llenguatge de programació, desarrollat a finals del anys 70 dels  per un equip de matemàtics, dirigits per Seymour Papert en la Universitat de Califòrnia (Berkeley) , a fi d'entrenar el pensament lògic. Totes les versions de Logo desenrotllades per a Unix, DOS, Macintosh i Windows, són gratuïtes i poden ser copiades i distribuïdes, sense cap tipus de restricció, amb fins educatius. MswLogo és la versió de Logo per a Windows.



Per a dibuixar un cercle, un quadrat i un triangle:

para cercle
poncp 11
sl
ponpos [-200 0]
bl
repite 360[av 1 gi 1]
sl
ponpos [-250 0]
bl
poccr [0 181 100]
rellena
gd 90
sl
ponpos [-300 -100]
bl
rotula[cercle]
fin
para dibuix
cercle
quadrat
triangle
fin
para quadrat
sl
ponpos [-50 -45]
bl
repite 4[av 100 gi 90]
sl
ponpos [-30 20]
bl
poccr [232 35 0]
rellena
sl
ponpos [-50 -100]
bl
rotula[quadrat]
fin
para triangle
sl
ponpos [200 -45]
bl
repite 3[av 100 gi 120]
sl
ponpos [220 -35]
bl
poccr [159 104 166]
rellena                                            
sl
ponpos [200 -100]
bl
rotula[triangle]
fin






Per a poder multiplicar números i obtindre el resultat es necessiten els següents procediments:

para multiplicar
sl
ponpos [-100 0]
bl
gd 90
rotula [¿Cuál es el valor del primer factor?]
haz "var1 leepalabra
bp
sl
ponpos [-100 0]
bl
gd 90
rotula [¿Cuál es el valor del segundo factor?]
haz "var2 leepalabra
bp
sl
ponpos [-100 0]
bl
gd 90
rotula [¿Cúal es el valor del tercer factor?]
haz "var3 leepalabra
bp
sl
ponpos [-100 0]
bl
gd 90
rotula (lista "El "producto "de :var1 "* :var2 "* :var3 "es :var1*:var2*:var3)


SEMAFORO:

Parta hacer un semáforo en el cual se encienden las luces y se apagan se necesitan los siguientes procedimientos:
para amarillo
sl
ponpos [-140 65]
bl
poccr [253 253 150]
rellena
espera :var2 * 60
noamarillo
fin
para cuadrado
sl
ponpos [-200 150]
bl
gd 90
repite 4[av 150 gd 90 av 50]
sl
ponpos [-175 39]
bl
poccr [255 248 59]
rellena
sl
ponpos [-150 130]
bl
repite 360[av 0.4 gd 1]
sl
ponpos [-140 120]
bl
poccr [0 0 0]
rellena
sl
ponpos [-150 70]
bl
repite 360[av 0.4 gd 1]
sl
ponpos [-140 65]
bl
poccr [0 0 0]
rellena
sl
ponpos [-150 10]
bl
repite 360[av 0.4 gd 1]
sl
ponpos [-140 5]
sl
poccr [0 0 0]
rellena
fin
para noamarillo
sl
ponpos [-140 65]
bl
poccr [0 0 0]
rellena
espera 120
semaforo
fin
para norojo
sl
ponpos [-140 110]
bl
poccr [0 0 0]
rellena
espera 120
semaforo
fin
para noverde
sl
ponpos [-140 5]
bl
poccr [0 0 0]
rellena
espera 120
semaforo
fin
para pregunta1
sl
ponpos [25 150]
bl
gd 90
rotula[¿De qué color quieres que se encienda?]
sl
ponpos [25 120]
bl
rotula[a)rojo b)amarillo c)verde]
haz "var1 leepalabra
fin
para pregunta2
sl
ponpos [25 50]
bl
rotula[¿Cuánto tiempo quieres que se encieda?]
haz "var2 leepalabra
fin
para rectangulo
sl
ponpos [-175 -50]
bl
gd 90
av 150
gi 90
av 50
gi 90
av 150
sl
ponpos [-165 -75]
bl
poccr [0 0 0]
rellena
fin
para rojo
sl
ponpos [-140 110]
bl
poccr [230 0 38]
rellena
espera :var2 * 60
norojo
fin
para semaforo
bp
cuadrado
rectangulo
pregunta1
pregunta2
si :var1 = "a [rojo]
si :var1 = "b [amarillo]
si :var1 = "c [verde]
sl
ponpos [25 100]
bl
rotula[Pon la opción correcta]
espera 120
semaforo
fin
para verde
sl
ponpos [-140 5]
bl
poccr [11 218 81]
rellena
espera :var2 * 60
noverde
fin




Para calcular la raíz cuadrada de un número:
Para raiz
sl
ponpos [-150 0]
bl
gd 90
Rotula [¿De qué número quieres hacer la raiz cuadrada?]
Haz "var1 leepalabra
sl
Ponpos [-150 -25]
bl
Sisino :var1>0 [Rotula (Lista "La "raiz "cuadrada "de :var1 "es "= rc :num1)] [Rotula [No se puede hacer la raíz cuadrada de un número negativo]]

fin



Videojuego de carreras

para control
haz "tecla car lc
si :tecla = "a [gd 20]
si :tecla = "d [gi 20]
fin

para final
activa 1

ot
sl
ponpos [100 200]
gd 90
bl
rotula[victoria]
sl
fin

para juego
sl
ponfoco [Pantalla de MSWLogo]
ponteclado [control]
cargadib "carreteras.bmp
ponpos [-120 -20]
movimiento
fin

para movimiento
av 1 repite 120000[]
si pixel = [0 0 0] [juego]
si pixel = [236 28 36] [final]
movimiento

fin




Comentarios

Entradas populares de este blog