Вы находитесь на странице: 1из 31

19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

El Amigo Carlos
Ingeniería Civil y más

HP Prime - Consideraciones del Lenguaje


PPL - 1° Parte
febrero 07, 2016

Consideraciones importantes para programadores en


PPL, se presenta un resumen de puntos relevantes al
lenguaje, primera parte donde se hace mención algunas
pautas a tener en cuenta para el manejo de programas.

Consideraciones del Lenguaje PPL - I


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.

Declaración e Iniciación de variables

Expresión combinada. Para declarar variables usamos el comando


LOCAL seguido de los identi cadores de la variable, esta acción no
solo declara la variable (Reserva de espacio en memoria), también le
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 1/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

asigna un valor inicial aún si no se indicó ninguno, el valor


predeterminado es 0, entonces la variable queda de nida como tipo
Real.
Si estamos trabajando y vemos que de repente nos aparece un 0, es
por esta razón.

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 con rmando 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)

Carencia imperceptible. Este lenguaje no dispone de esta estructura


de datos, pero existen 2 tipos de datos que pueden reemplazarlo,
incluso resulta de más utilidad en ciertos casos: Matrices (reales y
l j ) Li t ( l i ti d d t l
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html
bl ) 2/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
complejos) y Listas (cualquier tipo de dato almacenable).

Vectores y Matrices

Las Matrices, que pueden ser unidimensionales (Vectores) o


bidimensionales, de tamaño (m x n) no necesariamente de nidas con
anterioridad, sólo pueden contener datos del tipo real y complejo.

Tanto para vectores y matrices, se permite la asignación de valores


en posiciones no iniciadas, veamos el siguiente caso:

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 de ne 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 las, 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.
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 3/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

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
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 4/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
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

Si a una lista se le asigna un valor en la posición 0, el valor será


colocado al nal de la lista creando la siguiente posición a la actual.
Por lo tanto si se usa el llamado Lista(0), retornará el último valor de
la lista.

Una variable tipo lista, como se ha visto anteriormente, se puede


iniciar como una lista vacía {}, y para poder agregar un primer valor
podemos usar Lista(1), esto normalmente sería una excepción
puesto que la posición 1 no existe, pero es posible.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 5/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

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 de nidos 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.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 6/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

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 simpli cada, 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.

Esta forma mencionada puede ser motivo de un problema de


conservación de datos, se debe manejar con cuidado la asignación
de datos en listas, debido a que éstos pueden ser eliminados sin
ninguna advertencia, como por ejemplo el dato 10 en la posición
Lista(2), puede ser convertido a lista al asignar una lista de lista en
esa posición.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 7/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

Tipo inferido y Débilmente tipado

Tipo inferido. Al no requerir líneas de código como De nir 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)

Débilmente tipado. Se permite la operación de diversos tipos de


datos sin conversión, puede resultar ventajoso, estos son algunos
casos:

Boolean?

Tipo no de nido. En cualquier instrucción donde se requiera el valor


lógico de verdadero o falso, sea en las familias IF o en bucles,
podemos usar el valor 1:Verdadero o 0:Falso, siendo estos simples
datos del tipo real. Se muestran los resultados de las operadores
relacionales.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 8/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

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í cos, siendo true=1 y false=0,


ambos valores reales.

