Вы находитесь на странице: 1из 243

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING.

CIVIL SEGUNDA EDICIN

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A INGENIERA CIVIL SEGUNDA EDICIN.

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A INGENIERA CIVIL SEGUNDA EDICIN.

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.
INGENIERO CIVIL

Para poder llegar a entender lo divino, primero tenemos que tratar de entender lo Humano, es decir nuestro entorno, complejamente descrito a travs de las ciencias exactas entre otras, las cuales no solamente desmitifican eventos relevantes de nuestra existencia sino que tambin nos dan una luz gua de entendimiento en un mundo hecho oscuro y que finalmente nos llevara a creer plenamente en nosotros mismos como resultado de un instant en la creacin

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

A MI PADRE " A MI MADRE POR SU PACIENCIA EN MIS A#OS DI$CILES.

PRESEN%ACIN SEGUNDA EDICIN.

!e es supremamente grato y emocionante presentar esta segunda edicin que no es mas que el resultado de lo que fue la primera y mas que eso, de la acogida que logr dentro de la comunidad estudiantil y profesional no solo aqu en "olombia sino en otros pases de habla hispana #e hecho, con solo una persona que me hubiera escrito haciendo comentarios negativos o positivos de la anterior edicin, me hubiera bastado para escribir esta edicin $n mi concepto, creo que hay que detenernos a pensar un poco si realmente vale la pena aprender programacin en %&$'('P) Para muchas personas no es importante

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

dentro de su vida estudiantil o profesional dado que es un lenguaje que solo aplica para las HP *por ahora+ y que adem,s el estudiante promedio no lo usa de manera muy profunda y sin inters #e nuevo en mi concepto creo que es muy importante aprender alg-n lenguaje de programacin, por lo menos para nosotros los .ngenieros/ ya sea %&$'('P), 01&." o cualquier otro lenguaje, dado que la programacin nos 2ense3a4 a pensar de una manera un poco mas estructurada y analtica adem,s de los beneficios que nos brinda, esto haciendo referencia a todos los procesos lgicos que optimiza esto desde luego en funcin del tiempo empleado para estos #ecid escribir esta segunda edicin con el fin de incluir temas que faltaron en la primera y que considero de muy importantes dentro del desarrollo de nuestros programas como lo es el entorno P."5 y sus respectivas aplicaciones y la creacin de libreras entre otras cosas 5ambin hay mas ejemplos de temas ya tratados en la edicin pasada y la diferencia mas importante6 los ejemplos se desarrollaron utilizando el $mulador de la 789 y ya no de la 7:9 *esto no quiere decir que no sirvan en la 7:9+ 1dem,s dentro del archivo &IP donde esta este libro vienen algunos cdigos escritos utilizando 'PUs rE(it para que los lectores de este libro los puedan analizar mas detalladamente y puedan experimentar cambiando cosas como el texto, las coordenadas o lo que ustedes quieran $spero que esta segunda edicin sea lo mas provechosa posible para aquellas personas interesadas en la programacin en USER-RPL y por si cualquier duda no duden en contactarme a travs del correo electrnico argarcia;<=ucatolica edu co o libeval=hotmail com

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

%a)*i+n s, ro -u

n sta s .un(a (ici/n no )

0a1an a ro*ar 2os cr+(itos

co)o 2o 3ici ron con 2a ,ri) ra 4S 5or 6o2i0iano7

#e nuevo quiero agradecer a las siguientes personas6 ROGER 6RONCANO RE"ES por su gran aplicacin 'PUs rE(it la cual permite escribir los programas en el computador en ambiente >indo?s $ste soft?are es de libre distribucin y lo pueden obtener en la siguiente direccin6 ??? hpcalc org

SE6AS%IEN CARLIER " C'RIS%OP' GIE6ELIN8 Por el mejor emulador que haya visto6 $!%7: @ @A $ste soft?are tambin es de libre distribucin y lo pueden obtener tambin en ??? hpcalc org

DAN%E CAMARGO ,or LI68I% V9.9

ING. ANDRS R. GARCA M. 6OGO%A $E6RERO 9: DE ;<<:

CON%ENIDO
9. O6JE%OS @ @ #$B.C.".DC @ E 5.PF& #$ F0G$5F&
ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@ ; CH!$'F& #$ .#$C5.B."1".DC #$ )F& F0G$5F&

;. DELIMI%ADORES E @ #$B.C.".DC E E 5.PF& #$ #$).!.51#F'$&

=. VARIA6LES ; @ #$B.C.".DC ; E 5.PF& #$ I1'.10)$&

>. PROGRAMAS 7 @ #$B.C.".DC 7 E .C5'F#%"".DC #$ #15F& $C %C P'F9'1!1 7 ; FP$'1".FC$& !15$!J5."1& #$C5'F #$ %C P'F9'1!1 7 7 P'F9'1!1& #$ 0)FK%$ "FC&5.5%5.IF

:. PRESEN%ACIN DE DA%OS " RESUL%ADOS DE UN PROGRAMA < @ !$#.1C5$ $) "F!1C#F 519 < E !$#.1C5$ $) "F!1C#F #.&P < ; !$#.1C5$ $) "F!1C#F !&90FL < 7 F5'F&

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

?. MANIPULACIN DE LIS%AS M @ #$B.C.".DC M E "F!F "'$1' %C1 ).&51 M ; 1#.".DC #$ F0G$5F& 1 %C1 ).&51 M 7 "F!1C#F& K%$ P$'!.5$C FP$'1' &F0'$ ).&51&

@. ES%RUC%URA DE VARIA6LE LOCAL N @ #$B.C.".DC N E &.C51L.& #$ I1'.10)$ )F"1) #$C5'F #$ %C P'F9'1!1 N ; $&5'%"5%'1 #$ I1'.10)$ )F"1) #$C5'F #$ %C1 &%0'%5.C1

A. $LAGS : @ #$B.C.".DC : E "F!F !F#.B."1' )F& B)19& #$C5'F #$ %C P'F9'1!1

B. MENCS 8 @ CH!$'F& #$ 1&.9C1".DC #$ )F& !$CH& 8 E "F!F "'$1' !$CH& 5$!PF'1)$& 8 ; )F& !$CH& 5$!PF'1)$& #$C5'F #$ %C P'F9'1!1

9<. ES%RUC%URAS DE PROGRAMACIN @A @ #$B.C.".DC @A E $&5'%"5%'1& "FC#.".FC1)$&


ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@A E @ .B 5H$C $C# @A E E .B 5H$C $)&$ $C# @A E ; "1&$O5H$C $C# @A E ; @ F'91C.P1".DC #$) 5$")1#F @A ; $&5'%"5%'1& #$ 0%")$ @A ; @ &51'5OC$L5 @A ; E BF'OC$L5 @A ; ; #FO%C5.)O$C# @A ; 7 >H.)$O'$P$15O$C#

99. ES%RUC%URAS DE DE%ECCIN DE ERRORES @@ @ #$B.C.".DC @@ E .B$'' 5H$C $C#

9;. VEN%ANA DE OPCIONES @E @ #$B.C.".DC @E E $) "F!1C#F "HFF&$ @E ; BF'!1& #$ %5.).P1".DC #$) "F!1C#F "HFF&$

9=. PLAN%ILLAS DE EN%RADA @; @ #$B.C.".DC @; E BF'!1& #$ %5.).P1' )1& P)1C5.))1& #$ $C5'1#1 @; ; "F!F P'$&$C51' '$&%)51#F& 1 5'1IQ& #$ %C1 P)1C5.))1
ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9>. EL EN%ORNO SOLVR @7 @ "F!F &F)%".FC1' $"%1".FC$& #$C5'F #$ %C P'F9'1!1

9:. EL EN%ORNO PIC%. @< @ #$B.C.".DC @< E BF'!1& #$ I.&%1).P1' $) $C5F'CF P."5 @< ; "F!F PFC$' R I.&%1).P1' 5$L5F $C $) $C5F'CF P."5 @< 7 "F!F PFC$' R I.&%1).P1' 9'JB."F& $C $) $C5F'CF P."5 @< < "F!1C#F& K%$ P$'!.5$C FP$'1' &F0'$ $) $C5F'CF P."5 9? LI6RERAS @M @ #$B.C.".DC @M E "F!F .C&51)1' R #$&.C&51)1' ).0'$'S1& @M ; "F!F "'$1' ).0'$'S1&

6I6LIOGRA$A.

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

11

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

12

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9. O6JE%OS

ANDRS R. GARCA M.

13

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9. O6JE%OS
9.9 DE$INICIN. )os objetos se definen como los elementos b,sicos de informacin utilizados por la HP Por ejemplo, un numero real, una ecuacin, una lista, una secuencia o un programa son objetos

9.; %IPOS DE O6JE%OS 5odos los objetos utilizados por la HP tienen un numero de identificacin 1s los podemos identificar f,cilmente dentro de un programa )as siguientes tablas nos muestran el tipo de objeto, un ejemplo de dicho objeto y su respectivo numero de identificacin

%IPO DE O6JE%O Cumero real Cumero complejo &ecuencia de caracteres &istema real &istema complejo )ista Combre global

NUMERO A @ E ; 7 < M

ANDRS R. GARCA M.

14

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Combre local Programa Fbjeto algebraico $ntero binario Fbjeto de gr,ficos Fbjeto etiquetado Fbjeto de unidades Combre de L).0 #irectorio 0iblioteca Fbjeto de seguridad

N : 8 @A @@ @E @; @7 @< @M @N

"omo se puede ver, todos los objetos tienen su numero de asignacin 5ambin existen otros tipos de objetos que para efectos de los ejemplos propuestos en este libro no se tendr,n en cuenta Por supuesto hay un comando que nos permite conocer los tipos de objetos en funcin de su numero de identificacin $ste comando se llama %"PE, y opera de la siguiente forma6 Ponemos el objeto, cualquiera que sea en el nivel @ de la pila y ejecutamos el comando as6 Por ejemplo pongamos un numero real en la pila

ANDRS R. GARCA M.

15

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$jecutamos el comando %"PE y obtendremos su numero de identificacin en el nivel @ de la pila as6

$G$!P)F E6 $l mismo procedimiento pero ahora para un numero complejo6

Ponemos en la pila ejecutamos %"PE Fbtenemos el numero de id !as adelante se explicara con ejemplos la importancia de conocer los n-meros de identificacin de los objetos

ANDRS R. GARCA M.

16

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

17

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

;. DELIMI%ADORES.

ANDRS R. GARCA M.

18

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

;. DELIMI%ADORES.
;.9 DE$INICIN )os delimitadores son 2caracteres 2 que necesitan los objetos, para indicar de que tipo de objeto se trata 1 continuacin se presenta una tabla con los delimitadores m,s importantes y un ejemplo6

O6JE%O Cumero real Cumero complejo &ecuencias &istemas %nidades Programas Fperaciones algebraicas )istas "omandos incorporados Combres D

DELIMI%ADOR Cinguno * + TT U V W XY ZZ [ \ Cinguno ZZ

EJEMPLO @: : * (M <, ; @+ THeavy !etalT U @: @8 EA V @:WC X HF!$ ")I1' Y Z L(RZ [@E; \ 'C# Z1'9! Z

D !as adelante veremos la conveniencia de llamar nombres sin estos delimitadores 1s por ejemplo para introducir texto necesitamos delimitadores de secuencia que tambin llamaremos &5'.C9&

ANDRS R. GARCA M.

19

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$stos son los delimitadores que se usaran en los ejemplos presentados en este libro y son de importancia relevante en la utilizacin de objetos dentro de un programa como veremos mas adelante

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

=. VARIA6LES.

=. VARIA6LES.
=.9 DE$INICIN %na variable es cualquier objeto el cual esta almacenado bajo un nombre cualquiera, en el directorio HF!$ o en cualquier otro directorio Para entenderlo mejor veamos el siguiente ejemplo6 &upngase que deseamos guardar nuestro nombre en el directorio actual bajo el nombre $& P'F"$#.!.$C5F6 )o primero que hacemos es poner nuestro nombre en la pila y luego el nombre bajo el cual lo deseamos almacenar as6 CF516 'ecordemos que para introducir texto debemos utilizar los delimitadores de &5'.C9 2 2

ANDRS R. GARCA M.

21

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)uego pulsamos la tecla S%OE

Varia*2 cr a(a Fbservemos que en las teclas de men- ahora aparece $& Para sacar a la pila el contenido de la variables $& simplemente pulsamos la tecla de men- ES y pondr, el contenido en la pila

1s mismo como se almacen nuestro nombre, podemos almacenar cualquier tipo de objetos como listas, C-meros reales, Programas etc con solo poner el objeto en la pila, asignarle un nombre y grabarlo pulsando la tecla S%O

ANDRS R. GARCA M.

22

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

=.; %IPOS DE VARIA6LES $xisten dos tipos principales de variables como sigue

=.;.9 VARIA6LES GLO6ALESE )as variables 9lobales son aquellas que se nombran en un programa principal y pueden ser reconocidas, en cualquier momento, desde cualquier bloque constitutivo de un programa $ntindase por nombrar, el hecho de crear una variable de la manera como se hizo en el ejemplo de la pagina anterior $ntindase por bloque constitutivo a las subrutinas que comprenden o que forman parte de un programa $stas dos definiciones anteriores se entender,n mucho mejor mas adelante cuando hablemos de lo que es un programa como tal

=.;.; VARIA6LES LOCALESE )as variables locales son variables provisionales creadas por un programa $xisten -nicamente mientras se ejecuta el programa Cunca aparecen en el men- VAR, es decir dentro de las teclas de men- del men- VAR #e igual manera este concepto ser, ampliado mas adelante cuando hablemos de la estructura de variable local en el numeral N, pero es importante tener el concepto desde ahora

ANDRS R. GARCA M.

23

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

24

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

>. PROGRAMAS.

ANDRS R. GARCA M.

25

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

>. PROGRAMAS.
0ien, despus de haber aclarado algunos conceptos preliminares muy importantes hemos llegado a lo que realmente nos interesa ahora6 )os programas

>.9 DE$INICIN %n programa en %&$'('P) es un objeto definido por los delimitadores F G , que contienen una secuencia de n-meros, comandos y otros objetos que se desean ejecutar de forma autom,tica para realizar una tarea Pero en realidad los programas pueden contener algo mas que simples objetos, pueden asimismo contener estructuras como la estructura de variable local o la estructura de bifurcacin de las que hablaremos mas adelante

>.; IN%RODUCCIN DE DA%OS EN UN PROGRAMA )a introduccin de datos en un programa se puede hacer de varias maneras "onsideremos principalmente tres como sigue6

>.;.9 DIREC%AMEN%E DESDE LA PILA Para explicar esta manera de entrada de datos consideraremos el siguiente ejemplo6 &upngase que deseamos calcular la suma de dos n-meros cualquiera y dejar el resultado puesto en la pila P'F"$#.!.$C5F

ANDRS R. GARCA M.

26

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ste procedimiento es muy sencillo "omo sigue6

$n el nivel E tenemos el programa y en el nivel @ el nombre que le vamos a asignar al programa Pulsamos &5F

$ntonces lo que debemos hacer ahora es poner dos n-meros en la pila y pulsar la tecla de men- SUMA la cual contiene el programa que suma dos n-meros6

ANDRS R. GARCA M.

27

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

R ejecutamos la tecla de men- SUMA

"omo se puede observar es un ejemplo muy sencillo que lo -nico que hace es sumar dos n-meros que est,n puestos en la pila $n este caso nuestra entrada de datos se hace directamente desde la pila Ponemos los n-meros previamente y ejecutamos el programa pulsando la tecla de menSUMA.

>.;.; MEDIAN%E EL COMANDO INPU% $sta es una manera mas elaborada de introducir datos dentro de un programa ya que la entrada esta dentro del programa como tal $l comando INPU% nos da la posibilidad que la introduccin de datos se haga dentro del programa como tal y no tengamos que poner los datos en la pila y luego ejecutar el programa como en el ejemplo anterior

ANDRS R. GARCA M.

28

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$l comando INPU% cuando se utiliza para entrada de datos, 2casi4 siempre va acompa3ado del comando O6J el cual nos quita los delimitadores de S%RING del objeto entrado Para entender mejor esto vamos al siguiente ejemplo6 Iamos a considerar el mismo ejemplo anterior6 sumar dos n-meros P'F"$#.!.$C5F6 Primero escribamos el programa sin el comando O6J para as entender mejor )a sintaxis del programa es la siguiente6

1bre programa $l texto siempre va dentro de delimitadores de Cos permite hacer la entrada del primer dato string

TPrimer numeroT TT .CP%5 T&egundo numeroT 24 .CP%5 ] Y

Cos permite hacer la entrada del segundo dato &uma los dos n-meros "ierra programa

1s se vera en la pila6

ANDRS R. GARCA M.

29

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)o grabamos bajo el nombre &%!1 R luego lo ejecutamos6 Cos aparecer, la siguiente pantalla al ejecutarlo6

$ntonces introducimos cualquier numero

R luego pulsamos EN%ER &eguir, lo siguiente

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ntonces introducimos cualquier numero

R luego pulsamos EN%ER )o que sigue es que el programa procede a sumar los dos n-meros O*s+r0 s r su2ta(o 2

Co es lo que esper,bamos no es cierto^

ANDRS R. GARCA M.

31

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$sto sucedi ya que inmediatamente despus del INPU% no pusimos el comando que nos elimina los delimitadores de string entonces lo que hizo fue sumar dos string "uando sumamos dos strings la accin que se ejecuta es una concatenacin de los dos strings que est,n puestos en la pila como se puede observar en la pantalla anterior

$ntonces escrib,moslo con el comando que hizo falta6

X TPrimer numeroT T T INPU% O6J T&egundo numeroT T T INPU% O6J ] Y 1s se vera en la pila6

ANDRS R. GARCA M.

32

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)o grabamos bajo el nombre SUMA y lo ejecutamos6 Cos aparecer, lo mismo que para el ejemplo pero con una diferencia gigante6 )1 '$&P%$&51

$spero que se haya entendido la funcin del comando INPU% y la funcin del comando O6J y la diferencia de poner solamente el INPU% sin el O6J $stos dos son comandos muy sencillos pero de gran importancia y aplicacin 1l lector que tenga alguna experiencia previa en programacin le parecer, innecesaria tanta explicacin pero ese es el objetivo de este libro, hacer que las sintaxis de los programas se entiendan al m,ximo Fbviamente que a medida que avancemos se omitir,n algunas explicaciones pero por ahora dejmoslo as 1dicional a esto hay un comando de gran importancia dentro de la programacin ya que nos permite recorrer paso a paso un programa, y considero necesario referenciarlo en este numeral $l comando se llama D6UG y va acompa3ado de otro comando llamado SS% y operan de la siguiente forma6

