Apuntes Logo
Apuntes Logo
Apuntes Logo
CONSTANTES Y VARIABLES Constante: Toma un valor inicial que ya no podr modificarse durante la ejecucin del programa. Variable: Es un identificador mediante el cual podrn efectuarse operaciones de lectura y escritura de las celdillas de memoria que representa. El valor de la variable ser modificado. Por ejemplo la temperatura, que vara con el tiempo.
La primitiva para crear una variable es: HAZ_variable_valor Ejemplo: HAZ_temperatura_23 Para mostrar el valor de la variable en un punto del programa: ROTULA_:variable Ejemplo: HAZ_numero1_100 HAZ_numero2_200 ROTULA_:numero1 Av 100 Rotula_:numero2 Ejercicio: Crea un procedimiento llamado rectngulo para dibujar un rectngulo. Define dos variables llamadas lado1 y lado2, dales inicialmente el valor que quieras y emplalas para que se dibuje el rectngulo. Para rectngulo Haz lado1 50 Haz lado2 100 Av :lado1 Gd 90 Av :lado2 Gd 90 Av :lado1 Gd 90 Av :lado2 Fin
CAMBIAR EL VALOR DE UNA VARIABLE YA DEFINIDA Hay 2 formas: 1) Igual que hacemos para definirla.
Haz n1 100 Rotula :n1 Sl Av 100 Haz n2 200 Rotula :n2 Av 100 Haz n1 :n1+:n2 Rotula :n1 2) Modificndola en un procedimiento: Vamos a hacer un procedimiento que haga avanzar el cursor un nmero que nosotros queramos y adems muestre lo que avanza: Para avanzar :numero Av :numero Rotula :numero fin Para ejecutar el procedimiento escribimos: Avanzar 100 Avanzar 200 No es necesario definir una variable con la instruccin HAZ en un procedimiento. Basta con poner el nombre del procedimiento seguido de la variable o variables (con :). As, podemos crear variables vacas, es decir, sin valor inicial.
Ejercicio: Crea una variable llamada a1 y asgnala el valor 100. Crea otra llamada a2 y asgnale el valor 200. Realiza las operaciones: Muestra el resultado de a1*a2 Muestra el resultado de a2/a1 Haz que almacene en una variable llamada total la suma de a1+a2.
Para operadores Haz a1 100 Haz a2 200 Muestra :a1*:a2 Muestra :a2/:a1 Haz total :a1+:a2 Fin
PRIMITIVA ESCRIBE (ES) Sirve para que en la pantalla de trabajo aparezca un texto. ESCRIBE_ [Texto] Si quiero que haga una operacin, va sin corchetes. La diferencia con la primitiva ROTULA es que sta lo muestra en la ventana principal.
PRIMITIVA LEEPALABRA Despus de rotula o escribe, poniendo la instruccin haz var leepalabra , sale un cuadro de dilogo para escribir algo, y lo que escribamos ser la variable var.
Ejercicio: Calcula el rea de un rectngulo. Para rectangulo2 Es [Escribe el valor de la base] Haz lado1 leepalabra Es [Escribe el valor de la altura] Haz lado2 leepalabra Haz area :lado1*:lado2 Es [El rea del rectngulo es ] es :area Fin Con la primitiva rotula: Para rectangulo2 Es [Escribe el valor de la base] Haz lado1 leepalabra Es [Escribe el valor de la altura] Haz lado2 leepalabra Haz area :lado1*:lado2 Gd 90 Rotula [El rea del rectngulo es ] Ponpos[250 0] Rotula :area Fin
Sino condicin [accin 1] Efecta la accin 1 si la sentencia es cierta y no ejecuta nada si es falsa.
Ejemplo: Programa para determinar si eres mayor de edad. Para edades :edad Sisino :edad>18 [escribe [Eres mayor de edad]] [escribe [Eres menor de edad]] Fin Ejercicio 1: Haz un procedimiento llamado numpos que nos pida un nmero. Si el nmero que introducimos es positivo, se mostrar su raz cuadrada. Si es negativo no debe calcularlo, ya que dara un error. PRIMITIVA DE RAIZ CUADRADA -> rc. Para numpos Es [Introduce un nmero en la ventana] Haz valor leepalabra Es (frase [El nmero es ] :valor) Si :valor>0 [es (frase [su raz cuadrada es ] rc :valor)] fin Ejercicio 2: Haz un procedimiento llamado posneg que nos pida un nmero. Si el nmero que introducimos es positivo se mostrar su raz cuadrada. Si es negativo se escribir un mensaje que diga NO SE PUEDE CALCULAR LA RAZ DE UN NMERO NEGATIVO Para posneg Es [Introduce un nmero en la ventana] Haz valor leepalabra Es (frase [El nmero es ] :valor) Sisino :valor>0 [es (frase [su raz cuadrada es ] rc :valor)] [es [No tiene raz cuadrada, es un nmero negativo]] Fin Nota: En sisino las dos acciones se escriben en la misma lnea de cdigo PRIMITIVA LGICA <Y> Evala varias expresiones. Devuelve el valor cierto si todas las expresiones evaluadas tienen el valor cierto, y devuelve el valor falso si alguna de las expresiones es falsa.
Sintaxis: y expresin1 expresin2. Ejemplo: Escribe un procedimiento llamado lgica que nos pida dos nmeros. Si lo dos nmeros son mayores que 100, nos devuelve la suma de ambos. Si alguno de ellos es igual o menor que 100 nos devolver un mensaje de error. Para lgica Es [Introduce dos nmeros mayores que 100] Haz num1 leepalabra Haz num2 leepalabra Sisino y :num1>100 :num2>100 [es (frase[la suma es ] :num1+num2)] [es [Algn nmero es menor o igual que 100]] Fin PRIMITIVA LGICA <O> Evala varias expresiones. Devuelve el valor cierto si alguna de las expresiones tiene el valor cierto, y devuelve el valor falso si todas las expresiones son falsas. Sintaxis: o expresin1 expresin2. Ejemplo: Escribe un procedimiento llamado lgica2 que nos pida dos nmeros, al menos uno de los cuales debe ser mayor que 500. Si uno o los dos nmeros son mayores que 500 nos devolver la suma de ambos. Si los dos nmeros son iguales o menores que 500, nos devolver un mensaje de error. Para logica2 Es [Introduce dos nmeros, al menos uno de ellos debe ser mayor que 500] Haz num1 leepalabra Haz num2 leepalabra Sisino o :num1>500 :num2>500 [es (frase[la suma es ] ;num1+:num2)] [es [los dos nmeros son menores o iguales que 500] Ejercicio: Disea un procedimiento llamado notas que pida la nota numrica y, una vez introducida, nos d la nota cualitativa segn el siguiente baremo: <5 Insuficiente Entre 5 y 6 Suficiente Entre 6 y 7 Bien Entre 7 y 9 Notable >9 Sobresaliente
Sisino :num<5 [es[Insuficiente]] [sisino :num<6 [es[Suficiente]] [sisino :num<7 [es[Bien]] [sisino :num<9 [es[Notable]] [es[Sobresaliente]]]]] Fin
Ejemplo: creaventana
CREAR TEXTOS ESTTICOS EN UNA VENTANA Primitiva: creaestatico Sintaxis: creaestatico ventana nombre texto xpos ypos ancho alto Ventana: nombre de la ventana que incluir el texto esttico Nombre: nombre asignado al texto esttico Texto: texto que se mostrar
Ejercicio: Disear un procedimiento llamado resultado que reciba dos nmeros y devuelva el producto de ambos en una nueva ventana.
Para resultado Gd 90 ot sl Ponpos [-100 100] Rotula [Introduce dos nmeros] Haz num1 leepalabra Haz num2 leepalabra Haz resul :num1*:num2 Bp Creaventana calculo [Resultado del producto] 200 150 100 40 [] Creaestatico calculo resul1 :num1 5 5 20 10 Creaestatico calculo resul2 [x] 25 5 10 10 Creaestatico calculo resul3 :num2 35 5 10 10 Creaestatico calculo resul4 [=] 55 5 10 10 Creaestatico calculo resul5 :resul 65 5 20 10 Fin
CREAR BOTONES EN UNA VENTANA Primitiva: creaboton Sintaxis: creaboton madre nombre [etiqueta] xpos ypos ancho alto [rdenes] Madre: Nombre de la ventana que contendr el botn Nombre: nombre del botn Etiqueta: texto que aparece en el botn Xpos, ypos: coordenadas desde la esquina superior izquierda de la ventana madre. Ancho, alto: dimensiones del botn rdenes: accin que se realizar al hacer clic sobre el botn
Ejemplo: Procedimiento llamado segunda para crear una ventana con un botn para cerrarla.
Para segunda Creaventana segunda [Pulsa Aceptar para cerrar] 200 50 90 40 [] Creaboton segunda boton1 [Aceptar] 30 5 30 20 [borraventana segunda] Fin Otra forma, con dos procedimientos: Para segunda Creaventana segunda [Pulsa Aceptar para cerrar] 200 50 90 40 [] Creaboton segunda boton1 [Aceptar] 30 5 30 20 [sesamo] Fin Para ssamo (procedimiento para cerrar la ventana) Borraventana segunda Fin Para cambiar el texto de un botn: actualizaboton botn [Texto nuevo]
Ejercicio: Crea un procedimiento llamado ven3boton que dibuje en la pantalla una ventana con tres botones. Al pulsar el primero aparecer en la ventana un mensaje que diga pulsado. Al pulsar el segundo se dibuja un cuadrado en la ventana grfica y
el texto del botn cambia a cuadrado. Al pulsar el tercero se cierra la ventana con todo su contenido.
Para ven3boton Creaventana nueva [Ventana con tres botones] 170 50 190 70 [] Creaboton nueva boton1 [Pulsar] 15 30 40 20 [primer] Creaboton nueva boton2 [Arrancar] 67 30 50 20 [segun] Creaboton nueva boton3 [Cerrar] 130 30 40 20 [borraventana nueva] Fin Para primer Creaestatico nueva texto1 [PULSADO] 17 10 35 15 Fin Para segun Bl Repite 4[gd 90 av 200] ot Actualizaboton boton2 [CUADRADO] Fin CREAR BARRAS DE DESPLAZAMIENTO EN UNA VENTANA Primitiva: creabarradesplazamiento Sintaxis: creabarradesplazamiento madre nombre xpos ypos ancho alto [rdenes] Madre: ventana donde se crear la barra de desplazamiento Nombre: el de la barra Xpos, ypos: coordenadas desde la esquina superior izquierda de la ventana Ancho, alto: dimensiones de la barra rdenes: accin de la barra de desplazamiento
Ejemplo: Procedimiento que cree una ventana llamada tercera en la que haya un botn para cerrarla y una barra de desplazamiento.
Para tercera Creaventana tercera [Mi primera barra deslizante] 200 50 140 60 [] Creabarradesplazamiento tercera cien 30 10 80 10 [] Ponbarradesplazamiento cien 0 100 50 ; posicin del deslizante Creaboton tercera close [Cerrar] 55 25 30 20 [borraventana tercera] Fin Ejercicio: Crea un procedimiento llamado venbar que dibuje en una ventana una barra de desplazamiento. La barra tendr un rango de valores entre 50 y 250. Cada vez que se mueva se debe visualizar en la ventana el valor de su posicin y su raz cuadrada. Tendremos, adems, un botn para cerrar la ventana.
Para venbar Creaventana ultima [Calculadora automtica de races] 150 70 180 70 [] Creaestatico ultima estat [150] 140 10 20 15 ; la barra adoptar el valor 150 en el centro de su recorrido Creaestatico ultima estat1 [Su raz cuadrada es: ] 15 30 70 10 Creaestatico "ultima "estat2 raizcuadrada 150 35 40 30 10 ; estat2 tendr como valor inicial raz cuadrada de 150 Creabarradesplazamiento "ultima "barra 15 10 110 10 [leebarra] ; cuando el cursor de la barra se mueva se ejecutar el procedimiento llamado leebarra Ponbarradesplazamiento "barra 50 250 150 Creaboton "ultima "primero [Cerrar] 125 30 40 20 [borraventana "ultima] fin
para leebarra haz "x leebarradesplazamiento "barra haz "y raizcuadrada :x actualizaestatico "estat :x actualizaestatico "estat2 :y fin
PRIMITIVA <GROUPBOX> Y <BOTONRADIO> Un botn radio es un objeto que permite seleccionar una opcin con dos estados: verdadero (botn seleccionado) falso (botn no seleccionado).
Todos los botones radio, que se corresponden con cada una de las opciones que se presentan al usuario, deben estar asociados en un grupo o groupbox. Sintaxis: Creagroupbox ventana nombre xpos ypos ancho alto Creabotonradio ventana grupo nombre [texto] xpos ypos ancho alto
Ventana
Ejemplo: Crea una ventana llamada cuarta en la que el usuario deber elegir su rango de edad seleccionando uno de los botones radio que se presentan reunidos en un grupo.
para edad creaventana cuarta [Seleccione su grupo de edad] 200 50 115 65 [] creagroupbox cuarta marco 5 5 65 40 creabotonradio cuarta marco bot1 [<15 aos] 10 13 40 9 creabotonradio cuarta marco bot2 [15 a 18 aos] 10 23 55 9 creabotonradio cuarta marco bot2 [>18 aos] 10 33 40 9 escribebotonradio bot1 verdadero creaboton cuarta cierra [Aceptar] 75 20 30 20 [borraventana cuarta] fin Ejercicio: Haz un procedimiento llamado calcacme que pida dos nmeros y dibuje en una ventana un grupo con 4 botones radio. Cada botn tendr asignada una operacin matemtica (+, -, *, /). Cuando pulsemos un botn aparecer el resultado de aplicar la operacin matemtica seleccionada a los dos nmeros introducidos. Tendr un botn para cerrar la ventana.
ro[Introduce dos nmeros en la ventana] haz "num1 leepalabra haz "num2 leepalabra bp creaventana " "ultima [Calculadora aritmtica "ACME"] 150 70 180 100 [] creagroupbox "ultima "grupo 10 10 160 50 creabotonradio "ultima "grupo "boton1 [+] 15 15 25 10 creabotonradio "ultima "grupo "boton2 [-] 15 25 25 10 creabotonradio "ultima "grupo "boton3 [*] 15 35 25 10 creabotonradio "ultima "grupo "boton4 [/] 15 45 25 10 escribebotonradio "boton1 "verdadero creaboton "ultima "calcular [CALCULAR] 20 67 45 15 [calculo] creaboton "ultima "cerrar [ACABAR] 115 67 45 15 [borraventana "ultima] creaestatico "ultima "estat [NMEROS: ] 50 25 45 15 creaestatico "ultima "estat1 :num1 110 25 20 15 creaestatico "ultima "estat2 :num2 140 25 20 15 creaestatico "ultima "estat3 [RESULTADO: ] 50 40 50 15 creaestatico "ultima "estat4 [] 110 40 30 15 fin PRIMITIVA <CHECKBOX> Crea una casilla de seleccin en el recuadro indicado de las caractersticas que se definan en los argumentos. Sintaxis: Creacheckbox Ancho Alto. "NombreVentana "NombreGrupo "Nombre [texto] Xpos Ypos
NombreVentana: Es el nombre de la ventana en la que se estar situado NombreGrupo: Es el nombre del grupo en la que se estar situado Nombre: Es la referencia asignada a la casilla que se crea. Texto: Es el texto que figura a su lado Xpos: Posicin x de la esquina superior izquierda. Ypos: Posicin y de la esquina superior izquierda. Ancho: Anchura de la ventana creada en pixels. Alto: Altura de la ventana creada en pixels.