Identi cadores 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 De nir una función con De ne (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 de nida.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 9/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

Los identi cadores en HP Prime no están clasi cados, por lo que la


llamada a un identi cador (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 prede nido), variable M1, G1, L1 (Reservado para
matriz, grá co y lista respectivamente), e identi cadores de variables
que traten de usar cualquiera de los reservados según indica el
manual de usuario.

Se aclara que el motivo por el cual todos los identi cadores se


encuentran no clasi cados, es debido a que todas las variables
pueden tener cualquier tipo al cual se le reasigne, por lo que no es

posible crear una variable tipo real 5 M1, puesto que estaríamos
haciendo referencia a la misma variable matriz reservada por la
calculadora (las variables reservadas no pueden ser modi cadas en
tipo).

En consecuencia, desde un programa no podremos EXPORTAR


variables con identi cadores iguales a los casos mencionados
anteriormente. Para variables LOCALES no hay interferencia, puesto
que estas se priorizan sobre las referencias exteriores dentro de la
función donde fue creada.

Identi cadores CAS

Al programar y revisar el menú de ayuda o el manual, podremos


identi car aproximadamente si un comando puede ser utilizado
directamente en el programa o si requiere de un ambiente CAS,
identi cando si el comando esta en minúscula (CAS) o no.

Existen 4 formas de usar estos comandos:

Usando simplemente el Comando( ).


Usando CAS.Comando( ), en ocasiones que no se intertepreta
correctamente como CAS.
Usando CAS(Expresión CAS), similar al anterior.
Creando una función CAS con #cas #end. La función debe
contener por lo menos una variable de llegada para poder
usarla.

Sin embargo en todos ellos no podremos enviarle parámetros


https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 10/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
Sin embargo, en todos ellos no podremos enviarle parámetros
simbólicos como se usa normalmente, se deberá usar cadenas o
expresiones para lograrlo. Si deseas más información respecto al
uso de CAS ingresa a Consideraciones 5°parte PPL-CAS.

Toda función o comando retorna valor

Una función vacía devuelve por defecto el valor de 0.


Una función que contiene instrucciones retorna el valor residual de la
última instrucción ejecutada.
Una función que ejecuta el comando RETURN, retorna el valor
residual de la línea que contiene el comando y termina la ejecución
de la función.

El retorno de valores es generalizado, aplicable también en los


comandos de HP Prime, veamos a continuación algunos valores
retornados de comandos conocidos.

Esta característica en el lenguaje permite anidar o usar cualquier tipo


de función en diversas partes de una instrucción mientras la sintaxis
básica sea correcta, se ejecuta de adentro hacia afuera y de acuerdo
al orden horizontal.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 11/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

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:

Los comandos de entrada y salida

Sobreentendido. Bien sabemos que al escribir código, si el contenido


resulta corto y las instrucciones meramente operativas, el programa
nos estará mostrando un resultado casi al mismo tiempo que
presionamos Ejecutar, esto debido a que los lenguajes están
preparados para ejecutarse al 100%, a menos que esto se restrinja
(se intenta).

En cuanto a INPUT, CHOOSE y MSGBOX, son interfaces de interacción


usuario que permiten el llenado de datos y por lo tanto su
manipulación, por lo que podemos a rmar que la ejecución del
código se retiene en estas instrucciones hasta que con rmemos o
cancelemos con los medios que brindan.

Esto puede ser obviamente básico, pero cuando trabajamos con


funciones y grá cos 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.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 12/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

FREEZE y PRINT

Malentendido concurrente. En razón al uso de grá cos para el caso


mencionado en el punto preliminar, se requiere usar un comando que
permita pausar la ejecución del código y visualizar los cambios en
pantalla en el punto deseado, ya que el programa se ejecuta sin
descanso, pero FREEZE no es el comando útil en esta ocasión.

FREEZE solo hace efecto al nalizar la ejecución del programa, no


actualizando la pantalla hasta presionar alguna tecla, esto puede
causar mucha confusión si el programa es corto y no se tiene idea de
lo que esta pasando; no pausa la ejecución, por lo que puede ser
llamado en cualquier punto del programa, y solo tendrá efecto al nal
de todo.

En cuanto a PRINT, tampoco es un comando que pause la ejecución


al ser ejecutado, logra mostrar la terminal en la pantalla, pero si no se
pausa manualmente la ejecución, la pantalla será posiblemente re-
dibujada con un comando posterior, pasará más rápido que un
parpadeo y no podremos verlo.

El comando PRINT esta desarrollado para mostrarse al nal de la


ejecución al igual que FREEZE (Usar los 2 comandos al mismo
tiempo puede ocasionar aún más enredo). Su objetivo es mostrar la
terminal con los datos acumulados en este, siendo posible desplazar
la pantalla de ser necesario, se presiona cualquier tecla para salir de
la terminal.

Continúa a Consideraciones en Programas II

HP Prime Programación PPL

Ivan Contreras 9/2/16 14:07


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
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 13/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
que encontremos....luego te comento mas......

Carlos Ismael Campos Guerra 10/2/16 12:40


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 rmware.

RESPONDER

German Gonzalez 13/2/16 18:33

Buenas tardes Carlos, los programas creados en la hp


prime se pueden proteger mediante alguna clave?

Carlos Ismael Campos Guerra 14/2/16 01:14

Por ahora en para PPL no es posible su


protección, tal vez en un futuro se libere
formatos codi cados no legibles, varios lo
han solicitado en foros donde participan
algunos miembros de hp.

RESPONDER

Daniel Sanchez 15/2/16 18:40


Muy buen aporte Ing, esperando cada dia mas el
programa VIGA C.

Anónimo 25/4/16 11:03

Excelente Aporte Ingeniero! Gracias por


compartir.

RESPONDER

Rubén Espinoza 21/6/16 16:15


Que buen aporte. Hay que aprender a programar de
una buena manera y aqui explicas detalles
interesantes. Gracias
RESPONDER

Anónimo 5/10/16 14:11

Soy Ingeniero Civil que calculadora me recomendas la


Hp 50g o la Hp Prime?
RESPONDER

Roland Espinoza 22/11/16 17:49


Hola Carlos, espero tu ayuda, tengo una matriz el
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 14/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

mismo que le saco la inversa, pero los valores como :


3.125E-7 lo asume como "0" absoluto.....

Gracias.
Roland
RESPONDER

Anónimo 15/12/16 09:10


ALGUIEN ME PUEDE AYUDAR..... A QUE SE DEBE QUE
CUANDO INTRODUZCO UNA FUNCIÓN F(X) EN UN
PROGRAMA LO RECONOCE COMO SI FUERA UNA
CONSTANTE Y ME IMPRIME LA INTEGRAL COMO LA
F(X) MULTIPLICADA POR EL ULTIMO VALOR DE X
AQUÍ LOS PASO LA SINTAXIS

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 =","X nal
="},{"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;

ElAmigoCarlos 15/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 con ictos
al usarse con variables tipo función.

RESPONDER

Hector Davalos 24/2/17 16:17


HOLA MI NOMBRE ES ERNESTO Y ME GUSTARIA SER
MIEMBRO DEL GRUPO SE PODRA ?

ElAmigoCarlos 24/2/17 23:18


Esta página solo es un Blog que pronto
actualizaré y pondré contenido nuevo.
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 15/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

Si deseas entrar a un grupo relacionado al de


la calculadora te sugiero ingreses a este
grupo de fb: CALCULADORA HP PRIME

RESPONDER

Hector Davalos 24/2/17 16:20


ME PODRIAN AYUDAR CON ALGUN PROGRAMA
SENCILLO PARA VERIFICAR QUE LA ACTUALIZACION
2016 08 29 ME ESTE FUNCIONANDO SE AGRADECE

ElAmigoCarlos 24/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.

RESPONDER

eeeee 7/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

ElAmigoCarlos 7/3/17 09:39


Depende de cómo quieras trabajarlo, un dato
expresado en hexadecimal es igual a un dato
real, solo es un tipo de formato o tipo de
visualización, por esta razón es que se
pueden operar ambos sin problemas
(Permanece el formato del primer valor):
5°06′36+5 → 10°06′36″
5+5°06′36 → 10.11

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
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 16/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
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

ElAmigoCarlos 7/3/17 10:21


Si usas INPUT, para evitarte problemas y
hacer más e ciente 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"}
)