ANDRS R. GARCA M.

33

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@ Iertimos el contenido del programa que queremos recorrer paso a paso en la pila $sto se hace con la tecla de cambio derecha * la verde+ y el nombre del programa que queremos recorrer paso a paso Primero pulsamos la tecla de cambio derecha y luego la tecla de men- donde este ubicado el programa a recorrer

E Pulsamos D6UG y luego SS% para recorrer el programa $G$!P)F6 Iamos a recorrer paso a paso el programa anterior, SUMA $ntonces seria as6 ( Pulsamos la tecla de cambio derecha y luego la tecla de men- donde esta SUMA que en este caso es la primera tecla de men- &aldr, la siguiente pantalla6

)uego pulsamos D6UG

ANDRS R. GARCA M.

34

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Cos desaparece lo que esta en la pantalla y en el ,rea de mensajes nos presenta el mensaje 'AL% lo que quiere decir que hemos interrumpido la ejecucin de un programa $n este caso SUMA Procedemos a pulsar SS% hasta que finalice el programa #e esta forma nos daremos cuenta de que es lo que hace el programa SUMA paso a paso

ANDRS R. GARCA M.

35

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

36

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

>.;.= MEDIAN%E UNA PLAN%ILLA DE EN%RADA $sta es una forma bastante interesante de introducir datos dentro de un programa ya que muestra una presentacin bastante amigable pero no se comentara todava debido a que necesitamos conocer primero otros elementos de programacin, y a que considero necesario dedicarle un numeral completo e esta forma de entrada de datos Por lo tanto no se comentara si no gasta llegar al numeral @;

>.= OPERACIONES MA%EMH%ICAS DEN%RO DE UN PROGRAMA Ra todos sabemos, la HP utiliza la notacin polaca inversa *'PC+ para sus operaciones, y funciones matem,ticas que se ejecuten en la pila #entro de un

ANDRS R. GARCA M.

37

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

programa podemos utilizar esta misma notacin para operaciones matem,ticas, pero adem,s podemos escribir las operaciones tal cual se escriben en el papel Para que esto sea claro, vamos al siguiente ejemplo en el cual no(solo se explica lo anterior, adem,s se utilizar,n aplicaciones vistas anteriormente6 $scribamos un programa que nos calcule el ,rea de un triangulo, la formula es6

AI4*D37J; #onde6 1 _ Jrea b _ 0ase h _ 1ltura

$ntonces escribiendo la operacin en notacin algebraica se vera as6 4*D37J; R escribiendo la operacin en Cotacin Polaca .nversa se vera as6 *3!;J Pero veamos el cdigo escrito de ambas formas6 - U%ILI&ANDO LA OPERACIN EN MODO ALGE6RAICOE

X T0aseT TT INPU% O6J `ba S%O T1lturaT TT INPU% O6J

ANDRS R. GARCA M.

38

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

`ha S%O ZbbhcEZ EVAL Y

1s se vera en la pila6

9rabamos bajo el nombre OPER y ejecutamos para b _ @A y h _ @< )a respuesta se ver, de la siguiente forma6

hyb "F!$C51'.F&6

@ Fbsrvese que se debe grabar el valor de la base bajo el nombre b, 4 * S%O 7 y el valor de la altura bajo el nombre h, 4 3 S%O 7 de lo contrario no se hubiera realizado

ANDRS R. GARCA M.

39

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

la operacin 5ampoco se hubiera realizado la operacin si hubiramos grabado el valor de la base o de la altura con un nombre diferente a b o con 0 *may-scula+, ya que en la operacin esta referenciado con b, y debe ser b *min-scula+ ya que la HP discrimina entre may-sculas y min-sculas

E #e igual manera debemos percatarnos de que inmediatamente despus de la operacin debemos ejecutar el comando EVAL *evaluar+ accin que no se ejecutara si la operacin estuviera en 'PC

; )a operacin siempre que este escrita en modo algebraico como en el anterior ejemplo, debe ir entre delimitadores de operacin algebraica K K

7 1l finalizar el programa nos dejo los valores de b y h grabados en el directorio actual, algo que para mi gusto es molesto !as adelante comentaremos la manera de evitar grabar valores para ejecutar una operacin, esto mediante la creacin de una variable local, o simplemente antes de finalizar el programa eliminar esta variable

< .mportante tambin darnos cuenta de que para grabar el valor de b y h se utilizaron estos delimitadores ` ` &i no los hubiramos utilizado para grabar b o h y existiera una variable grabada anteriormente con el mismo nombre se producira un error y se cancelara la ejecucin del programa #e igual manera, si ya existiera una variable grabada anteriormente con el mismo nombre b o h pero utilizando los
ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

delimitadores ` ` para grabarla no se producira error )o que sucedera seria que la sobrescribira es decir eliminara el valor del antiguo b o h y lo cambiaria al valor de b o h que estamos introduciendo

- Uti2iLan(o 2a o, raci/n n )o(o RPN

X T0aseT TT INPU% O6J ZbZ &5F T1lturaT TT INPU% O6J ZhZ S%O bhbEc Y 1s se vera en la pila6

ANDRS R. GARCA M.

41

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ Co necesitamos el EVAL despus de la operacin

E Co necesitamos poner lo delimitadores ` ` para la operacin Para ver la ejecucin del programa paso a paso ejecute el comando D6UG anteriormente nombrado *se recomienda+

$stas son las formas b,sicas de hacer operaciones matem,ticas proporcionadas por la HP Personalmente en mi humilde opinin de programador, recomiendo ejecutar las operaciones en modo algebraico, ya que es mucho m,s f,cil entenderlas si se les quiere hacer modificaciones posteriores 1 los usuarios de 789 les recomiendo utilizar su calculadora en modo 'PC recordando que la 78 brinda la posibilidad de trabajar en modo algebraico tambin $sto dejmoslo para otras calculadoras

>.> PROGRAMAS DE 6LOMUE CONS%I%U%IVO %n programa de bloque constitutivo es un programa que se compone no(solo de una variable sino que se compone de varias variables que tambin se denominan subrutinas Fbservemos el ejemplo anterior *$7+ el cual para calcular el volumen de una esfera solo necesito de una variable $7 Pero supongamos que el programa hubiera sido muy largo/ es decir que hubiera tenido muchos mas comandos para realizar otras tareas, esto es muy incomodo desde punto de vista de la edicin del
ANDRS R. GARCA M.

42

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

programa6 $ditar variables muy largas es bastante incomodo y demorado $ntonces en ese caso la primera variable, es decir por donde empieza el programa/ la referimos a segunda variable Hay ocasiones en que es obligatorio referirnos a una segunda variable o subrutina, es decir no solo lo hacemos por que la primera es una variable muy larga sino porque es totalmente necesario 5ambin es importante aclarar que un programa puede estar compuesto de muchas subrutinas *hasta que la memoria de su HP se lo permita+ $jemplo6 &upongamos que deseamos calcular el ,rea y la longitud de circunferencia de un circulo dado su radio pero utilizaremos una variable para calcular el ,rea y otra para calcular la longitud de circunferencia "omo lo pueden imaginar estas son tareas que no representan programas muy largos &e escribir, en dos variables simplemente para explicar como se crea una subrutina y como conectar las dos variables @ "reamos la variable por donde vamos a empezar el programa es decir la que va a calcular el ,rea6 )a llamaremos 1'$1 E )a segunda variable, es decir/ la que calculara la longitud de la circunferencia la llamaremos )FC9 )a operacin matem,tica para calcular el ,rea la escribiremos algebraicamente y entonces la sintaxis ser, la siguiente6

X TIalor del radio^T T T INPU% O6J


ANDRS R. GARCA M.

43

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ZrZ S%O Z ; @7 b rdE Z EVAL )FC9 Y $n la pila se vera as6

)a grabamos bajo el nombre 1'$16 `1'$1a S%O

"F!$C51'.F&6 @ Fbservemos que se grabo el valor del radio en el directorio actual bajo el nombre r ` r ` S%O

E )a operacin es escrita algebraicamente por lo que tenemos que adicionar EVAL despus de la operacin

ANDRS R. GARCA M.

44

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

=. Esta s 2a o*s r0aci/n )Ns i),ortant . N/t s -u ant s -u s ci rr ,ro.ra)a sta)os 22a)an(o un no)*r 4LONG7 Est s 2 no)*r (

2 2a

0aria*2 -u si.u O s ( cir 2a -u 0a a ca2cu2ar 2a 2on.itu( ( 2a circunP r ncia. A-uQ 2o -u s 3iLo Pu -u in) (iata) nt s aca*an 2as tar as u o, racion s ,or 3ac r n 2a 0aria*2 HREA Rnos 0a)osS ,ara 2a 0aria*2 LONG. Esta 0aria*2 LONG ( * )os 22a)ar2a sin nin.una c2as ( ( 2i)ita(or s co)o s o*s r0a n 2a ,anta22a ant rior.

Pero bueno, escribamos la variable )FC96

X ` E b ; @7 b r ` EVAL Y $n la pila se vera as

)o grabamos con el nombre )FC96 `)FC9a S%O

"F!$C51'.F&6

ANDRS R. GARCA M.

45

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@ Percatarnos del $I1) despus de la operacin

$ntonces en este momento debemos tener dos variables grabadas que son6 J'$1 R )FC9

Iariables $ntonces ejecutemos nuestro primer programa de bloque constitutivo 'ecordemos que el programa inicia con la variable J'$1 $ntonces para un radio de : obtendremos los siguientes valores6

"F!$C51'.F&6

ANDRS R. GARCA M.

46

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@ $ste ejemplo es simplemente para explicar como se llama una subrutina dentro de un programa, ya que este programa en esencia/ no necesitaba una subrutina dado que es muy corto

E Bijmonos que el programa nos deja la variable r grabada en el directorio actual Ieamos como eliminar esta variable6 )o -nico que tenemos que hacer es lo siguiente6 1ntes de cerrar la subrutina debemos agregar lo siguiente [ r \ P%'9$ que lo que hace es sacar el nombre a borrar a la pila en este caso r y luego borrarlo mediante el comando PURGE $sta ultima parte *borrar r+ debemos ponerla al final de la subrutina *en este caso )FC9+ y no al final del programa principal *en este caso 1'$1+ ya que si lo ponemos al final del programa principal 1'$1, cuando nos vayamos a la subrutina )FC9 no calculara nada porque el valor de r ya no existe, se ha borrado $ntonces el cdigo completo quedara as AREAE X TIalor del radio^T T T .CP%5 F0G Z r Z &5F Z ; @7 b rdE Z $I1) )FC9 Y LONGE X ` E b ; @7 b r ` EVAL T r U PURGE
ANDRS R. GARCA M.

47

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

1gregando este ultimo comando ya no nos quedara la variable r en el directorio actual Fbservemos que la variable a borrar debe ir entre delimitadores de lista Para terminar con este numeral espero que haya quedado bien clara la manera como se llaman las subrutinas dentro de un programa Si),2 ) nt s 22a)an ,or su no)*r 1 sin nin.Vn ( 2i)ita(or. 'ecomiendo que le pasen el D6UG *comando nombrado anteriormente+ a este peque3o programa que acabamos de hacer *J'$1+ para as lograr una comprensin total de lo que es un programa de bloque constitutivo

ANDRS R. GARCA M.

48

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

49

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

:. PRESEN%ACIN DE RESUL%ADOS.

:. PRESEN%ACIN DE RESUL%ADOS
)a presentacin de los resultados que arroja un programa es de vital importancia ya que de esto depende que los potenciales usuarios de nuestras creaciones entiendan e interpreten lo que sale a la pila despus de ejecutar o correr un programa Cotemos que los programas que hemos escrito hasta el momento nos arrojan o nos ponen resultados en la pila pero no podemos interpretarlos de manera correcta dado que solo nos pone n-meros en la pila pero no podemos saber ni interpretar que son Para la presentacin de resultados existen varios comandos, unos m,s funcionales que otros pero todos igualmente importantes y de f,cil manipulacin

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

1 continuacin se presentan comandos que nos permiten 2etiquetar4 los resultados o presentarlos con su respectivo nombre, as por ejemplo un programa que nos calcule el volumen de una esfera dado el radio, nos presentara el resultado con su respectivo nombre6 I _ ;< por ejemplo $n este numeral haremos referencias a solo algunos de estos comandos, los dem,s los referiremos mas adelante

:.9 MEDIAN%E EL COMANDO %AG $ste comando es el mas sencillo para etiquetar los resultados salidos de un programa Para ver como funciona consideremos el siguiente ejemplo sencillo6

$G$!P)F @6 $scribamos un programa que nos calcule las soluciones de una ecuacin cuadr,tica 'ecordemos la forma de la ecuacin cuadr,tica6
a * x^2 + b * x + c = 0

R la formula para hallar las soluciones ser,n6


X 1 = (b + b ^ 2 4 * a * c ) / 2 * a

X 2 = ( b b ^ 2 4 * a * c ) / 2 * a

$sto &uponiendo que la variable sea L 0ueno, se supone que ustedes manejan las matem,ticas perfectamente por lo que de ahora en adelante no dar tantos detalles Para el ejemplo los valores de los coeficientes ser,n a_ @ , b _ E , c _ @

ANDRS R. GARCA M.

51

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Iamos al cdigo6 X TIalor de a^T TT INPU% O6J ZaZ &5F TIalor de b^T T T INPU% O6J ZbZ &5F TIalor de c^T T T INPU% O6J ZcZ &5F Z*(b]*bdE(7babc++c*Eba+Z EVAL W9 %AG Z*(b(*bdE(7babc++c*Eba+Z EVAL W; %AG Y )o grabamos bajo el nombre "%1# y ejecutamos6 5endr, que aparecernos algo como lo que sigue6

ANDRS R. GARCA M.

52

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6

@ Para comenzar observemos que el programa nos grabo los valores de a, b , c en el directorio actual $sto se evita poniendo al final del programa [ a b c\ PURGE *prubenlo como ejercicio+ $n los ejemplos que hagamos de aqu en adelante se incluir, esta ultima parte para borrar la variables grabadas

E Cotemos que inmediatamente despus del EVAL aparece L Est t Xto s 2 -u 0a a ti-u tar 2 r su2ta(o. .nmediatamente despus aparece el comando que

genera la etiqueta6 %AG ; .mportantsimo pasarle el D6UG a este programa para que vean lo que hace paso a paso

7 Para que el resultado se vea de esta manera debemos modificar primero el siguiente $LAGE

ANDRS R. GARCA M.

53

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$s decir dejarlo como St( stacY que significa pila est,ndar #e lo contrario se vera as6

$sto seria desactivando el $LAGE

!as adelante veremos como se modifican los especficamente dentro del programa 'ealicmoslo de nuevo pero cambiemos la etiqueta a &F)%".FC@ y &F)%".FCE y adicionmosle la parte final que borra las variables grabadas %tilicemos los mismos valores que para el ejemplo anterior *@ E @+

X TIalor de a^T TT INPU% O6J ZaZ &5F

ANDRS R. GARCA M.

54

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

TIalor de b^T T T INPU% O6J ZbZ &5F TIalor de c^T T T INPU% O6J ZcZ &5F Z*(b]*bdE(7babc++c*Eba+Z EVAL SOLUCION9 %AG Z*(b(*bdE(7babc++c*Eba+Z EVAL SOLUCION; %AG [ a b c \ PURGE Y

"F!$C51'.F&6

@ Cotemos que borramos los valores que habamos grabado

E "ambiamos las etiquetas a &F)%".FC@ y &F)%".FCE

ANDRS R. GARCA M.

55

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; Bijmonos que el nombre &F)%".DC quedo pegado el @ es decir quedo &F)%".FC@ Para que queden separados debemos poner el texto de la etiqueta entre delimitadores de &5'.C9 "omo sigue6 X TIalor de a^T TT INPU% O6J ZaZ &5F TIalor de b^T T T INPU% O6J ZbZ &5F TIalor de c^T T T INPU% O6J ZcZ &5F Z*(b]*bdE(7babc++c*Eba+Z EVALZSOLUCION 9Z %AG Z*(b(*bdE(7babc++c*Eba+Z EVAL ZSOLUCION ;Z %AG [ a b c \ PURGE Y 1l ejecutar este cdigo, es decir/ al correr este programa la respuestas quedaran presentadas de la siguiente forma6

ANDRS R. GARCA M.

56

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6

@ Fbservemos que ahora si quedaron despegados &F)%".DC y @ Co olvidemos que para poner texto que contenga espacios y que vaya a etiquetar alg-n resultado, debemos ponerlo con delimitadores de &5'.C9

$spero se haya entendido como se presentan resultados mediante el comando %AG, es bastante f,cil

:.; MEDIAN%E EL COMANDO MSG6OW $ste es otro comando bastante funcional ya que nos permite mostrar resultados pero ahora en una ventana de dialogo "onsideremos el siguiente ejemplo para aplicar el comando6 $scribamos un programa *muy sencillo+ para calcular las perdidas por friccin en una tubera simple utilizando la $cuacin de #arcy6 hf _ f b *)c#+ b *I cEbg+ #onde6 f _ Bactor de friccin
E

ANDRS R. GARCA M.

57

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

) _ )ongitud de la tubera # _ #i,metro *%sualmente se designa con la letra griega fi *+ + I _ Ielocidad de flujo g _ 1celeracin de la gravedad *8 :@ m c s + Para el ejemplo utilizaremos los siguientes valores6 f _ A A@E ) _ EAA m # _ A E<7 m I _ ; 87 m c s g _ 8 :@ m c s
E E

Iamos al cdigo6

X TBactor de friccin^T T T .CP%5 F0G ZfZ &5F T)ongitud de la tubera *$n m+T T T .CP%5 F0G Z)Z &5F T#iametro de la tuberia^ *$C m+T T T .CP%5 F0G `#a &5F TIelocidad de flujo^ *$n mcs+T T T
ANDRS R. GARCA M.

58

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

.CP%5 F0G ZIZ &5F Z f b *)c#+ b IdEc@8 ME Z $I1) S%R Thf_ T S[AP ] MSG6OW T P L D V U PURGE Y 1s vera parte del cdigo en la pila6

9rabamos bajo el nombre P$'# * `P$'#a S%O+ y lo ejecutamos6

ANDRS R. GARCA M.

59

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)a respuesta se vera de la siguiente forma6

"F!$C51'.F&6

@ Fbservemos en las pantallas anteriores como van apareciendo las variables que vamos grabando

E Cotemos el EVAL inmediatamente despus de la operacin y despus viene lo m,s interesante

