Programacion User RPL
Programacion User RPL
Programacion User RPL
plo:
Escribamos un programa que evale repetidamente la raz cuadrada de un
numero puesto en el nivel 1 de la pila hasta que este numero sea igual a 1.
Veamos el cdigo:
CLLCD
DO
\
DUP DUP
STR 1 DISP
0.1 WAIT
UNTIL
1 ==
END
Ejecutemos este cdigo:
Debemos poner un numero en la pila. Ej; 9.99999999999E499
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
139
COMENTARIOS:
1. Este cdigo se entiende perfectamente haciendo DBUG.
NOTA: - Intntenlo con un solo DUP.
- intntenlo sin el 0.1 WAIT
10.3.4 WHILEREPEATEND
Esta estructura trabaja de manera similar a DOUNTILEND con la
diferencia de que primero ejecuta la condicin y luego el bucle. Veamos el
ejemplo anterior pero con WHILEREPEATEND:
CLLCD
WHILE DUP 1 =
REPEAT \ DUP
STR 1 DISP
0.1 WAIT
END
COMENTARIOS:
1. Este cdigo se entiende perfectamente haciendo DBUG.
NOTA: - Intntenlo con un solo DUP.
- intntenlo sin el 0.1 WAIT
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
140
11. ESTRUCTURAS DE
DETECCIN DE ERRORES.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
141
11. ESTRUCTURAS DE
DETECCIN DE ERRORES.
11.1 DEFINICIN
Las estructuras de deteccin de errores permiten que los programas
detecten o intercepten las situaciones de error las cuales provocaran la
interrupcin de la ejecucin del programa.
11.2 IFERR...THEN...END
La estructura de IFERR...THEN...END es la siguiente:
IFERR <accin sospechosa>
THEN < accin a ejecutar si se produjo error>
END
Empecemos con un ejemplo muy sencillo:
Escribamos un programa que suma dos numero reales puestos en la pila.
Una condicin de error seria que hubiera un solo numero en la pila o que no
fueran del mismo tipo de variable los argumentos puestos en la pila, Por lo
tanto la accin sospecha seria +. Veamos este sencillo cdigo:
IFERR +
THEN
"Falta un dato"
CLLCD MSGBOX
END
Al ejecutar con dos nmeros en la pila:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
142
Ejecutando con un solo numero en la pila (condicin de error):
Se produce tambin un error cuando durante la ejecucin de un programa se
pulsa la tecla ON. Prubenlo como ejercicio para un programa en donde
exista una aplicacin del comando WAIT.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
143
12. VENTANA DE OPCIONES.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
144
12. VENTANA DE OPCIONES.
12.1 DEFINICIN
Una ventana de opciones, como su nombre lo indica es una ventana que
puede contener una o varias opciones, las cuales nos permiten seguir una
ruta dentro de un programa.
12.2 EL COMANDO CHOOSE
Esta ventana de opciones se crea mediante el comando CHOOSE. Este
comando toma tres argumentos de la pila para poder ejecutarse, estos
argumentos son en orden los siguientes:
Un STRING el cual contiene el titulo de la ventana.
Una lista con las opciones que queremos ubicar en la ventana.
Un ndice de posicin.
12.3 FORMAS DE UTILIZACIN DEL COMANDO CHOOSE
El comando CHOOSE se puede aplicar de dos maneras, de hecho lo nico
que varia es la lista, es decir el segundo argumento que toma el comando
para ejecutarse. Veamos un primer ejemplo:
EJEMPLO 1:
Escribamos un pequeo programa que cree una ventana con las siguientes
opciones:
- Cercha
- Viga
- Prtico
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
145
Veamos el cdigo:
CLLCD Pone en blanco la pila
"ELIJA UNA OPCIN" Titulo de la ventana (STRING)
{ CERCHA
VIGA
PORTICO } Opciones (lista)
1 ndice de posicin
CHOOSE
Lo cual muestra lo siguiente:
Esto si esta activo el FLAG 90 el cual muestra el texto en FONT pequeo.
Veamos el cdigo desactivando este FLAG
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
146
-90 CF CLLCD
"ELIJA UNA OPCIN"
{ CERCHA VIGA PORTICO }
1
CHOOSE
NOTA: Cual es mejor? A gusto de cada uno.
Con las teclas que contienen las flechas nos podemos mover arriba o abajo.
Eligiendo la opcin 3:
Presionando OK devolver los siguiente a la pila:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
147
COMENTARIOS:
Este cdigo no nos permite poner texto que contenga mas de dos palabras,
me explico; si fuera por ejemplo cercha plana no podramos ponerlo as. Se
vera en una lnea cercha y en una segunda lnea plana
Veamos ahora una segunda forma de utilizar este comando CHOOSE la cul
nos permite poner mas de una palabra en una sola lnea.
Considerando el mismo ejemplo anterior pero ahora las opciones sern:
- Cercha plana
- Viga continua
- Viga empotrada
Veamos el nuevo cdigo:
CLLCD
"ELIJA UNA OPCIN"
{
{ "CERCHA PLANA" 1 }
{ "VIGA CONTINUA" 2 }
{ "VIGA EN EMPOTRADA" 3 }
}
1
CHOOSE
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
148
COMENTARIOS
1. Como se puede observar este cdigo si nos permite poner mas de una
palabra en una sola lnea.
2. Notemos que las opciones a diferencia del cdigo anterior ahora van
dentro de (STRING)
3. Observemos tambin que la opcin y su ndice de posicin ahora son una
lista anidada dentro de otra lista que contiene todas las opciones.
4. Al ejecutar este cdigo se ve algo como esto:
Eligiendo la opcin 3
El entero del nivel 2 de la pila es el ndice de posicin de la opcin. As por
ejemplo hubisemos elegido cercha plana se hubiera devuelto lo siguiente:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
149
Dado el caso que no se presione la tecla de men OK sino la tecla de men
CANCL se devolver 0 a la pila
En resumen esta son las dos formas que toman los argumentos que necesita
el comando CHOOSE para su ejecucin. Veamos ahora un ejemplo completo
utilizando este comando y aplicando la segunda forma:
Escribamos un programa que llamaremos KTULU con 3 opciones:
La primera nos permitir averiguar la cantidad de memoria disponible de
nuestra HP en KB (Kilobytes)
La segunda nos permitir averiguar el numero de libreras instaladas en el
puerto
La tercera nos da la opcin salir del programa.
Vamos entonces al cdigo:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
150
-90 SF IFERR Si error
CLLCD Pone la pantalla en blanco
" ELIJA UNA OPCION" Titulo de la ventana
{ { "Memoria Disp." 1 }
{ "Puerto 0" 2 } Lista con las opciones
{ "Salir" 3}
}
1 ndice de posicin
CHOOSE Ejecuta el comando CHOOSE
DROP Elimina el 1 dejado en la pila
i Define var. local para 1 2 o 3
CASE ' i==1' En caso de que i igual a 1 (es decir memoria
disponible)
THEN Entonces
CLLCD Pone la pantalla en blanco
-40 CF Quita el reloj de la pantala
MEM Pone la cantidad de memoria disp. En la pila
1000 / Divide por 1000 para pasar a KB
0 RND O lugares decimales
STR Convierte a STRING
" KB" + Aade KB al resultado de mem disponible
"Memoria disponible:" Pone el texto "Memoria disponible en la pila
1 DISP Pone el texto anterior en la pantalla
2 DISP Pone el texto de MEM disponible en pantalla
0 WAIT Espera una tecla
DROP Borra la semilla dejada por la tecla pulsada
END Termina
' i==2' En caso de que I igual a 2 (es decir puerto 0)
THEN Entonces
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
151
0 PVARS Comando que nos devuelve una lista con la
cantidad de libreras en puerto 0 representadas
por su numero (nivel 2) y la memoria disponible
(nivel 1)
DROP Borra el nivel 1 de la pila ya que no necesitamos
el dato de cantidad de mem disponible.
SIZE Obtiene el numero (cantidad) de elementos de la
lista
STR Lo convierte a STRING
" LIBS" + Pone el texto LIBS y lo aade a # de LIBS
"LIBS EN PUERTO 0:" Pone el texto "LIBS EN PUERTO 0:"
1 DISP Pone el texto anterior en la pantalla
2 DISP Pone la cantidad (numero) de LIBS en la pila.
0 WAIT Espera una tecla
DROP Borra la semilla dejada por la tecla presionada
END Termina
'i==3' En caso de que I igual a (es decir salir)
THEN Entonces
END Termina
END Sale del CASE
THEN Si se produjo error entonces
CLLCD "Se produjo un Muestra "Se produjo un error mediante
MSGBOX
error" MSGBOX
KTULU Vuelve a ejecutar el programa
END Termina
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
152
Grabamos bajo el nombre KTULU y ejecutamos. Obsrvese que se modifico
el FLAG 90:
Si elegimos la opcin 1
Si elegimos la opcin 2
Si presionamos CANCL
COMENTARIOS:
1. Vemos un comando nuevo llamado PVARS que nos devuelve una lista con
la cantidad de libreras en puerto 0 representadas por su numero (nivel
2) y la memoria disponible (nivel 1).
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
153
2. El comando CHOOSE es bastante eficiente cuando tenemos muchas
opciones dentro de nuestras aplicaciones.
EJEMPLO 2:
Ahora supongamos que lo que tenemos es una lista con muchos nombres
(como en una agenda) y lo que queremos es seleccionar dicho nombre:
Veamos la lista con los nombres:
{
"Andres Garcia"
"Santiago Jose Lopez"
"Fabian Herrera"
"Carlos Diaz"
"Cristina Santamaria"
"Joe satriani"
"Juan Gallardo"
"Armando De castro"
"Carlos de Castro"
"Elkin Cardenas"
}
Grabamos bajo el Nombre NOMBRES:
NOMBRES
Veamos el codigo:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
154
" CONTACTOS"
NOMBRES
1
CHOOSE
DROP
Grabamos bajo el nombre AGENDA y ejecutamos:
Si elegimos a Santiago Jose Lopez:
Este cdigo se relaciona directamente con el cdigo de la pagina 86
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
155
13. PLANTILLAS DE ENTRADA.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
156
13. PLANTILLAS DE ENTRADA.
13.1 DEFINICIN
Las plantillas de entrada son bsicamente una forma de entrar datos a un
programa de manera bastante cmoda y eficiente ya que nos permite hacer
algunas cosas mas que por ejemplo una entrada mediante el comando INPUT.
La plantillas de entrada se ejecutan o se crean mediante el comando INFORM el
cual necesita tres argumentos bsicos para su ejecucin que son:
- Un titulo (STRING)
- Un conjunto de campos (Una lista)
- Una lnea de mensajes (Un STRING).
Claro esta que una plantilla de entrada tambin nos sirve para mostrar resultados
arrojados por un programa como se vera mas adelante.
Un ejemplo sencillo de una plantilla de entrada sera el siguiente:
13.1 Formas de utilizar las plantillas de entrada
Existen dos formas bsicas de utilizar las plantillas de entrada:
- Una en donde no especificamos el argumento permitido sin lnea de
mensajes.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
157
- Otra en donde podemos especificar el argumento, el numero de columnas
y adems ponemos una lnea de mensajes.
Veamos entonces la primera forma:
- SIN ESPECIFICAR EL ARGUMENTO A ENTRAR Y SIN LNEA DE
MENSAJES:
Para esto veamos el cdigo del ejemplo anterior (el de pendiente y
longitud):
"ENTRADA DE DATOS" Titulo
{
{ "Q=" }
{ "A=" } Campos utilizados como una sublista y
}
{ } Lista
DUP DUP Duplica la lista
INFORM Crea la plantilla de entrada
Al ejecutar este cdigo veremos lo siguiente:
COMENTARIOS:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
158
1. Observemos que en la parte baja de la pantalla no hay un mensaje de
ayuda, es decir; no sabemos que quiere decir S ni tampoco L.
2. Hay solo una columna pero que tal si queremos dos?, es decir; que S
no quede sobre L?
3. En esta plantilla no esta especificado el tipo de argumento que el usuario
debe introducir, por ende se puede introducir cualquier argumento, veamos
algunos
PROGRAMAS
SIMBLICOS LISTAS
Pero que tal si la plantilla que creamos es para un programa que utiliza solo
argumentos numricos?. Ahora veamos la segunda forma bsica de una
plantilla de entrada:
-ESPECIFICANDO EL ARGUMENTO, EL NUMERO DE COLUMNAS Y UNA
LNEA DE MENSAJES O STRING DE AYUDA:
Revisemos el ejemplo anterior pero ahora especificando el argumento, el
numero de columnas y una lnea de mensajes o STRING de ayuda:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
159
"ENTRADA DE DATOS"
{
{ "S=" "PENDIENTE" 0}
{ "L=" "LONGITUD" 0}
}
{ 2 0 }
{ } DUP
INFORM
Ejecutndolo:
COMENTARIOS:
1. Intente introducir un argumento que no sea numrico.
2. Cree la plantilla cambiando a { 1 0 } (Lista que contiene el numero de
columnas y el numero de espacios entre Q y el espacio para poner el
valor) por { 2 0 }.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
160
Ya teniendo las herramientas para introducir datos en programa mediante
una plantilla de entrada entonces escribamos el siguiente cdigo que nos
permite ensamblar las matrices de rigidez de cada elemento de una cercha
en coordenadas globales, entrando los datos necesarios mediante plantillas
de entrada.
La matriz de rigidez de un elemento de cercha plana en coordenadas
globales esta dada por:
C
2
S*C -C
2
-S*C
S*C S
2
-S*C -S
2
K = E*A / L -C
2
-S*C C
2
SC
-S*C -S
2
SC S
2
Donde:
E = Modulo de elasticidad del material
A = rea de la seccin transversal del elemento
L = Longitud del elemento
C = Coseno del ngulo que describe el elemento con la horizontal
S = Seno del ngulo que describe el elemento con la horizontal.
Entonces los datos que necesita el programa para calcular la matriz de
rigidez en coordenadas globales de cada elemento son E, A, L, u
Veamos la forma y configuracin de la cercha:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
161
ELEMENTO 1:
L = 2.5 m
u = 36.87
A = 0.00025 m
2
E = 200 * 10
6
KPA
ELEMENTO 2:
L = 2 m
u = 0
A = 0.0004 m
2
E = 200 * 10
6
KPA
ELEMENTO 3:
L = 1.5 m
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
162
u = 90
A = 0.00015 m
2
E = 200 * 10
6
KPA
Teniendo ya estos datos veamos el cdigo:
"NUMERO DE ELEMENTOS"
{
{ "NO:" "NUMERO DE ELEMENTOS" 0}
}
{1 0}
{ } DUP
INFORM
DROP OBJ
DROP
1 SWAP
FOR i
"DATOS ELEMENTO " i
STR +
{
{ "E" "MODULO DE ELASTICIDAD EN KPA" 0}
{ "A" "AREA DE LA SECCION EN M^2" 0 }
{ "L" "LONGITUD DEL ELEMENTO EN M" 0}
{ "u" "ANGULO CON LA HORIZONTAL" 0}
}
{2 0}
{ } DUP
INFORM
DROP
OBJ
DROP
CLLCD
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
163
"Ensamblando matriz
elemento " i STR +
1 DISP
"Espere por favor. . "
4 DISP
E A L u
E A * L / u COS 2 ^ *
E A * L / u SIN COS * *
E A * L / u COS 2 ^ NEG *
E A * L / u SIN COS NEG * *
E A * L / u SIN COS * *
E A * L / u SIN 2 ^ *
E A * L / u SIN COS NEG * *
E A * L / u SIN 2 ^ NEG *
E A * L / uCOS 2 ^ NEG *
E A * L / u SIN COS NEG * *
E A * L / u COS 2 ^ *
E A * L / u SIN COS * *
E A * L / u SIN COS NEG * *
E A * L / u SIN 2 ^ NEG *
E A * L / u SIN COS * *
E A * L / u SIN 2 ^ *
{ 4 4 }
ARRY
0 RND
"ELE" i STR
+ OBJ
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
164
STO TEXT
NEXT
Al ejecutar el cdigo veremos lo siguiente:
Presionamos OK y nos pedir datos elemento por elemento:
Presionamos OK y nos pedir los datos del elemento 2:
Presionamos OK y nos pedir los datos del elemento .3:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
165
Presionamos OK.
Los resultados quedaran grabados en el directorio actual bajo los nombres
E1, E2, E3.
RESULTADOS
COMENTARIOS:
1. Primero que todo recomiendo hacer un DBUG a este cdigo por si no se
entendi algo.
2. Intenten escribir este cdigo pero no ensamblando la matriz de cada
elemento a medida que se introducen los datos, sino que ensamble todas las
matrices al final.
3. Importante tener la HP en modo DEG, de lo contrario los resultados no
sern correctos. Esto se logra poniendo la palabra DEG al principio del
Programa.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
166
14. EL ENTORNO SOLVR.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
167
14. EL ENTORNO SOVR.
14.1 Como solucionar ecuaciones dentro de un programa.
Como definicin previa, el Entorno SOLVR es una herramienta de la HP que
nos brinda la posibilidad de solucionar ecuaciones en las cuales la variable o
incgnita es difcil de despejar, es decir; Aquellas ecuaciones donde
tenemos que hacer tanteo para encontrar el valor de la incgnita. El
entorno SOLVR utiliza un conjunto de por lo menos dos ecuaciones que van
dentro de una lista
Por ejemplo para encontrar el factor de friccin en tuberas que conducen
algn tipo de fluido a presin se utiliza la Ecuacin de COLEBROOK que
viene dada como:
1 / \ f = - (2 * LOG (1 / 3.7 * Ks /D + 2.51 / R * \ f )
Donde:
f = Factor de friccin (Adimensional)
Ks = Coeficiente de rugosidad del material de la tubera (en mm)
D = Dimetro de la tubera. (En mm)
R = # de Reynolds. (Adimensional)
Como podemos ver, en esta ecuacin es bastante complicado despejar la
incgnita f, tendramos que hacer tanteos hasta que se cumpla la igualdad.
Pero entonces veamos como se utiliza el entorno SOLVR para solucionar
este tipo de ecuaciones, considerando el siguiente ejemplo:
EJEMPLO 1:
Se quiere encontrar el valor del factor friccin en una tubera que conduce
agua con los siguientes datos:
Ks = 0.12 mm (Tubera de concreto CCP)
D = 300 mm
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
168
R = 421847.07
Veamos el cdigo para luego explicarlo:
-3 CF
"Ks (En mm)" " "
INPUT OBJ
"DIAMETRO (En mm):" " "
INPUT OBJ
"# DE REYNOLDS:" " "
INPUT OBJ
Ks D R
CLLCD
"Un momento por favor
Resolviendo ecuacion.."
3 DISP
' 1/F=-(2*LOG(1/3.7*(Ks/D)+2.51/(R*F))) ' EVAL
' Y=0 '
2 LIST
'EQ' STO
MINIT
F MCALC
F MROOT
5 RND
STR
"f=" SWAP +
MSGBOX
Ejecutemos el cdigo:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
169
COMENTARIOS:
1. En la lnea 1 vemos -3 CF lo que nos indica que estamos cambiando
el FLAG 3. Esto es de vital importancia ya que este FLAG controla el
modo de funcin numrica o simblica. Siempre debe estar en
simblica, para esto ponemos -3 CF.
2. Luego vemos que pide la entrada de los datos necesarios mediante el
comando INPUT.
3. Ks D R Define las variables locales Ks, D, R
4. CLLCD Pone la pantalla en blanco.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
170
5. "Un momento por favor Resolviendo ecuacin.." 3 DISP. Pone el texto en
el nivel 3 de la pantalla.
6. ' 1/F=-(2*LOG(1/3.7*(Ks/D)+2.51/(R*F))) ' EVAL. Realiza la operacin.
7. ' Y=0 ' Conforma la ecuacin Y=0 Recordemos que el entorno SOLVR
utiliza dos o ms ecuaciones que van dentro de una lista. Esta segunda
ecuacin se puede conformar como una quiera siempre y cuando no
contenga variables que contenga la primera ecuacin en este caso.
8. 2 LIST Conforma la lista
9. 'EQ' STO Graba la lista con el nombre EQ
10. MINIT. Este comando es nuevo para nosotros, y lo que hace es definir la
lista con las dos ecuaciones.
11. F MCALC Este comando tambin es nuevo para nosotros, y lo que hace
es definir a F como la incgnita a despejar.
12. F MROOT Este comando tambin es nuevo para nosotros, y lo que hace
es definir a F como la variable para la cual va a encontrar las races o ceros
de la ecuacin.
13. 5 RND. Trunca la respuesta a 5 lugares decimales.
14. STR Convierte la respuesta a STRING para mostrarla mediante el
comando MSGBOX.
15. "f=" SWAP +. Etiqueta la respuesta f = 0.017
16. MSGBOX Crea una ventana de dialogo para mostrar la respuesta.
17. El programa nos deja grabadas algunas variables en el directorio actual
como ( F, MPAR, EQ) Las cuales hay que eliminar.
17.Recomiendo hacer un DBUG a este cdigo.
NOTA: Aqu en la 49G es necesario modificar el FLAG 105. Como ejercicio
averigen porque.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
171
EJEMPLO 2:
Se desea calcular la altura de lamina (Y) en un canal trapezoidal que trabaja
a flujo libre. La seccin es como se indica:
La ecuacin para determinar la altura de lamina Y viene dada por la ecuacin:
[ ( b + Z * Y) * Y ]
2.5
/ b + 2 * Y * \(Z
2
+ 1) = (Q * n / S
1/2
)
1.5
Donde:
Y = Altura de la lamina
b = Base del canal en m
Z = Pendiente del talud
Q = Caudal en m^3 / s
n = Coeficiente de friccin de Manning
S = Pendiente longitudinal
Entonces suponiendo los siguientes datos:
b = 2 m
Z = 1.5
Q = 10 m^3 / s
n = 0.017
S = 0.0015
1
Z
b
Y
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
172
Entonces veamos el cdigo:
"DATOS PARA ALTURA DE LAMINA"
{
{ "B" "BASE DEL CANAL EN m" 0 }
{ "Z" "PENDIENTE DEL TALUD" 0 }
{ "Q" "CAUDAL EN M^3/S" 0 }
{ "N" "COEFICIENTE DE MANNING" 0 }
{ "S" "PENDIENTE LONGITUDINAL DEL CANAL" 0 }
}
{ 2 0 }
{ } DUP
INFORM
DROP
OBJ DROP
b Z Q n S
CLLCD
'((b+Z*Y)*Y)^2.5/(b+2*Y*(Z^2+1))=(Q*n/S^.5)^1.5'
EVAL
'X=0'
2 LIST
'EQ' STO
MINIT
Y MCALC
Y MROOT
2 RND
"ALTURA DE LAMINA"
{ { "Y=" "ALTURA DE LAMINA EN M" 0 } }
{ 1 0 }
4 ROLL
1 LIST
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
173
DUP
INFORM
Ejecutemos entonces este cdigo:
COMENTARIOS:
1. Como se puede ver, aqu se utilizo una plantilla de entrada para mostrar
un resultado.
2. Si algo no se entendi, recomiendo hacer un DBUG.
Espero se haya entendido la forma como se utiliza el entorno SOLVR
solucionador de ecuaciones, herramienta supremamente til y fcil de usar.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
174
15. EL ENTORNO PICT.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
175
15. EL ENTORNO PICT.
15.1 DEFINICIN
El entorno PICT es una herramienta de la HP que nos permite crear y editar
dibujos creados por nosotros mismos (que tambin llamaremos GROBS) y
representaciones graficas procedentes de datos matemticos. Al igual que
los dems objetos de la HP, los objetos grficos pueden colocarse en la pila
y archivarse dentro de variables.
En la pila un objeto grafico se ve de la siguiente forma:
Donde:
131 es el ancho en puntos (pxeles)
64 es la altura en puntos (Pxeles)
El tamao por defecto del entorno en coordenadas es (-6.5 a6.5) en X y (-
3.1 a 3.1) en Y.
15.2 FORMAS DE VISUALIZAR EL ENTORNO PICT
Existen dos formas bsicas (entre otras) de visualizar el entorno PICT:
Veamos a travs un cdigo la primera forma:
{ } PVIEW
Este pequeo programa nos permite visualizar el entorno PICT bloqueando
el teclado, es decir a la nica tecla que responde es a ON.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
176
Veamos que pasa al ejecutarlo:
Nos esta mostrando el entorno PICT con el ultimo GROB que se almaceno
all sea proveniente de algn dato matemtico como en este caso que lo
ultimo que se grafico fue la ecuacin Y=X
2
o sea proveniente de alguna
GROB personalizado que se visualizo en este entorno.
Sea cual sea la manera de visualizar el entorno, para que nos se vea lo
ultimo que visualizo all utilizamos el comando ERASE. Veamos el cdigo
anterior con este nuevo comando que lo que hace es borrar por completo lo
que hay en PICT.
Si presionamos CANCL volveremos a la pila:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
177
Veamos a travs un cdigo la segunda forma:
ERASE {#0 #0 }
PVIEW
0 WAIT
COMENTARIOS:
1. {#0 #0 } son las coordenadas por defecto de las esquinas del entorno
PICT.
2. PVIEW nos muestra el entorno PICT. Pero debemos poner el 0 WAIT para
lo mantenga, de lo contrario se visualizara muy rpido y luego volvera a
verse la pila.
Veamos lo que hace el cdigo:
3. Prubenlo sin el 0 WAIT.
4. Cuando visualizamos el entorno de esta forma se nos crea una variable
llamada PPAR la cual contiene algunos parmetros del entorno como las
dimensiones el tipo de funcin a graficar activada actualmente y el origen
de coordenadas.
Estas son las formas bsicas de visualizar el entrono PICT, que junto con
otros comando que veremos a continuacin nos permiten crear programas
bastante elaborados.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
178
15.3 COMO PONER Y VISUALIZAR TEXTO EN EL ENTORNO PICT.
15.3.1 MEDIANTE EL COMANDO REPL:
El comando REPL permite colocar texto en entorno utilizando tres
argumentos a seguir:
- PICT
- Las coordenadas donde deseamos colocar el texto.
- Y un texto convertido en GROB. Para convertir el texto a GROB
simplemente lo colocamos en la Pila dentro de delimitadores de STRING, le
damos un tamao que puede estar entre 0 y 3 y ejecutamos el comando
GROB. El cual lo que hace es convertir el STRING con el texto a GROB.
Veamos en ejemplo:
Deseamos colocar nuestro nombre en el entorno PICT en las coordenadas
-6.5, 3.1 (esquina superior izquierda).
Veamos el cdigo:
ERASE {#0 #0 }
PVIEW
PICT (-6.5,3.1) "Andres Ricardo Garcia Morales"
1 GROB REPL
0 WAIT
Ejecutemos el cdigo:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
179
Presionamos cualquier tecla (en este caso ENTER)
VARIABLE PPAR
COMENTARIOS:
1. Vemos Que nos cre la variable PPAR
2. Nos dejo el numero de asignacin de tecla de la ultima tecla pulsada.
3. En este caso se escogi el tamao de letra mas pequeo 1
Veamos el cdigo pero ahora borrando PPAR, borrando el numero de
asignacin de tecla dejado y con tamao de letra igual a 2
ERASE {#0 #0 }
PVIEW
PICT (-6.5,3.1) "Andres Garcia"
2 GROB REPL
0 WAIT
DROP
{ PPAR } PURGE
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
180
Pulsamos ENTER:
15.3.2 MEDIANTE EL COMANDO GXOR:
Este comando pone texto de la misma manera que en el ejemplo anterior, a
diferencia de que si el fondo fuera negro pone la letra en blanco. Veamos un
ejemplo:
Supongamos que en el entorno PICT ya esta creado el siguiente GROB:
Y queremos colocar texto dentro del recuadro negro. Veamos como seria el
cdigo:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
181
{#0 #0 }
PVIEW
PICT (-4.5,0) "Andres Garcia"
2 GROB
GXOR
0 WAIT
DROP
{ PPAR } PURGE
Se vera alo as:
Bueno, no me quedo muy en el centro que digamos pero el ejemplo sirve
para ver la diferencia. Donde esta en blanco pone pxeles Negros (prende
pxeles) y donde esta en negro pone pxeles blancos (apaga pxeles).
Tambin podemos visualizar GROBS creados con anterioridad por nosotros
mismos. Veamos un ejemplo en donde creamos el cuadro negro, lo ponemos
en el entorno y le colocamos texto adentro a manera de presentacin de un
programa. Vamos a verlo de dos maneras:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
182
- CREANDO EL GROB (cuadro negro en este caso) PRIMERO Y LUEGO
COLOCNDOLO DENTRO DEL PROGRAMA:
Para crear el cuadro negro entramos al entorno PICT pulsando la tecla que
contiene la flecha izquierda (segunda fila cuarta tecla):
Pulsamos la tecla EDIT y en las teclas de MEN veremos las herramientas
de dibujo
Para crear el cuadro negro lo haremos mediante la herramienta BOX la cual
dibuja un recuadro as: Nos paramos con la cruz en donde queremos que
quede la esquina superior del cuadro (en este caso el cuadro negro)
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
183
Ejacutamos el comando BOX y nos paramos con la cruz en donde queremos
que quede la esquina inferior derecha del cuadro (en este caso cuadro
negro)
Presionamos BOX:
Subimos un pxel hacia arriba y uno hacia la izquierda y volvemos a ejecutar
BOX:
Repetimos esta operacin (subir un pxel y uno hacia la izquierda) hasta
que el cuadro este totalmente relleno:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
184
NOTA: Para que la cruz se vea en blanco pulsamos la tecla +/-
Salimos del editor pulsando CANCL:
Volvemos al entorno pulsando la tecla que tiene la flecha a la izquierda:
Ubicamos la cruz en la esquina superior izquierda del cuadro negro:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
185
Pulsamos la tecla EDIT luego la tecla NEXT dos veces (es decir NEXT
NEXT) y luego la tecla SUB
Movemos la cruz a la esquina inferior derecha y de nuevo presionamos SUB
Salimos del entorno PICT presionando CANCL y ya tendremos nuestro
GROB (cuadro negro) creado en la pila:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
186
Lo grabamos bajo el nombre GRAF:
GRAF
Ahora veamos las coordenadas donde mas o menos quedara centrado el
texto que vamos a poner (en este caso el titulo del programa TOPORAD),
teniendo en cuenta que va a ser en tamao 2:
Entramos el entorno presionando la tecla que contiene la flecha hacia la
izquierda:
Y nos paramos donde mas o menos quedara centrado el texto. Para obtener
esas coordenadas presionamos la tecla ENTER y salimos del entorno
presionando CANCL:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
187
Para averiguar la coordenadas de la esquina superior izquierda donde
vamos a colocar el cuadro lo hacemos de la misma forma. En este caso son
(-4.4,2.1)
Ya sabemos cuales serian las coordenadas del cuadro negro, del texto que
va dentro del cuadro negro y tambin tenemos nuestro GROB (cuadro
negro) ya creado entonces vamos al cdigo:
ERASE {#0 #0 }
PVIEW
PICT
(-4.4,2.1)
GRAF
REPL
PICT
(-3.2,1.3)
"TOPORAD"
2
GROB
GXOR
0 WAIT DROP
{ PPAR }
PURGE
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
188
Ejecutemos Este cdigo:
Como podemos ver que el texto no quedo tan centrado entonces
modifiquemos sus coordenadas:
ERASE {#0 #0 }
PVIEW
PICT
(-4.4,2.1)
GRAF
REPL
PICT
(-2.5,1.3)
"TOPORAD"
2
GROB
GXOR
0 WAIT DROP
{ PPAR }
PURGE
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
189
Agregumosle el autor y el ao:
COMENTARIOS:
1. De la misma manera como se creo el cuadro negro se pueden crear
diferentes dibujos como crculos tringulos arcos etc.
2. Para mucha gente es engorroso crear los GROBS utilizando el entorno
PICT para lo cual existen otros programas para PC como PAINT, luego se
utiliza un programa llamado XnVIEW el cual le coloca extensin .grob para
que la HP lo pueda mostrar.
- CREANDO EL GROB DENTRO DEL PROGRAMA:
Veamos el cdigo, mucha atencin:
ERASE {#0 #0 }
PVIEW
(-4.4,2.1)
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
190
'X' STO
(4.4,2.1)
'Y' STO
1 35
FOR i
X
DUP (0,-0.1) +
'X' STO
Y DUP (0,-0.1) +
'Y' STO
LINE
NEXT
PICT
(-2.5,1.3)
"TOPORAD"
2
GROB
GXOR
PICT
(-4,0.3)
"Por: Santiago Lopez"
1
GROB
GXOR
PICT
(-1,-0.5)
"2011"
1
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
191
GROB
GXOR
0 WAIT DROP
{ X Y PPAR }
PURGE
Ejecutemos este cdigo:
COMENTARIOS:
1. Vemos que aparece un comando nuevo llamado LINE. Este nos permite
dibujar lneas en el entorno PICT dados dos pares de coordenadas (x1,y1)
(x2,y2) con x2 >x1.
2. Recomiendo enfticamente hacer un DBUG a este cdigo.
3. De la manera como se creo el cuadro negro se puede crear cualquier
dibujo que queramos.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
192
15.4 COMO PONER Y VISUALIZAR GRFICOS EN EL ENTORNO PICT
Bueno, parte de esto se explico en el numeral anterior pero no importa;
veamos otros ejemplos:
EJEMPLO 1:
Vamos a suponer que queremos poner nuestro nombre en el entorno PICT
pero ahora hacindolo letra a letra, primero con una pausa (lapso de tiempo)
entre letras y despus sin pausa. Veamos el cdigo:
- CON PAUSA:
ERASE { #0 #0 }
PVIEW
(-6.5,3.1) 'CO' STO
"ANDRES R GARCIA M"
n
1 17 FOR i
PICT CO DUP
(0.4,0) +
'CO'
STO
n
i DUP
SUB
STR 1
GROB REPL
0.1 WAIT
NEXT
0 WAIT
{ CO PPAR }
PURGE
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
193
Ejecutemos este cdigo:
As sucesivamente hasta formar el nombre completo:
- SIN PAUSA:
Simplemente quitamos el WAIT y el texto se ubicara ms rpido en pantalla.
EJEMPLO 2:
Ahora vamos suponer que lo que queremos graficar son datos estadsticos,
en este caso una nube de puntos provenientes de tomar datos de 2 variables
por ejemplo: altura (en msnm) vs temperatura (en
0
C). Los datos serian los
siguientes (estos son arbitrarios a manera de ejemplo)
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
194
ALTURA (msnm) TEMPERATURA C
0 38
300 34
600 32
900 31
1200 30
1500 26
1800 25
2100 20
2400 16
2700 13
3000 10
3300 8
3600 7
3900 5
4200 3
4500 1
Veamos el cdigo completo de un programa que grafica estos datos a
manera de puntos en el entorno PICT:
"DATOS"
{ { "h=" "Alturas en msnm en { }" 5. }
{ "T=" "Temperaturas en C en { }" 5. } }
{ 1. 0. } { }
DUP INFORM DROP
HT
ERASE HT 1.
GET SORT DUP
SIZE GET -0.5
SWAP XRNG HT 2.
GET SORT DUP SIZE
GET -0.5 SWAP YRNG
{ # 0d # 0d }
PVIEW HT
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
195
OBJ DROP
2.
RC
DOLIST
1.
PIXON
DOSUBS
DRAX
0. WAIT DROP
Ejecutando el cdigo:
COMENTARIOS:
Es un programa muy sencillo pero es la base para construir programas muy
poderosos cuando se trate de manejar datos estadsticos o variables x e y
en general.
A esta altura del manual solo har comentarios sobre los comandos nuevos
dentro del cdigo:
1. XRNG lo que hace es fijar el rango de visualizacin del eje horizontal en
este caso alturas en metros sobre el nivel del mar utilizando los siguientes
argumentos:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
196
- un objeto complejo de la forma (x,y) donde x es el menor valor que
tomara el eje x e y el valor mayor que tomara el eje x.
2. YRNG lo que hace es fijar el rango de visualizacin del eje Y en este caso
temperaturas en grados centgrados utilizando los siguientes argumentos:
- un objeto complejo de la forma (x,y) donde x es el menor valor que
tomara el eje y e y el valor mayor que tomara el eje y.
3. RC Toma 2 valores reales de la pila y los transforma en complejo (x,y).
4. PIXON Toma un complejo como el que aparece en la pantalla anterior y
prende el pxel correspondiente en el entorno PICT (prendido)
Ejecutamos PIXON
5. DRAX No necesita argumento alguno para ejecutarlo y lo que hace es
dibujar los ejes x e y en el entorno PICT.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
197
EJEMPLO 3:
Supngase que queremos escribir un programa que resuelva estructuras
(prticos) en 2 dimensiones que dibuje la estructura que deseamos resolver.
Escribamos es el cdigo que dibuja la estructura: El cdigo adems pide las
dimensiones de cada elemento del prtico.
El Dimensionamiento del entorno PICT se hace de manera similar al ejemplo
anterior.
ERASE { } 'DATA' STO -.5
"Altura" "" INPUT OBJ .5 +
YRNG -.5 "Ancho" "" INPUT OBJ
.5 + XRNG 1.
"Cuantos elementos son?" "" INPUT OBJ
FOR i "Datos elemento "
i STR +
{ { "COOR" "COORD INIC. Y FINAL. EN {}" 5. }
{ "B H L" "BASE ALTURA Y LONGITUD" 5. } }
1. { } DUP INFORM DROP STR DATA +
'DATA' STO
NEXT
TEXT { # 0d # 0d } PVIEW
DATA SIZE 1. SWAP
FOR i DATA REVLIST i
GET OBJ OBJ DROP
DROP E1
E1 1. GET E1 2.
GET RC E1 3. GET
E1 4. GET RC LINE
.2 WAIT
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
198
NEXT -40. CF { PPAR }
PURGE 0. WAIT
Veamos el prtico que queremos resolver:
Los elementos ya estn numerados como se puede apreciar:
Ejecutemos el cdigo con origen de coordenadas en el apoyo 1
3
3
3
4 4 4
12
9
1
2
3 10 11 7
8
9
16 15
20 21
4 5 6
12
17
13
18
14
19
TODAS LAS DISTANCIAS EN METROS
TODAS LAS SECCIONES DE 0.30 X 0.4
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
199
As sucesivamente hasta llegar el elemento No 21 y entonces veremos:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
200
COMENTARIOS:
Ninguno.
15.5 COMANDOS QUE PERMITEN OPERAR SOBRE EL ENTORNO PICT
De estos comandos ya hemos citado algunos. Veamos otros:
15.5.1 BLANK:
Crea un GROB en blanco en la pila del tamao #nx puesto en el nivel 2 por
#ny puesto en el nivel 1. Ej: Creemos un grafico de 20 de ancho por 30 de
alto
Ejecutamos BLANK.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
201
15.5.2 LCD
Toma un GROB de la pila y lo muestra en la pantalla sobrescribiendo esta
totalmente. Ej: Suponiendo que el GROB es un circulo:
Ejecutamos LCD
15.5.3 LCD
Devuelve a la pila el GROB de la pantalla actual: No requiere poner ningn
argumento en la pila:
NOTA: Ejecuten ahora LCD Qu pasa?
15.5.4 ARC:
Toma 3 argumentos de la pila:
- NIVEL 4: El centro del arco de la forma (x,y)
- NIVEL 3: Radio del arco, un real
- NIVEL 2: Un angulo inicial, un real
- NIVEL 1: Un angulo final, un real.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
202
Ejemplo:
Veamos el siguinte codigo:
ERASE { #0 #0 } PVIEW
(0,0)
3
0
45
ARC
0 WAIT
Ejecutemos este cdigo:
Cambiemos el Angulo a de 45 a 270:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
203
Para finalizar este capitulo escribamos la presentacin para un programa
que disea el Neopreno para los apoyos de las vigas en el estribo de un
puente y donde se utilizan algunos comandos del entorno PICT (por
ejemplo):
ERASE
{ #0 #0} PVIEW
(-6.5,3.1) (6.5,-3.1)
BOX
(-3.5,-2) 'CO' STO
1 26 START
PICT CO DUP (0,0.2) +
'CO' STO
GRAF REPL
NEXT
PICT
(-3.6,2.1)
#70 #50 BLANK
REPL
(-4.7,1.8) 'CO' STO
"Por: Santiago Jose Lopez"
n
1 24 FOR i
PICT CO DUP
(0.4,0) +
'CO'
STO
n
i DUP
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
204
SUB
STR 1
GROB REPL
NEXT
PICT
(-6.3,0.5)
"Presione 1 para iniciar"
1 GROB
REPL
PICT
(-6.3,-0.5)
"Presione 2 para salir"
1 GROB
REPL
PICT
(-4,-2)
"COLOMBIA 2005"
2 GROB
REPL
{ CO PPAR } PURGE
DO PICT NEG
0.2 WAIT
UNTIL KEY END
Ejecutando el cdigo:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
205
Se ven estas dos ultimas pantallas hasta que se pulsa una tecla.
COMENTARIOS NINGUNO.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
206
16. LIBRERAS.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
207
16. LIBRERAS
16.1 DEFINICIN
Una librera es un objeto que contiene objetos que tienen asignado un
nombre y que pueden funcionar como extensiones del conjunto de
comandos incorporados, es decir que funciona como un comando mas de la
calculadora. Una librera puede residir en cualquiera de los puertos
disponibles en la HP a menos que esta especifique lo contrario. Los puertos
disponibles en la HP49G son el 0, 1, 2 y los podemos visualizar pulsando la
tecla de cambio derecha y luego la tecla donde esta el 2:
Presionando estas dos teclas veremos lo siguiente:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
208
Donde podemos apreciar los puertos 0, 1, 2 y tambin vemos que hay tres
libreras instaladas GMENU, Jazz, AASHTO.
Si queremos saber en que puerto esta instalada cualquiera de estas libreras
buscamos en cada uno de los puertos. Para esto pulsamos la tecla de men
correspondiente a cada uno de los puertos hasta encontrar la librera que
buscamos.
16.2 COMO INSTALAR Y DESINSTALAR LIBRERAS.
Para explicar esto veamos paso a paso la que hay que hacer para
INSTALAR una librera:
1. Ponemos la librera que queremos instalar en el nivel 1 de la pila:
2. Ponemos en la pila el numero del puerto donde queremos instalar dicha
librera, en este caso elegimos el 0:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
209
3. Pulsamos la tecla STO (segunda tecla tercera fila) y desaparecer la
librera de la pila:
4. Ahora manteniendo presionada la tecla ON oprimimos la tecla C (tercera
tecla primera fila) para as reiniciar la HP y pegar la librera en la RAM de la
HP.
De esta manera ya tendremos nuestra librera instalada. Para ver si el
procedimiento fue exitoso pulsamos la tecla de cambio derecha y la tecla
que contiene el numero 2 y veremos que nuestra librera ya esta instalada:
AASHTO
Ahora vemos como DESINSTALAR libreras suponiendo que vamos a
desinstalar la librera que acabamos de instalar:
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
210
1. Averiguamos cual es el numero de la librera que vamos a desinstalar
entrando al puerto donde la instalamos presionando la tecla de cambio
derecha, la tecla que contiene el numero 2 y la tecla de men
correspondiente al puerto en este caso 0:
PUERTO 0
Presionamos la tecla de menu 1570 para saber si esta es la librera a
desinstalar:
En efecto vemos que se trata de la la librera AASHTO.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
211
2. Ya teniendo el numero (1570) borramos de la pila la librera y ponemos el
numero del puerto y el numero de la librera as:
Lo duplicamos presionando ENTER (equivalente en este caso a un DUP)
Ejecutamos el comando DETACH (para despegar la librera de la RAM de la
HP) escribiendolo en la pila o buscndolo en al CAT. En este caso lo
escribiremos en la pila:
PULSAMOS ENTER
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
212
3. Ejecutamos el comando PURGE escribindolo en la pila y listo, ya esta
nuestra librera desinstalada:
16.3 COMO CREAR LIBRERAS
Para crear libreras existen muchos programas como LIB, LIBKIT entre
otros. Por supuesto que nosotros tambin podemos escribir un programa
que cree libreras pero tendramos que tener conocimientos de
programacin en lenguajes de mas bajo nivel lo que no concierne a este
libro. Para el caso utilizaremos un programa llamado LIBKIT V1.1 (el cual
va en el archivo zip donde se encuentra este libro) escrito por el seor
Dante Camargo el cual sirve para crear libreras, instalar y desinstalar
libreras entre otras cosas. El programa que pasaremos a librera ser un
pequeo programa que contiene 3 variables el cual sirve para calcular las
reas de dos figuras geomtricas; un triangulo y un trapecio. Las variables
son como sigue ( primero esta el nombre de la variable y luego la tarea que
ejecuta):
- INICIO: es la entrada al programa y contiene la presentacin de este y las
opciones
- TRIA: Calcula el rea del triangulo en funcin de su altura.
- TRAPE: calcula el rea del trapecio en funcin de sus bases.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
213
NOTA: Esto es solo un ejemplo ya que es un programa supremamente
sencillo y adems se puede escribir en una sola variable si se quiere as.
Veamos el programa:
Esto en el caso de que se eligiera triangulo.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
214
Para Trapecio:
Ahora veamos como se crea la librera:
1. Debemos tener un directorio donde se encuentre el programa con todas
sus subrutinas:
Aqu estamos en el directorio REAS (Vase la parte superior de la
pantalla.)
2. Ahora corremos el programa libkit:
PRESIONAMOS OK PRESIONAMOS OK
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
215
PRESIONAMOS SI Y ENTER
EL NOMBRE ES AREAS1 ENTER 1500 POR EJEMPLO. ENTER
PRESIONAMOS ENTER TRIA TRAPE PRESIONAMOS ENTER
PRESIONAMOS INSTA ENTER ELEGIMOS PUERTO 0 Y OK
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
216
Se apagara la HP. La prendemos y ya tenemos nuestra librera creada:
LIBRERA REAS.
Si presionamos esta tecla de MEN reas veremos solamente la variable
INICIO:
3. Recomiendo que despus de haber creado la librera reiniciemos la HP
presionando ON C.
PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN
ANDRS R. GARCA M.
217
BIBLIOGRAFA:
- Gua del usuario de la Calculadora HP 48G y 49G.
- De nuevo prefiero no citar la Bibliografa Web ya que me hara demasiado
extenso.