Vous êtes sur la page 1sur 15

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,
Prime, habr!s notado ciertas particularidades "ue est!n
incluidas en el Manual de usuario,
usuario, pero tambi#n conceptos adicionales a #ste, por lo "ue en esta nota
se trata de dar informacin resumida !ue se considera im"ortante para
im"ortante para los "ue se encuentran en
pr!ctica o deseen comparar ideas

Antes de em"e#ar

Las diferencias Cada lenguaje aprovecha sus recursos de diversas formas, por lo tanto cada lenguaje es
especial en cierto aspecto Para los "ue no lo tengan presente, este lenguaje esta orientado a secuencias
$ permite el manejo de datos de una forma mu$ aprovechable, por lo "ue se precisa indicar "ue estas
consideraciones pueden llegar a ser e%clusivas de PPL

$eclaracin e Iniciacin de %aria&les

&%presión combinada Para declarar variables usamos el comando L'C(L seguido de los
identificadores de la variable, esta acción no solo declara la variable )*eserva de espacio en memoria+,
tambi#n le asigna un valor inicial an si no se indicó ninguno, el valor predeterminado es 0, entonces la
variable "ueda definida como tipo *eal
-i estamos trabajando $ vemos "ue de repente nos aparece un 0, es por esta ra.ón
Para evitar #sto, podemos iniciar de buena ve. si es necesario, los tipos de datos a asignar

'i"o de dato no restringido

*eserva variable de memoria Comnmente este caso es usado para las colecciones de datos $ cadenas,
puesto "ue su longitud es indeterminada, pero en este lenguaje aprovecha esto para colocar cual"uier
tipo de dato, en una variable cu$o dato actual sea un tipo distinto

Por lo "ue es v!lido asignar un valor inicial como [2,3]▶Variable , $ luego asignar un tipo de dato
diferente como "2015 un año muy soleado"▶Variable , no siendo esto un caso de e%cepción

&stamos confirmando entonces la destrucción tanto del dato $ del tipo con los m#todos de entrada $
asignación "ue e%istan en este lenguaje

Arreglos (Arra)s*

Carencia imperceptible &ste lenguaje no dispone de esta estructura de datos, pero e%isten 2 tipos de
datos "ue pueden reempla.arlo, incluso resulta de m!s utilidad en ciertos casos/ atrices )reales $
complejos+ $ Listas )cual"uier tipo de dato almacenable+

+ectores ) Matrices

Las atrices, "ue pueden ser unidimensionales )ectores+ o bidimensionales, de tamao (m x n) no
necesariamente definidas con anterioridad, sólo pueden contener datos del tipo real $ complejo
3anto para vectores $ matrices, se permite la asignación de valores en posiciones no iniciadas, veamos
el siguiente caso/

Las variables tipo matri. pueden tener una longitud variable, las posiciones no iniciadas se completan
con 0, puesto "ue este es el valor "ue se define por defecto a datos no iniciados, respet!ndose la
sinta%is de sólo contener datos tipo real

Las variables tipo matri. se manipulan con par!metros reales como ariable)1+, ariable)4+ para filas,
ariable)54+, ariable)5+ para columnas $ ariable)1,2+ ó ariable),+ para un solo dato, se sabe "ue
se usan estas formas para llamar $ asignar datos
Pero e%iste 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 sub58ndices, en ambos casos obteni#ndose una
matri. bidimensional aun si sólo se hace referencia a un dato &ste caso es exclusivo ara la salida de
da!os, no es funcional para la asignación de datos
Los vectores $ matrices est!n orientados a c!lculos matem!ticos, $ PPL puede usar las e%presiones
comunes entre estos elementos, tanto como mul!ilicacin, suma, inversa, e!c 

Listas

Las listas pueden contener al mismo tiempo diversos tipos de datos, debido a "ue su estructura usa
referencias a elementos )como referencia a un real, una cadena, etc+, incluso una lista puede contener
otra lista $ as8 sucesivamente, siendo esto un recurso de mucha utilidad para la agrupación de datos
#$,"%ola",[5,2,&1],#1,0''▶Variable

-i a una lista se le asigna un valor en la posición 0, el valor ser! colocado al final de la lista creando la
siguiente posición a la actual Por lo tanto si se usa el llamado  is!a(0), retornar! el ltimo valor de la
lista