; #espus del EVAL aparece un comando nuevo para nosotros6 S%R $ste comando lo que hace es convertir el resultado de la operacin en un &5'.C9, es decir le pone delimitadores de secuencia ya que para poder mostrarlo aplicando el comando MSG6OW tiene que estar dentro de delimitadores de secuencia o &5'.C9 )uego viene el texto hf el cual es la etiqueta que le vamos a poner al resultado Fbservemos que este texto esta dentro de delimitadores de &5'.C9

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

#espus de esto viene otro comando nuevo6 S[AP. $ste comando lo que hace es voltear los dos datos que hay en la pila en ese momento que son TN 7N8: T y Thf_ T ePero porque se voltean^ &implemente porque si sumamos estos dos &5'.C9& *ntese que a continuacin viene un ]+ tal cual nos los arrojo el programa la respuesta nos hubiera quedado al

revs $s decir as6 1 continuacin viene un ] que es el que suma los dos &5'.C9& que son6 ; @ )a respuesta arrojada por la operacin TN 7N8: T ; E )a etiqueta para la respuesta T hf _ T Para que todo esto se entienda mejor h,ganle un D6UG a este programa y as entender,n perfectamente )uego viene el comando MSG6OW que lo que hace es coger el &5'.C9 que se encuentre en la pila y presentarlo en una ventana $n este caso el &5'.C9 que estaba en la pila era T hf _ N 7N8: T

1 continuacin viene T P L D V U PURGE que borra las variables que habamos grabado6 T P L D V U

7 Bijmonos que al presentar el resultado, nos queda de fondo la pantalla con el ultimo INPU%. 1lgo que en mi concepto es antiesttico a menos que fuese

ANDRS R. GARCA M.

61

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

totalmente necesario Para solucionar este problema lo que debemos hacer es poner el comando CLLCD antes del comando MSG6OW. $ste comando CLLCD lo que hace es borrar la pantalla pero no borra la pila en si, es decir/ no borra los datos que hay en la pila y para estos casos siempre va antes del comando MSG6OW Ieamos como quedara el cdigo con este nuevo comando y como se vera la respuesta6

X TBactor de friccin^T T T .CP%5 F0G ZfZ &5F T)ongitud de la tubera *$n m+T T T .CP%5 F0G Z)Z &5F T#iametro de la tuberia^ *$C m+T T T .CP%5 F0G `#a &5F TIelocidad de flujo^ *$n mcs+T T T .CP%5 F0G ZIZ &5F Z f b *)c#+ b IdEc@8 ME Z $I1) S%R Thf_ T S[AP ] CLLCD MSG6OW T P L D V U PURGE Y

ANDRS R. GARCA M.

62

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)o grabamos bajo el mismo nombre P$'# y lo ejecutamos $ntonces la respuesta se vera as6

!ucho mejor no les parece^

< &upongamos que no queremos ver la respuesta con tantos lugares decimales $ntonces lo que debemos hacer es poner el comando RND el cual funciona de la siguiente manera6 .nmediatamente despus del numero o respuesta que queremos 2cortar4 le ponemos el numero de lugares decimales que queremos y luego el comando RND Pero veamos como quedara el cdigo del ejemplo anterior con el nuevo comando RND &upondremos E espacios decimales6

X TBactor de friccin^T T T .CP%5 F0G ZfZ &5F T)ongitud de la tubera *$n m+T T T .CP%5 F0G Z)Z &5F

ANDRS R. GARCA M.

63

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

T#iametro de la tuberia^ *$C m+T T T .CP%5 F0G `#a &5F TIelocidad de flujo^ *$n mcs+T T T .CP%5 F0G ZIZ &5F Z f b *)c#+ b IdEc@8 ME Z $I1) ; RND S%R Thf_ T S[AP ] CLLCD MSG6OW T P L D V U PURGE Y Ieamos como queda la respuesta6

Iemos que 2recorto4 la respuesta a dos lugares decimales #e nuevo recomiendo hacerle un D6UG a este cdigo $spero haber sido lo suficientemente claro y explicito al explicar estos nuevos comandos que acabamos de ver * S%RO MSG6OWO CLLCDO S[APO RND+

ANDRS R. GARCA M.

64

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

:.= MEDIAN%E EL COMANDO DISP )a presentacin de datos o resultados mediante este comando es en mi concepto, un poco mas funcional que los otras dos comandos vistos anteriormente 4 %AG 1 MSG6OW+ ya que nos permite utilizar toda el ,rea de la pantalla para tal fin $l DISP es un comando que suele ir acompa3ado de otros comandos, a los cuales tambin haremos referencia en este numeral $ste comando no solamente nos sirve para presentar resultados arrojados de determinada operacin si no que adem,s nos permite poner texto en la pantalla de manera organizada y adem,s los cdigos ocupan poco espacio en memoria @Primero consideraremos un ejemplo en donde lo que se va a presentar es una respuesta arrojada por un peque3o programa y luego mediante el mismo comando DISP haremos una sencilla presentacin para el mismo programa $sto evocando la posibilidad que nos ofrece DISP de poner texto en pantalla Iamos entonces al primer ejemplo6 Iamos a considerar el mismo ejemplo anterior en donde calculamos las perdidas por friccin en una conduccin simple con los mismos valores pero adem,s vamos a calcular el ,rea de la seccin de la tubera6 Ieamos entonces al cdigo incluyendo el nuevo comando DISP y sus comandos 2acompa3antes4

ANDRS R. GARCA M.

65

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

X TBactor de friccion^T TT .CP%5 F0G Z f Z &5F T)ongitud de la tuberia *$n m+T TT .CP%5 F0G Z )Z &5F T#iametro de la tuberia^ *$C m+T TT .CP%5 F0G Z #Z &5F TIelocidad de flujo^ *$n mcs+T TT .CP%5 F0G Z I Z &5F Zfb*)c#+b*IdEc@8 M@+K EVAL E RND S%R Thf_ T S[AP ] CLLCD @ DISP Z; @7b*#cE+dEZ EVAL E RND S%R T1rea_ T S[AP ] E DISP ; $REE&E [ I # ) f \ PURGE Y )o grabamos bajo el nombre P$'#E y ejecutamos $ntonces ahora nos va a arrojar dos respuestas que son6 Perdidas y Jrea de la seccin de la tubera los cuales se ven as6

ANDRS R. GARCA M.

