Herramienta de Autor para la Educación
http://www.haeduc.rimed.cu/
La Herramienta libre y
multiplataforma para tus
aplicac...
¿Qué es Sora Script?
El runtime de HAEduc emplea un intérprete de un lenguaje muy cercano al
Basic, el intérprete de wxBas...
Fundamentos de WxBasic
Las principales características del lenguaje son:
• Es libre.
• Multiplataforma (Windows y Linux).
...
Explorador de libro
El código en Sora Script
puede ser colocado en el
libro, en la página y en los
objetos.
Editor de Sora Script
Captura de eventos
Las aplicaciones desarrolladas con HAEduc son guiadas por eventos. Por
tanto todas las acciones que se ...
Ejemplo
Pasos para la captura de eventos mediante Script (clic de un botón y
mensaje).
- Colocar un botón en la página.
- ...
Actividad 1:
Captura de evento clic en una imagen.
Tipos de datos
Todos los valores en wxBasic son almacenados por defecto como Variants.
Sin embargo se pueden definir las v...
Ámbitos de variables
En modo de proyecto los ámbitos de clase y
local de procedimientos (sub y function) se
mantienen pero...
Actividad 2:
Demostrar el concepto de ámbito mediante el empleo de variables.
Procedimientos y llamadas
Un procedimiento Sub es un bloque de código que puede ser ejecutado a
voluntad, en el momento qu...
Ejemplo
& concatena dos
expresiones de
cadena.
Actividad 3:
Crear un procedimiento que realice la suma de dos números y muestre el
resultado.
Funciones
FUNCTION name ( [arg [= expr]{,arg [= expr]} ] [, ...] )
[ DIM variable {, variable } ]
[ STATIC variable {, var...
Actividad 4:
Llamada a una función que devuelva el cuadrado de un número.
Estructuras condicionales
Ejecuta un bloque de instrucciones dependiendo del valor de una expresión
evaluada en cada ciclo...
Ejemplo
Determinar el rango en el que se encuentra un número.
Actividad 5:
Crear un procedimiento que permita evaluar a un estudiante según, su
calificación en una materia.
Select Case
Permite ejecutar uno de varios bloques de instrucciones. Al igual que en C,
sólo un caso será ejecutado.
SELEC...
Ejemplo
Determinar el rango en que se encuentra un número.
SELECT CASE a
CASE 1, 3
ssMensaje("el valor es 1, o 3")
CASE 4 ...
Actividad 6:
Crear un procedimiento que permita evaluar a un estudiante según, su
calificación en una materia.
Estructuras cíclicas
FOR variable = startExpr TO endExpr {STEP stepExpr}
[CONTINUE]
[BREAK]
[EXIT FOR]
{ statement }
ELSE
...
Ejemplo
Ciclo donde se muestre la variable del ciclo.
Actividad 7:
Construya un algoritmo que reciba como entrada un cierto valor n y genere
como salida n veces la palabra “hol...
While
WHILE expresión
[ BREAK ]
[ CONTINUE ]
[ EXIT WHILE ]
{ instrucciones }
[ELSE
{ instrucciones } ]
END WHILE | WEND
C...
Ejemplo
Algoritmo que lance n veces un mensaje.
Actividad 8:
Construya un algoritmo que reciba como entrada un cierto valor n y genere
como salida el valor de la serie: 1...
Objetos de proyector
El proyector de HAEduc brinda 11 objetos diferentes para el diseño de las
aplicaciones:
1. Imagen
2. ...
Ejemplo
nombre_variable_objeto = ssObtObjeto(nombre_objeto)
Actividad 9:
Modificar las propiedades: Posición, rotación, visibilidad y dimensiones de un
objeto imagen, en tiempo de ej...
Creación y destrucción de objeto
Mediante el script estos objetos visuales pueden ser instanciados mediante el
empleo de c...
Ejemplo
Crear un botón mediante script y destruirlo.
Actividad 10:
Crear un objeto Html y visualizar en él, un contenido Web.
dim mi_html
sub pageenter_ejemplo(par1)
mi_html =...
Actividad 11:
Crear un botón y capturar su evento.
TemasTemas
AdicionalesAdicionales
Diálogos comunes
Los diálogos de Sora Script son clases internas que permiten el intercambio
de información entre el usuar...
ssDialogoTexto
Permite al usuario introducir valores durante la ejecución de un programa.
ssDialogoTexto(contenido as stri...
Ejemplo
Dim n1,n2 as integer
sub promedio(num1,num2 as integer)
promed=(num1+num2)/2
ssmensaje(promed)
end sub
sub mousecl...
Navegar entre páginas
ssnavegar(npag as integer, transicion as integer = ss_t_sintransicion, velocidad as
integer = ss_vt_...
Botón Salir
sub mouseclick_botoncerrar(par1)
resultado=ssmensaje("Estas seguro de cerrar la
aplicación:","Pregunta",SS_IPR...
Colecciones
Una colección es un agrupamiento de datos de tipo Variant a los que se
puede tener acceso mediante un valor cl...
Array
Un Array es una colección de tamaño estático. Como las demás colecciones,
es pasada por referencia. Se emplea el cor...
Ejemplo
dim miArray[3] as array
dim menor,aux as integer
sub buscarmenor()
menor=miArray[1]
For i=2 to 3
aux=miArray[i]
if...
sub mouseclick_boton1(par1)
cadena=""
For i=1 to 3
dim dialogo=new ssdialogotexto("Introduce un valor: ")
dialogo.mostrar(...
Lista
Dim milista=[]
sub pageenter_ejemplo(par1)
l=ssobtobjeto("lista1")
for i=1 to 5
dim dialogo=new ssdialogotexto("Ingr...
SoraScript.blogspot.com
Arrastrar imágenes
Animaciones
Sonido
Contacto
sorascript@gmail.com
hsg2020@hotmail.com
Twitter: @hsg2020
http://sorascript.blogspot.com
http://hsg2020.blogia.c...
Taller SoraScript para HAEduc 1
Upcoming SlideShare
Loading in …5
×

Taller SoraScript para HAEduc 1

3,321 views

Published on

Presentación del curso de SoraScript para HAEduc 1 realizado por: Lic. Héctor Sánchez

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,321
On SlideShare
0
From Embeds
0
Number of Embeds
1,056
Actions
Shares
0
Downloads
68
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Taller SoraScript para HAEduc 1

  1. 1. Herramienta de Autor para la Educación http://www.haeduc.rimed.cu/ La Herramienta libre y multiplataforma para tus aplicaciones multimedia.
  2. 2. ¿Qué es Sora Script? El runtime de HAEduc emplea un intérprete de un lenguaje muy cercano al Basic, el intérprete de wxBasic, cuyo autor es David Cuny. Dicho intérprete es libre (licencia LGPL) y se puede descargar en http://wxBasic.sourceforge.net. Los autores de HAEduc emplearon este intérprete libre y a partir de modificaciones realizadas en el mismo, para adaptarlo a la metáfora que propone el sistema y con la adición de un proyector y objetos visuales y los métodos para su manejo, surge Sora Script que mantiene como esencia a wxBasic.
  3. 3. Fundamentos de WxBasic Las principales características del lenguaje son: • Es libre. • Multiplataforma (Windows y Linux). • Fácil de enseñar y aprender, basado en Basic. • Interpretado. • El runtime ocupa poco espacio en disco. En su sintaxis se revelan elementos de C, QBasic, Lua, Phyton y VB.NET. Si bien no es un lenguaje muy potente, los autores de HAEduc lo consideran suficiente para el desarrollo de recursos educativos y aplicaciones no muy complejas. Unido al hecho de que wxBasic es más flexible que el Basic comúnmente conocido y ha sido diseñado con muchas mejoras. Si a esto le sumamos las posibilidades gráficas del entorno de HAEduc, se puede disfrutar de un ambiente de desarrollo estable, acorde a las necesidades de un amplio grupo de usuarios.
  4. 4. Explorador de libro El código en Sora Script puede ser colocado en el libro, en la página y en los objetos.
  5. 5. Editor de Sora Script
  6. 6. Captura de eventos Las aplicaciones desarrolladas con HAEduc son guiadas por eventos. Por tanto todas las acciones que se ejecuten serán acciones derivadas de la ocurrencia de un evento. Es por ello que es necesario conocer la sintaxis de los eventos y los parámetros que manejan cada uno de ellos. En general un evento se puede capturar mediante una subrutina cuyo nombre esté compuesto por el nombre del evento y el del objeto sobre el que ocurre dicho evento (o la aplicación). Sintaxis: SUB nombreevento_nombreobjeto (listaparametros) // instrucciones END SUB
  7. 7. Ejemplo Pasos para la captura de eventos mediante Script (clic de un botón y mensaje). - Colocar un botón en la página. - Escribir el siguiente script en el objeto botón. sub mouseclick_boton1(par1) ssMensaje("Ocurrió el evento clic") end sub De la página 71 a la 81 del manual de referencia Sora Script pueden encontrar una lista de los eventos que ofrece el lenguaje.
  8. 8. Actividad 1: Captura de evento clic en una imagen.
  9. 9. Tipos de datos Todos los valores en wxBasic son almacenados por defecto como Variants. Sin embargo se pueden definir las variables con los siguientes tipos: • Variant • Integer • Number • String • DateTime • Object • Routine • Array • Table • List
  10. 10. Ámbitos de variables En modo de proyecto los ámbitos de clase y local de procedimientos (sub y function) se mantienen pero el global ahora desaparece para dar lugar a los ámbitos de Libro y de Página. Como cada proyecto sólo posee un libro, este constituye el ámbito superior, mientras que al existir un número indeterminado de páginas cada una de ellas constituye un ámbito en el que coexisten variables y procedimientos.
  11. 11. Actividad 2: Demostrar el concepto de ámbito mediante el empleo de variables.
  12. 12. Procedimientos y llamadas Un procedimiento Sub es un bloque de código que puede ser ejecutado a voluntad, en el momento que se requiera. Es esencialmente como una función, sólo que este no devuelve valores. SUB name ( [arg [= expr] {, arg [= expr]} ] [, ...] ) [ DIM variable {, variable } ] [ STATIC variable {, variable } ] [ SHARED variable {, variable } ] [ RETURN ] [ EXIT SUB ] { instrucciones } END SUB
  13. 13. Ejemplo & concatena dos expresiones de cadena.
  14. 14. Actividad 3: Crear un procedimiento que realice la suma de dos números y muestre el resultado.
  15. 15. Funciones FUNCTION name ( [arg [= expr]{,arg [= expr]} ] [, ...] ) [ DIM variable {, variable } ] [ STATIC variable {, variable } ] [ SHARED variable {, variable } ] [ RETURN expr {, expr} ] [ EXIT FUNCTION ] { instrucciones } END FUNCTION Por ejemplo: Function suma( a, b ) return a + b End Function
  16. 16. Actividad 4: Llamada a una función que devuelva el cuadrado de un número.
  17. 17. Estructuras condicionales Ejecuta un bloque de instrucciones dependiendo del valor de una expresión evaluada en cada ciclo. IF expresión THEN { instrucciones } { ELSEIF expr THEN { instrucciones } } [ ELSE { instrucciones } ] END IF <> diferente = igualdad < menor que > mayor que <= menor o igual >= mayor o igual not negación lógica and Y lógico or O lógico
  18. 18. Ejemplo Determinar el rango en el que se encuentra un número.
  19. 19. Actividad 5: Crear un procedimiento que permita evaluar a un estudiante según, su calificación en una materia.
  20. 20. Select Case Permite ejecutar uno de varios bloques de instrucciones. Al igual que en C, sólo un caso será ejecutado. SELECT CASE expresión { CASE caseTest {, caseTest } { instrucciones } } [CASE ELSE { instrucciones } ] END SELECT Se pueden utilizar expresiones múltiples o intervalos en cada cláusula mediante las siguientes sintaxis de operadores: IS = | <> | < | > | < | >= expr expr TO expr expr
  21. 21. Ejemplo Determinar el rango en que se encuentra un número. SELECT CASE a CASE 1, 3 ssMensaje("el valor es 1, o 3") CASE 4 TO 6, 8 ssMensaje("el valor es 4, 5, 6, o 8") CASE IS < 12 ssMensaje("el valor es menor que 12") CASE ELSE ssMensaje("el valor el algún otro, distinto a los anteriores") END SELECT
  22. 22. Actividad 6: Crear un procedimiento que permita evaluar a un estudiante según, su calificación en una materia.
  23. 23. Estructuras cíclicas FOR variable = startExpr TO endExpr {STEP stepExpr} [CONTINUE] [BREAK] [EXIT FOR] { statement } ELSE { statement } END FOR | NEXT {variable}
  24. 24. Ejemplo Ciclo donde se muestre la variable del ciclo.
  25. 25. Actividad 7: Construya un algoritmo que reciba como entrada un cierto valor n y genere como salida n veces la palabra “hola”.
  26. 26. While WHILE expresión [ BREAK ] [ CONTINUE ] [ EXIT WHILE ] { instrucciones } [ELSE { instrucciones } ] END WHILE | WEND Contadores: contador = contador + 1 Sumadores: suma = suma + numero
  27. 27. Ejemplo Algoritmo que lance n veces un mensaje.
  28. 28. Actividad 8: Construya un algoritmo que reciba como entrada un cierto valor n y genere como salida el valor de la serie: 1+2+3+4+...+n
  29. 29. Objetos de proyector El proyector de HAEduc brinda 11 objetos diferentes para el diseño de las aplicaciones: 1. Imagen 2. Botón 3. Etiqueta 4. Caja de texto 5. Html 6. Video 7. Polígono 8. Lista 9. Reloj 10.Tabla 11.Texto
  30. 30. Ejemplo nombre_variable_objeto = ssObtObjeto(nombre_objeto)
  31. 31. Actividad 9: Modificar las propiedades: Posición, rotación, visibilidad y dimensiones de un objeto imagen, en tiempo de ejecución.
  32. 32. Creación y destrucción de objeto Mediante el script estos objetos visuales pueden ser instanciados mediante el empleo de clases internas de Sora Script. A cada objeto le corresponde una clase cuyo nombre está formado por el prefijo SS seguido del nombre del objeto: ssimagen, ssboton, ssetiqueta, ssctexto, ssreloj, sslista, sstexto. De esta forma por ejemplo para crear una lista mediante script podría hacerse de esta forma: Dim milista = sslista(“lista1”,sspunto(100,100),ssdim(80,200))
  33. 33. Ejemplo Crear un botón mediante script y destruirlo.
  34. 34. Actividad 10: Crear un objeto Html y visualizar en él, un contenido Web. dim mi_html sub pageenter_ejemplo(par1) mi_html = sshtml("html1","/home/usuario/Curso Haeduc/Curso ejemplo/datos/texto para html.html",sspunto(100,100),ssdim(600,400)) end sub
  35. 35. Actividad 11: Crear un botón y capturar su evento.
  36. 36. TemasTemas AdicionalesAdicionales
  37. 37. Diálogos comunes Los diálogos de Sora Script son clases internas que permiten el intercambio de información entre el usuario y las aplicaciones. Estos diálogos son: ssDialogoColor Clase para la selección de colores por el usuario. ssDialogoFichero Clase para la selección de ficheros por el usuario. ssDialogoDirectorio Clase para la selección de directorios por el usuario. ssDialogoTexto Clase para la creación de cajas de diálogo de entrada de texto. ssDialogoFuente Clase para la selección de fuentes por el usuario. ssDialogoMensaje Clase para mostrar cajas de mensajes.
  38. 38. ssDialogoTexto Permite al usuario introducir valores durante la ejecución de un programa. ssDialogoTexto(contenido as string [, título as string= “Entre el texto”, valorpordefecto as string=“”, pos as sspunto= ssPosicionPorDefecto]) as ssDialogoTexto ssDialogoTexto::obtvalor obtvalor() as string Devuelve el valor introducido al cerrar la ventana de diálogo. ssDialogoTexto::estvalor estvalor(valor as string) Establece el valor por defecto del diálogo. ssDialogoTexto::mostrar mostrar() as integer Muestra un diálogo de entrada de texto previamente creado y devuelve los valores SS_ACEPTAR o SS_CANCELAR dependiendo del botón pulsado por el usuario al cerrar el diálogo.
  39. 39. Ejemplo Dim n1,n2 as integer sub promedio(num1,num2 as integer) promed=(num1+num2)/2 ssmensaje(promed) end sub sub mouseclick_boton1(par1) dim d1=new ssdialogotexto("Ingrese el primer número") d1.mostrar() dim d2=new ssdialogotexto("Ingrese el segundo número") d2.mostrar() n1=d1.obtvalor() n2=d2.obtvalor() promedio(n1,n2) end sub
  40. 40. Navegar entre páginas ssnavegar(npag as integer, transicion as integer = ss_t_sintransicion, velocidad as integer = ss_vt_medio) as integer Permite navegar a una página conociendo su posición (npag) en la lista de páginas. Ejemplo: ssnavegar(3) ssnavegarapagina(pag as string, transicion as integer = ss_t_sintransicion, velocidad as integer = ss_vt_medio) as integer Permite navegar a una página conociendo nombre (pag). Ejemplo: ssnavegarpagina(“pagina3”) ssnavegarsiguiente(transicion as integer = ss_t_sintransicion, velocidad as integer = ss_vt_medio) as integer Permite navegar a la siguiente página. Ejemplo: ssnavegarsiguiente() ssnavegaranterior(transicion as integer = ss_t_sintransicion, velocidad as integer = ss_vt_medio) as integer Permite navegar a la página anterior. Ejemplo: ssnavegaranterior() Si la página existe devuelve 1, sino 0
  41. 41. Botón Salir sub mouseclick_botoncerrar(par1) resultado=ssmensaje("Estas seguro de cerrar la aplicación:","Pregunta",SS_IPREGUNTA,SS_BSINO) if resultado=SS_SI then ssaplicacionsalir() end if end sub
  42. 42. Colecciones Una colección es un agrupamiento de datos de tipo Variant a los que se puede tener acceso mediante un valor clave: Array (colección de tamaño estático) List (colección ordenada dinámica) Table (colección no ordenada dinámica)
  43. 43. Array Un Array es una colección de tamaño estático. Como las demás colecciones, es pasada por referencia. Se emplea el corchete para distinguirlos de una llamada a rutina. Veamos una declaración simple de un array: Dim miArray[10] Si el límite inferior del rango no es declarado, este se toma como cero. Se puede especificar un tipo de dato: Dim miArray[10] as Number También es posible hacer ambas cosas: Dim miArray[10] as Integer = 30
  44. 44. Ejemplo dim miArray[3] as array dim menor,aux as integer sub buscarmenor() menor=miArray[1] For i=2 to 3 aux=miArray[i] if aux < menor then menor=aux end if next ssmensaje("El número menor es: n" & menor) end sub
  45. 45. sub mouseclick_boton1(par1) cadena="" For i=1 to 3 dim dialogo=new ssdialogotexto("Introduce un valor: ") dialogo.mostrar() valor=dialogo.obtvalor() miArray[i]=valor cadena=cadena & miArray[i]& " n" next texto=ssobtobjeto("texto1") texto.esttexto(cadena) buscarmenor() end sub
  46. 46. Lista Dim milista=[] sub pageenter_ejemplo(par1) l=ssobtobjeto("lista1") for i=1 to 5 dim dialogo=new ssdialogotexto("Ingresa el nombre: ") dialogo.mostrar() b=dialogo.obtvalor() milista.append(b) a=milista[i] l.adicionarelemento(a) next end sub
  47. 47. SoraScript.blogspot.com Arrastrar imágenes Animaciones Sonido
  48. 48. Contacto sorascript@gmail.com hsg2020@hotmail.com Twitter: @hsg2020 http://sorascript.blogspot.com http://hsg2020.blogia.com

×