RESPONDER

eeeee 7/3/17 11:41

Gracias amigo por responderme, , tambien tengo un


inconveniente
al usar el comando input, este es un codigo que he
copiado de internet en la muestra
se ejecuta sin problemas pero cuando lo paso a mi
calculadora me manda errores (he copiado al detalle
el codigo), al comprobar la sintaxis no tengo ningun
error, pero al ejecutar este codigo me sale el error de
"FRICCION Error: entrada no valida", le agradeceria
muchismo si me ayuda para corregir este error.
Tambien deseo ingresar valores angulares para
realizar operaciones de sumas y restas en el
programa (XX°XX'XX") hasta el momento no he
podido hacerlo tambien recurro a uds. si me podria
ayudar.

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
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 17/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
)
print("ok");
END;
END;

ElAmigoCarlos 7/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 rmware.
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.

RESPONDER

eeeee 7/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

ElAmigoCarlos 7/3/17 18:42

No quería creer que era un error de sintaxis


por rmware 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.

RESPONDER

eeeee 7/3/17 12:36


amigo me olvidaba hasta en el simulador de la
calculadora me sale este error tengo el simulador
Version 2013 11 25.Rev 5447

ElAmigoCarlos 7/3/17 18:39

Ese es practicamente lo que debes


solucionar, debes actualizar tu calculadora,
un rmware hasta antes del 2015 se puede
con rmar como un rmware con errores
complejos y desfasado.
Actualiza al rmware actual con ayuda de
estas INDICACIONES.
Puedes también buscar en youtube cómo
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 18/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
y
actualizar, contacta a mi página si tienes
inconvenientes.

