Programar HP
Programar HP
macdenaif 1
Mayo 2006 (revisado en julio de 2007).
ÍNDICE pag.
Definiciones 5
Instrucción o comando. 5
Programa. 5
Variable. 5
Bucle. 5
Instrucciones de prueba. 5
Operadores lógicos. 5
Delimitadores. 5
RPN. 6
Lisp. 7
RPL. 7
User RPL. 7
System RPL. 7
Algunas teclas 10
MODE 10
VAR 10
TOOL 10
NEXT 10
Introducción a la programación 11
Trabajando con un dato de la pila. 11
Manipulando datos en la pila. Comandos del menú STACK. 11
SWAP, DUP, DROP, ROLL, ROLLD.
Variables locales. 13
Variables globales. 15
STO, STO+, STO½.
Pidiendo datos. 15
INPUT, OBJt
Presentación de resultados. 18
TAGt, MSGBOX.
Bucles. 19
FOR-NEXT-STEP, WHILE-REPEAT-END, DO-UNTIL-END.
Instrucciones de prueba o condición. Submenú TEST. 22
IF-THEN-ELSE-END.
macdenaif 2
Mayo 2006 (revisado en julio de 2007).
Operadores lógicos. 24
AND, OR, NOT.
Ventana de selección 26
CHOOSE.
Listas. 27
tLIST, OBJt, DEPTH.
Flags. 29
SF, CF.
Ejemplos 31
Fórmula de Friis. 31
Orientación de antenas parabólicas. 34
Conversión de decimal a sexagesimal. 36
Método de Ruffini. 36
HP-12-C (1981)
macdenaif 3
Mayo 2006 (revisado en julio de 2007).
1. tLIST 27, 33
2. ADD 28
3. AND 5, 24
4. CF 29
5. CLEAR 33
6. CHOOSE 26
7. DEPTH 27, 33
8. DO 22
9. DROP 12, 26
10. DUP 12, 21
11. ELSE 22
12. END 21, 22, 23
13. EVAL 9, 18, 19
14. FOR 19, 20, 33
15. GET 33
16. HEAD 33
17. IF 22
18. INPUT 15, 16...
19. MSGBOX 19
20. NEXT 19, 20, 33
21. NOT 5
22. OBJt 15, 27
23. OR 5, 24
24. PURGE 9, 18
25. REPEAT 21
26. RND 17
27. ROLL 12
28. ROLLD 12
29. SF 29
30. SIZE 33
31. STEP 21
32. STO 9, 11
33. STO½ 14, 20
34. STO+ 14
35. SQ 12, 13, 21
36. SWAP 11, 12
37. TAGt 18
38. TAIL 33
39. THEN 22, 35
40. UNTIL 22
41. WHILE 21
macdenaif 4
Mayo 2006 (revisado en julio de 2007).
DEFINICIONES.
Instrucción o comando.
Expresión formada por números y/o letras que indica a una computadora la
operación que debe realizar.
Programa
Conjunto de instrucciones que permiten a la computadora realizar una tarea más o
menos compleja.
Variable
En matemáticas, se llama variable a una magnitud que puede tener un valor
cualquiera. En informática, el concepto es básicamente el mismo, es una memoria
en la que podemos guardar un valor numérico, pero también una cadena de
caracteres, una función, un programa, etc. En ese caso se habla de “objetos” más
que de variables. A su vez, una variable es también un tipo de objeto.
Bucle
Repetición, cierto número de veces, de una parte del programa.
Instrucciones de prueba o condición.
Instrucciones que permiten comprobar si una determinada condición se cumple o
no, ejecutando un conjunto de instrucciones en el caso de que se cumpla y
saltándolas, o ejecutando otras, en el caso contrario.
Operadores lógicos
Los operadores lógicos NOT, AND, OR y XOR se utilizan normalmente en
combinación con las instrucciones de prueba para determinar, por ejemplo, si se
cumplen dos condiciones a la vez (AND) o si se cumple tal condición y no (AND
NOT) tal otra.
Delimitadores
Son caracteres que permiten a la computadora identificar un tipo de objeto.
Ejemplos de delimitadores en las calculadoras hp:
macdenaif 5
Mayo 2006 (revisado en julio de 2007).
RPN.
Del inglés Reverse Polish Notation.
En 1920, el matemático polaco Jan Lukasiewicz ideó un
método para escribir expresiones matemáticas sin usar
paréntesis, conocido como notación polaca. Basándose en
este método, Hewlett-Packard incorporó en 1972 la
notación polaca inversa en su primera calculadora
científica de bolsillo (o de mano), la HP35.
La RPN se basa en el concepto de pila de datos. Primero
se introducen los datos y luego se indica la operación a
realizar entre los niveles 2 y 1 de la pila, quedando el
resultado en el nivel 1. Veamos algunos ejemplos.
Jan Lukasiewicz
a) 36/9 = 4
36 9
b) (8+2)/(5-3) = 5
8 2
5 3
macdenaif 6
Mayo 2006 (revisado en julio de 2007).
Esta última operación se ha realizado con tan solo nueve pulsaciones. Con la
notación algebraica harían falta doce.
c) 1/(1/4+1/7+1/9)
4 7 9
macdenaif 7
Mayo 2006 (revisado en julio de 2007).
LISP
Acrónimo de LISt Processing. Lenguaje de programación basado en listas. Fue
creado por John McCarthy y sus colaboradores en el MIT (Instituto Tecnológico de
Massachusetts) a finales de los cincuenta.
RPL
Siglas de Reverse Polish LISP. Lenguaje de programación de las calculadoras hp.
User RPL
Es la forma más fácil de programar la calculadora y el único lenguaje al que hace
referencia la guía de usuario. Las calculadoras hp (49-50) disponen de una amplia
colección de comandos para poderlas programar. Algunos de esos comandos
llevan asociados nombres. Es decir, la calculadora dispone de un repertorio de
comandos que su microprocesador reconoce y de una lista (menor) de nombres
asociados a algunos de esos comandos. Esos comandos con nombre son los que
podemos usar para programar directamente la calculadora. Son los que conforman
el lenguaje User RPL.
System RPL
¿Qué ocurre con el resto de comandos? ¿Cómo podemos usarlos si no tienen
nombre? Pues bien, esos otros comandos sí tienen nombre, pero no está
disponible en la calculadora. Para poderlos usar debemos recurrir a un software
externo. Podríamos decir que User RPL es un subconjunto de un lenguaje con un
vocabulario más amplio, llamado System RPL.
macdenaif 8
Mayo 2006 (revisado en julio de 2007).
STO
Del inglés store: almacenar, guardar, archivar.
Como cabe esperar, se utiliza para guardar variables, programas y objetos en
general. Por ejemplo, para guardar el valor 33 en la variable H:
33
‘H’
STO
Aunque es más rápido hacerlo así:
33
‘H’
O incluso, si la variable H no ha sido declarada con anterioridad, podemos teclear:
33
H
Esto es lo que se llama una variable global. Más adelante se hablará de sus
propiedades.
Los delimitadores ‘ ’ están en la tecla de la letra O.
EVAL
Evaluate: evaluar.
Devuelve el valor de una función. Por ejemplo, si guardamos la función 3*H en la
variable F,
‘3*H’
‘F’
al llamar a F, lo que obtenemos en la pantalla es 3*H. Para conseguir el valor de
3*H, es decir 99, debemos pulsar .
PURGE
En inglés: purgar, limpiar. Permite borrar variables, programas, etc. Por ejemplo:
‘F’
PURGE
‘F’
macdenaif 9
Mayo 2006 (revisado en julio de 2007).
Algunas teclas.
MODE
Con ella se accede al menú MODE, donde podemos configurar los modos de
funcionamiento de la calculadora. La herramienta CHOOSE despliega una ventana
de opciones.
VAR
TOOL
NEXT
Permite rotar los elementos presentados sobre las teclas F1 a F6 cuando éstos son
más de seis.
macdenaif 10
Mayo 2006 (revisado en julio de 2007).
INTRODUCCIÓN A LA PROGRAMACIÓN
Después pulsamos para salir del modo de edición. Para guardar el programa
le daremos un nombre que nos permita identificarlo cuando lo queramos usar, por
ejemplo Lcir.
‘Lcir’
macdenaif 11
Mayo 2006 (revisado en julio de 2007).
3 4 (SWAP)
« 3600 /
3 ROLLD
60 /
++»
macdenaif 12
Mayo 2006 (revisado en julio de 2007).
Variables locales.
Conforme va aumentando el número de datos de entrada y la complejidad de las
operaciones, se hace más engorroso el uso de los comandos de la pila. Para
ahorrar trabajo y facilitar la comprensión del programa podemos emplear variables
locales. Estas solo existen durante la ejecución del programa y no aparecen en el
menú de variables.
A continuación haremos un programa para calcular una de las raíces de una
ecuación de segundo grado, usando variables locales.
ax2 + bx + c = 0
X1 = (-b + √(b2 – 4·a·c)) / (2·a) X2 = (-b - √(b2 – 4·a·c)) / (2·a)
macdenaif 13
Mayo 2006 (revisado en julio de 2007).
Este programa, en cualquiera de las dos versiones, se usa igual que los anteriores,
poniendo primero los valores de a, b y c (por ese orden) en la pila, y ejecutando
después el programa.
Por ejemplo, para la ecuación: 3x2 + 6x - 5 = 0
3 6 -5 X1
COMANDOS
A1
B1
C1
y pulsamos INDAT.
macdenaif 14
Mayo 2006 (revisado en julio de 2007).
Después,
A2
B2
C2
INDAT
y así las veces que queramos. Cuando se quiera saber el valor del sumatorio,
pulsar SUMA.
Variables globales.
En el ejemplo anterior, la variable SUMA es una variable global. Así como las
variables locales (A, B y C) solo existen durante la ejecución del programa, las
variables globales permanecen, pueden verse en el menú de variables y ser
llamadas, cambiadas o purgadas desde otros programas.
Pidiendo datos
Hasta ahora hemos trabajado con datos que previamente se habían puesto en la
pila. Para evitar tener que recordar el orden en que deben introducirse los datos o
el tipo de dato requerido, lo mejor es que el propio programa los pida, los
almacene en variables locales o globales, realice los cálculos y nos devuelva los
resultados.
COMANDOS
INPUT suspende la ejecución de un programa a la espera de un dato de entrada.
OBJt descompone un objeto en sus partes.
Para apreciar la función que realizan ambos comandos, haremos un programa que
nos pida dos números.
«
"INTRODUZCA NUMERO A"
""INPUT
"INTRODUZCA NUMERO B"
""INPUT
»
macdenaif 15
Mayo 2006 (revisado en julio de 2007).
Al introducir los dos números, vemos que aparecen entre delimitadores “ ”, o sea
que la calculadora los toma como cadenas de caracteres. Si ahora sumamos
ambos “numeros” el resultado es la suma de las cadenas.
Z = √R2 + (XL-XC)2
macdenaif 16
Mayo 2006 (revisado en julio de 2007).
COMANDOS
RND redondea un número a la cantidad de decimales indicada. 2 RND redondea a
las centésimas, 3 RND redondea a las milésimas, etc.
Programa.
«
“V = ?” “ ” INPUT OBJ→ ‘V’ STO
“f = ?” “ ” INPUT OBJ→ ‘f’ STO
“R = ?” “ ” INPUT OBJ→ ‘R’ STO
“L = ?” “ ” INPUT OBJ→ ‘L’ STO
“C = ?” “ ” INPUT OBJ→ ‘C’ STO
« f 2. * π * 3. RND » ‘ω’ STO
« ω L * 3. RND » ‘XL’ STO
« ω C * INV 3. RND » ‘XC’ STO
« XL XC – SQ R SQ + √ 3. RND » ‘Z’ STO
« R Z / 3. RND » ‘coθ’ STO
« XL XC – Z / 3. RND » ‘seθ’ STO
« V Z / 3. RND » ‘I’ STO
« V I * 3. RND » ‘S’ STO
« S coθ * 3. RND » ‘P’ STO
« S seθ * 3. RND » ‘Q’ STO
« I R * 3. RND » ‘VR’ STO
« I XL * 3. RND » ‘VL’ STO Ejemplo de circuito.
« I XC * 3. RND » ‘VC’ STO
»
Obsérvese que las variables ω, XL, XC, y siguientes no contienen solo el valor
calculado sino pequeños programas que realizan ese cálculo. Eso significa que
cada vez que la variable ω es requerida, se ejecuta el programa « f 2. * π * 3.
RND », lo cual nos permite cambiar cualquier valor de entrada sin tener que
reiniciar el programa. Si, por ejemplo, queremos cambiar el valor de C, solo
tenemos que escribir el nuevo valor y pulsar ‘C’ STO (o también [] C ) y todos
los cálculos en los que intervenga la variable C se verán modificados.
macdenaif 17
Mayo 2006 (revisado en julio de 2007).
Se completa con este otro, que yo he llamado LIMPIA, y que borra todas las
variables creadas por el programa RLC.
Presentación de resultados.
Para ver las formas en que se pueden presentar los resultados, haremos un
sencillo programa que calcule el volumen y la superficie de una esfera, conocido el
radio.
«
V = 4/3*π*R3 "radio="
" " INPUT OBJt
S = 4*π*R2 'R' STO
'4/3*π*R^3' EVAL
'4*π*R^2' EVAL
‘R’ PURGE
»
COMANDOS
«
"radio="
" " INPUT OBJt
'R' STO
'4/3*π*R^3' EVAL 2 RND
"Volumen" tTAG
macdenaif 18
Mayo 2006 (revisado en julio de 2007).
COMANDOS
«
"radio="
" " INPUT OBJt
'R' STO
'4/3*π*R^3' EVAL 2 RND
'V' STO
'4*π*R^2' EVAL 2 RND
'S' STO
"Vol.=" V + MSGBOX
"Sup.=" S + MSGBOX
{ R S V } PURGE
»
Bucles
COMANDOS
FOR - NEXT
Se utilizan para crear un bucle de repetición en un programa.
«
"N=" .......... Pide un valor de N.
" " INPUT OBJt 'N' STO .......... Lo guarda en la variable N.
1 N FOR A .......... Para valores de A entre 1 y N.
'A^2' EVAL .......... Calcula A2.
NEXT .......... Retorna al comando FOR, incrementando A
» hasta que A = N.
macdenaif 19
Mayo 2006 (revisado en julio de 2007).
«
"N="
" " INPUT OBJt 'N' STO
1 N FOR A
A SQ
NEXT
»
«
1 'FA' STO
"N="
" " INPUT OBJt 'N' STO
1 N FOR A
A 'FA' STO*
NEXT
FA
{ N FA } PURGE
»
macdenaif 20
Mayo 2006 (revisado en julio de 2007).
COMANDOS
«
"N="
" " INPUT OBJt 'N' STO
1 N FOR A
A SQ
.5 STEP
»
COMANDOS
WHILE – REPEAT – END
La estructura es esta:
Mientras (WHILE) se cumple una o varias condiciones
Repite (REPEAT) una o varias instrucciones
Fin (END)
«
“N =” .............. Pide un valor para N
“ ” INPUT OBJt
‘N’ STO .............. Lo guarda en la variable N
2 .............. Pone 2 en la pila
WHILE .............. Mientras...
DUP N < .............. ... el valor de la pila sea menor que N... ()
REPEAT .............. ... repite...
2* .............. ... multiplicar por 2
END .............. Fin del bucle.
‘N’ PURGE
»
El uso del comando DUP se debe a que el valor del nivel 1 de la pila
desaparece tras compararlo con N, por lo que es necesario duplicarlo antes de
realizar la comparación.
macdenaif 21
Mayo 2006 (revisado en julio de 2007).
COMANDOS
DO – UNTIL – END
COMANDOS
IF – THEN – END
IF – THEN – ELSE – END
macdenaif 22
Mayo 2006 (revisado en julio de 2007).
«
2/ ......... Divide entre 2 el dato del nivel 1 de la pila
FP ......... extrae la parte fraccional del resultado
0 == IF ......... si ésta es igual a cero
THEN ......... entonces...
"PAR" MSGBOX ......... muestra el mensaje PAR
END ......... fin
»
macdenaif 23
Mayo 2006 (revisado en julio de 2007).
Operadores lógicos.
Los operadores lógicos son muy utilizados en programación y en la electrónica
digital. Comprueban el estado de unas variables de entrada (A y B en las tablas
inferiores) y en función de éstas producen una respuesta o función de salida (F).
Tanto las entradas como la salida son binarias (o booleanas), es decir que sólo
tienen dos estados posibles, verdadero (1) o falso (0). Para ver la respuesta de un
operador lógico (o de una combinación de ellos) se emplea lo que se conoce como
“tablas de verdad”, en las que se muestran todos los estados posibles de las
entradas y el estado de la salida en cada caso.
AND
El operador AND produce un 1 en la salida cuando todas las entradas son 1.
Entradas Salida
A B F
0 0 0
A
& F
0 1 0
1 0 0
B
1 1 1
OR
Produce un 1 en la salida cuando al menos una entrada es 1.
Entradas Salida
A B F
0 0 0
A
0 1 1 =1 F
1 0 1
B
1 1 1
Entradas Salida
A B F
0 0 0 A
0 1 1 =1 F
1 0 1 B
1 1 0
NOT
El operador NOT niega el estado de una variable binaria.
A F (NOT A)
0 1
1 0 A 1 F
macdenaif 24
Mayo 2006 (revisado en julio de 2007).
HP-41-C (1979)
macdenaif 25
Mayo 2006 (revisado en julio de 2007).
(a) y = 0.2125 x + 25
(b) y = 0.7812 x + 25
Y fuera de esos intervalos no tiene sentido calcular la función por este método.
A continuación haremos un programa que nos pedirá un valor de x. Si –50 ≤ x < 0
aplicará la fórmula (a), si 0 ≤ x ≤ 32 aplicará la fórmula (b) y si x < -50 ó x > 32
mostrará el mensaje “entrada no válida”.
«
"x=" " " INPUT OBJt
'A' STO
IF 'A ≥ -50' 'A < 0' AND ............. Si A ≥ -50 y A<0
THEN
.2125 A * 25 +
END
IF 'A ≥ 0' 'A ≤ 32' AND ............. Si A ≥ 0 y A ≤ 32
THEN
.7812 A * 25 +
END
IF 'A < -50' 'A > 32' OR ............. Si A<-50 ó A>32
THEN
"ENTRADA NO VALIDA"
MSGBOX
END
»
macdenaif 26
Mayo 2006 (revisado en julio de 2007).
Ventana de selección.
COMANDOS
«
"SELECCIONE OPCION"
{{"NORTE"1} {"SUR"2}}1
CHOOSE DROP
»
«
"De litros a..."
{ { "Galones(RU)" .21996 }
{ "Galones(EEUU)" .26417 }} 1
CHOOSE DROP
*
»
macdenaif 27
Mayo 2006 (revisado en julio de 2007).
Listas.
Una lista es un conjunto de objetos (números, letras, cadenas, variables,
programas, otras listas, etc.) entre delimitadores { } y separados por espacios.
Ejemplos:
{1 2 3 4 5}
{A B C}
{“uno” “dos” “tres”}
Si queremos hacer una lista con todos los elementos que hay en la pila pero no
sabemos cuántos son, podemos usar el comando DEPTH, que los contará y
volcará en la pila dicha cantidad.
macdenaif 28
Mayo 2006 (revisado en julio de 2007).
{123}*2={246}
{ 1 2 3 } * A = { A 2·A 3·A }
{ 1 2 3 } * { 2 3 4 } = { 2 6 12 }
{123}
2
ADD
{345}
{423}
ADD
{123}+4={1234}
{123}+P={123P}
{1 2 3 } + { 4 5 6 } = { 1 2 3 4 5 6 }
√ { 4 9 16 } = { 2 3 4 }
COS { 0 60 90 } = { 1 ½ 0 }
macdenaif 29
Mayo 2006 (revisado en julio de 2007).
Flags.
Los flags (banderas o señales) son indicadores de estado de las variables del
sistema. La bandera es un valor booleano, sólo admite dos estados: activada o
desactivada. Las banderas proporcionan cierto control sobre cómo funciona la
calculadora y cómo muestra la información. Por ejemplo, si la señal –117 está
desactivada, los menús se muestran en una ventana de selección, pero si está
activada las opciones aparecen sobre las teclas F1 a F6.
Existen 256 banderas, numeradas desde –128 hasta 128. Las negativas son
banderas del sistema, las positivas están disponibles para el usuario y se usan en
la programación para ayudar a controlar el flujo de programa.
Cómo ver el estado de las banderas del sistema. Menú System Flags.
1. Pulsar la tecla
2. Pulsar F1 .
macdenaif 30
Mayo 2006 (revisado en julio de 2007).
Método 3. Algunas banderas pueden ser cambiadas desde ciertos menús, por
ejemplo la señal –40 que muestra el reloj en la pantalla, puede cambiarse también
desde el menú Display Modes DISP.
HP-65 (1974)
macdenaif 31
Mayo 2006 (revisado en julio de 2007).
EJEMPLOS
F = At
⇒ G = -F
At = -G
macdenaif 32
Mayo 2006 (revisado en julio de 2007).
F = 10*log f ⇒ f = 10^(F/10)
G = 10*log g ⇒ g = 10^(G/10)
Fn fn Gn gn
2 1,58489319 -2 0,63095734
5 3,16227766 38 6309,57344
22 158,489319 -22 0,00630957
macdenaif 33
Mayo 2006 (revisado en julio de 2007).
«
CLEAR ................ Limpia la pantalla
1.'g' STO ................ Valor inicial de g = 1
"Entra
F1 F2 F3... F(n)" ................ Pide los valores de Fn.
"" INPUT OBJt ................ Los toma del nivel 1 de la pila y los pone en
columna (los apila).
DEPTH tLIST ................ Los cuenta y crea una lista.
10/ ALOG ................ Convierte lista de Fn en lista de fn.
'EFES' STO ................ Guarda la lista como EFES.
EFES HEAD 'f' STO ................ Toma el 1º de la lista y lo guarda en la variable f.
EFES TAIL 'EFES' STO ................ Elimina ese 1er elemento de la lista.
EFES SIZE 'N' STO ................ Cuenta los elementos de la lista y guarda el valor
en N.
"Entra
G1 G2... G(n-1)" ................ Pide los valores de Gn.
"" INPUT OBJt ................ Los toma del nivel 1 de la pila y los pone en
columna.
DEPTH tLIST ................ Los cuenta y crea una lista.
10/ ALOG ................ Convierte lista de Gn en lista de gn.
'GES' STO ................ Guarda la lista como GES.
1 N FOR M ................ Para valores de M desde 1 hasta N
EFES M GET 'F' STO ................ Toma el elemento M-ésimo de la lista
EFES y lo guarda en F.
GES M GET 'g' STO* ................ Multiplica g por el elemento M-ésimo de la
lista GES.
'(F-1)/g' EVAL 'f' STO+ ................ Calcula ‘(F-1)/g’ y lo acumula en f.
NEXT ................ Vuelve al comando FOR hasta que M = N
f 2.RND ................ Presenta f y lo redondea a dos decimales.
"f" tTAG ................ Le pone la etiqueta “f :”
f LOG 10* 2 RND ................ Calcula F en decibelios con dos decimales.
"F(dB)" tTAG ................ Le pone la etiqueta “F(dB) :”
{ N F f g EFES GES } PURGE ................ Borra los objetos creados por el programa.
»
COMANDOS
macdenaif 34
Mayo 2006 (revisado en julio de 2007).
Definiciones:
• Acimut: ángulo que hay que girar la antena con respecto a la dirección del
norte (o sur) geográfico.
• Elevación: ángulo que hay que elevar la antena con respecto al plano
horizontal.
• Desplazamiento de la polarización: ángulo que hay que girar el dipolo con
respecto al eje vertical para recibir correctamente la señal del satélite.
• Declinación magnética: diferencia entre la dirección del norte geográfico y
la del norte magnético. Cambia según la zona y varía con el tiempo. En
Internet se pueden encontrar calculadoras de la declinación magnética.
• Orientación: ángulo que hay que girar la antena con respecto al norte (o sur)
indicado por la brújula.
• Distancia al satélite: los satélites de comunicaciones se hallan en una órbita
situada en el plano del ecuador, con un radio de aproximadamente 42000 Km,
36000 sobre la superficie de la tierra, llamada órbita geoestacionaria o cinturón
de Clarke. La distancia entre el satélite y la antena varía según la ubicación de
ambos.
Arthur C. Clarke
macdenaif 35
Mayo 2006 (revisado en julio de 2007).
Listado Pantallas
«
CLEAR DEG
"Latitud N" " " INPUT OBJt 'LA' STO
"Longitud" " " INPUT OBJt 'LO' STO
LO 0 ≠ IF THEN
"OPCION"{{"ESTE"1} {"OESTE"-1}}1
CHOOSE DROP 'LO' STO*
END
"Posición sat." " " INPUT OBJt 'LS' STO
LS 0 ≠ IF THEN
"OPCION"{{"ESTE"1} {"OESTE"-1}}1
CHOOSE DROP 'LS' STO*
END
"Declinación mag." " " INPUT OBJt 'DM' STO
DM 0 ≠ IF THEN
"OPCION"{{"ESTE"-1} {"OESTE"1}}1
CHOOSE DROP 'DM' STO*
END
"Angulo offset" " " INPUT OBJt 'AO' STO
« LO LS - » 'FI' STO
« FI TAN LA SIN / ATAN 180 DM + + » 'ORI' STO
« LA COS FI COS * ACOS » 'b' STO
« b COS .151269 - b SIN / ATAN AO - » 'EL' STO
« FI NEG SIN LA AO + TAN / ATAN » 'PO' STO
« 1. b COS - .42 * 1 + √ 35786 * » 'DIS' STO
ORI 1. RND 1_º * "Orient" tTAG
EL 1. RND 1_º * "Elev" tTAG
PO 1. RND 1_º * "Pol" tTAG
DIS 3. RND 1_km * "Dist" tTAG
{LO LA PO EL ORI FI AO DM LS b DIS} PURGE
»
macdenaif 36
Mayo 2006 (revisado en julio de 2007).
«
DUP IP 1_º * 'G' STO
FP 60 *
DUP IP 1_arcmin * 'M' STO
FP 60 * 2 RND 1_arcs * 'S' STO
G M S { G M S } PURGE
»
Ruffini
Este programa calcula la división de un polinomio por el método de Ruffini.
(x4 – 4x3 – x2 + 16x – 12) / (x-1)
1 -4 -1 16 -12
1 1 -3 -4 12
1 -3 -4 12 0
Si el último término del cociente es cero, significa que la raíz es válida. Si no lo es,
el programa lo indica antes de dar el cociente.
«
CLEAR
"COEFICIENTES"
" " INPUT OBJt
DEPTH 'N' STO
N tLIST
'COE' STO
"RAIZ"
" " INPUT OBJt
'A' STO 1 2
COE HEAD DUP
macdenaif 37
Mayo 2006 (revisado en julio de 2007).
2 N FOR M
A*
COE M GET
+ DUP
NEXT
0 ≠ IF
THEN N tLIST
"NO RAIZ" MSGBOX
ELSE
N tLIST
END
{ A COE N } PURGE 3 4
»
Paolo Ruffini
macdenaif 38
Mayo 2006 (revisado en julio de 2007).
Enlaces:
http://www.sinewton.org/elrincon/
http://www.hpmuseum.org/
http://www.educalc.net/149032.page
http://www.managementsoftware.hp.com/
http://hpuser.8m.com/download.htm
http://directorio.adfound.com/Hardware/Calculadoras/Hewlett-Packard/
Reglas de cálculo 1
Reglas de cálculo 2.
Museo de la calculadora.
macdenaif 39