1
El presente tutorial expone un curso básico de programación en ordenadores HP, cuyo único fin es facilitar facilitar la resolución de problemas convencionales convencionales de Ingeniería, Ingeniería, mediante la codificación de programas iterativos que nos ayudan a reducir el tiempo de trabajo. Las calculadoras calculadoras Hewlett-Packard nos permiten permiten realizar la codificación codificación de programas en tres lenguajes diferentes como ser: User-Rpl, System-Rpl y Saturno Assembler, de tal manera manera que el el uso de cada cada uno de estos lenguajes lenguajes presenta sus respectivas ventajas y desventajas. User-Rpl es un lenguaje de programación segura, ya que nos permite eliminar toda presencia de errores en programas codificados, de tal manera que reduce el riesgo de ocasionar fallas en el sistema durante su ejecución. System-Rpl y Saturno Assembler, son lenguajes de programación mucho más avanzados, ya que los programas codificados en estos ocupan espacios pequeños y son 10 veces más rápidos que los codificados en User-Rpl, pero también son susceptibles a ocasionar errores en el sistema del ordenador debido a fallas presentes en la codificación, es por esto que se recomienda saber programar en User-Rpl antes de hacer uso de estos otros lenguajes. Los ejemplos presentes en en este tutorial tutorial son aplicados a la Termodinámica, Termodinámica, Operaciones Unitarias e Ingeniería Petrolera en general.
Nota: , es un paquete que nos permite realizar la codificación de programas en una PC, se lo puede obtener en la siguiente dirección , creado por , se recomienda su uso para el presente curso.
2
Son elementos de información usados por las calculadoras HP, donde cada objeto tiene su propio propio número número de identificación identificación como se observa a continuación. continuación. TIPO DE OBJETO
NUMERO DE IDENTIFICACION
EJEMPLOS
Número Real
0
1.01
Número Complejo
1
(3.2 , 8.95i)
Secuencia de Caracteres - String
2
"Recycler Energy"
Sistema Real - Vector o Matriz Real
3
[6 1], [[5 9][4 7]]
Sistema Complejo - Matriz Compleja
4
[(3,7) (1,6)]
Lista
5
{ "RESERVOIR" 1666 }
Nombre Global
6
'PETROLEUM'
Nombre Local
7
'z' << WHILE WHILE z>0 z>0 THEN exe END>>
Programa
8
<< -> A ' LOG(A)' >>
Objeto Algebraico
9
'LOG(A)'
Entero Binario
10
#7B9Ah
Objeto de Gráfico
11
Graphic 131 x 64
Objeto Etiquetado
12
F_fricción: 1.223E-2
Objeto de Unidades
13
16_bbl
Nombre de XLibrería
14
HW-DW 1243 2
Directorio
15
DIR A 5 B 2 …END
Biblioteca - Librería
16
Library 1234: HW-DW
Objeto de Seguridad
17
Backup
Función Incorporada
18
SIN, COS, TAN, LN, LOG, …
Comando Incorporado
19
IF, CASE, START, FOR, DO, WHILE, …
Binario - System Rpl
20
:: @
Real Extendido
21
1.2343E-16
Complejo Extendido
22
(1.2+2i, 1.2-2i)
Carácter
24
Chars
Objeto Codificado
25
Code
Datos de Librería
26
Library Data
Objeto External 1
27
External x 1h
Números Enteros
28
354267
Objeto External 3
29
External x 3h
Fuentes
30
Ft10_13: Arial
Los comandos TYPE TYPE y VTYPE VTYPE nos permiten permiten conocer el número de identificación identificación de un objeto.
3
Ejemplo: Colocamos el objeto en el nivel 1 de la pila.
Ejecutamos el comando TYPE de la siguiente forma:
y
El comando TYPE también puede ser usado para la creación de programas en función al tipo de objeto a utilizar.
Cuando se realiza la codificación de programas, uno debe especificarle al ordenador el tipo de objeto a tratar, es por ello que se llega a utilizar caracteres (delimitadores), con el objetivo de diferenciar un objeto del otro.
4
CARÁCTER
USO
EJEMPLO
Ninguno
Números reales, otros.
576.5968
^
Potencias
x^2
''
Operaciones Algebraicas y Nombres
'x+y' ; 'exe'
( )
Números Complejos y Operaciones Algebraicas
(2.3,-1.7) ; (x^(3+y))/z
{}
Listas
{123}
[]
Sistemas (Vectores, Matrices, etc.)
[ 3.4 7.3 9]
<< >>
Programas
<< → x y z '(x^(3+y))/z'
""
Strings
"Hp, m = "
_
Unidades
16_bbl
Los ordenadores ordenadores HP diferencian diferencian entre entre mayúsculas mayúsculas y minúsculas, minúsculas, es por esto esto que se aconseja tener mucho cuidado al momento de escribir las funciones, ya que estas deben ser escritas en mayúsculas y pasarles los datos entre paréntesis. Función
Representa
SQRT(x)
Raíz cuadrada de "x"
SQ(x)
Cuadrado de "x" , x²
EXP(x)
Exponente de "x" , ex
LOG(x)
Logaritmo en base 10 de "x"
LN(x)
Logaritmo natural de "x"
SIN(x)
Seno de "x"
COS(x)
Coseno de "x"
TAN(x)
Tangente de "x"
ASIN(x)
ArcSeno de "x" , Sin-1(x)
ACOS(x)
ArcCoseno de "x" , Cos-1(x)
ATAN(x)
ArcTangente de "x" , Tan-1(x)
SINH(x)
Seno Hiperbólico de "x"
COSH(x)
Coseno Hiperbólico de "x"
TANH(x)
Tangente Hiperbólico de "x"
ASINH(x)
ArcSeno Hiperbólico de "x" , Sinh -1(x)
ACOSH(x)
ArcCoseno Hiperbólico de "x" , Cosh -1(x)
ATANH(x)
ArcTangente Hiperbólico de "x" , Tanh-1(x)
ABS(x)
Absoluto de "x"
x!
Factorial de "x"
DERVX(f)
Derivada de la función "f", variable independiente "x"
INTVX(f)
Integral de la función "f", variable independiente "x"
MANT(x)
Devuelve siempre un entero, entero, 50/3 = 16.67 -> 1.667 ó 0.364/7 = 0.052 -> 5.2
5
IP(x)
Devuelve solo la parte entera, 50/3 = 16.67 -> 16
FP(x)
Devuelve solo la parte decimal, 50/3 = 16.67 -> 0.67
FLOOR(x) CEIL(x)
Devuelve el entero más bajo, 19.9652 -> 19 Devuelve el entero mas grande, 13.2314 -> 14
6
Se entiende por variable, al nombre que se le asigna a un objeto en un programa, que generalmente se almacena en el directorio HOME ya sea de forma permanente o indefinida.
Este tipo de variable solo existe mientras en programa se ejecuta, además que ocupa poco espacio y es mucho más rápido al ejecutarse. Las variables variables locales se crean con el el comando → de la siguiente forma: Ejemplo: Codifique un programa que nos devuelva solo la parte fraccionaria de la división de dos números. Código : << → A B ‘FP(A/B)’ >>
Guardamos el programa bajo el nombre de Ejem1 con
* Se puede observar que después del comando → se introducen los nombres que queremos dar a las variables. Ejecutamos el programa de la siguiente manera:
7
Estas variables se almacenan en el directorio HOME de forma indefinida, de tal manera que permiten realizar su uso desde cualquier otro tipo de programa. Las variables globales globales se crean crean con el comando comando STO como como se observa observa a continuación: continuación: Ejemplo: Codificaremos el programa del ejemplo anterior haciendo uso de variables globales. Código : << ‘B’ STO ‘A’ STO A B / FP >>
Guardamos el programa bajo el nombre de Ejem2
* Primero se escribe la variable global B, debido a que cuando se codifica en modo RPN el último último objeto ingresado ingresado se almacena almacena en la la primera variable escrita. escrita. Las codificaciones en modo RPN suelen ser un poco confusas, es por esto que más adelante se verá como codificar las operaciones de un programa en forma algebraica sin cambiar el modo de operación. Ejecutamos el programa:
8