Mario de Lama
malar@arrakis.es
http://www.arrakis.es/~malar
Hay cuatro tipos de test en la HP48:
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
8 | 9 | < | 1 | |
9 | 8 | < | 0 | |
5 | 'A' | < | Obtenemos '5 < A' si el flag -3 está desactivado, en otro caso se evalúa el algebraico |
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
"B" | "A" | 1 | ||
5 | 6 | 0 | ||
"A" | "a" | 0 | El código del carácter "A" es el 65 mientras que el del "a" es el 97 |
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
8 | 8 | \<= | 1 | |
9 | 8 | \<= | 0 | |
"A" | "a" | \<= | 1 |
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
8 | 8 | \>= | 1 | |
9 | 8 | \>= | 1 | |
"A" | "a" | \>= | 0 |
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
8 | 8 | = = | 1 | |
"1" | 1 | = = | 0 | |
'A' | 'A' | = = | Obtenemos 'A = = A' si el flag -3 está desactivado, en otro caso se evalúa el algebraico |
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
8 | 8 | \=/ | 0 | |
"1" | 1 | \=/ | 1 | |
'A' | 'A' | \=/ | Obtenemos 'A \=/ A' si el flag -3 está desactivado, en otro caso se evalúa el algebraico |
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
1 | 1 | SAME | 1 | |
'A' | 1 | SAME | 0 | |
"1" | 1 | SAME | 0 |
Arg.1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
'X*Y^3' | 'X' | LININ | 1 | Si representamos esta función respecto de X obtenemos una recta |
'X^2*Y^3' | 'X' | LININ | 0 | Si representamos esta función respecto de X obtenemos una parábola |
Arg. 1 | Arg. 2 | Función | Resultado |
---|---|---|---|
1 | 1 | AND | 1 |
1 | 0 | AND | 0 |
0 | 1 | AND | 0 |
0 | 0 | AND | 0 |
Arg. 1 | Arg. 2 | Función | Resultado |
---|---|---|---|
1 | 1 | OR | 1 |
1 | 0 | OR | 1 |
0 | 1 | OR | 1 |
0 | 0 | OR | 0 |
Arg. 1 | Arg. 2 | Función | Resultado |
---|---|---|---|
1 | 1 | XOR | 0 |
1 | 0 | XOR | 1 |
0 | 1 | XOR | 1 |
0 | 0 | XOR | 0 |
Arg. | Función | Resultado |
---|---|---|
1 | NOT | 0 |
1.34 | NOT | 0 |
0 | NOT | 1 |
Arg. 1 | Arg. 2 | Función | Resultado | Comentario |
---|---|---|---|---|
'A' | 'B' | AND OR XOR NOT | Obtenemos 'A (función) B' si el flag -3 está desactivado, en otro caso se evalúa el algebraico obrando entonces según el tipo de datos contenidos en las variables A y B |
Cada carácter de las cadenas se convierte al código de carácter correspondiente (por ejemplo, el de "A" es el 65, ver la función NUM) y este código al binario correspondiente, a continuación se efectúa la comparación lógica entre las cadenas (aplicamos la función AND OR XOR NOT correspondiente) y realizamos el proceso anterior al contrario para volver a obtener la cadena resultado.
Todos los siguientes ejemplos han sido efectuados con 7 como longitud de palabra (ver las funciones STWS y RCWS en la guía de usuario).
Carácter | Código | Binario | |
---|---|---|---|
Arg. 1 | "A" | 65 | #1000001b |
Arg. 2 | "B" | 66 | #1000010b |
Función | AND | AND | |
Resultado | "@" | 64 | #1000000b |
Carácter | Código | Binario | |
---|---|---|---|
Arg. 1 | "A" | 65 | #1000001b |
Arg. 2 | "B" | 66 | #1000010b |
Función | OR | OR | |
Resultado | "C" | 67 | #1000011b |
Carácter | Código | Binario | |
---|---|---|---|
Arg. 1 | "A" | 65 | #1000001b |
Arg. 2 | "B" | 66 | #1000010b |
Función | XOR | XOR | |
Resultado | carácter 3 | 3 | #0000011b |
CODIFICAR |4: | |4: | |3: | |3: | |2: "Cadena a codificar"| |2: | |1: "Clave"| ----> |1: "Cadena codificada"| |CODER ### ### ### ### ### | |CODER ### ### ### ### ### | +--------------------------+ +--------------------------+ DESCODIFICAR |4: | |4: | |3: | |3: | |2: "Cadena a descodificar"| |2: | |1: "Clave"| ----> |1: "Cadena descodificada"| |CODER ### ### ### ### ### | |CODER ### ### ### ### ### | +--------------------------+ +--------------------------+ CÓDIGO \<< \->STR SWAP @ Asegura que ambos argumentos sean cadenas \->STR @ convirtiéndolas si no lo son DUP SIZE @ Halla la longitud de la cadena a codificar. ROT @ Coloca la pila de la forma: @ 3: Cadena a cifrar, 2: su longitud, 1: clave WHILE @ Se inicia el bucle Mientras ...Repite... End DUP2 @ Duplica los niveles 1: y 2: SIZE @ Calcula la longitud de la cadena clave. > @ Comprueba si la longitud de la cadena a cifrar @ es aún mayor que la de la clave REPEAT @ Si aún es mayor se ejecuta lo siguiente DUP + @ Dobla la longitud de la cadena clave sumándola a si misma. END @ Si la cadena de la clave ya es mayor o igual que @ la cadena a cifrar salimos del bucle 1 ROT SUB @ Asegura que ambas cadenas tengan igual longitud @ obteniendo de la cadena clave justo los primeros @ n elementos, siendo n la longitud de la cadena a cifrar XOR @ Codifica o descodifica. \>>
Carácter | Código | Binario | |
---|---|---|---|
Arg. | "A" | 65 | #1000001b |
Función | NOT | NOT | |
Resultado | "3/4" | 190 | #0111110b |
Ya lo hemos visto en el ejemplo anterior
Estos códigos son:
Objeto | Nš tipo | Objeto | Nš tipo |
---|---|---|---|
Número real | 0 | Nombre XLIB | 14 |
Número complejo | 1 | Directorio | 15 |
Cadenas | 2 | Librería | 16 |
Función real | 3 | Backup | 17 |
Función compleja | 4 | Funciones incorporadas | 18 |
Lista | 5 | Comandos incorporados | 19 |
Nombre global | 6 | Binarios System RPL | 20 |
Nombre local | 7 | Reales largos | 21 |
Programa | 8 | Complejos largos | 22 |
algebraico | 9 | Matriz enlazada | 23 |
Enteros binarios | 10 | Carácter | 24 |
Gráfico | 11 | Code | 25 |
Etiquetas | 12 | Library data | 26 |
Unidades | 13 | External | 26-31 |