domingo, 12 de octubre de 2008

Uso de variables globales y locales en HP

Autor: Chicho

Hola a todos, en este artículo les enseñaré como se usan las variables locales y globales dentro de un programa. Para no andar perdidos deben saber como grabar programas en la calculadora (leer aquí) y el uso del teclado de la calculadora. Recuerden que (al menos) todos los tutoriales que hago están hechos para ser aplicados en modo RPN, así que quedan avisados.

Para los que están siguiendo los tutoriales que ando haciendo, se habrán dado cuenta que con el tipo de programas que hasta ahora hemos desarrollado sólo podiamos operar linealmente los valores de la pila. Por ejemplo, podiamos restarle al número superior de la pila la suma de los dos últimos números de la pila con el programa:

«+ -» ...(1)

Sin embargo, si tenemos en mente hacer un programa que nos devuelva la diferencia entre el producto del primer y tercer elemento de la pila con el producto del segundo y cuarto elemento de la pila (vista de arriba hacia abajo), nos damos cuenta que con lo visto anteriormente no nos alcanza ya que para realizar esta operación debemos insertar los operadores entre los números que vamos a operar. Aquí es donde entra el uso de variables.

En la HP existen dos tipos de variables (hasta donde se). Las variables globales y las locales. De estas dos yo prefiero usar las variables locales, pero para que tomen su decisión, les enseñaré a usar ambas.

Los comandos que normalmente se usan con las variables gloables son:

- 'variable' STO: Guarda el valor inferior de la pila en "variable" y lo quita de la pila.

- 'variable' PURGE: Libera la variable (osea la deja sin valor).

- variable: Si el nombre de variable se escribe directamente, el valor que tenga la variable será puesto en pila, si la variable no tiene valor, se escribe como cadena de caracteres.

Con estas breves indicaciones ya podemos crear el programa que teníamos en mente. Quedaría así:

«
'D' STO
'C' STO
'B' STO
'A' STO
A C * B D * -
'D' PURGE
'C' PURGE
'B' PURGE
'A' PURGE
» ...(2)

Para los que son "observadores" se deben haber dado cuenta que coloqué las variables que uso en orden inverso, esto es porque el cuarto valor se leerá primero; el tercero, segundo; el segundo, tercero y el primero, cuarto (los últimos serán los primero :P).
Luego, mando las variables A y C a la pila, las multiplico, mando a pila B y D, las multiplico y luego resto los valores inferiores que estan en la pila (osea A*C y B*D); el resultado quedará en la pila.
Finalmente, libero las variables.

Los comandos que se usan con las variables locales son los siguientes:

- -> variable1 variable2 ... variableN: Copia las N posiciones inferiores de la pila en las N variables comenando de arriba hacia abajo y las elimina de la pila.

- « operaciones con las variables »: Toda operación con las variables locales se deberá hacer después de haberlas leido y solo dentro de «»; una vez que se cierre las variables locales habrán perdido su valor, pero los valores en la pila se mantendran (osea, todos los que se fueron agregando en la pila gracias a las operaciones hechas).

Por ejemplo, el programa que teníamos en mente también lo podemos hacer de la siguiente manera:

«
-> A B C D
«A C * B D * -»
» ...(3)

Primero, enviamos los 4 valores inferiores de la pila a las variables. Luego, enviamos a pila A y C, las multiplico, enviamos a pila B y D, las multiplico y luego resto los valores inferiores que estan en pila (osea A*C y B*D); el resultado quedará en la pila.
Como podemos ver, al terminar las operaciones, las variables son liberadas automaticamente.

Aquí les listo algunas ventajas y desventajas de los tipos de variables:

Globales:
- Su principal ventaja es que no si se desean utilizar para varias operaciones mantienen su valor. Inclusive, puede mantener su valor para ser usadas en otras funciones y al final del primer uso no se purgan y al inicio del segundo uso no se STOean.
- Su principal desventaja es que se tienen que purgar cuando ya no van a ser usadas, además que debes leer variables por variable y que a veces puede que escribas el valor encima de algún programa (ya que en realidad los programas son solo variables).

Locales:
- Su principal ventaja es que se pueden leer varios valores directamente (sin tener que repetir el mismo código acada rato), además de que no se deben estar purgando cuando se acaban de usar y no tienes el riesgo de sobreescribir algún programa.
- Su principal desventaja es que solo se pueden usar las variables en la subsección que se creó, si se quiere usar el valor más adelante se debe considerar en el programa para que se quede en alguna parte de la pila.

Ahora que saben como usar las variables, saquen sus propias conclusiones. Por lo general yo usaré variables locales a no ser que considere que sea más fácil o necesario usar variables globales.

Gracias y cualquier duda, sugerencia u otra cosa dejen su comentario.

P.D.: Para los que llegaron hasta aquí, les aviso que las variables puede guardar "cualquier cosa", así que no se queden cortos con usar solo escalares ya que también pueden guardar vectores, matrices, listas, cadenas y hasta programas.
Leer más...