66

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ Cotemos que despus de haber concatenado los dos &5'.C9& con el ] 4 S%R Thf_ T S[AP ] 7 aparece el comando 9 DISP donde6 9 es el nivel de la pila donde vamos a ubicar el resultado pero ordenado de arriba abajo es decir el nivel @ ya no es el primero de abajo hacia arriba sino de arriba abajo E )uego aparece DISP el cual nos permite poner el resultado en el nivel especificado en este caso @ &ucede lo mismo para el segundo resultado, despus de haber concatenado los dos &5'.C9& con el ] * S%R T1rea_ T DISP donde6 ; es el nivel de la pila donde vamos a ubicar el resultado )uego aparece DISP el cual nos permite poner el resultado en el nivel especificado en este caso E Para usuarios ( >AG s i),ortant ac2arar2 s -u (is,on n ( @ ni0 2 s ,ara ,on r r su2ta(os n ,anta22a. )uego viene un comando nuevo6 $REE&E $REE&E nos permite congelar la pantalla para que el resultado se mantenga visible, sin el $REE&E el resultado se hubiera puesto si en los niveles especificados pero hubiera desaparecido tan r,pido que ni nos hubiramos dado cuenta S[AP ] E DISP+ aparece el comando E

ANDRS R. GARCA M.

67

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Bijmonos que el $REE&E viene acompa3ado de un numero en este caso ; $ste numero indica que el ,rea de la pantalla a congelar $n este caso consideramos ; ya que es un valor que se ajusta perfectamente a cualquier ejemplo ; Por ultimo aparece [ I # ) f \ PURGE que es el encargado de borrar las variables que habamos grabado

$xiste otro comando que nos permite mantener los resultados visibles en la pantalla $ste comando se denomina [AI% $l comando [AI% lo que hace es que despus de poner nuestros resultados en los niveles deseados nos espere un tiempo *en segundos+ determinado &i ponemos < [AI% nos dejara visibles los resultados durante < segundos, si ponemos @A [AI% nos dejara visibles los resultados durante @A segundos y si ponemos < [AI% nos dejara visibles los resultados 3asta -u s ,u2s una t c2a que es mucho mas conveniente en este caso Pero veamos nuestro ejemplo ahora utilizando el [AI%

X TBactor de friccion^T TT .CP%5 F0G Z f Z &5F T)ongitud de la tuberia *$n m+T TT .CP%5 F0G Z )Z &5F T#iametro de la

ANDRS R. GARCA M.

68

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

tuberia^ *$C m+T TT .CP%5 F0G Z #Z &5F TIelocidad de flujo^ *$n mcs+T TT .CP%5 F0G Z I Z &5F Zfb*)c#+b*IdEc@8 M@+K EVAL E RND S%R Thf_ T S[AP ] CLLCD @ DISP Z; @7b*#cE+dEZ EVAL E RND S%R T1rea_ T S[AP ] E DISP < [AI% [ I # ) f \ PURGE Y 9rabamos bajo el mismo nombre P$'#E y ejecutamos &e vera de la siguiente forma6

"F!$C51'.F&6 @ Fbservemos que nos visualiza el reloj $sto porque la opcin de ver reloj estaba activada !as adelante veremos como modificar esto 4$LAGS7 para que al presentar respuestas no nos deje visible el reloj Por ahora dejmoslo as

ANDRS R. GARCA M.

69

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

E &i presionamos EN%ER o cualquier otra tecla nos dejara un numero puesto en el nivel @ de la pila !as adelante veremos que significa este numero 4Or.aniLaci/n ( 2 t c2a(o7

; Bijmonos que el < [AI% va despus de que los resultados han sido puestos en sus respectivos niveles &i lo ponemos antes pues no tiene ning-n sentido ya que no hay ning-n resultado que mostrar &i ubicamos el < [AI% despus de haber puesto -nicamente el primer resultado pues no nos mostrara el segundo $l < [AI% debe ubicarse una vez estn ubicados los resultados o los datos que queremos mostrar en sus respectivos niveles

Iamos entonces a la segunda parte del ejemplo6 "rear una peque3a presentacin para el programa P$'#E mediante la utilizacin del comando DISP. #esactivemos la opcin de mostrar el reloj para que no nos da3e nuestra presentacin Iamos a suponer que los datos que lleva nuestra presentacin son los siguientes6 Combre del programa Combre del creador del programa Iersin 13o R por ultimo una indicacin para continuar el programa $n este caso le vamos a poner PRESIONE EN%ER Ieamos el cdigo6

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

X CLLCD T P$'#.#1&

PF'6 Goe &atriani I$'&.FC @ A EAA< P'$&.FC$ $C5$' T 9 DISP < [AI% Y 9rabamos bajo el nombre P'$& y ejecutamos &e vera algo como esto

"F!$C51'.F&6 @ Cotemos que primero va el comando CLLCD para que nos ponga la pantalla en blanco, es decir nos borre la pantalla

E $l texto va dentro de delimitadores de secuencia o &5'.C9 con sus respectivos espacios para que quede centrado en la pantalla
ANDRS R. GARCA M.

71

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; Fbservemos que necesitamos un solo DISP para poner todo el texto en pantalla y no uno para cada lnea de texto $sto debido a que todo el texto lo pusimos dentro de un so2o ( 2i)ita(or ( S%RING

7 $l texto esta colocado en el nivel @ 49 DISP7 pero lo mostr en varios niveles de la pantalla $sto debido a que le dimos espacios entre lneas para que quedara centrado y bien presentado

1hora la idea principal es concatenar las dos variables que constituyen nuestro programa que son P$'#E R P'$& para que una vez presionamos $C5$' despus de la presentacin se ejecute la variable P$'#E $sta tarea la dejo para que el lector la haga ya que es bastante f,cil y adem,s se explico unas paginas atr,s

$spero que hayan quedado suficientemente claros los comandos que nos permiten visualizar datos y resultados en pantalla, ya que de aqu en adelante los utilizaremos bastante en los dem,s ejemplos propuestos

:.> O%ROS

ANDRS R. GARCA M.

72

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$xisten otros comandos que tambin nos permiten visualizar resultados o cualquier otro objeto pero ahora utilizando cdigos mucho m,s elaborados y haciendo uso del entorno de gr,ficos PIC% $stos comandos los analizaremos mas adelante ya que para entenderlos y manejarlos correctamente necesitamos algunas explicaciones previas adem,s de otros

elementos de programacin

ANDRS R. GARCA M.

73

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

?. MANIPULACIN DE LIS%AS.

ANDRS R. GARCA M.

74

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

?. MANIPULACIN DE LIS%AS.
?.9 DE$INICIN Para la HP una lista es todo lo que este dentro de los delimitadores [ \ $l buen manejo de listas es quiz,s uno de los elementos de programacin m,s importante que hay, dado que las listas son muy flexibles para manejar y operar sobre datos dentro de un programa %nos ejemplos de lista pueden ser los siguientes6 ([10"#\ ([@E;7\ ( [ T5'1&H !$51)T T!. !$51)(5$C#$C".1 B1IF'.51T \ )as listas pueden contener cualquier tipo de objeto *n-meros reales, n-meros complejos secuencias o &5'.C9&, unidades, programas, otras listas etc +

?.; COMO CREAR UNA LIS%A Primero que todo vamos a ver como se crea una lista directamente desde la pila y luego veremos come se crea aplicando un programa M E @ #$&#$ )1 P.)1

ANDRS R. GARCA M.

75

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Para crear una lista debemos tener puestos en la pila los diferentes elementos que van a conformar la lista, especificar el numero de elementos que la conformaran y luego si ejecutar el comando LIS% Ieamos entonces el siguiente ejemplo6 &upongamos que los elementos que conformaran la lista son los siguientes6 @E;7

1s los veramos en la pila6

1hora debemos especificar el numero de elementos que conformaran la lista $n este caso son cuatro elementos6

$ntonces ejecutamos el comando LIS%

ANDRS R. GARCA M.

76

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Pero bueno, aqu sabamos cuantos elementos conformaran la lista, pero consideremos un caso en que no lo supiramos Para esto hay otro comando muy interesante que nos indica cuantos objetos *y digo objetos porque puede tratarse no solo de n-meros reales+ hay en la pila Ieamos otro ejemplo aplicando este comando6 )os objetos que conformaran la lista son los siguientes6 *E,@+ *@,E+ *;,;+ *<,E+ 1s los veramos en la pila6

$ntonces ejecutamos el comando DEP%' y luego el comando LIS% y veremos algo as6

#e esta manera se crean las listas directamente desde la pila, pero ahora que tenemos el concepto veamos como se hace con un programa

ANDRS R. GARCA M.

77

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

M E @ !$#.1C5$ %C P'F9'1!1 Para explicar esta manera de crear listas vamos a considerar el siguiente ejemplo6 $scribamos un programa que nos pida una entrada de datos pero estos datos ya no .ran separados/ es decir ya no haremos un .CP%5 para cada dato sino que pediremos la entrada de los datos uno tras otro $ntonces consideremos una serie de datos de di,metros de tuberas en pulgadas y los convertiremos a metros )os datos son los siguientes6 M : @A @E @: EA E7 E: ;E *5odos est,n pulgadas+ Ieamos entonces el cdigo6 X T#iametros en pulgadasT T Z INPU% O6J DEP%' LIS% A AE<7 b Y 1s lo vemos en la pila6

9rabamos bajo el nombre "FCI y ejecutamos6 $ntonces introduciremos los datos uno tras otro6

ANDRS R. GARCA M.

78

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

R la salida ser,6

"F!$C51'.F&6 @ Cotemos que los datos van uno tras otro y separados por espacios

E %na vez puestos los datos en la pila se ejecuta el comando DEP%' el cual pone en la pila el numero de datos que se encuentran en esta, recordemos que tenemos que especificar el numero de datos que hay en la pila para formar la lista de lo contrario se producir, un error )uego viene el comando LIS% que nos forma una lista con los datos que est,n en la pila y luego viene la operacin para convertir de pulgadas a metros A AE<7 b, es decir multiplicamos por A AE<7 *Bijmonos que esta en RPN lo cual aqu es absolutamente necesario7

; Fbservemos que la operacin *A AE<7 b+ se efectu sobre todos los elementos de la lista lo cual es una gran ventaja

ANDRS R. GARCA M.

79

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

7 $s necesario hacerle D6UG a este cdigo para as poder ver la ejecucin paso a paso *!%R .!PF'51C5$+

&upongamos un segundo ejemplo que en realidad es el mismo anterior pero con una peque3a variacin6 !ostraremos los resultados con su respectiva unidad Para esto lo -nico que haremos ser, multiplicar al final por @Wm Ieamos el cdigo6 X T#iametros en pulgadasT T Z INPU% O6J DEP%' LIS% A AE<7 b @Wm b Y 1s lo vemos en la pila6

9rabamos este cdigo bajo el nombre "FCE y ejecutamos6 )a salida ser, la siguiente6

"F!$C51'.F&6

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@ Iemos que no se visualizan todos los datos en pantalla Para solucionar esto oprimimos la tecla que tiene la flecha hacia abajo *5ercera fila quinta tecla+

E Bijmonos en el cdigo que hay un espacio entre @Wm y el signo b *por+

; %na vez mas la operacin @Wm b se efectu sobre todos los elementos de la lista

%na vez mas espero que se hayan entendido muy bien los ejemplos y en especial como se utilizan los comandos DEP%' y LIS% fundamentales en la creacin de listas

?.= ADICIN DE O6JE%OS A UNA LIS%A &e pueden a3adir objetos a una lista despus de que esta ya esta creada &e hace de manera muy f,cil y es de la siguiente manera6 &upongamos que tenemos la siguiente lista [@ E ; 7 < ;\ y queremos adicionarle el numero @: )o -nico que tenemos que hacer es lo siguiente6 ( Poner la lista en el nivel dos de la pila ( $n el nivel uno el elemento que vamos a adicionar y presionar el signo ! Ieamos como se vera en la pila6

ANDRS R. GARCA M.

81

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

R presionamos el signo ] &e vera as6

"F!$C51'.F&6 @ 1parentemente es una operacin sencilla y en efecto lo es Pero el objetivo es que tengan muy en cuenta como se adiciona un elemento a una lista ya que mas adelante retomaremos bastante este concepto

?.> COMANDOS MUE PERMI%EN OPERAR SO6RE LIS%AS "omo se dijo anteriormente, el buen manejo de listas es quiz,s uno de los elementos de programacin m,s importante que hay, dado que las listas son muy flexibles para manejar y operar sobre datos dentro de un programa 1hora veremos los comandos que permiten operar sobre las listas $stos comandos nos permiten extraer elementos de una lista, sumar los elementos que componen una lista, etc Iamos entonces a explicar estos comandos

?.>.9 LIS%

ANDRS R. GARCA M.

82

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ste comando determina la diferencia entre dos elementos consecutivos de una lista Por ejemplo si tenemos una lista con los siguientes elementos [ E 7 M M \ lo que hace es devolvernos la lista [ E E A \ Ieamos un segundo ejemplo6 "onsideremos la siguiente lista y determinemos las diferencias de los elementos consecutivos6

1hora ejecutamos el comando LIS% y veremos lo siguiente6

"F!$C51'.F&6 @ .mportante resaltar que la diferencia se efect-a de derecha a izquierda

E $l resultado es arrojado en lista

ANDRS R. GARCA M.

83

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; $s un comando muy sencillo pero de gran utilidad dentro de programas donde estemos manejando listas con muchos datos

?.>.; LIS% $ste comando nos permite hacer la sumatoria de todos los elementos de una lista y nos arroja el resultado como un objeto numero real Ieamos el siguiente ejemplo6 "onsideremos la siguiente lista

$jecutamos el comando LIS%E

"F!$C51'.F&6 Cinguno Ieamos ahora un ejemplo con una lista que contiene &5'.C9&6 "onsideremos la siguiente lista

ANDRS R. GARCA M.

84

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$jecutamos el comando LIS%E

)o que hizo fue 2sumarnos4 o concatenarnos los &5'.C9& que estaban dentro de la lista

?.>.= LIS% $ste comando efect-a el producto de todos los elementos de una lista Ieamos el siguiente ejemplo6 "onsideremos la siguiente lista

ANDRS R. GARCA M.

85

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$jecutamos el comando LIS%E

"F!$C51'.F&6 Cinguno

?.>.> SOR% $ste comando ordena todos los elementos de una lista en forma ascendente Ieamos el siguiente ejemplo6 "onsideremos la siguiente lista

$jecutamos el comando SOR%E

ANDRS R. GARCA M.

86

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ Prueben este comando pero con una lista que contenga &5'.C9& con letras

?.>.: REVLIS% $ste comando invierte el orden de los elementos de una lista Ieamos el siguiente ejemplo6 "onsideremos la siguiente lista

$jecutamos el comando REVLIS%E

"F!$C51'.F&6 Cinguno

?.>.? ADD

ANDRS R. GARCA M.

87

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ste comando suma el contenido de los elementos de dos listas Ieamos el siguiente ejemplo6 "onsideremos las siguientes listas6

$jecutamos el comando ADD

"F!$C51'.F&6 Cinguno

1hora veremos algunos comandos que nos permiten operar sobre listas pero son un poco mas elaborados y 2poderosos4

?.>.? GE%

ANDRS R. GARCA M.

88

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ste comando nos permite extraer un elemento de una lista dado su ndice de posicin Para entender mejor veamos el siguiente ejemplo6 "onsideremos la siguiente lista la cual contiene tres &5'.C9&

&i queremos extraer el primer elemento de la lista entonces ponemos en la pila la lista y el ndice de posicin del elemento a extraer, en este caso @

$jecutamos el comando GE%E

ANDRS R. GARCA M.

89

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 Cinguno

?.>.@ PU% $ste comando nos permite poner un elemento dentro de una lista dados su ndice de posicin y el objeto a introducir Para entender mejor veamos el siguiente ejemplo6 "onsideremos la siguiente lista6

$ntonces vamos a introducir el &5'.C9 2'4 en la posicin siete "olocamos en la pila lo siguiente6 ( )a lista ( $l ndice de posicin *en este caso siete+ ( &5'.C9 que vamos a poner

ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$jecutamos el comando PU%E

"F!$C51'.F&6 @ Bijmonos que el elemento que estaba en la posicin tres *;M+ fue sustituido por 7<

?.>.A SI&E $ste comando nos permite saber la cantidad de elementos que componen una lista "onsideremos la siguiente lista6

$jecutamos el comando SI&EE

ANDRS R. GARCA M.

91

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 Cinguno

?.>.B POS $ste comando nos permite conocer el ndice de posicin dentro de una lista, de un elemento dado "onsideremos el siguiente ejemplo6

Kueremos saber cual es el ndice de posicin del &5'.C9 5 $ntonces6

ANDRS R. GARCA M.

92

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$jecutamos el comando POSE

"F!$C51'.F&6 @ .nicialmente podemos pensar que no tiene ninguna aplicacin funcional 1l terminar la explicacin de cada uno de los comandos, haremos un ejemplo donde nos daremos cuenta la importancia de este comando

?.>.9< 'EAD $ste comando nos devuelve el primer elemento *cabeza+ de una lista "onsideremos el siguiente ejemplo6

&i ejecutamos el comando 'EAD nos devolver, lo siguiente6

ANDRS R. GARCA M.

93

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 Cinguno

?.>.99 %AIL $ste comando nos elimina el primer elemento de una lista "onsiderando la misma lista anterior nos devolver, lo siguiente6

VEAMOS UN EJEMPLO MUE APLICA ALGUNOS DE LOS COMANDOS AN%ERIORESE

ANDRS R. GARCA M.

94

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ste ejemplo es la 2esencia4 para escribir un programa que emule una agenda de telefnica o como se le quiera llamar, la cual podr, contener todos los aspectos de determinado contacto $scribamos entonces un programa que con base en el nombre del contacto nos arroje el numero celular y el correo electrnico 9rabemos entonces tres listas las cuales contendr,n6 @ Combre E Cumero celular ; e(mail NOM6RESE [ T1ndrs 9arcaT T"arlos #azT TBabi,n HerreraT T&antiago Gos )pezT \ %na vez puesta en pila esta lista la grabamos con el nombre CF!0'$&

ANDRS R. GARCA M.

95

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

NCMEROS CELULARESE [ T;@@7:<;::@T T;AA<N@@:EMT T;@A;@N:@8ET T;AAE@A<ANET \ %na vez puesta en pila esta lista la grabamos con el nombre 5$)&

E - MAILE Tar.arcia=:\ucato2ica. (u.co Zsanti\.cn.co)ZU %na vez puesta en pila esta lista la grabamos con el nombre $!1.) Z2it3us\) ta22ica.co)Z ZPan\) .a( t3.co)Z

Ra teniendo las tres listas grabadas entonces procedemos a escribir el cdigo6

F T$scriba el nombre del

1bre Programa

ANDRS R. GARCA M.

96

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

contactoT TT INPU% CLLCD ZcZ S%O c DUP 9 DISP CF!0'$& S[AP POS DUP 0lanqueamos la pantalla 9rabamos el nombre introducido )lamamos el nombre a la pila )o duplicamos )o colocamos en pantalla )lamamos la lista nombres a la pila 'otamos la pila $ncontramos la PF& de "arlos #az #uplicamos el &5'.C9 2"arlos #az4

5$)& S[AP GE% ; DISP $!1.) S[AP GE% = DISP TH1R T CF!0'$& SI&E S%R

)lamamos la lista 5$)& a la pila 'otamos la pila $xtraemos el 5$) de la PF& E )o colocamos en pantalla )lamamos la lista $!1.) a la pila 'otamos la pila $xtraemos el $!1.) de la PF& E )o colocamos en pantalla Ponemos el &5'.C9 H1R en la pila )amamos la lista Combres a la pila 1veriguamos su tama3o )o convertimos en &5'.C9

ANDRS R. GARCA M.

97

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

! T"FC51"5F&T !

"oncatenamos los E &5'.C9& Ponemos el &5'.C9 "FC51"5F& en la pila )o concatenamos al &5'.C9 que hay en pila

: DISP < [AI% DROP pulsada T c U PURGE G

)o colocamos en pantalla $speramos a que se pulse una tecla 0orramos la 2semilla4 dejada por la tecla

0orramos de la memoria la I1' c "ierra Programa

9rabamos este cdigo con el nombre INICI y lo ejecutamos para "arlos #az por ejemplo6

Para &antiago Gos )pez6

ANDRS R. GARCA M.

98

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6

@ Cotemos que al llamar las listas que contienen los diferentes datos, lo hacemos sin ninguna clase de delimitador

E 1l introducir las listas debemos hacerlo en el mismo orden en que aparecen es decir/ el elemento @ de la lista CF!0'$& debe corresponder al elemento @ de la lista 5$)& y $lemento @ de lista $!1.)

; $ste cdigo se puede optimizar muchsimo y lo retomaremos mas adelante, pero para efectos del ejemplo esta bien as Por ultimo recomiendo )uc3Qsi)o hacerle un D6UG a este cdigo si algo no quedo muy claro

Iamos a un segundo ejemplo6 Para calcular la capacidad de carga de un suelo aplicando la teora y las ecuaciones propuestas por su eminencia #r f1') IFC 5$'P19H. se encuentran dentro de dichas ecuaciones, unos coeficientes llamados B1"5F'$& #$ "1P1".#1# #$ "1'91 *Cc, Cq y C+ los cuales son funcin del ,ngulo de friccin interna * + $stos coeficientes se pueden calcular mediante una ecuacin pero se hace extenso ya que hay que conocer muchos otros datos 1 continuacin escribiremos un programa que nos pregunta -nicamente el ,ngulo de friccin interna y nos devuelve los factores de capacidad de carga*Cc, Cq y C+
ANDRS R. GARCA M.

99

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$stos factores se encuentran en ".!$C51".FC$& de 0raja ! #as O]oO en el de "imentaciones no el de fundamentos de .ngeniera 9eotcnica

Primero que todo debemos grabar nuestros coeficientes dentro de una lista %na lista para los valores de , una lista para los valores de Cc, una lista para los valores de Cq y otra lista para los valores de C )as listas son las siguientes6

I1)F'$& #$6 [ A @ E ; 7 < M N : 8 @A @@ @E @; @7 @< @M @N @: @8 EA E@ EE E; E7 E< EM EN E: E8 ;A ;@ ;E ;; ;7 ;< ;M ;N ;: ;8 7A 7@ 7E 7; 77 7< 7M 7N 7: 78 <A \ %na vez puesta en pila esta lista la grabamos con el nombre

I1)F'$& #$ Cc6 [ < N M M ; M ME M 8N N ;7 N N;


ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

: @< : M 8 A8 8 M@ @A @M @A NM @@ 7@ @E @@ @E :M @; M: @7 M @< @E @M <M @N M8 @: 8E EA EN E@ N< E; ;M E< @; EN A8 E8 E7 ;@ M@ ;7 E7 ;N @M 7A 7@ 77 A7 7: A8 <E M7 <N N< M; <; NA A@ NN < :< 8N 8< MM @AM :@ @@8 MN @;7 <: @<@ 8< @NE E: @8M EE EE7 << E<: E: E8: N@ ;7N < \ %na vez puesta en pila esta lista la grabamos con el nombre Cc

I1)F'$& #$ Cq6 [ @ @ @ @ EE @ ;< @ 78 @ M7 @ :@ E E E@ E 77 E M8 E 8: ; E8 ; M; 7 AE 7 7< 7 8E < 7<

ANDRS R. GARCA M.

1 1

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

M A7 M N N 77 : EM 8 @8 @A E; @@ 7 @E NE @7 E@ @< 8 @N :@ @8 8: EE 7M E< E: E: <E ;E E; ;M < 7@ 77 7N @M <; : M@ << NA M@ :@ EN 8; :< @A: N< @EM < @7N N7 @N; E: EA7 @8 E7@ : E:N :< ;77 M; 7@< @7 \ %na vez puesta en pila esta lista la grabamos con el nombre Cq

I1)F'$& #$ C6 [ A A@ A7 AM @ @7 E EN ;< 77 <M M8 :< @ A7 @ EM @ <E @ :E E @: E <8 ; AN ; M7 7 ;@ < A8 M N A: : ;7 8 :7 @@ M @; N @M @: @8 @; EE M< EM :N ;@ 87 ;: A7 7< 7@ <7 ;M M< EN N: M@ 8< A; @@< ;@ @7A <@ @N@ 88 E@@ <M EM@ M ;E< ;7 7AN @@ <@E :7 M<A MN :;@ 88 @ANE : \

ANDRS R. GARCA M.

1 2

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

%na vez puesta en pila esta lista la grabamos con el nombre C

Ra teniendo las tres listas grabadas entonces procedemos a escribir nuestro programa6

X TIalor de gT TT INPU% O6J ZB.Z S%O h B. POS B.E S%O h B.E GE% ZhZ %AG Cc B.E GE% ZCcZ %AG Cq 9rabamos el valor de h con el nombre B. )lamamos la lista que contiene los valores de h #eterminamos la posicin del valor de h 9rabamos la posicin del valor de h )lamamos la lista que contiene los valores de h &acamos el valor de h que esta en la posicin B.E )o etiquetamos )lamamos la lista que contiene los valores de Cc &acamos el valor de Cc que esta en la posicin B.E )o etiquetamos )lamamos la lista que contiene los valores de Cq
ANDRS R. GARCA M.

1 3

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

B.E GE% ZCqZ %AG C B.E GE% ZC` %AG

&acamos el valor de Cq que esta en la posicin B.E )o etiquetamos )lamamos la lista que contiene los valores de C` &acamos el valor de C que esta en la posicin B.E )o etiquetamos

[ B.E B. \ PURGE $liminamos las variables B.E y B. Y 9rabamos el cdigo con el nombre AMU y ejecutamos para un angulo de E; 6
A

"F!$C51'.F&6

@ Cotemos que al llamar las listas que contienen los valores, lo hacemos sin ninguna clase de delimitador

E Para poner la etiqueta si debemos hacerlo con los delimitadores `a de lo contrario nos vertera todo el contenido de la lista a la pila

; $ste cdigo se puede optimizar muchsimo Pero para efectos del ejemplo esta bien as Por ultimo recomiendo hacerle un D6UG si algo no quedo muy claro

ANDRS R. GARCA M.

1 4

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

0ueno, ahora sigamos explicando los dem,s comandos que permiten operar sobre listas

?.>.9; DOLIS% $ste comando nos permite operar sobre un grupo de listas Ieamos un ejemplo6 5enemos las siguientes listas en la pila6

Iamos a aplicar la operacin 2potenciacin4 $sta operacin debe ir dentro de delimitadores de programa as6

$jecutamos el comando #F).&56

ANDRS R. GARCA M.

1 5

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 C.C9%CF

?.>.9= DOSU6S $ste comando es supremamente funcional y lo que hace es ejecutar varias operaciones *no(solo una+ a todos los elementos de una lista Ieamos un ejemplo6 "onsideremos la siguiente lista6

$specificamos un tama3o de paso igual a @ $s decir que aplique las operaciones a cada elemento de la lista

ANDRS R. GARCA M.

1 6

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Iamos a aplicar las siguientes delimitadores de programa

operaciones las cuales deben ir dentro de

$jecutamos el comando DOSU6SE

Ieamos un segundo ejemplo6 "onsideremos la siguiente lista6

ANDRS R. GARCA M.

1 7

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

1hora especifiquemos un tama3o de paso igual a E

"on la siguiente operacin

$jecutamos DOSU6SE

)o que hizo fue sumar los elemento adyacentes entre si

"F!$C51'.F&6 Cinguno

ANDRS R. GARCA M.

1 8

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"reo que de a esta instancia del libro ustedes ya est,n en capacidad de seguir examinando que hace y como operan cada uno de los comandos gui,ndose por el manual de manejo, por lo que de ahora en adelante no har referencia a los comandos como tal sino solamente a lo que es la programacin

ANDRS R. GARCA M.

1 9

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

11

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@. ES%RUC%URA DE VARIA6LE LOCAL.

@.

ES%RUC%URA

DE

VARIA6LE

LOCAL.
@.9 DE$INICIN )as variables locales son variables provisionales creadas por un programa $xisten mientras se ejecuta el programa y a diferencia de las variables globales no se pueden utilizar por fuera del programa a menos que la subrutina este anidada o embebida dentro del proceso de definicin de variable local, esto lo entender,n mejor mas adelante Para entender mejor como se crean y utilizan las variables locales veamos lo siguiente

@.; SIN%AWIS DE VARIA6LE LOCAL DEN%RO DE UN PROGRAMA

ANDRS R. GARCA M.

111

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Para entender veamos el siguiente ejemplo6 $scribiremos un programa que calcula el coeficiente de empuje activo en muros de retencin en voladizo )a ecuacin *entre otras+ que se utiliza es la siguiente6 8a I cos4 7 D 4 cos4 7 - 4 cos4 7 ^; D cos4 7 ^;7 J 4cos4 7 ! 4 cos4 7 ^; D cos4 7 ^;7 7 #onde6 I 1ngulo entre la corona del muro y el talud natural I 1ngulo de friccin interna del suelo de relleno )os datos que necesitamos son entonces y . Ieamos el cdigo y luego lo explico

X TIalor de T TT INPU% O6J TIalor de gT TT INPU% O6J h X Z"F&*+b*"F&*+(i*"F&*+dE("F&*h+dE++c *"F&*+]i*"F&*+dE("F&*h+dE++Z $I1) Y E RND S%R Tfa_ T

ANDRS R. GARCA M.

112

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

S[AP ! CLLCD MSG6OW Y $n este punto del libro ya conocemos gran parte de este cdigo 1qu lo -nico nuevo es la definicin de variable local $n este ejemplo tenamos que definir dos variables locales * y h+ Para definir estas dos utilizamos el smbolo #espus del smbolo vienen los nombres con los cuales vamos a nombrar las variables $n esta caso eran y h Ctese que despus de nombrar las dos variables tenemos que abrir otros delimitadores de programa #espus de esto viene la operacin y luego el comando RND el cual nos trunca la respuesta a dos posiciones decimales $l resto del cdigo ya lo conocemos perfectamente .mportante aclarar que las variables locales no se pueden volver a llamar despus de haber cerrado los delimitadores de programa que abrimos despus de definir las dos variables locales * h + 'ecomiendo hacer un D6UG a este cdigo si no se entendi algo @.= ES%RUC%URA DE VARIA6LE LOCAL DEN%RO DE UNA SU6RU%INA )as variables locales tambin las podemos utilizar dentro de una subrutina siempre y cuando la subrutina este anidada dentro del procedimiento de variable local $sto

ANDRS R. GARCA M.

113

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

quiere decir que la subrutina debe estar dentro de los 2segundos2 delimitadores de programa que abrimos haciendo referencia al ejemplo anterior Ieamos el mismo ejemplo anterior pero ahora supondremos que necesitamos una subrutina )a subrutina la llamaremos SU6R. &upondremos tambin que la subrutina la utilizaremos -nicamente para elevar al cuadrado las dos variables

X TIalor de T TT INPU% O6J TIalor de gT TT INPU% O6J h X SU6R Z"F&*+b*"F&*+(i*"F&*+dE("F&*h+dE++c *"F&*+]i*"F&*+dE("F&*h+dE++Z $I1) Y E RND S%R Tfa_ T S[AP ! CLLCD MSG6OW Y

ANDRS R. GARCA M.

114

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$l cdigo de la subrutina es el siguiente6 X ZdEZ $I1) ZhdEZ $I1) Y

"F!$C51'.F&6 @ Para definir las variables locales debemos anteponerles el smbolo $sto es para poder llamar las variables dentro de la subrutina SU6R

E )a subrutina SU6R puede estar antes o despus de la operacin $sto depende de las solicitaciones del programa, en este caso puede estar antes o despus

; $n la operacin las variables deben aparecer con el smbolo de lo contrario no las reconoce

7 $n resumen lo que hace este programa despus de haber introducido los datos es ir a la subrutina, ejecutar las operaciones que hay en la subrutina SU6R luego sigue con la ejecucin del programa, es decir con lo que hay despus de SU6R

ANDRS R. GARCA M.

115

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$l siguiente es un ejemplo de aplicacin de variable locales dentro de una subrutina el cual sirve para calcular empates por lnea de energa en rgimen supercrtico en aguas negras #ependiendo del valor de la operacin Z ;@8b K c hdE <Z se va para una subrutina llamada $E si el valor es mayor que A ME/ o para una subrutina llamada $; si el valor de la operacin es menor que A ME $n este cdigo hay algunos comandos que no han sido explicados en este libro pero que m,s adelante entender,n )o incluyo para que se vea la importancia de las variables locales y como llamarlas dentro de una subrutina

)a variable con la que se inicia el programa es $@6

T"audal de dise3o del tubo de salida *$n md;cs+T TT INPU% O6J T#iametro del tubo de salida *$n in+T TT INPU% O6J AE<7 b f K h X Z ;@8bKchdE <Z EVAL E RND ZoPZ S%O CASE ZoPj MEZ %'EN CLLCD TA ;@8bKchdE <_ T oP S%R

ANDRS R. GARCA M.

116

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

[ oP \ PURGE ! 9 DISP T$l empate es sumergido Presione enter para solucionarT = DISP < [AI% DROP $E END ZoP MEZ %'EN CLLCD TA ;@8bKchdE <_ T oP S%R [ oP \ PURGE ! 9 DISP T$l empate es no sumergido Presione $C5$' para solucionarT = DISP < [AI% CLEAR $; END END G E> ->< S$ G

ANDRS R. GARCA M.

117

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

118

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

A. $LAGS

A. $LAGS.
A.9 DE$INICIN.

ANDRS R. GARCA M.

119

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

%n B)19 o bandera es un indicador de sistema los cuales se pueden anular, fijar o probar Por ejemplo el B)19 k7A es el indicador de sistema del reloj que nos permite activarlo o desactivarlo, el B)19 kE es el indicador de sistema de las constantes el cual nos permite poner constantes de manera numrica o simblica

A.; COMO MODI$ICAR $LAGS DEN%RO DE UN PROGRAMA Para activar o desactivar B)19& utilizamos las palabras S$ R C$. &B para activar y "B para desactivar Ieamos un ejemplo donde tenemos que desactivar el reloj para que no nos da3e la presentacin de texto en pantalla6 Primero veamos el cdigo y la presentacin sin desactivar el reloj6

X CLLCD T $).!.C1#F' #$ 01&%'1

Por6 1ndrs ' 9arca !

Fctubre E< de EAAE

ucatolica EAAET < DISP < [AI% CLEAR Y $l cual al ejecutarlo nos muestra lo siguiente6

ANDRS R. GARCA M.

12

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"omo nos podemos dar cuenta el reloj nos esta 2da3ando4 nuestra presentacin ya que no desactivamos el reloj, mediante el B)19 k7A 1hora veamos el cdigo desactivando el reloj6 X CLLCD ->< C$ T $).!.C1#F' #$ 01&%'1

Por6 1ndrs ' 9arca !

Fctubre E< de EAAE

ucatolica EAAET < DISP < [AI% CLEAR Y $l cual al ejecutarlo nos muestra lo siguiente6

ANDRS R. GARCA M.

121

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ 1l desactivar el reloj mejoramos mucho la presentacin

E #e esta misma manera se activan o desactivan los dem,s B)19& Ctese que el numero de B)19 es negativo

; )os B)19& son muy importantes y hay que tener especial atencin en programas que trabajan con constantes numricas o simblicas ya que hay que activar el B)19 antes de cualquier cosa )o mismo en programas que trabajan formulas u operaciones matem,ticas de manera simblica Para una lista completa de los B)19& refirase al manual de usuario Pagina F 1PQC#."$ #@ 7 $n el ejemplo anterior para volver a activar el reloj entonces al final ponemos k7A &B Ieamos el cdigo6

X CLLCD ->< C$ T $).!.C1#F' #$ 01&%'1

Por6 1ndres ' 9arcia !

Fctubre E< de EAAE

ANDRS R. GARCA M.

122

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ucatolica EAAET < DISP < [AI% CLEAR ->< S$ Y

ANDRS R. GARCA M.

123

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

B. MENCS.

B. MENCS.
B.9 NCMEROS DE ASIGNACIN DE LOS MENCS 5odos los men-s que ofrece la HP tienen un numero de asignacin "omo por ejemplo si pulsamos el numero ; y luego MENC nos enviara al men- M%'. "omo podemos ver a continuacin6

MENC MA%'

ANDRS R. GARCA M.

124

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Ieamos un ejemplo en donde vamos a entrar dos datos pero queremos que durante esta entrada no aparezca nada en las teclas de men- y al finalizar la entrada nos aparezca el men- actual, es decir el del directorio donde estamos6 Iemos el cdigo6 X @ !$C% TIalor de a^T TT INPU% O6J TIalor de b^T TT INPU% O6J E A@ !$C% Y

$l cual al ejecutarlo nos muestra6

ANDRS R. GARCA M.

125

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ "omo se puede ver durante la entrada de los datos no muestra nada en las teclas de men- $sto porque antes de iniciar la entrada de los datos pusimos @ !$C%

E 1l final de la entrada de los datos nos muestra el men- actual $sto porque pusimos E A@ !$C% el cual nos permite ver el men- actual

B.; COMO CREAR MENCS %EMPORALES )os men-s temporales son men-s creados directamente por el usuario $stos men-s se pueden crear de dos formas6 !ediante la tecla MENC o mediante el comando %MENU.

B.;.9 ) (iant 2a t c2a MENC Para crear men-s personalizados mediante "&5 debemos hacer los siguiente6 @ .ntroducir una lista en la pila que a su vez contiene otras 2 sublistas 2 las cuales contienen dos argumentos6 )a etiqueta *es decir lo queremos que aparezca en el men-+ y la accin que queremos que se ejecute cuando pulsemos la tecla de menIeamos un ejemplo6 "rearemos un men- temporal mediante la tecla MENC con la etiqueta &$CF la cual ejecuta la funcin &$C6

ANDRS R. GARCA M.

126

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

!$CH $ntonces veremos lo siguiente6

&i colocamos un numero en la pila y ejecutamos entonces veremos6

"F!$C51'.F&6 @ &i volvemos al men- donde est,bamos antes de ejecutar la tecla !$C% vemos que se ha creado la variable CS%.

ANDRS R. GARCA M.

127

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

B.;.; ) (iant

2 co)an(o %MENU

"rear men-s mediante este comando se hace de manera similar al comando anterior Para entender como se crean men-s temporales mediante %MENU veamos el siguiente ejemplo6 1signaremos < etiquetas de men- que contienen los n-meros del @ al ; cuyas acciones son poner su correspondiente numero en pantalla mediante el comando DISP y una quinta cuya accin es volver al directorio donde nos encontramos6

X [ [ @ X CLLCD %CF S%R 9 DISP = $REE&E Y \ [E X CLLCD #F& S%R ; DISP = $REE&E Y \ [; X CLLCD 5'$& S%R

ANDRS R. GARCA M.

128

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

= DISP = $REE&E Y \ [ \ [ \ [ 15'J& F ;.<9 MENC CLLCD Z$INZ > DISP < [AI% DROP ;.<9 MENU G \ \ %MENU G )o cual nos muestra6

ANDRS R. GARCA M.

129

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

&i pulsamos la tecla de men- @ har, lo siguiente6

&i pulsamos la tecla de men- E har, lo siguiente6

&i pulsamos la tecla de men- ; har, lo siguiente6

&i pulsamos la tecla de men- A%RHS har, lo siguiente6

ANDRS R. GARCA M.

13

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ Fbservemos que la accin a ejecutar esta dentro de delimitadores de programa

E Para dejar una tecla de men- en blanco la lista debe ir en blanco [ \

ANDRS R. GARCA M.

131

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9<. ES%RUC%URAS DE PROGRAMACIN.


ANDRS R. GARCA M.

132

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9<. ES%RUC%URAS DE PROGRAMACIN.


9<.9 DE$INICIN %na estructura de programacin permite que un programa decida la tarea a ejecutar dependiendo de las condiciones existentes o de los valores de argumento concreto %na buena utilizacin de estas estructuras permite crear programas

extraordinariamente flexibles

9<.; ES%RUC%URAS CONDICIONALES )as estructuras condicionales permiten que un programa tome una decisin basada en el resultado de una o m,s pruebas

9<.;.; I$ ...%'EN...ELSE_END Para entender exactamente como funciona esta estructura veamos el siguiente ejemplo6

ANDRS R. GARCA M.

133

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$n alcantarillados de aguas negras, el empate del tubo que entra y del tubo que sale del pozo puede ser sumergido o no sumergido &abemos que es sumergido o no sumergido seg-n el resultado de la siguiente operacin6 A ;@8 b K c #onde 6 K _ "audal de dise3o del tubo de salida _ #i,metro del tubo de salida
E<

&i el resultado de esta operacin es mayor que A ME el empate es sumergido &i el resultado es menor o igual a A ME el empate es no sumergido

$scribamos entonces un programa que de acuerdo al resultado de la operacin <.=9B DMJ


;.:

nos diga si el empate es sumergido o no sumergido

Ieamos entonces el cdigo6

X 9 MENC T"audal de dise3o del tubo de salida *$n md;cs+T

Ponemos etiquetas de men- en blanco $ntrar el caudal de dise3o

ANDRS R. GARCA M.

134

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

TT INPU% O6J T#iametro del tubo de salida *$n in+T TT INPU% O6J A AE<7 b K# X ZA ;@8bKc#dE <Z EVAL ; RND decimales Y FP #efinimos una nueva variable local para el resultado de la $valuamos la operacin y cortamos a dos lugares Por A AE<7 para pasar a m #efinimos variables locales $ntrar el di,metro n ,u2.a(as

operacin con el nombre FP X I$ ZFPA MEZ %'EN ->< C$ CLLCD T$l empate es no sumergidoT 9 DISP < [AI% CLEAR %bicamos el texto anterior en el nivel @ &e ve el texto hasta que se pulsa una tecla 0orramos la semilla dejada cuando se pulsa la tecla Si FP es menor o igual a A ME entonces quitamos el reloj de la pantalla Ponemos en blanco la pantalla

ANDRS R. GARCA M.

135

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ELSE A ME+ ->< C$ CLLCD T$l empate es sumergidoT 9 DISP < [AI% CLEAR END G ->< S$ ;.<9 MENC G

D 2o contrario *$s decir sino es menor o igual a

Kuitamos el reloj de la pantalla Ponemos en blanco la pantalla

%bicamos el texto anterior en el nivel @ &e ve el texto hasta que se pulsa una tecla 0orramos la semilla dejada cuando se pulsa la tecla $IN Iolvemos a poner el reloj Ponemos las etiquetas de !$CH del directorio actual

$jecutemos este cdigo entonces con los siguientes datos6 K _ A <M md; c s _ E7aa

ANDRS R. GARCA M.

136

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Pulsamos $C5$'6

"F!$C51'.F&6

@ $sta estructura .B 5H$C $)&$ $C# permite elegir entre dos opciones nada mas

9<.;.= CASE_%'EN...END $sta estructura a diferencia del .B 5H$C $)&$ $C# permite elegir entre varias opciones, me explico/ en el ejemplo anterior solo se permita decidir la accin a ejecutar si el resultado era menor o igual a A ME o si era mayor a A ME )a estructura CASE_%'EN...END nos permite entonces elegir entre n opciones

Para poder explicar un ejemplo competo de CASE_%'EN...END veamos primero un tema de vital importancia en el desarrollo de programas completos6 )a organizacin del teclado

ANDRS R. GARCA M.

137

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9<.;.=.9 ORGANI&ACIN DEL %ECLADO "ada tecla de la HP tiene un numero de asignacin 1s por ejemplo si estamos esperando que se pulse una tecla y pulsamos la tecla EN%ER aparecer, el numero 9<:.9. Ieamos un ejemplo6 $scribamos el siguiente cdigo el cual espera que se pulse una tecla X CLLCD (7A C$ T$&P$'F %C1 5$")1T @ DISP A [AI% (7A S$ Y 'ealmente el comando que espera la tecla es el [AI%. $ste cdigo har, lo siguiente6

&i pulsamos por ejemplo la tecla $C5$' aparecer, lo siguiente6

ANDRS R. GARCA M.

138

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Ra se imaginaran ustedes que dependiendo del numero que aparece en la pila es funcin de la tecla que se pulsa y nos permitir, hacer lo que queramos dependiendo del mismo $spero que hayan ledo la primera edicin en donde se hace referencia a la organizacin del teclado y su correspondiente numero de asignacin de tecla, ya que en esta edicin no se hace referencia a dicho tema Ieamos entonces un ejemplo en donde se CASEE

$scribamos un programa o mas bien la presentacin de un programa que nos presenta un !$C% con cuatro opciones y dependiendo la tecla que pulsemos iniciara cualquiera de las cuatro opciones/ y sino es ninguna de las cuatro nos mostrara de nuevo la presentacin $stas opciones ser,n6

@ 9'1C%)F!$5'S1 E ")1&.B."1".DC 11&H5F ; ")1&.B."1".DC %&" 7 1P191' HP

ANDRS R. GARCA M.

139

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

< &1).'

Ieamos la primera parte del programa para as entenderlo mejor6

X CLLCD (7A C$ T FP".FC$&

20lanquea4 la pantalla Kuita el reloj

@ 9'1C%)F!$5'S1 E ")1&.B."1".DC 11&H5F ; ")1&.B."1".DC %&" 7 &1).'T @ DISP A [AI% Y Pone le texto en pantalla $spera una tecla

1l ejecutarlo muestra lo siguiente

Pulsemos la tecla @ por ejemplo6 9ranulometra6

ANDRS R. GARCA M.

14

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

1hora pulsemos la tecla E6 "lasificacin 11&H5F

$scribamos entonces todo el cdigo el cual nos permitir, escoger la ruta a seguir en el programa dependiendo de la tecla que se pulso, y si no se pulso una de las cinco teclas esperadas vuelve a ejecutar la presentacin6

F CLLCD ->< C$ Z OPCIONES

@ 9'1C%)F!$5'S1 E ")1&.B."1".DC 11&H5F ; ")1&.B."1".DC %&" 7 1P191' HP

ANDRS R. GARCA M.

141

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

< &1).'T 9 DISP < [AI% i F CASE K iIIB;.9K %'EN 9'1C%)F!$5'.1 END KiIIB=.9K %'EN 11&H5F END KiIIB>.9K %'EN %&" END KiIIA;.9K %'EN O$$ END KiIIA=.9K %'EN %EW% ->< S$ END Ki B;.9 OR

ANDRS R. GARCA M.

142

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

i B=.9 OR i B>.9 OR i A;.9 OR i A=.9K %'EN .C.".F END END G G 9rabamos $ste cdigo bajo el nombre .C.".F y ejecutamos &e vera as6

&i presionamos E por ejemplo6

ANDRS R. GARCA M.

143

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

&i presionamos 76

0ueno, era de esperarse no^

"F!$C51'.F&6 @ )as variables 9'1C%)F!$5'S1, 11&H5F y %&" son las variables que se ejecutaran inmediatamente despus de presionar la tecla @ E o ; $n este caso llevan estos nombres, pero podra ser cualquier nombre

E 1l teclear E no se ejecuto nada, solo se puso el nombre 11&H5F en la pila &i la variable 11&H5F estuviera creada pues obviamente habra ejecutado dicha variable

ANDRS R. GARCA M.

144

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; Ctese que los nombres 9'1C%)F!$5'S1, 11&H5F R %&" est,n sin los delimitadores ` a

5ambin vemos que aparece un comando nuevo6 5$L5 $ste comando actualiza la pantalla, es decir 2'$B'$&"14 la pantalla $ste comando es recomendado despus del comando A >1.5, $& #$".'/ #$&P%Q& #$ $&P$'1' %C1 5$")1

9<.= ES%RUC%URAS DE 6UCLE )as $structuras de bucle permiten que un programa ejecute una secuencia de comandos varias veces $ste numero de veces se especifica al inicio del programa

9<.=.9 S%AR%_NEW% Para entender este tipo de estructura veamos el siguiente ejemplo6

$scribamos un programa que ensamble las matrices de rigidez de los elementos de una cercha plana y los ponga en la pila, obviamente aplicando el mtodo matricial6 )a matriz de rigidez de un elemento de cercha plana en coordenadas globales esta dada por6

ANDRS R. GARCA M.

145

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"

&b" &
E E

("

(&b" (&
E

&b" f _ $b1 c ) ("


E

(&b"

(&b"

"

&" (&
E

(&b" #onde6 $ _ !odulo de elasticidad del material

&"

&

1 _ Jrea de la seccin transversal del elemento ) _ )ongitud del elemento " _ "oseno del ,ngulo que describe el elemento con la horizontal & _ &eno del ,ngulo que describe el elemento con la horizontal

$ntonces los datos que necesita el programa para calcular la matriz de rigidez en coordenadas globales de cada elemento son $, 1, ), Ieamos la forma y configuracin de la cercha6

ANDRS R. GARCA M.

146

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$)$!$C5F @6 )_E<m _ ;M :N 1 _ A AAAE< m


M E

$ _ EAA b @A fP1

$)$!$C5F E6 )_Em _ A 1 _ A AAA7 m