RESPONDER

eeeee 8/3/17 12:24


Cordiales Saludos

Mi estimado amigo muchisimas gracias por tus


indicaciones, ya resolvi el problema de "ENTRADA NO
VALIDA", le con rmo que el error era el rmware
estaba desactualizado, ahora lo he actuallizado y los
programas que no podia correr, los corre sin
problemas, de nuevo gracias amigo por tu ayuda.

RESPONDER

Gabriel Herrera 29/5/17 17:20


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

ElAmigoCarlos 29/5/17 17:57

Tienes 2 modos para lograr eso:


* De nir a tu variable como una complejo
antes de enviarlo al INPUT como LOCAL Var=
(0,0);
* De nir tipo de ingreso de dato del INPUT.

El INPUT simple "INPUT(Var)" conserva el


tipo de dato, inicialmente una variable es tipo
Real si no se le asigna un valor inicial, por lo
tanto no permitirá ingresar un tipo complejo
u otro tipo de dato.

El INPUT complejo permite ignorar el tipo


inicial, para más información puedes revisar
esta serie de videos que explica el uso
completo de este comando: VIDEOS DE
INPUT

RESPONDER

eddi campos 16/6/17 18:50


al crear un programa, ¿como puedo limitar el numero
de decimales que deseo? ayudame por favor con un
ejemplo corto. solo quiero trabajar con 3 decimales
RESPONDER

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 19/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

Unknown 31/10/17 12:28

Hola Carlos si deseo programar en la Hp Prime su


lenguaje de Programación es HP PPL verdad? Que
lenguaje se asemeja mas al de la Prime... que tenga
una bibliografía en la cual pueda apoyarme. Gracias

ElAmigoCarlos 31/10/17 13:34


HP PPL es uno de los más estandarizados
que hay, es un lenguaje netamente
imperativo, cuenta con las estructuras
básicas de control como IF, CASE, FOR,
REPEAT, WHILE, etc.
El más parecido en cuanto a sus palabras
clave es Pascal, pero de todas formas tiene
mucha diferencia en varios aspectos que no
podría enumerar por ser extensas las
diferencias, lo mejor es ver solo el manual de
usuario en su sección programación y ver
qué es lo que tiene HP PPL.
En estas consideraciones justamente se
resalta las diferencias con otros lenguajes
imperativos conocidos, su gran enfoque y
simpli cación para ser un lenguaje de
calculadora.

RESPONDER

luis hamilton labanda ochoa 26/11/17 19:48


hola buenas noche me podrias ayudar como corrigo
un error de sitaxis 49 que me sdalke cuando quiero
abrir un archivo hpprgm

ElAmigoCarlos 26/11/17 20:53

Bueno eso indica que en la línea 49 existe un


error de sintaxis, los hay de muchos tipos, si
lo estas programando dale Comprobar para
que te dirija a la línea sino usa el Kit, si
desconoces de programación contácte con
su desarrollador, es posible que haya pasos
antes de enviar el programa que necesitas

ElAmigoCarlos 26/11/17 20:54


Si crees que el programa debería funcionar
sin problemas, intenta enviar volver a
comprobar el programa luego de entrar a la
App Función

RESPONDER

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 20/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
EDGARD PAUCAR VILLALOBOS 6/12/17 14:20

Saludos Carlos.
Felicidades por el aporte y éxito.
Tengo di cultades para programar en CAS, tienes
algun blog,portal o info de que tanto varía la
programación con respecto a la convencional?
y una segunda consulta.
hal algun forma de mostrar el resultado de una matriz
en su forma convenccional y no linealmente?
ejm:

R=[[11,32,56],[1,3,4],[6,3,5 ]] ...la prime muestra esta


respuesta con el COMANDO PRINT:
Lo que yo deseo es:
R=
11 32 56
134
635
Agradezco de antemano la ayuda. gracias

ElAmigoCarlos 6/12/17 14:30


