Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
PROGRAMAS I
Como programador de la calculadora HP Prime, habrás notado ciertas
particularidades que están incluidas en el Manual de usuario, pero también
conceptos adicionales a éste, por lo que en esta nota se trata de dar información
resumida que se considera importante para los que se encuentran en práctica o
deseen comparar ideas.
Antes de empezar
Las diferencias. Cada lenguaje aprovecha sus recursos de diversas formas, por lo
tanto cada lenguaje es especial en cierto aspecto. Para los que no lo tengan presente,
este lenguaje esta orientado a secuencias y permite el manejo de datos de una forma
muy aprovechable, por lo que se precisa indicar que estas consideraciones pueden
llegar a ser exclusivas de PPL.
Para evitar ésto, podemos iniciar de buena vez si es necesario, los tipos de datos a
asignar.
Tipo de dato no restringido
Reserva variable de memoria. Comúnmente este caso es usado para las colecciones
de datos y cadenas, puesto que su longitud es indeterminada, pero en este lenguaje
aprovecha esto para colocar cualquier tipo de dato, en una variable cuyo dato actual
sea un tipo distinto.
Por lo que es válido asignar un valor inicial como [2,3]▶Variable, y luego asignar un
tipo de dato diferente como "2015 un año muy soleado"▶Variable, no siendo esto un
caso de excepción.
Estamos confirmando entonces la destrucción tanto del dato y del tipo con los
métodos de entrada y asignación que existan en este lenguaje.
Arreglos (Arrays)
Las variables tipo matriz pueden tener una longitud variable, las posiciones no
iniciadas se completan con 0, puesto que este es el valor que se define por defecto a
datos no iniciados, respetándose la sintaxis de sólo contener datos tipo real.
Las variables tipo matriz se manipulan con parámetros reales como Variable(1),
Variable(3) para filas, Variable(-3), Variable(-5) para columnas y Variable(1,2) ó
Variable(4,5) para un solo dato, se sabe que se usan estas formas
para llamar y asignar datos.
Pero existe una forma especial para retirar datos con el uso de una lista como
parámetro, siendo el caso de obtener un intervalo de vectores o un intervalo de sub-
índices, en ambos casos obteniéndose una matriz bidimensional aun si sólo se hace
referencia a un dato. Este caso es exclusivo para la salida de datos, no es funcional
para la asignación de datos.
Los vectores y matrices están orientados a cálculos matemáticos, y PPL puede usar
las expresiones comunes entre estos elementos, tanto como multiplicación, suma,
inversa, etc.
Listas
Las listas pueden contener al mismo tiempo diversos tipos de datos, debido a que su
estructura usa referencias a elementos (como referencia a un real, una cadena, etc.),
incluso una lista puede contener otra lista y así sucesivamente, siendo esto un recurso
de mucha utilidad para la agrupación de datos.
{4,"Hola",[5,2,−1],{1,0}}▶Variable
Por lo que podemos asumir que a las variables tipo lista se les puede asignar valores
en posiciones no iniciadas al igual que las matrices, y los valores no definidos serán
ocupados por 0 (Valor por defecto para la creación de espacios de dato no
existentes).
Al igual que las matrices (o mejor dicho, exactamente igual que a vectores), se
pueden usar parámetros de tipo lista para la salida de datos de listas.
Siendo posible el caso de unir parámetros tipo reales y tipo lista según se requiera.
Otra acotación sobre las listas, es que permiten crear con facilidad listas de listas
dentro de estas, usamos una lista vacía, y asignamos a un anidado de posiciones, por
lo que se creará por defecto listas de listas (los datos de matrices también se llaman
de esta manera pero la creación permanece sobre el tipo lista).
En resumen, las variables tipo lista pueden contener todo tipo de dato, y la creación
de listas de listas es simplificada, si un valor no existe este se crea como 0, si un valor
en la lista ya existe puede ser fácil reemplazado por otro debido a que el tipo de dato
no es restringido.
Tipo inferido. Al no requerir líneas de código como Definir X como Real; o similar, la
única forma de distinguir el tipo de dato contenido en una variable, es darle el dato de
por sí (formas mostradas en Declaración e Iniciación de variables)
También es posible usar cualquier tipo de valor real distinto de 0 para representar
Verdadero, por lo tanto en las siguientes operaciones lógicas se obtiene:
Es decir, no existe datos lógicos específicos, siendo true=1 y false=0, ambos valores
reales.
Identificadores o nombres
Se debe entender que una variable puede usarse siempre y cuando se halla creado
tanto en INICIO o en un programa (No considerando el entorno CAS), por lo que
Definir una función con Define (Desde INICIO, no es PPL) no permitirá usar variables
que no hallan sido creadas con anterioridad, puesto que este tipo de implemento
obtiene valores de variables externas, y no de variables locales a la función definida.
Los identificadores en HP Prime no están clasificados, por lo que la llamada a un
identificador (variable de usuario, programa, comando, función, variable de inicio,
listas, matrices, etc) recorrerá de acuerdo a un indizado todo este grupo en conjunto.
Por lo que en INICIO, no podremos crear variables como F1 (Reservado para App
Función), variable TEXTOUT (Reservado como comando), variable A (Variable de
usuario tipo Real predefinido), variable M1, G1, L1 (Reservado para matriz, gráfico y
lista respectivamente), e identificadores de variables que traten de usar cualquiera de
los reservados según indica el manual de usuario.
Identificadores CAS
A razón de esto, todo comando, función o similar, puede colocarse de forma individual
en una instrucción, ya que las instrucciones pueden solo emitir un valor sin necesidad
de asignar o ejecutar algo como estos casos:
Esto puede ser obviamente básico, pero cuando trabajamos con funciones y gráficos
propios, esto puede llegar a ser un problema si es que no se entiende este concepto,
será necesario crear funciones a cuenta propia que simulen esa pausa en el código y
que permitan la visualización de datos y manipulación en el tiempo adecuado, y
además es importante que el método usado no genere consumo de recursos
innecesarios.
FREEZE y PRINT
Comentarios
1.
Buen aporte tu trabajo para difundir el conocimiento sobre la HP Prime ... lo que descubrí
programando es que esta por debajo de la ti nspire cx cas..pero supongo que estarán
trabajando en actualizaciones...habrá que enviarles algunos bugs que encontremos....luego
te comento mas......
RESPONDER
1.
En este foro (hpmuseum.org) se pueden publicar los bugs, hay 2 miembros activos de HP
Prime que suelen revisar temas de este aspecto, suelen decir que atenderán lo señalado para
el próximo firmware.
2.
Buenas tardes Carlos, los programas creados en la hp prime se pueden proteger mediante
alguna clave?
RESPONDER
1.
Por ahora en para PPL no es posible su protección, tal vez en un futuro se libere formatos
codificados no legibles, varios lo han solicitado en foros donde participan algunos
miembros de hp.
3.
Muy buen aporte Ing, esperando cada dia mas el programa VIGA C.
RESPONDER
1. Anónimo25/4/16 11:03
4.
Que buen aporte. Hay que aprender a programar de una buena manera y aqui explicas
detalles interesantes. Gracias
RESPONDER
5.Anónimo5/10/16 14:11
RESPONDER
6.
Hola Carlos, espero tu ayuda, tengo una matriz el mismo que le saco la inversa, pero los
valores como : 3.125E-7 lo asume como "0" absoluto.....
Gracias.
Roland
RESPONDER
7.Anónimo15/12/16 09:10
EXPORT GUIDE()
BEGIN
LOCAL Fx:='X';
LOCAL X1:=0,X2:=9,INF,DF;
PRINT;
INPUT({{Fx,[8],{35,45,2}},{X1,[0],{50,20,3}},{X2,[0],{50,20,4}}},"INTEGRALES",{"
F(x) =","Xinicial =","Xfinal ="},{"Ingrese la F(x) en funcion de X","Ingrese Limite
Inferior de Integracion","Ingrese Limite Superior de Integracion"});
INF:=CAS.int(Fx,X, X1,X2);
DF:=diff(Fx,X);
PRINT(INF);
PRINT(DF);
WAIT(-1);
END;
RESPONDER
1.
ElAmigoCarlos15/12/16 18:59
los comandos int() y diff() pueden ser usados en Inicio o en PPL, pero estan destinados para
CAS.
Para evitar posibles errores al operar en Inicio o PPL, se puede usar:
∫() -> ∫(X,X,0,5)
∂() -> ∂((1/X)-X,X=5)
El comando para derivadas tiene conflictos al usarse con variables tipo función.
8.
Hector Davalos24/2/17 16:17
RESPONDER
1.
ElAmigoCarlos24/2/17 23:18
Esta página solo es un Blog que pronto actualizaré y pondré contenido nuevo.
Si deseas entrar a un grupo relacionado al de la calculadora te sugiero ingreses a este grupo
de fb: CALCULADORA HP PRIME
9.
RESPONDER
1.
ElAmigoCarlos24/2/17 23:17
Es una forma extraña de pedir programas, puedes enviar a tu calculadora esto Programas y
Apps publicados para que pruebes si tu calculadora misteriosamente no funciona como
debe ser usual.
10.
eeeee7/3/17 09:21
Cordiales Saludos, excelente tu trabajo y gracias por hacerlo, mi consulta seria de como
ingresar GGGMMSS (grados minutos y segundos) para realizar operaciones en la
programacion de PPL, hasta ahora no he podido hacerlo, espero puedas ayudarme mi
correo es cefe.huayta@hotmail.com
RESPONDER
1.
ElAmigoCarlos7/3/17 09:39
Si deseas declararlo con este formato puedes darle un valor inicial, esto te ayudará para
ingresarlo al comando INPUT:
X=5°06′36;
En INPUT deberás usar la tecla Shift + a b/c para insertar los superíndices.
Como luego de operar un valor puede no prevalecer el formato que deseas (hexadecimal o
decimal), existen 2 comandos para asignárselos:
→HMS(8.5) → 8°30′00″
Por último recuerda que los superíndices de minutos y segundos no se pueden insertar por
teclado, tienen un código Unicode distinto, así que insértalos solo con ayuda de la tecla de
la calculadora.
HMS→(8°30) → 8.5
2.
ElAmigoCarlos7/3/17 10:21
Si usas INPUT, para evitarte problemas y hacer más eficiente el ingreso y edición de
valores, es recomendable para estos casos crear 3 campos de entrada, el proceso de los
datos los deberás hacer por interno.
Ejemplo:
INPUT({
{X1,[0],{35,12,1}},
{X2,[0],{49,12,1}},
{X3,[0],{63,12,1}}
},
"GGMMSS",
{"Dato:","",""},
{"Grados","Minutos","Segundos"}
)
11.
eeeee7/3/17 11:41
EXPORT FRICCION()
BEGIN
IF INPUT({{Q,[0],{10,30,0}},
{D,[0],{50,30,0}},
{K,[0],{10,30,1}},
{V,[0],{50,30,1}}},
"CALCULO DE FRICCION",
{"Q:","D:","K:","V:"},
{"Ingrese caudal (m3/s)","Ingrese diametro (pulg)",
"Ingrese rugosidad (m)", "Ingrese viscosidad(m2/s)"}
) THEN
print("ok");
END;
END;
RESPONDER
1.
ElAmigoCarlos7/3/17 12:27
Qué tipo de datos ingresas? no es normal que muestre "entrada no válida" a menos que sea
un error de firmware.
Respecto a ingresar valores hexadecimales, es como mencioné en el comentario anterior, se
debe ingresar los superíndices con la tecla Shift+ab/c.
Si deseas más información para usar INPUT puedes ver estos VIDEOS.
O puedes revisar la ayuda de la calculadora.
12.
eeeee7/3/17 12:33
Eso es amigo en todos los input cuando le doy el formato para ingresar el formato de
numero {D,[0],{50,30,0}} me sale este error de "ENTRADA NO VALIDA" es por eso que
no puedo ejecutar el ejemplo que me has dado del inputo ingresar por separado los
GGMMSS, hasta no he podido resolverlo espero puedas ayudarmen gracias
RESPONDER
1.
ElAmigoCarlos7/3/17 18:42
No quería creer que era un error de sintaxis por firmware desactualizado, debes
actualizarlo, de esa manera poder usar los programas que se han desarrollado hasta ahora
poder usar las funciones que se adicionaron en su momento, aquí los VIDEOS DE INPUT.
13.
eeeee7/3/17 12:36
RESPONDER
1.
ElAmigoCarlos7/3/17 18:39
14.
eeeee8/3/17 12:24
Cordiales Saludos
RESPONDER
15.
Quisiera saber si alguno tiene idea de como hacer posible que al momento de crear un
programa en la hp prime esta sea capaz de reconocer los números complejos. Pues al
momento de hacer un input, si se ingresa una variabe compleja no lo recononce. Gracias
RESPONDER
1.
ElAmigoCarlos29/5/17 17:57