M E

$ _ EAA b @A fP1

$)$!$C5F ;6 )_@<m _ 8A 1 _ A AAA@< m


M E

$ _ EAA b @A fP1

5eniendo ya estos datos veamos el cdigo6

ANDRS R. GARCA M.

147

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

! "C#$%&'( )*)+)%&'( ('%," " " INPUT OBJ 1 SWAP START "D$&'( $(14 EAL " "" INPUT OBJ E A L ! E A 9 L : ; COS 2 < 9 E A 9 L : ; SIN ; COS 9 9 E A 9 L : ; COS 2 < NEG 9 E A 9 L : ; SIN ; COS NEG 9 9 E A 9 L : ; SIN ; COS 9 9 E A 9 L : ; SIN 2 < 9 E A 9 L : ; SIN ; COS NEG 9 9 E A 9 L : ; SIN 2 < NEG 9 E A 9 L : ; COS 2 < NEG 9 E A 9 L : ; SIN ; COS NEG 9 9 E A 9 L : ; COS 2 < 9 E A 9 L : ; SIN ; COS 9 9 E A 9 L : ; SIN ; COS NEG 9 9 O7)-$21'%)( 7$-$ 2$.$ )*)+)%&' .) *$ +$&-1= E%&-$ E A L D)51%) 6$-1$3*) *'2$* 7$-$ E A L / $(8 7'.)-*$( **$+$- 6$-1$( 6)2)( E%&-$ )* %#+)-' .) )*)+)%&'( P'%) 1 )% )* % 2 / )* 0 .) )*)+ )% )* % 1 I%121$ )* 2'%&$.'- .) 3#2*)