Hola, espero los artículos siguientes también
te sean de utilidad,.
Respecto a la programación neta en CAS
(#cas #end) aún no he creado un artículo
especí co, solo publiqué Consideraciones
Parte 5 que habla del uso de comandos CAS
dentro de HP PPL o Home, te sería útil en el
caso que crees tu propia función CAS y luego
la necesites integrar a tu código
convencional.
El CAS de HP Prime se basa en Xcas, así que
si buscas programación en Xcas te puede
ser de mucha ayuda.
El comando PRINT solo emite resultados
lineales, ahí solo podrías arreglar un bucle
para que imprima los valores por las con un
espacio entre ellos si es que eso te sirve,
pero dudo que sea lo que estas buscando.

ElAmigoCarlos 6/12/17 14:31


Una alternativa es intentar no usar el PRINT
si es posible, y retornar la matriz al historial
de Inicio, si es que has ejecutado tu
programa desde ahí.
Lo otro sería usar EDITMAT para mostrar las
matrices.

RESPONDER

Anónimo 3/1/18 14:58


un libro para poder aprender a programar.. (distinto al
ld i )
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 21/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
manual de usuario)

RESPONDER

Alejandro 17/3/18 22:39


Buneas noches,
tengo un ejemplo
Del numero 127 y quiero que me devuelva el numero
7, lo hice con la función RIGHT("127",1) y me boto el
numero 7 pero sin embargo a ese resultado no puedo
sumarlo no puedo restarlo, que solución puedo darle.
Gracias y disculpa las molestias.

ElAmigoCarlos 18/3/18 00:48


Hola, bueno es un caso especial el tuyo, mas
o menos estas encontrando una solución,
pero en programación existen herramientas
ancestrales para lograr eso.
127 MOD 10 → 7 //Usas una operación
netamente con números

Otra alternativa es intentar manipular el


número como si fuera un texto, esta
alternativa sería mas o menos como lo
planteas, RIGHT(""+VarNum,1) o mejor aún
RIGHT(STRING(VarNum,1),1), con esto
desde el principio sabes que lo que
obtendrás será una cadena, ya dejó ser un
número, una cadena podría hasta tener letras
sin problemas: "7 Dato en el 8vo lugar",
obviamente no se podría operar como
número
Si estamos seguros que obtendremos una
cadena que puede ser convertida a número
usariamos EXPR, así podrías operarlo en la
misma instrucción
EXPR(RIGHT(STRING(VarNum,1),1)), en
otros lenguajes esto se le conoce como una
función Parse, pero EXPR no es exactamente
eso, tú eres quien elije el método.

De todas formas no es recomendable


mezclar operaciones que jueguen con los
tipos, la programación en sus inicios
demostró que es posible solventar este tipo
de necesidades con MOD, supresión de la
parte decimal, de la entera, como por
ejemplo FP(VarNum/10)*10, y anteponer las
operaciones del mismo tipo antes que las
conversiones.

RESPONDER

Anónimo 21/4/18 11:25


Hola Carlos estaba intentando pasar un programa de
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 22/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
p p g
Home a Cas por la necesidad de usar variables,pero
cuando intente hacerlo me bota un error y no entiendo
porque.

Aquí te muestro la parte inicial del código recortado.

#cas
programa(mat):=
// matriz de 4x4
BEGIN
LOCAL lista:={},ele,A;

FOR A FROM 1 to 4 DO
ele:=mat(A,A);
lista(A):=ele;
END;

RETURn lista;
END;
#end

el retorno debería ser


{elemento1,elemento2,elemto3,elemento4} pero
cuando la invoco en cas hace una especie de
pseudoretorno y
me sale esto
(A)-->(elemento4)

en resumen la idea es almacenar elementos de un


matriz que pueden ser variables o números en una
lista para luego retornarlos. Espero tu respuesta .Buen
día!

ElAmigoCarlos 21/4/18 15:26


Respuesta corta es cambiar lista(A):=ele; por
lista[A]:=ele;