sábado, 4 de octubre de 2008

Manuales de programación en HP

Autor: Jose A.

Bueno, comento solo para pasarles estos artículos sobre HP q encontre buscando en google en 5 seg. pero como se q hay gente q no le gusta buscar los pongo:

El primero es la guia que les viene a los que compran original px, se las paso para los q no la tengan o los q practican con el emulador (asi como chicho)

http://rapidshare.com/files/151005187/guiadeusuario50G.pdf

El segundo es un manual de programacion en lenguaje user rpl, esta bien explicado, creo q unico requisito seria haber pasado compu I ( y no haberla pasado ni con osorio, ni con castañeda.. XD):

http://rapidshare.com/files/151006562/manua2lUserRPL.rar

Si puedo luego aporto mas.

Leer más...

UNI lanzará satélite Chasqui I en el 2010

Debido a la gran demanda de información satelital en áreas como la minería, agricultura, telecomunicaciones y defensa nacional en nuestro país, la Universidad Nacional de Ingeniería UNI a través del Centro de Tecnologías de Información y Comunicaciones CTIC, tiene proyectado lanzar un satélite en el 2010.
La UNI colocaría en órbita al Chasqui I, un nanosatélite de aproximadamente un kilogramo de peso, construido en la misma casa de estudios con tecnología Cubesat, gracias a la investigación, pruebas y desarrollo de nuevas tecnologías de celdas solares, software embebido, nuevas bandas de comunicación con bajo consumo de energía e innovaciones en el diseño de estructuras mecánicas espaciales.

prosigue en:

http://e-huacho.blogspot.com/

Leer más...

Emulador de HP 50g

Autor: Chicho

Aquí les dejo un link para que se descarguen un emulador de HP 50g, funciona igual que la calculadora así que es buena opción para ir prácticando hasta que se puedan comprar una (por ejemplo, yo la uso ya que no tengo calculadora XD).

Descargar


Leer más...

Creación de un programa en HP

Autor: Chicho

Hola a todos, en esta oportunidad les enseñaré como crear un pequeño programa (muy básico pero entendible) en la calculadora HP. Previamente deben saber como funciona el modo RPN (leer aquí) y como usar las letras y símbolos del teclado de la calculadora; y recomiendo (no es obligatorio) tener conocimientos básicos de programación.

Un programa en HP no es más que un simple archivo de texto que tiene una serie de ordenes que la calculadora irá ejecutando. Por ejemplo, si siempre debemos sumar 5 números, lo que escribiríamos normalmente sería:

5
4
6
3
11
+
+
+
+ ...(1)

Como podemos ver, debemos escribir los números que deseamos sumar (obvio) y luego presionar 4 veces el simbolo "+". Como este ejemplo es corto, no notamos ninguna dificultad. Sin embargo, para procesos más complejos nos convendría encapsular toda esa operación en una unica función. Ahí es donde entra la programación.

La idea básica será crear una función llamada "SUMA5" de manera tal que si quisieramos obtener el mismo resultado que en el ejemplo 1, nos bastase con poner:

5
4
6
3
11
SUMA5 ...(2)

Los pasos a seguir serán:

1. Antes de comenzar, recomiendo que dejen limpia la pantalla para que no les estorbe la vista.

2. Cualquier programa en general siempre debe ir entre « » (por ahora no entrare en explicaciones) asi que comenzaremos poniendo ese par de simbolos.

3. A continuación, escribiremos dentro lo que queremos que haga el programa, en nuestro caso quedaría:

« + + + + »

4. Presionamos enter y lo que escribimos anteriormente será enviado a la pila.

5. Escribimos el nombre del archivo entre apostrofes. En nuestro caso será:

'SUMA5'

6. Presionamos enter para que el nombre entre en la pila y luego usamos el boton STO para guardar el programa.

7. Siempre que queramos usar el programa podemos llamarlo de las siguientes maneras: Bien podemos buscarlo en la opción VAR o bien podemos escribir la función directamente.

8. Al usar la función nos quedaría como el ejemplo 2.

Aquí acaba este pequeño tutorial. Con esta información ya pueden ir practicando algunas cosas, pero luego de van a ir dado cuenta de algunas cosas como por ejemplo:
¿Como hago operaciones combinadas, si todo lo que opero así es lineal?
¿Después de un tiempo, me olvide cuales eran los parámetros de entrada de mi función, no podría hacer que el programa me valla pidiendo los parametros que va a usar?
¿Como puedo modificar el programa que he creado?
Entre una gran variedad de preguntas que existen, que se irán respondiendo en el camino (hoy no porque ya me aburrí XD).

Saludos y práctiquen, cualquier duda dejen sus comentarios.

Leer más...

Primera práctica de Dinamica - Seccion A

Saludos a todos, aquí les dejo los solucionarios de la primera práctica de dinámica de la seccion A. Por el momento faltan bloques, luego ire subiendolos.

Primera práctica - Bloque B

Si por ahí tienen los demás bloques, por favor envienlo al correo unifim20071@gmail.com
Leer más...