ANDRS R. GARCA M.

148

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

E A 9 L : ; SIN 2 < NEG 9 E A 9 L : ; SIN ; COS 9 9 E A 9 L : ; SIN 2 < 9 >4 4 ? ARRY RND A NEXT Y 20ueno, realmente C$L5 incrementa el valor del contador por @4 1l correr el programa vemos lo siguiente6 C'%&1%#$ 2'% )* ()B#%.' )*)+. D1+)%(1'%)( .) *$ +$&-1= @'-+$ *$ +$&-1= P'(121'%)( .)21+$*)(

#atos para el elemento @6

#atos para el elemento E6

ANDRS R. GARCA M.

149

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

#atos para el elemento ;6

)as respuestas se ver,n as en la pila6

$s decir no se entiende nada

ANDRS R. GARCA M.

15

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ )a entrada de datos de cada elemento se puede optimizar mediante una plantilla de entrada, tema que se explicara mas adelante

E $n este caso eran tres elementos, pero que pasara si fueran ;A^ Kue despus de ir en el cuarto o quinto elemento existe la posibilidad de que ya no sepamos en que elemento vamos $sto se arregla escribiendo el cdigo ya no con S%AR...NEW% sino con $OR NEW%, el cual se explica a continuacin

; )as respuestas son un poco difciles de interpretar ya que simplemente son puestas en la pila 1 continuacin mediante $OR NEW% se optimizara muchsimo esto

9<.=.; $OR_NEW% $ste tipo de estructura a diferencia de S%AR% NEW% nos permite utilizar el contador dentro de la cl,usula(bucle Para entender mejor este tipo de estructura escribamos el mismo ejemplo anterior pero ahora utilizando la estructura $OR NEW%.

$n este ejemplo ya no dejaremos los resultados *matrices de rigidez de cada elemento+ 2regados4 en la pila sino los grabaremos con el nombre $)$!L donde L es el numero del elemento6
ANDRS R. GARCA M.

151

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Ieamos entonces el cdigo6

X T"uantos elementos son^T TT INPU% O6J @ S[AP $OR i T#atos $)T i S%R ] T asi6 $ 1 ) T ] T T INPU% O6J EAL X $ 1 b ) c "F& E d b $ 1 b ) c &.C "F& b b $ 1 b ) c "F& E d C$9 b $ 1 b ) c &.C "F& C$9 b b $ 1 b ) c &.C "F& b b $ 1 b ) c &.C E d b $ 1 b ) c &.C "F& C$9 b b $ 1 b ) c &.C E d C$9 b $ 1 b ) c "F& E d C$9 b .nicia la estructura

ANDRS R. GARCA M.

152

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ 1 b ) c &.C "F& C$9 b b $ 1 b ) c "F& E d b $ 1 b ) c &.C "F& b b $ 1 b ) c &.C "F& C$9 b b $ 1 b ) c &.C E d C$9 b $ 1 b ) c &.C "F& b b $ 1 b ) c &.C E d b [77\ ARR" A RND T$)$!T i S%R ] O6J S%O Y NEW% Y

$jecutemos este cdigo6

ANDRS R. GARCA M.

153

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

1hora pedir, los datos del elemento @ pero ahora si nos dice que elemento es *$)@+6

1hora pedir, los datos del elemento E pero ahora si nos dice que elemento es *$)E+6

1hora pedir, los datos del elemento ; pero ahora si nos dice que elemento es *$);+6

ANDRS R. GARCA M.

154

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

R tendremos los resultados grabados6

'$&%)51#F&

"F!$C51'.F&6

@ Fbservemos que el $OR va acompa3ado de i. $sta letra nos esta representado el contador lo que quiere decir que i to)ara 2 0a2or ( 2 conta(or. $n este caso @, E o ; Co necesariamente tiene que ser i. , puede tomar cualquier car,cter alfa

E Por ultimo recomiendo hacer un D6UG a este cdigo y sino quedo algo claro lo van a entender muy bien ya que asi van a poder ver como trabaja la pila durante la ejecucin del programa

9<.=.= DO_UN%IL_END $sta estructura ejecuta la secuencia cl,usula(bucle de forma repetida hasta que se cumple una condicin especifica Ieamos un ejemplo6

ANDRS R. GARCA M.

155

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$scribamos un programa que eval-e repetidamente la raz cuadrada de un numero puesto en el nivel @ de la pila hasta que este numero sea igual a @ $s un ejemplo muy sencillo

Ieamos el cdigo6

X CLLCD DO DUP DUP S%R 9 DISP A @ [AI% UN%IL 9 II END Y $jecutemos este cdigo6 #ebemos poner un numero en la pila $j/ 8 88888888888$788

ANDRS R. GARCA M.

156

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6

@ $ste cdigo se entiende perfectamente haciendo D6UG CF516 ( .ntntenlo con un solo DUP. - intntenlo sin el A @ >1.5

9<.=.> ['ILE_REPEA%_END $sta estructura trabaja de manera similar a DO_UN%IL_END con la diferencia de que primero ejecuta la condicin y luego el bucle Ieamos el ejemplo anterior pero con ['ILE_REPEA%_ENDE

X CLLCD ['ILE DUP @ REPEA% DUP S%R @ DISP A @ [AI% END Y "F!$C51'.F&6

@ $ste cdigo se entiende perfectamente haciendo D6UG

ANDRS R. GARCA M.

157

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

CF516 ( .ntntenlo con un solo DUP. intntenlo sin el A @ >1.5

ANDRS R. GARCA M.

158

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

99. ES%RUC%URAS DE DE%ECCIN DE ERRORES.

99. ES%RUC%URAS DE DE%ECCIN DE ERRORES.


99.9 DE$INICIN )as 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

99.; I$ERR...%'EN...END )a estructura de I$ERR...%'EN...END es la siguiente6 F I$ERR laccin sospechosaj %'EN l accin a ejecutar si se produjo errorj

ANDRS R. GARCA M.

159

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

END G $mpecemos con un ejemplo muy sencillo6 $scribamos un programa que suma dos numero reales puestos en la pila %na 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 !. Ieamos este sencillo cdigo6

X I$ERR ] %'EN TBalta un datoT CLLCD MSG6OW END Y 1l ejecutar con dos n-meros en la pila6

$jecutando con un solo numero en la pila *condicin de error+6

ANDRS R. GARCA M.

16

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

&e 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 [AI%.

ANDRS R. GARCA M.

161

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9;. VEN%ANA DE OPCIONES.

ANDRS R. GARCA M.

162

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9;. VEN%ANA DE OPCIONES.


9;.9 DE$INICIN %na 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

9;.; EL COMANDO C'OOSE $sta ventana de opciones se crea mediante el comando C'OOSE $ste comando toma tres argumentos de la pila para poder ejecutarse, estos argumentos son en orden los siguientes6 Un S%RING 2 cua2 conti n 2 titu2o ( 2a 0 ntana.

Una 2ista con 2as o,cion s -u -u r )os u*icar n 2a 0 ntana. Un Qn(ic ( ,osici/n.

9;.= $ORMAS DE U%ILI&ACIN DEL COMANDO C'OOSE $l comando "HFF&$ 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 Ieamos un primer ejemplo6 $G$!P)F @6

ANDRS R. GARCA M.

163

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$scribamos un peque3o programa que cree una ventana con las siguientes opciones6 ( "ercha ( Iiga ( Prtico

Ieamos el cdigo6

X CLLCD T$).G1 %C1 FP".DCT [ "$'"H1 I.91 PF'5."F \ @ C'OOSE Y

Pone en blanco la pila 5itulo de la ventana *&5'.C9+

Fpciones *lista+ Sndice de posicin

)o cual muestra lo siguiente6

ANDRS R. GARCA M.

164

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$sto si esta activo el B)19 8A el cual muestra el texto en BFC5 peque3o

Ieamos el cdigo desactivando este B)19

F (8A C$ CLLCD T$).G1 %C1 FP".DCT [ "$'"H1 I.91 PF'5."F \ @ C'OOSE G

CF516 "ual es mejor^ 1 gusto de cada uno "on las teclas que contienen las flechas nos podemos mover arriba o abajo

ANDRS R. GARCA M.

165

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ligiendo la opcin ;6

Presionando Ff devolver, los siguiente a la pila6

"F!$C51'.F&6 $ste cdigo no nos permite poner texto que contenga mas de dos palabras, me explico/ si fuera por ejemplo `cercha planaa no podramos ponerlo as &e vera en una lnea `cerchaa y en una segunda lnea `planaa

Ieamos ahora una segunda forma de utilizar este comando C'OOSE la cu,l nos permite poner mas de una palabra en una sola lnea "onsiderando el mismo ejemplo anterior pero ahora las opciones ser,n6 ( "ercha plana ( Iiga continua

ANDRS R. GARCA M.

166

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

( Iiga empotrada Ieamos el nuevo cdigo6

X CLLCD T$).G1 %C1 FP".DCT [ [ T"$'"H1 P)1C1T @ \ [ TI.91 "FC5.C%1T E \ [ TI.91 $C $!PF5'1#1T ; \ \ 9 C'OOSE Y

"F!$C51'.F& @ "omo se puede observar este cdigo si nos permite poner mas de una palabra en una sola lnea

ANDRS R. GARCA M.

167

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

E Cotemos que las opciones a diferencia del cdigo anterior ahora van dentro de 2 2 *&5'.C9+

; Fbservemos tambin que la opcin y su ndice de posicin ahora son una lista anidada dentro de otra lista que contiene todas las opciones

7 1l ejecutar este cdigo se ve algo como esto6

$ligiendo la opcin ;

$l entero del nivel E de la pila es el ndice de posicin de la opcin 1s por ejemplo hubisemos elegido cercha plana se hubiera devuelto lo siguiente6

ANDRS R. GARCA M.

168

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

#ado el caso que no se presione la tecla de men- O8 sino la tecla de men- CANCL se devolver, A a la pila

$n resumen esta son las dos formas que toman los argumentos que necesita el comando C'OOSE para su ejecucin Ieamos ahora un ejemplo completo utilizando este comando y aplicando la segunda forma6 $scribamos un programa que llamaremos 8%ULU con ; opciones6 )a primera nos permitir, averiguar la cantidad de memoria disponible de nuestra HP en f0 *filobytes+ )a segunda nos permitir, averiguar el numero de libreras instaladas en el puerto )a tercera nos da la opcin salir del programa Iamos entonces al cdigo6

ANDRS R. GARCA M.

169

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

! -9 SF IFERR CLLCD " ELIJA UNA OPCION" > > "M)+'-1$ D1(7." 1 ? > "P#)-&' " 2 ? > "S$*1-" 3? ? 1 CHOOSE DROP i ! CASE G 1HH1G THEN CLLCD -4 CF MEM 1 : 0 RND SCR " MN" O "M)+'-1$ .1(7'%13*)4" 1 DISP 2 DISP WAIT DROP END

S1 )--'P'%) *$ 7$%&$**$ )% 3*$%2' C1&#*' .) *$ 6)%&$%$ L1(&$ 2'% *$( '721'%)(

%.12) .) 7'(121D% EE)2#&$ )* 2'+$%.' CFOOSE E*1+1%$ )* 1 .)E$.' )% *$ 71*$ D)51%) 6$-. *'2$* 7$-$ 1 2 ' 3 E% 2$(' .) I#) 1 1B#$* $ 1 J)( .)21- +)+'-1$ .1(7'%13*)K E%&'%2)( P'%) *$ 7$%&$**$ )% 3*$%2' L#1&$ )* -)*'E .) *$ 7$%&$*$ P'%) *$ 2$%&1.$. .) +)+'-1$ .1(7. E% *$ 71*$ D161.) 7'- 1 7$-$ 7$($- $ MN O *#B$-)( .)21+$*)( C'%61)-&) $ SCRING AP$.) MN $* -)(#*&$.' .) +)+ .1(7'%13*) P'%) )* &)Q&' "M)+'-1$ .1(7'%13*)R )% *$ 71*$ P'%) )* &)Q&' $%&)-1'- )% *$ 7$%&$**$ P'%) )* &)Q&' .) MEM disponib ! )% 7$%&$**$ E(7)-$ #%$ &)2*$ N'--$ *$ ()+1**$ .)E$.$ 7'- *$ &)2*$ 7#*($.$ C)-+1%$

ANDRS R. GARCA M.

17

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

G 1HH2G THEN P"ARS

E% 2$(' .) I#) I 1B#$* $ 2 J)( .)21- 7#)-&' K E%&'%2)( C'+$%.' I#) %'( .)6#)*6) #%$ *1(&$ 2'% *$ 2$%&1.$. .) *13-)-8$( )% 7#)-&' J%16)* 1K -)7-)()%&$.$( 7'- (# %#+)-' J%16)* 2K / *$ +)+'-1$ .1(7'%13*)

DROP SI#E STR " LINS" O "LINS EN PUERCO 4" 1 DISP 2 DISP WAIT DROP END G1HH3G THEN END END A THEN CLLCD "S) 7-'.#E' #% )--'-" MS$BOX MCULU END A

N'--$ )* %16)* 1 .) *$ 71*$ /$ I#) %' %)2)(1&$+'( )* .$&' .) 2$%&1.$. .) +)+ .1(7'%13*). O3&1)%) )* %#+)-' J2$%&1.$.K .) )*)+)%&'( .) *$ *1(&$ L' 2'%61)-&) $ SCRING P'%) )* &)Q&' LINS / *' $P$.) $ 0 .) LINS P'%) )* &)Q&' "LINS EN PUERCO 4" P'%) )* &)Q&' $%&)-1'- )% *$ 7$%&$**$ P'%) *$ 2$%&1.$. J%#+)-'K .) LINS )% *$ 71*$. E(7)-$ #%$ &)2*$ N'--$ *$ ()+1**$ .)E$.$ 7'- *$ &)2*$ 7-)(1'%$.$ C)-+1%$ E% 2$(' .) I#) I 1B#$* $ J)( .)21- ($*1-K E%&'%2)( C)-+1%$ S$*) .)* CASE S1 () 7-'.#E' )--'- )%&'%2)( M#)(&-$ "S) 7-'.#E' #% )--'-R +).1$%&) MS$BOX V#)*6) $ )E)2#&$- )* 7-'B-$+$ C)-+1%$

ANDRS R. GARCA M.

171

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9rabamos bajo el nombre 8%ULU y ejecutamos Fbsrvese que se )o(iPico el B)19 8A6

&i elegimos la opcin @

&i elegimos la opcin E

&i presionamos "1C")

"F!$C51'.F&6

ANDRS R. GARCA M.

172

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@ Iemos un comando nuevo llamado PVARS que nos devuelve una lista con la cantidad de libreras en puerto A representadas por su numero *nivel E+ y la memoria disponible *nivel @+

E $l comando C'OOSE es bastante eficiente cuando tenemos muchas opciones dentro de nuestras aplicaciones $G$!P)F E6 1hora supongamos que lo que tenemos es una lista con muchos nombres *como en una agenda+ y lo que queremos es seleccionar dicho nombre6 Ieamos la lista con los nombres6 [ T1ndres 9arciaT T&antiago Gose )opezT TBabian HerreraT T"arlos #iazT T"ristina &antamariaT TGoe satrianiT TGuan 9allardoT T1rmando #e castroT T"arlos de "astroT T$lmin "ardenasT \ 9rabamos bajo el Combre CF!0'$&6
ANDRS R. GARCA M.

173

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

CF!0'$& Ieamos el codigo6

X T "FC51"5F&T CF!0'$& @ C'OOSE DROP Y 9rabamos bajo el nombre 19$C#1 y ejecutamos6

&i elegimos a &antiago Gose )opez6

ANDRS R. GARCA M.

174

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$ste cdigo se relaciona directamente con el cdigo de la pagina :M

ANDRS R. GARCA M.

175

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9=. PLAN%ILLAS DE EN%RADA.

9=. PLAN%ILLAS DE EN%RADA.


1%&1 DEFINICI'N L$( 7*$%&1**$( .) )%&-$.$ ('% 3S(12$+)%&) #%$ 5'-+$ .) )%&-$- .$&'( $ #% 7-'B-$+$ .) +$%)-$ 3$(&$%&) 2D+'.$ / )5121)%&) /$ I#) %'( 7)-+1&) T$2)$*B#%$( 2'($( +$( I#) 7'- )E)+7*' #%$ )%&-$.$ +).1$%&) )* 2'+$%.' INPUT& L$ 7*$%&1**$( .) )%&-$.$ () )E)2#&$% ' () 2-)$% +).1$%&) )* 2'+$%.' INFORM )* 2#$* %)2)(1&$ &-)( $-B#+)%&'( 3S(12'( 7$-$ (# )E)2#21D% I#) ('%4

ANDRS R. GARCA M.

176

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

- U% &1&#*' JSCRINGK - U% 2'%E#%&' .) 2$+7'( JU%$ *1(&$K - U%$ *8%)$ .) +)%($E)( JU% SCRINGK. C*$-' )(&$ I#) #%$ 7*$%&1**$ .) )%&-$.$ &$+31U% %'( (1-6) 7$-$ +'(&-$- -)(#*&$.'( $--'E$.'( 7'- #% 7-'B-$+$ 2'+' () 6)-$ +$( $.)*$%&). U% )E)+7*' ()%21**' .) #%$ 7*$%&1**$ .) )%&-$.$ ()-8$ )* (1B#1)%&)4