Respuesta larga:
Preferiría que no se pregunte sobre
programación CAS aquí, pero es una
pregunta después de todo. Te recomendaría
que no uses una función CAS para esto, ya
que usar una función de HP PPL en CAS no
tienen ningún problema pero deberás
considerar las conversiones de tipo que
existen entre ambos lenguajes.
En programación CAS existen estos
formatos como lista 1,2,3 [1,2,3] {1,2,3},
todos son considerados DOM_LIST así que
los ejemplos anteriores son muy similares.
La declaración con LOCAL en CAS acepta el
formato 1,2,3; es decir que al hacer LOCAL
lista:={},ele,A; se esta creando a lista={},ele,A
y no variables por separado, para ello se usa
LOCAL (lista:={}),ele,A;
Cuando se usa una variable no creada en
CAS, esta se crea automáticamente; con el
error anterior "ele" se esta creando como
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 23/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
error anterior ele se esta creando como
variable global CAS y no como LOCAL. (Es
decir que puede ser encontrado desde la
lista de variables CAS externas)
A una lista se puede acceder con
lista(indice) o lista[indice], por ejemplo
lista(1) o lista[2]:=8.
En CAS el formato
Variable(variable):=Expresión, es
considerado un formato para creación de
funciones, por lo tanto lista(A):=5 signi cará
"(A)-->5" una función lista que recibe como
parámetro una variable A que se reemplaza
en 5. Por ejemplo f(x):=x^2, crea una función
f "(x)->x^2", si se ejecuta f(8) se obtiene 64.
Cuando se usa variables como índices de
una lista, se debe usar solo el formato con
corchetes lista[A].

Función corregida:
prograMat(mat):=
BEGIN
LOCAL (lista:=[]),ele,A;
for A from 1 to 4 do
ele:=mat[A,A];
lista[A]:=ele;
end;
return lista;
END;

ElAmigoCarlos 21/4/18 15:28


La función corregida presentada antes se
ubica en el bloque CAS de complicación
#cas #end

RESPONDER

Unknown 13/8/18 07:08


Bom dia ElAmigoCarlos estou tendo di culdade em
plotar o desenho de um polígono,
tendo uma variável de matriz "M0" com 2 colunas
com valores de norte e este de um determinado
perímetro, qual comando utilizo para plotar esse
polígono no grá co G0? saudações.

Unknown 13/8/18 07:53


Grá cos em coordenadas cartesianas

Unknown 13/8/18 15:40


Boa tarde, consegui carregar o perímetro
porem em coordenadas de pixel estou com
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 24/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
porem em coordenadas de pixel, estou com
di culdade de extrair da variável "M0" os
limites de Xmin, Ymin e Xmax, Ymax.
Por que as coordenadas vão ter uma
variação de valores.

RESPONDER

Unknown 3/10/18 14:02


