Rutinas de programación RPN

Publicada en Mayo 2023

Para habilitar la impresora adjunta con FREE42, usar la función PRON en el menu PRINT  Shift   Σ+. 


Fecha actual en formato Dia/Mes/Año usando la función DATE y IP

DATE devuelve la fecha en formato = 16.052023

IP obtiene la parte entera de un numero 16

Flags 29 debe estar apagada CF 29, para que no aparezca el punto o coma detrás del número entero.

16/5/2023



Fecha actual en formato dia.mes.año usando la función DATE y ADATE

00 { 20-Byte Prgm }

01▸LBL "FECHA"

02 FIX 06

03 CLA

04 DATE

05 RCL ST X

06 ADATE

07 PRA

08 END

19.05.2023


Como modificar las partes de números

La segunda fila del menu CONVERT contiene las siguientes funciones:

IP Parte entera.

FP Parte fraccionaria.

RND Redondear.

ABS Valor absoluto.

SIGN Signo.

MOD Modulo.

Parte entera (IP). La función IP suprime la parte fraccionaria de

un número real. Por ejemplo, la parte entera de 14,2300 es 14,0000.

Parte fraccionaria (FP). La función FP suprime la parte entera de

un número real. Por ejemplo, la parte fraccionaria de 14,2300 es 0,2300.

Redondear números (RND). La función RND redondea un número real al número de dígitos especificado por el formato de presentación en uso. Por ejemplo, si desea redondear un valor monetario al centavo más proximo, especifique el formato de presentación como

FIX 2 y luego ejecute RND([l F1x 02 [[CONVERT][Y] RND ).



Longitud de una palabra

(Version HP 41C realizada en 2023)

Usaremos las funciones extendidas  "ALENG" (  un contador de caracteres) y 

"ASHF" (para guardar los 6 restantes caracteres ya que la memoria ASTO 00 solo conserva los 6 primeros)

(Version Free 42 realizada en 2023, la nueva función XASTO 00 guarda más de 6 caracteres)


00 { 37-Byte Prgm }
01▸LBL "BQ"
02 CLST
03 FIX 00
04 AON
05 "PALABRA?"
06 PROMPT
07 ALENG
08 STO 01
09 XASTO 00
10 CLA
11 AOFF
12 ARCL 00
13 ├"="
14 ARCL 01
15 AVIEW
16 END

CATEDRAL=8.


STO . >>> STO IND_ _   o X o Y o Z   

_____________________________________________________

INPUT aparece como  >>       VAL?0 

y obliga a poner a 0 la variable VAL para que no repita el último dato introducido

PROMPT es más visual >>>   VAL?




Bucle controlado
Un bucle controlado es un bucle que se ejecuta un número específico de veces.
Puede crear un bucle controlado con una etiqueta local o global, un ISG (*) o
instrucción DSE y una instrucción GTO.
  
00 { 54-Byte Prgm }
01▸LBL "COUNT"
02 0
03 STO "COUNT"
04▸LBL 01
05 ISG "COUNT"
06 0                           Cuando se usa la función ISG (*) el paso siguiente se lo salta ( 0 )
07 VIEW "COUNT"
08 RCL "COUNT"
09 10
10 X=Y?
11 STOP
12 GTO 01
13 .END.

TIEMPO DE PROCESAMIENTO, USANDO LA FUNCION   TIME






COUNT=              1,00
COUNT=              2,00
COUNT=              3,00
COUNT=              4,00
COUNT=              5,00
COUNT=              6,00
COUNT=              7,00
COUNT=              8,00
COUNT=              9,00
COUNT=             10,00
Con la función TRACE del menu de impresión, se puede ver
que por un bugs del emulador, tras el contador creciente ISG en la línea 08 salta a la 10,
por lo que se ha colocado un 0 (NOP) para evitar este error.
Esto no ocurre con el contador decreciente DSE.






(*) El manual de FREE42 dice: NOP  Sin operación. Se puede usar como relleno cuando ISG se usa de una manera en la que siempre omitirá la siguiente instrucción, como cuando se usa como un contador sin límite superior.

Para realizar una depuración de cualquier programa, usaremos la función TRACE del menu PRINT 

para quitar este modo TRACE  ir al menu PRINT  ejecutar la función MAN■


             Inicio Entrada antigua