9=.9 $or)as ( uti2iLar 2as ,2anti22as (

ntra(a

$xisten dos formas b,sicas de utilizar las plantillas de entrada6 ( %na en donde no especificamos el argumento permitido sin 2Qn a ( ) nsa] s. ( Ftra en donde podemos especificar el argumento, el numero de columnas y adem,s ponemos una lnea de mensajes

Ieamos entonces la primera forma6

- SIN ESPECI$ICAR EL ARGUMEN%O A EN%RAR " SIN LNEA DE MENSAJESE Para esto veamos el cdigo del ejemplo anterior *el de pendiente y longitud+6

! "ENCRADA DE DACOS" C1&#*'

ANDRS R. GARCA M.

177

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

> > "LH" ? > "AH" ? ? >? DUP DUP INFORM A 1l ejecutar este cdigo veremos lo siguiente6 L1(&$ D#7*12$ *$ *1(&$ C-)$ *$ 7*$%&1**$ .) )%&-$.$ C$+7'( #&1*1=$.'( 2'+' #%$ (#3*1(&$ / VR

"F!$C51'.F&6 @ Fbservemos que en la parte baja de la pantalla no hay un mensaje de ayuda, es decir/ no sabemos que quiere decir & ni tampoco ) E Hay solo una columna pero que tal si queremos dos^, es decir/ que & no quede sobre )^ ; $n esta plantilla no esta especificado el tipo de argumento que el usuario debe introducir, por ende se puede introducir cualquier argumento, veamos algunos PROGRAMAS

ANDRS R. GARCA M.

178

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

SIM6LICOS

LIS%AS

Pero que tal si la plantilla que creamos es para un programa que utiliza solo argumentos numricos^ 1hora veamos la segunda forma b,sica de una plantilla de entrada6

-ESPECI$ICANDO EL ARGUMEN%OO EL NUMERO DE COLUMNAS " LNEA DE MENSAJES O S%RING DE A"UDAE

UNA

'evisemos el ejemplo anterior pero ahora especificando el argumento, el numero de columnas y una lnea de mensajes o &5'.C9 de ayuda6

X T$C5'1#1 #$ #15F&T [ [ T&_T TP$C#.$C5$T A\ [ T)_T T)FC9.5%#T A\ \ [EA\ T U DUP IN$ORM Y

ANDRS R. GARCA M.

179

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$jecut,ndolo6

"F!$C51'.F&6 @ .ntente introducir un argumento que no sea numrico E "ree la plantilla cambiando a [ @ A \ *)ista que contiene el numero de columnas y el numero de espacios entre 2K4 y el espacio para poner el valor+ por [ E A \

Ra 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 )a matriz de rigidez de un elemento de cercha plana en coordenadas globales esta dada por6

C2 S9C M H E9A : L -C2 -S9C

S9C S2 -S9C -S2

-C2 -S9C C2 SC

-S9C -S2 SC S2

ANDRS R. GARCA M.

18

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

#onde6 $ _ !odulo de elasticidad del material 1 _ Jrea de la seccin transversal del elemento ) _ )ongitud del elemento " _ "oseno del ,ngulo que describe el elemento con la horizontal & _ &eno del ,ngulo que describe el elemento con la horizontal

$ntonces los datos que necesita el programa para calcular la matriz de rigidez en coordenadas globales de cada elemento son $, 1, ),

Ieamos la forma y configuracin de la cercha6

ANDRS R. GARCA M.

181

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$)$!$C5F @6 )_E<m _ ;M :N 1 _ A AAAE< m


M E

$ _ EAA b @A fP1

$)$!$C5F E6 )_Em _ A 1 _ A AAA7 m


M E

$ _ EAA b @A fP1

$)$!$C5F ;6

ANDRS R. GARCA M.

182

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)_@<m _ 8A 1 _ A AAA@< m
M E

$ _ EAA b @A fP1 5eniendo ya estos datos veamos el cdigo6 ! "NUMERO DE ELEMENCOS" > > "NO4" "NUMERO DE ELEMENCOS" ? ? >1 ? > ? DUP INFORM DROP DROP 1 SWAP FOR i "DACOS ELEMENCO " i STR O > > "E" "MODULO DE ELASCICIDAD EN MPA" ? > "A" "AREA DE LA SECCION EN M<2" ? > "L" "LONGICUD DEL ELEMENCO EN M" ? > "" "ANGULO CON LA FORIWONCAL" ? ? >2 ? > ? DUP INFORM DROP OBJ OBJ

ANDRS R. GARCA M.

183

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

DROP CLLCD "E%($+3*$%.' +$&-1= )*)+)%&' " i SCR O 1 DISP "E(7)-) 7'- 5$6'-. . " 4 DISP E A L ! E A 9 L : COS 2 < 9 E A 9 L : SIN ; COS 9 9 E A 9 L : COS 2 < NEG 9 E A 9 L : SIN ; COS NEG 9 9 E A 9 L : SIN ; COS 9 9 E A 9 L : SIN 2 < 9 E A 9 L : SIN ; COS NEG 9 9 E A 9 L : SIN 2 < NEG 9 E A 9 L : COS 2 < NEG 9 E A 9 L : SIN ; COS NEG 9 9 E A 9 L : COS 2 < 9 E A 9 L : SIN ; COS 9 9 E A 9 L : SIN ; COS NEG 9 9 E A 9 L : SIN 2 < NEG 9 E A 9 L : SIN ; COS 9 9 E A 9 L : SIN 2 < 9 >4 4 ? ARRY RND

ANDRS R. GARCA M.

184

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

A "ELE" i STR O OBJ STO TEXT NEXT A

1l ejecutar el cdigo veremos lo siguiente6

Presionamos Ff y nos pedir, datos elemento por elemento6

Presionamos Ff y nos pedir, los datos del elemento E6

ANDRS R. GARCA M.

185

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Presionamos Ff y nos pedir, los datos del elemento ;6

Presionamos Ff )os resultados quedaran grabados en el directorio actual bajo los nombres $@, $E, $;

'$&%)51#F& "F!$C51'.F&6 @ Primero que todo recomiendo hacer un D6UG a este cdigo por si no se entendi algo E .ntenten 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

ANDRS R. GARCA M.

186

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; .mportante tener la HP en modo #$9, de lo contrario los resultados no ser,n correctos $sto se logra poniendo la palabra DEG al principio del Programa

ANDRS R. GARCA M.

187

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9>. EL EN%ORNO SOLVR.

9>. EL EN%ORNO SOVR.


9>.9 Co)o so2ucionar cuacion s ( ntro ( un ,ro.ra)a. "omo definicin previa, el $ntorno 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/ 1quellas ecuaciones donde tenemos que hacer 2tanteo4 para encontrar el valor de la incgnita $l entorno &F)I' 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 alg-n tipo de fluido a presin se utiliza la $cuacin de "F)$0'FFf que viene dada como6 @ c f _ ( *E b )F9 *@ c ; N b fs c# ] E <@ c ' b f + #onde6 f _ Bactor de friccin *1dimensional+ fs _ "oeficiente de rugosidad del material de la tubera *en mm+

ANDRS R. GARCA M.

188

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

# _ #i,metro de la tubera *$n mm+ ' _ n de 'eynolds *1dimensional+ "omo 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 &F)I' para solucionar este tipo de ecuaciones, considerando el siguiente ejemplo6

EJEMPLO 9E &e quiere encontrar el valor del factor friccin en una tubera que conduce agua con los siguientes datos6 fs _ A @E mm *5ubera de concreto ""P+ # _ ;AA mm ' _ 7E@:7N AN Ieamos el cdigo para luego explicarlo6

! -3 CF "M( JE% ++K" " " INPUT OBJ "DIAMECRO JE% ++K4" " " INPUT OBJ "0 DE REXNOLDS4" " " INPUT OBJ (s D R ! CLLCD "U% +'+)%&' 7'- 5$6'-

ANDRS R. GARCA M.

189

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

R)('*61)%.' )2#$21'%.." 3 DISP G 1:Y@H-J29LOGJ1:3.79JM(:DKO2.51:JR9Y@KKK G EVAL G XH G 2 LIST GELG STO MINIT @ MCALC @ MROOT 5 RND STR "5H" SWAP ) MS$BOX A A

$jecutemos el cdigo6

ANDRS R. GARCA M.

19

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ $n la lnea @ vemos (; C$ lo que nos indica que estamos cambiando el B)19 ; $sto es de vital importancia ya que este B)19 controla el modo de funcin numrica o simblica &iempre debe estar en simblica, para esto ponemos (; C$. E )uego vemos que pide la entrada de los datos necesarios mediante el comando INPU%. ; 8s D R #efine las variables locales fs, #, ' 7 CLLCD Pone la pantalla en blanco < T%n momento por favor 'esolviendo ecuacin T ; DISP. Pone el texto en el nivel ; de la pantalla M Z @ciB_(*Eb)F9*@c; Nb*fsc#+]E <@c*'biB+++ Z EVAL. 'ealiza la operacin N Z R_A Z "onforma la ecuacin `R_Aa 'ecordemos que el entorno &F)I' utiliza dos o m,s ecuaciones que van dentro de una lista $sta segunda ecuacin se puede conformar como una quiera siempre y cuando no contenga variables que contenga la primera ecuacin n st caso. : E LIS% "onforma la lista 8 Z$KZ S%O 9raba la lista con el nombre $K
ANDRS R. GARCA M.

191

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@A MINI%. Est co)an(o s nu 0o ,ara nosotrosO 1 2o -u 3ac con 2as (os cuacion s.

s ( Pinir 2a 2ista

@@ B MCALC Est co)an(o ta)*i+n s nu 0o ,ara nosotrosO 1 2o -u 3ac ( Pinir a $ co)o 2a inc/.nita a ( s, ]ar. @E. B MROO% Est co)an(o ta)*i+n s nu 0o ,ara nosotrosO 1 2o -u 3ac

( Pinir a $ co)o 2a 0aria*2 ,ara 2a cua2 0a a ncontrar 2as raQc s o c ros ( 2a cuaci/n. @;. < RND. 5runca la respuesta a < lugares decimales @7 S%R "onvierte la respuesta a &5'.C9 para mostrarla mediante el comando MSG6OW. @< Tf_T S[AP ] 2$tiqueta la respuesta4 2f _ A A@N4 @M MSG6OW "rea una ventana de dialogo para mostrar la respuesta @N $l programa nos deja grabadas algunas variables en el directorio actual como * B, !P1', $K+ Las cua2 s 3a1 -u 2i)inar.

@N 'ecomiendo hacer un #0%9 a este cdigo NO%AE A-uQ n 2a >BG s n c sario )o(iPicar 2 $LAG 9<:. Co)o ] rcicio a0 ri.` n ,or-u .

EJEMPLO ;E &e desea calcular la altura de lamina *R+ en un canal trapezoidal que trabaja a flujo libre )a seccin es como se indica6

ANDRS R. GARCA M.

192

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

1 Z

L$ )2#$21D% 7$-$ .)&)-+1%$- *$ $*&#-$ .) *$+1%$ X 61)%) .$.$ 7'- *$ )2#$21D%4 Z J 3 O W 9 XK 9 X [ 2.5 : 3 O 2 9 X 9 JW2 O 1K H JL 9 % : S1:2K1.5 D'%.)4 X H A*&#-$ .) *$ *$+1%$ 3 H N$() .)* 2$%$* )% + W H P)%.1)%&) .)* &$*#. L H C$#.$* )% +<3 : ( % H C')5121)%&) .) 5-1221D% .) M$%%1%B S H P)%.1)%&) *'%B1&#.1%$* E%&'%2)( (#7'%1)%.' *'( (1B#1)%&)( .$&'(4 3H2+ W H 1.5 L H 1 +<3 : ( % H . 17 SH . 15

$ntonces veamos el cdigo6

! "DACOS PARA ALCURA DE LAMINA"

ANDRS R. GARCA M.

193

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

> > "N" "NASE DEL CANAL EN +" > "W" "PENDIENCE DEL CALUD" > "L" "CAUDAL EN M<3:S" ? ? ? ? ?

> "N" "COE@ICIENCE DE MANNING" ? >2 ? > ? DUP INFORM DROP OBJ DROP 3WL%S ! CLLCD

> "S" "PENDIENCE LONGICUDINAL DEL CANAL"

GJJ3OW9XK9XK<2.5:J3O29X9YJW<2O1KKHJL9%:S<.5K<1.5G E"AL G\H G 2 LISC GELG STO MINIT X MCALC X MROOT 2 RND "ALCURA DE LAMINA" > > "XH" "ALCURA DE LAMINA EN M" >1 ? 4 ROLL 1 LIST DUP INFORM A ??

ANDRS R. GARCA M.

194

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$jecutemos entonces este cdigo6

"F!$C51'.F&6 @ "omo se puede ver, aqu se utilizo una plantilla de entrada para mostrar un resultado E &i algo no se entendi, recomiendo hacer un D6UG.

$spero se haya entendido la forma como se utiliza el entorno SOLVR solucionador de ecuaciones, herramienta supremamente -til y f,cil de usar

ANDRS R. GARCA M.

195

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

196

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9:. EL EN%ORNO PIC%.

9:. EL EN%ORNO PIC%.


9:.9 DE$INICIN $l entorno P."5 es una herramienta de la HP que nos permite crear y editar dibujos creados por nosotros mismos *que tambin llamaremos 9'F0&+ y representaciones graficas procedentes de datos matem,ticos 1l igual que los dem,s objetos de la HP, los objetos gr,ficos pueden colocarse en la pila y archivarse dentro de variables $n la pila un objeto grafico se ve de la siguiente forma6

#onde6 @;@ es el ancho en puntos *pxeles+ M7 es la altura en puntos *Pxeles+ $l tama3o por defecto del entorno en coordenadas es *(M < aM <+ en L y *(; @ a ; @+ en R

ANDRS R. GARCA M.

