taller sorascript para haeduc 1

Download Taller SoraScript para HAEduc 1

If you can't read please download the document

Upload: hsg2020

Post on 13-Jun-2015

2.701 views

Category:

Education


0 download

DESCRIPTION

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

TRANSCRIPT

  • 1. Herramienta de Autor para la Educacin http://www.haeduc.rimed.cu/ La Herramienta libre y multiplataforma para tus aplicaciones multimedia.

2. Qu es Sora Script? El runtime de HAEduc emplea un intrprete de un lenguaje muy cercano al Basic, el intrprete de wxBasic, cuyo autor es David Cuny. Dicho intrprete es libre (licencia LGPL) y se puede descargar en http://wxBasic.sourceforge.net. Los autores de HAEduc emplearon este intrprete libre y a partir de modificaciones realizadas en el mismo, para adaptarlo a la metfora que propone el sistema y con la adicin de un proyector y objetos visuales y los mtodos para su manejo, surge Sora Script que mantiene como esencia a wxBasic. 3. Fundamentos de WxBasic Las principales caractersticas del lenguaje son: Es libre. Multiplataforma (Windows y Linux). Fcil de ensear 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 ms flexible que el Basic comnmente conocido y ha sido diseado con muchas mejoras. Si a esto le sumamos las posibilidades grficas del entorno de HAEduc, se puede disfrutar de un ambiente de desarrollo estable, acorde a las necesidades de un amplio grupo de usuarios. 4. Explorador de libro El cdigo en Sora Script puede ser colocado en el libro, en la pgina y en los objetos. 5. Editor de Sora Script 6. Captura de eventos Las aplicaciones desarrolladas con HAEduc son guiadas por eventos. Por tanto todas las acciones que se ejecuten sern acciones derivadas de la ocurrencia de un evento. Es por ello que es necesario conocer la sintaxis de los eventos y los parmetros 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 aplicacin). Sintaxis: SUB nombreevento_nombreobjeto (listaparametros) // instrucciones END SUB 7. Ejemplo Pasos para la captura de eventos mediante Script (clic de un botn y mensaje). - Colocar un botn en la pgina. - Escribir el siguiente script en el objeto botn. sub mouseclick_boton1(par1) ssMensaje("Ocurri el evento clic") end sub De la pgina 71 a la 81 del manual de referencia Sora Script pueden encontrar una lista de los eventos que ofrece el lenguaje. 8. Actividad 1: Captura de evento clic en una imagen. 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. 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 Pgina. Como cada proyecto slo posee un libro, este constituye el mbito superior, mientras que al existir un nmero indeterminado de pginas cada una de ellas constituye un mbito en el que coexisten variables y procedimientos. 11. Actividad 2: Demostrar el concepto de mbito mediante el empleo de variables. 12. Procedimientos y llamadas Un procedimiento Sub es un bloque de cdigo que puede ser ejecutado a voluntad, en el momento que se requiera. Es esencialmente como una funcin, slo 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. Ejemplo & concatena dos expresiones de cadena. 14. Actividad 3: Crear un procedimiento que realice la suma de dos nmeros y muestre el resultado. 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. Actividad 4: Llamada a una funcin que devuelva el cuadrado de un nmero. 17. Estructuras condicionales Ejecuta un bloque de instrucciones dependiendo del valor de una expresin evaluada en cada ciclo. IF expresin THEN { instrucciones } { ELSEIF expr THEN { instrucciones } } [ ELSE { instrucciones } ] END IF diferente = igualdad < menor que > mayor que = mayor o igual not negacin lgica and Y lgico or O lgico 18. Ejemplo Determinar el rango en el que se encuentra un nmero. 19. Actividad 5: Crear un procedimiento que permita evaluar a un estudiante segn, su calificacin en una materia. 20. Select Case Permite ejecutar uno de varios bloques de instrucciones. Al igual que en C, slo un caso ser ejecutado. SELECT CASE expresin { CASE caseTest {, caseTest } { instrucciones } } [CASE ELSE { instrucciones } ] END SELECT Se pueden utilizar expresiones mltiples o intervalos en cada clusula mediante las siguientes sintaxis de operadores: IS = | | < | > | < | >= expr expr TO expr expr 21. Ejemplo Determinar el rango en que se encuentra un nmero. 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 algn otro, distinto a los anteriores") END SELECT 22. Actividad 6: Crear un procedimiento que permita evaluar a un estudiante segn, su calificacin en una materia. 23. Estructuras cclicas FOR variable = startExpr TO endExpr {STEP stepExpr} [CONTINUE] [BREAK] [EXIT FOR] { statement } ELSE { statement } END FOR | NEXT {variable} 24. Ejemplo Ciclo donde se muestre la variable del ciclo. 25. Actividad 7: Construya un algoritmo que reciba como entrada un cierto valor n y genere como salida n veces la palabra hola. 26. While WHILE expresin [ BREAK ] [ CONTINUE ] [ EXIT WHILE ] { instrucciones } [ELSE { instrucciones } ] END WHILE | WEND Contadores: contador = contador + 1 Sumadores: suma = suma + numero 27. Ejemplo Algoritmo que lance n veces un mensaje. 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. Objetos de proyector El proyector de HAEduc brinda 11 objetos diferentes para el diseo de las aplicaciones: 1. Imagen 2. Botn 3. Etiqueta 4. Caja de texto 5. Html 6. Video 7. Polgono 8. Lista 9. Reloj 10.Tabla 11.Texto 30. Ejemplo nombre_variable_objeto = ssObtObjeto(nombre_objeto) 31. Actividad 9: Modificar las propiedades: Posicin, rotacin, visibilidad y dimensiones de un objeto imagen, en tiempo de ejecucin. 32. Creacin y destruccin 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 podra hacerse de esta forma: Dim milista = sslista(lista1,sspunto(100,100),ssdim(80,200)) 33. Ejemplo Crear un botn mediante script y destruirlo. 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. Actividad 11: Crear un botn y capturar su evento. 36. TemasTemas AdicionalesAdicionales 37. Dilogos comunes Los dilogos de Sora Script son clases internas que permiten el intercambio de informacin entre el usuario y las aplicaciones. Estos dilogos son: ssDialogoColor Clase para la seleccin de colores por el usuario. ssDialogoFichero Clase para la seleccin de ficheros por el usuario. ssDialogoDirectorio Clase para la seleccin de directorios por el usuario. ssDialogoTexto Clase para la creacin de cajas de dilogo de entrada de texto. ssDialogoFuente Clase para la seleccin de fuentes por el usuario. ssDialogoMensaje Clase para mostrar cajas de mensajes. 38. ssDialogoTexto Permite al usuario introducir valores durante la ejecucin de un programa. ssDialogoTexto(contenido as string [, ttulo 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 dilogo. ssDialogoTexto::estvalor estvalor(valor as string) Establece el valor por defecto del dilogo. ssDialogoTexto::mostrar mostrar() as integer Muestra un dilogo de entrada de texto previamente creado y devuelve los valores SS_ACEPTAR o SS_CANCELAR dependiendo del botn pulsado por el usuario al cerrar el dilogo. 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 nmero") d1.mostrar() dim d2=new ssdialogotexto("Ingrese el segundo nmero") d2.mostrar() n1=d1.obtvalor() n2=d2.obtvalor() promedio(n1,n2) end sub 40. Navegar entre pginas ssnavegar(npag as integer, transicion as integer = ss_t_sintransicion, velocidad as integer = ss_vt_medio) as integer Permite navegar a una pgina conociendo su posicin (npag) en la lista de pginas. 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 pgina 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 pgina. Ejemplo: ssnavegarsiguiente() ssnavegaranterior(transicion as integer = ss_t_sintransicion, velocidad as integer = ss_vt_medio) as integer Permite navegar a la pgina anterior. Ejemplo: ssnavegaranterior() Si la pgina existe devuelve 1, sino 0 41. Botn Salir sub mouseclick_botoncerrar(par1) resultado=ssmensaje("Estas seguro de cerrar la aplicacin:","Pregunta",SS_IPREGUNTA,SS_BSINO) if resultado=SS_SI then ssaplicacionsalir() end if end sub 42. Colecciones Una coleccin es un agrupamiento de datos de tipo Variant a los que se puede tener acceso mediante un valor clave: Array (coleccin de tamao esttico) List (coleccin ordenada dinmica) Table (coleccin no ordenada dinmica) 43. Array Un Array es una coleccin de tamao esttico. Como las dems colecciones, es pasada por referencia. Se emplea el corchete para distinguirlos de una llamada a rutina. Veamos una declaracin simple de un array: Dim miArray[10] Si el lmite inferior del rango no es declarado, este se toma como cero. Se puede especificar un tipo de dato: Dim miArray[10] as Number Tambin es posible hacer ambas cosas: Dim miArray[10] as Integer = 30 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 nmero menor es: n" & menor) end sub 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. 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. SoraScript.blogspot.com Arrastrar imgenes Animaciones Sonido 48. Contacto [email protected] [email protected] Twitter: @hsg2020 http://sorascript.blogspot.com http://hsg2020.blogia.com