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 Prime, habr!s notado ciertas particularidades "ue est!n Como programador de la calculadora HP Prime, usuario, pero tambi#n conceptos adicionales a #ste, por lo "ue en esta nota incluidas en el Manual de usuario, im"ortante para los "ue se encuentran en se trata de dar informacin resumida !ue se considera im"ortante para 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
$eclaracin e Iniciacin 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 an 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 Comnmente 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 tamao (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!ilicacin, 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 segn 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
eclaracin e .niciacin 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 1Verdadero 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 !rue1 $ *alse0, 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
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 segn 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 +946 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 minscula )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;(xresin :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 funcin 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
&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
0R2 ) 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 an 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!rerasD2D16 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% caspero supongo "ue estar!n trabajando en actuali.acioneshabr! "ue enviarles algunos bugs "ue encontremosluego te comento mas *esponder
1 :arlos .smael :amos 8uerra10D2D16 12/0 &n este foro )hpmuseumorg+ 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 sealado para el pró