197

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9:.; $ORMAS DE VISUALI&AR EL EN%ORNO PIC% $xisten dos formas b,sicas *entre otras+ de visualizar el entorno PIC%E Ieamos a travs un cdigo la primera forma6 X [ \ PVIE[ Y $ste peque3o programa nos permite visualizar el entorno PIC% bloqueando el teclado, es decir a la -nica tecla que responde es a ON. Ieamos que pasa al ejecutarlo6

Cos esta mostrando el entorno P."5 con el ultimo 9'F0 que se almaceno all sea proveniente de alg-n dato matem,tico como en este caso que lo ultimo que se grafico fue la ecuacin R_L o sea proveniente de alguna 9'F0 personalizado que se visualizo en este entorno &ea cual sea la manera de visualizar el entorno, para que nos se vea lo ultimo que visualizo all utilizamos el comando ERASE. Ieamos el cdigo anterior con este nuevo comando que lo que hace es borrar por completo lo que hay en PIC%.
E

ANDRS R. GARCA M.

198

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

&i presionamos CANCL volveremos a la pila6

Ieamos a travs un cdigo la segunda forma6

X ERASE Ta< a< U PVIE[ < [AI% Y "F!$C51'.F&6 @ Ta< a< U son las coordenadas por defecto de las esquinas del entorno PIC%. E PVIE[ nos muestra el entorno PIC% Pero debemos poner el < [AI% para lo mantenga, de lo contrario se visualizara muy r,pido y luego volvera a verse la pila Ieamos lo que hace el cdigo6

ANDRS R. GARCA M.

199

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; Prubenlo sin el < [AI%. 7 "uando visualizamos el entorno de esta forma se nos crea una variable llamada PPAR la cual contiene algunos par,metros del entorno como las dimensiones el tipo de funcin a graficar activada actualmente y el origen de coordenadas

$stas son las formas b,sicas de visualizar el entrono PIC%, que junto con otros comando que veremos a continuacin nos permiten crear programas bastante elaborados 9:.= COMO PONER " VISUALI&AR %EW%O EN EL EN%ORNO PIC%. @< ; @ !$#.1C5$ $) "F!1C#F REPLE $l comando '$P) permite colocar texto en entorno utilizando tres argumentos a seguir6 ( P."5 ( )as coordenadas donde deseamos colocar el texto ( R un texto convertido en 9'F0 Para convertir el texto a 9'F0 simplemente lo colocamos en la Pila dentro de delimitadores de &5'.C9, le damos un tama3o que puede estar entre A y ; y ejecutamos el comando GRO6. $l cual lo que hace es convertir el &5'.C9 con el texto a GRO6. Ieamos en ejemplo6 #eseamos colocar nuestro nombre en el entorno P."5 en las coordenadas k(M <, ; @ *esquina superior izquierda+ Ieamos el cdigo6 F ERASE Ta< a< U
ANDRS R. GARCA M.

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

PVIE[ PIC% 4-?.:O=.97 ZAn(r s Ricar(o Garcia Mora2 sZ 9 GRO6 REPL < [AI% G E] cut )os 2 c/(i.oE

Presionamos cualquier tecla *en este caso EN%ER+

I1'.10)$ PP1'

ANDRS R. GARCA M.

2 1

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ Iemos Kue nos cre la variable PP1' E Cos dejo el numero de asignacin de tecla de la ultima tecla pulsada ; $n este caso se escogi el tama3o de letra mas peque3o 9 Ieamos el cdigo pero ahora borrando PP1', borrando el numero de asignacin de tecla dejado y con tama3o de letra igual a E F ERASE Ta< a< U PVIE[ PIC% 4-?.:O=.97 ZAn(r s GarciaZ ; GRO6 REPL < [AI% DROP T PPAR U PURGE G

Pulsamos $C5$'6

ANDRS R. GARCA M.

2 2

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@< ; E !$#.1C5$ $) "F!1C#F GWORE $ste 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 Ieamos un ejemplo6 &upongamos que en el entorno PIC% ya esta creado el siguiente 9'F06

R queremos colocar texto dentro del recuadro negro Ieamos como seria el cdigo6

F Ta< a< U PVIE[ PIC% 4->.:O<7 ZAn(r s GarciaZ ; GRO6 GWOR < [AI% DROP T PPAR U PURGE G

ANDRS R. GARCA M.

2 3

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

&e vera alo as6

0ueno, no me quedo muy en el centro que digamos pero el ejemplo sirve para ver la diferencia #onde esta en blanco pone pxeles Cegros *prende pxeles+ y donde esta en negro pone pxeles blancos *apaga pxeles+

5ambin podemos visualizar 9'F0& creados con anterioridad por nosotros mismos Ieamos 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 Iamos a verlo de dos maneras6

- CREANDO EL GRO6 4cua(ro n .ro

st

caso7 PRIMERO " LUEGO

COLOCHNDOLO DEN%RO DEL PROGRAMAE Para crear el cuadro negro entramos al entorno P."5 pulsando la tecla que contiene la flecha izquierda *segunda fila cuarta tecla+6

ANDRS R. GARCA M.

2 4

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Pulsamos la tecla EDI% y en las teclas de !$CH veremos las herramientas de dibujo

Para crear el cuadro negro lo haremos mediante la herramienta 6OW la cual dibuja un recuadro as6 Cos paramos con la cruz en donde queremos que quede la esquina superior del cuadro *en este caso el cuadro negro+

$jacutamos el comando 6OW y nos paramos con la cruz en donde queremos que quede la esquina inferior derecha del cuadro *en este caso cuadro negro+

ANDRS R. GARCA M.

2 5

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Presionamos 6OWE

&ubimos un pxel hacia arriba y uno hacia la izquierda y volvemos a ejecutar 6OWE

'epetimos esta operacin *subir un pxel y uno hacia la izquierda+ hasta que el cuadro este totalmente relleno6

ANDRS R. GARCA M.

2 6

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

NO%AE Para -u 2a cruL s 0 a n *2anco ,u2sa)os 2a t c2a !J&alimos del editor pulsando CANCLE

Iolvemos al entorno pulsando la tecla que tiene la flecha a la izquierda6

%bicamos la cruz en la esquina superior izquierda del cuadro negro6

ANDRS R. GARCA M.

2 7

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Pulsamos la tecla EDI% luego la tecla NEW% dos veces *es decir NEW% NEW%+ y luego la tecla SU6

!ovemos la cruz a la esquina inferior derecha y de nuevo presionamos SU6

&alimos del entorno P."5 presionando "1C") y ya tendremos nuestro 9'F0 *cuadro negro+ creado en la pila6

ANDRS R. GARCA M.

2 8

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)o grabamos bajo el nombre 9'1B6

9'1B

1hora veamos las coordenadas donde mas o menos quedara centrado el texto que vamos a poner *en este caso el titulo del programa %OPORAD7O teniendo en cuenta que va a ser en tama3o E6 $ntramos el entorno presionando la tecla que contiene la flecha hacia la izquierda6

ANDRS R. GARCA M.

2 9

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

R nos paramos donde mas o menos quedara centrado el texto Para obtener esas coordenadas presionamos la tecla $C5$' y salimos del entorno presionando "1C")6

Para averiguar la coordenadas de la esquina superior izquierda donde vamos a colocar el cuadro lo hacemos de la misma forma $n este caso son *(7 7,E @+ Ra sabemos cuales serian las coordenadas del cuadro negro, del texto que va dentro del cuadro negro y tambin tenemos nuestro 9'F0 *cuadro negro+ ya creado entonces vamos al cdigo6

F ERASE Ta< a< U PVIE[ PIC% 4->.>O;.97 GRA$ REPL PIC% 4-=.;O9.=7 Z%OPORADZ

ANDRS R. GARCA M.

21

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; GRO6 GWOR < [AI% DROP T PPAR U PURGE G $jecutemos $ste cdigo6

"omo podemos ver que el texto no quedo tan centrado entonces modifiquemos sus coordenadas6

F ERASE Ta< a< U PVIE[ PIC% 4->.>O;.97 GRA$ REPL PIC% 4-;.:O9.=7

ANDRS R. GARCA M.

211

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Z%OPORADZ ; GRO6 GWOR < [AI% DROP T PPAR U PURGE G

1gregumosle el autor y el a3o6

ANDRS R. GARCA M.

212

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 @ #e la misma manera como se creo el cuadro negro se pueden crear diferentes dibujos como crculos tri,ngulos arcos etc E Para mucha gente es engorroso crear los GRO6S utilizando el entorno PIC% para lo cual existen otros programas para P" como P1.C5, luego se utiliza un programa llamado LnI.$> el cual le coloca extensin grob para que la HP lo pueda mostrar

( CREANDO EL GRO6 DEN%RO DEL PROGRAMAE Ieamos el cdigo, mucha atencin6 F ERASE Ta< a< U PVIE[ 4->.>O;.97 KWK S%O 4>.>O;.97 K"K S%O 9 =: $OR i W DUP 4<O-<.97 ! KWK S%O " DUP 4<O-<.97 ! K"K S%O

ANDRS R. GARCA M.

213

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

LINE NEW% PIC% 4-;.:O9.=7 Z%OPORADZ ; GRO6 GWOR PIC% 4->O<.=7 ZPorE Santia.o Lo, LZ 9 GRO6 GWOR PIC% 4-9O-<.:7 Z;<99Z 9 GRO6 GWOR < [AI% DROP T W " PPAR U

ANDRS R. GARCA M.

214

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

PURGE G $jecutemos este cdigo6

"F!$C51'.F&6 @ Iemos que aparece un comando nuevo llamado LINE $ste nos permite dibujar lneas en el entorno PIC% dados dos pares de coordenadas *x@,y@+ *xE,yE+ con xE bx@ E 'ecomiendo enf,ticamente hacer un D6UG a este cdigo ; #e la manera como se creo el cuadro negro se puede crear cualquier dibujo que queramos

9:.> COMO PONER " VISUALI&AR GRH$ICOS EN EL EN%ORNO PIC%

ANDRS R. GARCA M.

215

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

0ueno, parte de esto se explico en el numeral anterior pero no importa/ veamos otros ejemplos6 $G$!P)F @6 Iamos a suponer que queremos poner nuestro nombre en el entorno P."5 pero ahora hacindolo letra a letra, primero con una pausa *lapso de tiempo+ entre letras y despus sin pausa Ieamos el cdigo6 ( "FC P1%&16 X ERASE T a< a< U PVIE[ 4-?.:O=.97 KCOK S%O T1C#'$& ' 91'".1 !T n F 9 9@ $OR i PIC% CO DUP 4<.>O<7 ! KCOK S%O n i DUP SU6 S%R 9 GRO6 REPL

ANDRS R. GARCA M.

216

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

<.9 [AI% NEW% < [AI% T CO PPAR U PURGE G G $jecutemos este cdigo6

1s sucesivamente hasta formar el nombre completo6

( &.C P1%&16

ANDRS R. GARCA M.

217

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

&implemente quitamos el >1.5 y el texto se ubicara m,s r,pido en pantalla

$G$!P)F E6 1hora vamos suponer que lo que queremos graficar son datos estadsticos, en este caso una nube de puntos provenientes de tomar datos de E variables por ejemplo6 altura *en msnm+ vs temperatura *en "+ )os datos serian los siguientes *estos son arbitrarios a manera de ejemplo+
ALTURA *+sn+, TEMPERATURA C 38 3 34 6 32 9 31 12 3 15 26 18 25 21 2 24 16 27 13 3 1 33 8 36 7 39 5 42 3 45 1
A

Ieamos el cdigo completo de un programa que grafica estos datos a manera de puntos en el entorno PIC%6

X T#15F&T [ [ Th_T T1lturas en msnm en [ \T < \ [ T5_T T5emperaturas en " en [ \T < \ \ [@ A \[\

ANDRS R. GARCA M.

218

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

DUP IN$ORM DROP '% F ERASE '% 9. GE% SOR% DUP SI&E GE% -<.: S[AP WRNG '% ;. GE% SOR% DUP SI&E GE% -<.: S[AP "RNG T a <( a <( U PVIE[ '% O6J DROP ;. F R C G DOLIS% 9. F PIWON G DOSU6S DRAW G <. [AI% DROP G $jecutando el cdigo6

ANDRS R. GARCA M.

219

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

"F!$C51'.F&6 $s 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 1 esta altura del manual solo har comentarios sobre los comandos nuevos dentro del cdigo6

@ WRNG 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 argumentos6 ( 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

E "RNG lo que hace es fijar el rango de visualizacin del eje R en este caso temperaturas en grados centgrados utilizando los siguientes argumentos6 ( 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

; R C 5oma E valores reales de la pila y los transforma en complejo *x,y+

ANDRS R. GARCA M.

22

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

7 PIWON 5oma un complejo como el que aparece en la pantalla anterior y 2prende4 el pxel correspondiente en el entorno PIC% 4,r n(i(o7

$jecutamos P.LFC

5. DRAW Co necesita argumento alguno para ejecutarlo y lo que hace es dibujar los ejes x e y en el entorno PIC%.

$G$!P)F ;6 &upngase que queremos escribir un programa que resuelva estructuras *prticos+ en E dimensiones que dibuje la estructura que deseamos resolver $scribamos es el cdigo que dibuja la estructura6 $l cdigo adem,s pide las dimensiones de cada elemento del prtico $l #imensionamiento del entorno P."5 se hace de manera similar al ejemplo anterior F ERASE T U KDA%AK S%O -.: ZA2turaZ ZZ INPU% O6J .: ! "RNG -.: ZAnc3oZ ZZ INPU% O6J .: ! WRNG 9. ZCuantos 2 ) ntos soncZ ZZ INPU% O6J

ANDRS R. GARCA M.

221

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

$OR i ZDatos 2 ) nto Z i S%R ! T T ZCOORZ ZCOORD INIC. " $INAL. EN TUZ :. U T Z6 ' LZ Z6ASE AL%URA " LONGI%UDZ :. U U 9. T U DUP IN$ORM DROP S%R DA%A ! KDA%AK S%O NEW% %EW% T a <( a <( U PVIE[ DA%A SI&E 9. S[AP $OR i DA%A REVLIS% i GE% O6J O6J DROP DROP E9 F E9 9. GE% E9 ;. GE% R C E9 =. GE% E9 >. GE% R C LINE .; [AI% G NEW% -><. C$ T PPAR U PURGE <. [AI% G Ieamos el prtico que queremos resolver6

ANDRS R. GARCA M.

222

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

@E 7 7 ; @E @< @N @: @A @; @M @8 8 ; 7 < @@ @7 : 7 M N

EA

E@

5 F#1 & )1 & #.&5 1 C".1 & $C !$5 'F& 5 F#1 & )1 & &$"".FC$& #$ A ;A L A 7

)os elementos ya est,n numerados como se puede apreciar6 $jecutemos el cdigo con origen de coordenadas en el apoyo @

ANDRS R. GARCA M.

223

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

1s sucesivamente hasta llegar el elemento Co E@ y entonces veremos6

"F!$C51'.F&6 Cinguno

9:.: COMANDOS MUE PERMI%EN OPERAR SO6RE EL EN%ORNO PIC%

ANDRS R. GARCA M.

224

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

#e estos comandos ya hemos citado algunos Ieamos otros6

9:.:.9 6LAN8E "rea un 9'F0 en blanco en la pila del tama3o nnx puesto en el nivel E por nny puesto en el nivel @ $j6 "reemos un grafico de EA de ancho por ;A de alto

E] cuta)os 6LAN8.

9:.:.; LCD 5oma un 9'F0 de la pila y lo muestra en la pantalla sobrescribiendo esta totalmente $j6 &uponiendo que el 9'F0 es un circulo6

ANDRS R. GARCA M.

225

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9:.:.= LCD #evuelve a la pila el 9'F0 de la pantalla actual6 Co requiere poner ning-n argumento en la pila6

CF516 $jecuten ahora LCD dMu+ ,asac

9:.:.> ARCE 5oma ; argumentos de la pila6 ( C.I$) 76 $l centro del arco de la forma *x,y+ ( C.I$) ;6 'adio del arco, un real ( C.I$) E6 %n angulo inicial, un real ( C.I$) @6 %n angulo final, un real

$jemplo6 Ieamos el siguinte codigo6

F ERASE T a< a< U PVIE[ 4<O<7 =

ANDRS R. GARCA M.

226

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

< >: ARC < [AI% G $jecutemos este cdigo6

"ambiemos el 1ngulo a de 7< a ENA6

Para finalizar este capitulo escribamos la presentacin para un programa que dise3a el Ceopreno para los apoyos de las vigas en el estribo de un puente y donde se utilizan algunos comandos del entorno P."5 *por ejemplo+6 F ERASE

ANDRS R. GARCA M.

227

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

T a< a<U PVIE[ 4-?.:O=.97 4?.:O-=.97 6OW 4-=.:O-;7 KCOK S%O 9 ;? S%AR% PIC% CO DUP 4<O<.;7 ! KCOK S%O GRA$ REPL NEW% PIC% 4-=.?O;.97 a@< a:< 6LAN8 REPL 4->.@O9.A7 KCOK S%O ZPorE Santia.o Jos Lo, LZ n F 9 ;> $OR i PIC% CO DUP 4<.>O<7 ! KCOK S%O n

ANDRS R. GARCA M.

228

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

i DUP SU6 S%R 9 GRO6 REPL NEW% G PIC% 4-?.=O<.:7 ZPr sion 9 ,ara iniciarZ 9 GRO6 REPL PIC% 4-?.=O-<.:7 ZPr sion ; ,ara sa2irZ 9 GRO6 REPL PIC% 4->O-;7 ZCOLOM6IA ;<<:Z ; GRO6 REPL T CO PPAR U PURGE

ANDRS R. GARCA M.

229

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

DO PIC% NEG <.; [AI% UN%IL 8E" END G $jecutando el cdigo6

&e ven estas dos ultimas pantallas hasta que se pulsa una tecla

"F!$C51'.F& C.C9%CF

ANDRS R. GARCA M.

23

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

ANDRS R. GARCA M.

231

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

9?. LI6RERAS.

9?. LI6RERAS
9?.9 DE$INICIN %na 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 %na librera puede residir en cualquiera de los puertos disponibles en la HP a menos que esta especifique lo contrario )os puertos disponibles en la HP789 son el A, @, E y los podemos visualizar pulsando la tecla de cambio derecha y luego la tecla donde esta el E6

ANDRS R. GARCA M.

232

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Presionando estas dos teclas veremos lo siguiente6

#onde podemos apreciar los puertos A, @, E y tambin vemos que hay tres libreras instaladas GMENUO JaLLO AAS'%O. &i queremos saber en que puerto esta instalada cualquiera de estas libreras buscamos en cada uno de los puertos Para esto pulsamos la tecla de mencorrespondiente a cada uno de los puertos hasta encontrar la librera que buscamos

9?.; COMO INS%ALAR " DESINS%ALAR LI6RERAS. Para explicar esto veamos paso a paso la que hay que hacer para INS%ALAR una librera6 @ Ponemos la librera que queremos instalar en el nivel @ de la pila6

ANDRS R. GARCA M.

233

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

E Ponemos en la pila el numero del puerto donde queremos instalar dicha librera, en este caso elegimos el A6

; Pulsamos la tecla S%O *segunda tecla tercera fila+ y desaparecer, la librera de la pila6

7 1hora manteniendo presionada la tecla ON oprimimos la tecla C *tercera tecla primera fila+ para as reiniciar la HP y pegar la librera en la '1! de la HP

ANDRS R. GARCA M.

234

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

#e 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 E y veremos que nuestra librera ya esta instalada6

11&H5F

1hora vemos como DESINS%ALAR libreras suponiendo que vamos a desinstalar la librera que acabamos de instalar6

@ 1veriguamos 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 E y la tecla de men- correspondiente al puerto en este caso A6

ANDRS R. GARCA M.

235

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

P%$'5F A Presionamos la tecla de menu @<NA para saber si esta es la librera a desinstalar6

$n efecto vemos que se trata de la la librera 11&H5F

E Ra teniendo el numero *@<NA+ borramos de la pila la librera y ponemos el numero del puerto y el numero de la librera as6

ANDRS R. GARCA M.

236

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

)o duplicamos presionando $C5$' *equivalente en este caso a un #%P+

$jecutamos el comando #$51"H *para despegar la librera de la '1! de la HP+ escribiendolo en la pila o busc,ndolo en al "15 $n este caso lo escribiremos en la pila6

P%)&1!F& $C5$'

ANDRS R. GARCA M.

237

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; $jecutamos el comando PURGE escribindolo en la pila y listo, ya esta nuestra librera desinstalada6

9?.= COMO CREAR LI6RERAS Para crear libreras existen muchos programas como LI6O LI68I% 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 ).0f.5 I@ @ *el cual va en el archivo zip donde se encuentra este libro+ escrito por el se3or #ante "amargo el cual sirve para crear libreras, instalar y desinstalar libreras entre otras cosas $l programa que pasaremos a librera ser, un peque3o programa que contiene ; variables el cual sirve para calcular las ,reas de dos figuras geomtricas/ un triangulo y un trapecio )as variables son como sigue * primero esta el nombre de la variable y luego la tarea que ejecuta+6 ( INICIO6 es la entrada al programa y contiene la presentacin de este y las opciones ( %RIA6 "alcula el ,rea del triangulo en funcin de su altura ( %RAPE6 calcula el ,rea del trapecio en funcin de sus bases

ANDRS R. GARCA M.

238

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

CF516 $sto es solo un ejemplo ya que es un programa supremamente sencillo y adem,s se puede escribir en una sola variable si se quiere as Ieamos el programa6

$sto en el caso de que se eligiera triangulo

ANDRS R. GARCA M.

239

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

Para 5rapecio6

1hora veamos como se crea la librera6 @ #ebemos tener un directorio donde se encuentre el programa con todas sus subrutinas6

1qu estamos en el directorio J'$1& *Iase la parte superior de la pantalla +

E 1hora corremos el programa libmit6

ANDRS R. GARCA M.

24

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

P'$&.FC1!F& Ff

P'$&.FC1!F& Ff

P'$&.FC1!F& &. R $C5$'

$) CF!0'$ $& 1'$1&@ EN%ER

@<AA PF' $G$!P)F EN%ER

ANDRS R. GARCA M.

241

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

P'$&.FC1!F& EN%ER

5'.1 5'1P$ P'$&.FC1!F& EN%ER

P'$&.FC1!F& .C&51 EN%ER

$)$9.!F& P%$'5F A R O8

&e apagara la HP )a prendemos y ya tenemos nuestra librera creada6

).0'$'S1 J'$1&

&i presionamos esta tecla de !$CH ,reas veremos solamente la variable .C.".F6

ANDRS R. GARCA M.

242

PROGRAMACIN EN USER-RPL CON EJEMPLOS APLICADOS A ING. CIVIL SEGUNDA EDICIN

; 'ecomiendo que despus de haber creado la librera reiniciemos la HP presionando ON C.

6I6LIOGRA$AE ( 9ua del usuario de la "alculadora HP 7:9 y 789 ( #e nuevo prefiero no citar la 0ibliografa >eb ya que me hara demasiado extenso

ANDRS R. GARCA M.

243

Вам также может понравиться