que tal carlos. Tengo una consulta sobre la
programacion. Yo realizo mi programa en Virtual Hp
(en el simulador) y compila y ejecuta sin problemas,
pero al pasar a la calculadora sica HP prime no
compila y me arroja un error en la linea 14.
Tenes alguna idea de que cual puede ser el problema?
EXPORT LINEAS__CORTAS()
BEGIN
PRINT();
LOCAL cut,dut;
LOCAL fp,resistencia;
LOCAL induc,frec;
LOCAL pen,vr;
LOCAL w_1,angul;
LOCAL vs,impedancia;
LOCAL reac_induc,ir;
LOCAL is,vs1;
LOCAL modul,q;
INPUT(vr,"Tension","Vr=","Ingrese la tension en KV");
INPUT(pen,"Potencia en el lado de l
carga","Pr=","Ingrese la potencia en kw");
INPUT(frec,"Frecuencia","f=","Ingrese la frecuencia en
Hz");
INPUT(fp,"Factor de potencia","FP=","Ingrese el factor
de potencia");
INPUT(resistencia,"Resistencia","r=","Ingrese la
resistencia en ohm");
INPUT(induc,"Inductancia","L=","Ingrese la inductancia
en Henrios");
CHOOSE(N,"SELECCIONA EL TIPO DE
FP","INDUCTIVO","CAPACITIVO");
IF w_1==1 THEN
angul:=-ACOS(fp);
ELSE
angul:=ACOS(fp);
END;
modul:=pen/((√3)*vr*fp);
ir:=EXPR(modul+"∡"+angul);
is:=ir;
reac_induc:=2*π*frec*induc;
impedancia:=resistencia+ *reac_induc;
vs:=((1000*vr/√3)+is*impedancia)/1000;
cut:=ABS(vs);
dut:=ARG(vs);
vs1:=EXPR(cut+"∡"+dut);
CHOOSE(q,"Seleccione el tipo de respuesta de vs","vs
EN RECTANGULAR","vs EN POLAR");
IF 1 THEN
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 25/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
IF q==1 THEN
PRINT("vs de fase en (kv) es vs="+vs);
ELSE
PRINT("Vs de fase en (kv) es Vs="+vs1);
END;
END;

ElAmigoCarlos 9/10/18 15:33


Desconozco el motivo de este inconveniente,
no veo ningún problema en el INPUT(pen) y
en las líneas cercanas adyacentes

numerovix 6/9/19 16:55


Podría ser que no tengas la calculadora
actualizada?

RESPONDER

Unknown 24/3/19 15:45

Buenos días Carlos, ayúdame a descubrir el error por


favor esta en la linea 53, según el corrector de errores.
EXPORT FACTORvenom()
BEGIN
LOCAL Q,D,Ks,v,f0,f1,Re,error;
LOCAL MENU,LR;
REPEAT
CHOOSE(MENU,"FACTOR DE FRICCION","DATOS
INICIALES","CALCULAR","RESULTADOS","SALIR");
//DATOS DE ENTRADA
IF MENU==1 THEN
INPUT({{Q,[0],{55,20,0}},
{v,[0],{55,20,1}},
{D,[0],{55,20,2}},
{Ks,[0],{55,20,3}}},
"DATOS INICIALES",
{"Ingrese Caudal [m3/s]:",
"Ingrese Viscosidad [m/s]:",
"Ingrese Diametro [pul]:",
"Ingrese Coe eciente de Rug [m]:"});
END;
//PROCESO DE CALCULO
IF MENU==2 THEN
Re:=(4*Q)/(pi*v*D*0.0254);
IF Re<2100 THEN
f1:=64/Re;
ELSE
f0:=0.001;
REPEAT
f1:=(0.25)/LOG((Ks/3.7*D*0.0254)+(2.51/(Re*
(f0)^0.5)))^2;
error:=ABS(f1-f0);
f0:=f1;
UNTIL error<=0.0000001;
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 26/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

LR:={Re,f1};
MSGBOX("Calculos realizados con exito!!!");
END;
//RESULTADOS
IF MENU==3 THEN
LOCAL LI;
LI:={"N°de Reynols","Factor de Friccion"};
RECT;
RECT_P(0,0,320,240, RGB(0,25,98));
LINE_P(0,10,320,10,RGB(255,0,0));
LINE_P(0,230,320,230,RGB(255,0,0));

FOR I FROM 1 TO 3 DO
TEXTOUT_P("RESULTADOS",30+I,20+I,3,RGB(25,255,0)
);
END;
FOR I FROM 1 TO 2 DO
TEXTOUT_P(LI(I),14,25+15*I,2,RGB(255,255,255));
TEXTOUT_P(":",180,25+15*I,2,RGB(255,255,255));
TEXTOUT_P(LR(I),185,25+15*I,2,RGB(255,255,255));
END;
WAIT(-1)
END;
UNTIL MENU==4;
END;

ElAmigoCarlos 24/3/19 18:42


Es un pequeño error de sintaxis, falta cerrar
"//PROCESO DE CÁLCULO", adiciona un
"END;" antes de "//RESULTADOS", es decir
que quedará un para de "END;" juntos

RESPONDER

Sergio 14/8/19 06:53


Hola Carlos, quisiera que me ayudes con esto, ¿cuál
es el comando que quita el último elemento de una
lista?

ElAmigoCarlos 14/8/19 21:33


Hola Sergio, tomando la pregunta
exactamente como la escribiste, no hay
forma de reducir la cantidad de elementos en
una lista (como comportamiento nativo del
lenguaje), sí es posible crear nuevas
posiciones pero no anularlas. La alternativa a
esto es usar comandos "destructivos" que
reescriban el contenido de la variable:
Lista:={"gato","perro","rata"};
Lista:=SUPPRESS(Lista,3); //Se crea una
nueva lista sin "rata" y se reemplaza en Lista.
Lista:=Lista({1,2}); //Se extrae el contenido
de Lista {"gato","perro"} y se reemplaza la
variable Lista original.

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 27/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

¿Por qué deseas eliminar el último


elemento?

RESPONDER

Sergio 15/8/19 07:02


Gracias tu respuesta me ha sido útil y funcionó el
programa.
Quería eliminar el elemento porque hice un programa
que calcula el volumen de una estructura anticlinal
(reservorio) mediante una lista de áreas.
Pero tengo otra duda: ¿Por qué el comando
''SUPPRESS" y "pop" NO funciona en mi calculadora y
SI funciona en mi laptop? La calculadora lo interpreta
como un error de sintaxis ¿Es porque el software de la
calculadora no está actualizado o porque la
calculadora tiene esa limitación frente a una laptop?
Noté que el comando de "Eliminar" no se encuentra en
el menú de "Lista" de la calculadora, en su lugar se
encuentra "Posición".
CALCULADORA: Matem.>6 Lista>5 Posición.
LAPTOP: Matem.>6 Lista>5 Eliminar.

ElAmigoCarlos 15/8/19 09:16

SUPPRESS se agregó como comando de


inicio a partir del FW 2018 01 24 (13333),
pero antes de eso siempre existió el
comando CAS suppress (minúscula), solo
que la ejecucción de ese comando al ser
CAS es más lento (solo notable en bucles de
miles de ciclos, no se aprecia si solo se
ejecuta 1 o 30 veces seguidas). Los
comandos CAS puede que en casos realice
lo que esperas y en otros casos no, tendrás
que probar.

Sergio 15/8/19 11:30


Gracias.

RESPONDER

Unknown 25/8/19 07:31


Muchas gracias por tu trabajo, estoy empezando a
programar en hp prime y me ha costado encontrar
una información tan útil como la tuya. Muchas gracias
RESPONDER

Jhonny 31/10/19 09:31


Saludos tengo un problema al declarar:
https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 28/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte
Saludos, tengo un problema al declarar:
INPUT({c,Φ,ɣ,D,B}); me sale como error; la solución
esta en cambiar c por C; Φ, por alguna otra variable en
mayúscula lo mismo para ɣ; pero quisiera mantener
esas variables ya que así es la ecuación
No se si se deba a una con guración de la
calculadora o es que no puedo usar esas variables?

ElAmigoCarlos 1/11/19 22:35


En HP Prime puedes usar cualquier caracter
Unicode, ya sea esas letras extrañas o
ideogramas orientales. El asunto es que
debes crearlos para poder usarlos con:
LOCAL c,Φ,ɣ,D,B,ぁ;

Hay algunas más formas de crear variables,


pero se sugiere que los crees solo dentro de
tu programa, por otro lado no es
recomendable usar las variables ya
existentes de tu calculadora, que son para
uso externo, uso que el usuario debe tener
disponible (y no ser modi cado por un
programa que instale), claro que depende de
qué tan transparente sea el programa.

Las variables existentes (integradas) se


encuentran en la tecla "Vars", ahí puedes
encontrar todo el abecedeario reservado
como variables tipo Real, y muchas más
variables como las de aplicación, de usuario
y las del catálogo. Por esa razón puedes usar
la variable externa a tu programa C, porque
ya existe y es de las que se puede acceder
desde cualquier parte de la calculadora,
como de tu programa o cualquier otro
programa, nada recomendable por esa
razón.

Jhonny 2/11/19 07:43


Muchas gracias por responder, no sé mucho
de programar, revisaré lo del LOCAL; será
mejor el uso exclusivo para el programa.

RESPONDER

Escribe un comentario...

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 29/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

Lo más visto

HP Prime - Consideraciones del Lenguaje PPL - 3°


Parte
julio 24, 2017

Consideraciones importantes para programadores


en PPL, se presenta un resumen de puntos
relevantes al lenguaje, tercera parte donde se

LEER MÁS

HP Prime - Consideraciones del Lenguaje PPL - 2°


Parte
julio 01, 2017

Consideraciones importantes para programadores


en PPL, se presenta un resumen de puntos
relevantes al lenguaje, segunda parte donde se

LEER MÁS

Con tecnología de Blogger

Imágenes del tema de kelvinjay

Carlos Ismael Campos Guerra

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 30/31
19/12/2019 HP Prime - Consideraciones del Lenguaje PPL - 1° Parte

Mostrar por Temas

Historial de publicacion…

     

Tweets by
@ElAmigoCarlosCG

ElAmigoCarlos
@ElAmigoCarlosCG
HP Prime - Omisiones en
sintaxis. Formas alternativas de
escribir el código de un
programa con una ligera
supresión y reemplazo de
carácteres y símbolos. carlos-
icg.blogspot.com/2018/05/hp-
pri…

May 22, 2018

ElAmigoCarlos
@ElAmigoCarlosCG

Crear animaciones en la App


Geometría youtu.be/D6u4IP-
KEDg?a

YouTube @YouTube

Embed View on Twitter

Denunciar abuso

https://carlos-icg.blogspot.com/2016/02/hp-prime-consideraciones-PPL-1.html 31/31

Вам также может понравиться