9na variable tipo lista, como se ha visto anteriormente, se puede iniciar como una lista vac8a #', $ para
poder agregar un primer valor podemos usar  is!a(1), esto normalmente ser8a una e%cepción puesto "ue
la posición 1 no e%iste, pero es posible
Por lo "ue podemos asumir "ue a las variables tipo lista se les puede asignar valores en posiciones no
iniciadas al igual "ue las matrices, $ los valores no definidos ser!n ocupados por 0 )alor por defecto
para la creación de espacios de dato no e%istentes+

(l igual "ue las matrices )o mejor dicho, e%actamente igual "ue a vectores+, se pueden usar par!metros
de tipo lista para la salida de datos de listas
-iendo posible el caso de unir par!metros tipo reales $ tipo lista segn se re"uiera

'tra acotación sobre las listas, es "ue permiten crear con facilidad listas de listas dentro de estas,
usamos una lista vac8a, $ asignamos a un anidado de posiciones, por lo "ue 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+
&n resumen, las variables tipo lista pueden contener todo tipo de dato, $ la creación de listas de listas es
simplificada, si un valor no e%iste este se crea como 0, si un valor en la lista $a e%iste puede ser f!cil
reempla.ado por otro debido a "ue el tipo de dato no es restringido

&sta 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 "ue #stos pueden ser eliminados sin ninguna
advertencia, como por ejemplo el dato 10 en la posición is!a(2), puede ser convertido a lista al asignar
una lista de lista en esa posición

'i"o inferido ) $,&ilmente ti"ado

'i"o inferido (l no re"uerir l8neas de código como  e*inir + como eal- o similar, la nica forma de
distinguir el tipo de dato contenido en una variable, es darle el dato de por s8 )formas mostradas en
 eclaracin e .niciacin de variables +

$,&ilmente ti"ado -e permite la operación de diversos tipos de datos sin conversión, puede resultar
ventajoso, estos son algunos casos/

.oolean/

3ipo no definido &n cual"uier instrucción donde se re"uiera el valor lógico de verdadero o falso, sea
en las familias ./  o en bucles, podemos usar el valor 1Verdadero o 0/also, siendo estos simples datos
del tipo real -e muestran los resultados de las operadores relacionales
3ambi#n es posible usar cual"uier tipo de valor real distinto de 0 para representar erdadero, por lo
tanto en las siguientes operaciones lógicas se obtiene/

&s decir, no e%iste datos lógicos espec8ficos, siendo !rue1 $ *alse0, ambos valores reales

Identificadores o nom&res

-e debe entender "ue una variable puede usarse siempre $ cuando se halla creado tanto en :;:C:' o en
un programa );o considerando el entorno C(-+, por lo "ue <efinir una función con  e*ine )<esde
:;:C:', no es PPL+ no permitir! usar variables "ue no hallan sido creadas con anterioridad, puesto "ue
este tipo de implemento obtiene valores de variables e%ternas, $ no de variables locales a la función
definida

Los identificadores en =P Prime no est!n clasificados, por lo "ue la llamada a un identificador


)variable de usuario, programa, comando, función, variable de inicio, listas, matrices, etc+ recorrer! de
acuerdo a un indi.ado todo este grupo en conjunto Por lo "ue en :;:C:', no podremos crear variables
como /1 )*eservado para (pp >unción+, variable +4   )*eservado como comando+, variable  6
)ariable de usuario tipo *eal predefinido+, variable  71, 81, 1 )*eservado para matri., gr!fico $ lista
respectivamente+, e identificadores de variables "ue traten de usar cual"uiera de los reservados segn
indica el manual de usuario

-e aclara "ue el motivo por el cual todos los identificadores se encuentran no clasificados, es debido a
"ue todas las variables pueden tener cual"uier tipo al cual se le reasigne, por lo "ue no es posible crear
una variable tipo real 5▶71, puesto "ue estar8amos haciendo referencia a la misma variable matri.
reservada por la calculadora )las variables reservadas no pueden ser modificadas en tipo+

&n consecuencia, desde un programa no podremos  +946 variables con identificadores iguales a


los casos mencionados anteriormente Para variables  4:6; no ha$ interferencia, puesto "ue estas
se priori.an sobre las referencias e%teriores dentro de la función donde fue creada

Identificadores CAS

(l programar $ revisar el men de a$uda o el manual, podremos identificar apro%imadamente si un


comando puede ser utili.ado directamente en el programa o si re"uiere de un ambiente C(-,
identificando si el comando esta en minscula )C(-+ o no

&%isten  formas de usar estos comandos/

• 9sando simplemente el :omando( )


• 9sando :6;<:omando( ), en ocasiones "ue no se intertepreta correctamente como C(-
• 9sando :6;(xresin :6;), similar al anterior
• Creando una función C(- con =cas =end La función debe contener por lo menos una variable
de llegada para poder usarla

-in embargo, en todos ellos no podremos enviarle par!metros simbólicos como se usa normalmente, se
deber! usar cadenas o e%presiones para lograrlo -i deseas m!s información respecto al uso de C(-
ingresa a Consideraciones ?parte PPL5C(- 

'oda funcin o comando retorna %alor


9na función vac8a devuelve por defecto el valor de 0
9na función "ue contiene instrucciones retorna el valor residual de la ltima instrucción ejecutada
9na función "ue ejecuta el comando  > , retorna el valor residual de la l8nea "ue contiene el
comando $ termina la ejecución de la función

<e forma similar funcionan los comandos de =P Prime, se presenta algunos valores retornados de
comandos conocidos

&sta caracter8stica en el lenguaje permite anidar o usar cual"uier tipo de función en diversas partes de
una instrucción mientras la sinta%is b!sica sea correcta, se ejecuta de adentro hacia afuera $ de acuerdo
al orden hori.ontal
( ra.ón de esto, todo comando, función o similar, puede colocarse de forma individual en una
instrucción, $a "ue las instrucciones pueden solo emitir un valor sin necesidad de asignar o ejecutar
algo como estos casos/

Los comandos de entrada ) salida

-obreentendido @ien sabemos "ue al escribir código, si el contenido resulta corto $ las instrucciones
meramente operativas, el programa nos estar! mostrando un resultado casi al mismo tiempo "ue
presionamos &jecutar, esto debido a "ue los lenguajes est!n preparados para ejecutarse al 100A, a
menos "ue esto se restrinja )se intenta+

&n cuanto a .>9, :%44; $ 7;8?4+ , son interfaces de interacción usuario "ue permiten el
llenado de datos $ por lo tanto su manipulación, por lo "ue podemos afirmar "ue la ejecución del
código se retiene en estas instrucciones hasta "ue confirmemos o cancelemos con los medios "ue
brindan

&sto puede ser obviamente b!sico, pero cuando trabajamos con funciones $ gr!ficos propios, esto
puede llegar a ser un problema si es "ue no se entiende este concepto, ser! necesario crear funciones a
cuenta propia "ue simulen esa pausa en el código $ "ue permitan la visuali.ación de datos $
manipulación en el tiempo adecuado, $ adem!s es importante "ue el m#todo usado no genere consumo
de recursos innecesarios

0R2 ) PRI3'
alentendido concurrente &n ra.ón al uso de gr!ficos para el caso mencionado en el punto preliminar,
se re"uiere usar un comando "ue permita pausar la ejecución del código $ visuali.ar los cambios en
pantalla en el punto deseado, $a "ue el programa se ejecuta sin descanso, pero  /@ no es el
comando til en esta ocasión

 /@ solo hace efecto al finali.ar la ejecución del programa, no actuali.ando la pantalla hasta
presionar alguna tecla, esto puede causar mucha confusión si el programa es corto $ no se tiene idea de
lo "ue esta pasandoB no pausa la ejecución, por lo "ue puede ser llamado en cual"uier punto del
programa, $ solo tendr! efecto al final de todo

&n cuanto a 9.> , tampoco es un comando "ue 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 re5
dibujada con un comando posterior, pasar! m!s r!pido "ue un parpadeo $ no podremos verlo

&l comando 9.>  esta desarrollado para mostrarse al final de la ejecución al igual "ue  /@ )9sar
los 2 comandos al mismo tiempo puede ocasionar an m!s enredo+ -u objetivo es mostrar la terminal
con los datos acumulados en este, siendo posible despla.ar la pantalla de ser necesario, se presiona
cual"uier tecla para salir de la terminal

:on!inAa a :onsideraciones en 9rogramas .. 

=P Prime Programación PPL

Comentarios

1

 .van :on!rerasD2D16 1/07


@uen aporte tu trabajo para difundir el conocimiento sobre la =P Prime  lo "ue descubr8
programando es "ue esta por debajo de la ti nspire c% caspero supongo "ue estar!n trabajando
en actuali.acioneshabr! "ue enviarles algunos bugs "ue encontremosluego te comento
mas

*esponder
1

:arlos .smael :amos 8uerra10D2D16 12/0


&n este foro )hpmuseumorg+ se pueden publicar los bugs, ha$ 2 miembros activos de
=P Prime "ue suelen revisar temas de este aspecto, suelen decir "ue atender!n lo
sealado para el pró

Vous aimerez peut-être aussi