Mostrando entradas con la etiqueta HP. Mostrar todas las entradas
Mostrando entradas con la etiqueta HP. Mostrar todas las entradas

martes, 10 de marzo de 2009

Clases particulares para estudiantes

Clases particulares de MATEMATICAS, CIENCIA e INGENIERIA.
Dirigida a alumnos de colegio, pre o universitarios que deseen aprender o mejorar su nivel y así lograr sus objetivos académicos.
Relación de cursos y forma de contacto en el volante (click para agrandar).





lunes, 3 de noviembre de 2008

Programación un poco mas avanzada

Autor: Jose A.

Hola, de nuevo informando un poco.

En vista que ya existen personas que de una u otra forma han aprendido a programar en user rpl ( incluso algunos en lenguaje ensamblador, uno mucho más eficiente "pero no es el tema" ), aca les dejo dos temitas:



Programación de interfases gráficas (GUI) en System RPL:

Como el su nombre los dice, es más que todo para cambiar el estilo gráfico en el programa que tu hayas creado, es decir, perfecto tu haz usado una plantilla INFORM, con la cual te viene preconfigurado un menu bien bonito, pues ha esto TU puedes darle el estilo que quieras, desde un simple cambio de estilo de letra(cursiva, tamaño...) hasta añadir pequeñas imagenes previamente cargadas como caritas y todas las tonterias que le quieran poner, claro tambien cosas importantes no, ustedes saben que el primer aprendizaje es el visual.
Bueno sin querer aburrirlos más les dejo este manual, antes mencionandoles que como el titulo lo dice esto es para lenguaje ensamblador que se puede usar con una herramienta llamada "Debug4x" , que tambien viene con el manual:



http://rapidshare.com/files/160109877/prgsysgui.zip



Programando con HP-GCC:


El lenguaje HP-GCC es un lenguaje relativamente reciente, que usa el lenguaje C y hace una conversion para poder usarlo en nuestra querida HP, ustedes podran preguntarse para que nos puede servir esto no?. Bueno una de las razones es porque la mayoría de nosotros esta familiarizado con el lenguaje C verdad, es decir #include<...> y todo eso. Pero la principal razón es la eficiencia en el programas, los que ya han programado en HP se deben haber dado cuenta que el tiempo para compilación y ejecución de sus programas es relativamente largo y eso que todavia no han hecho programas extensos, es ahi donde comenzaran a tener problemas, para darles una idea de la velocidad sus programas hechos con user rpl corre como maximo a 4 MHZ, mientras que usando el HP-GCC podrian llegar a una velocidad de 203MHZ.

Se que aún deben haber algunos incredulos y dudosos pro solo les digo que primero que nada solo les doy una alternativa opcional y segundo que aunque ahora no les importe mucho la velocidad de sus programas creo que si les importa las baterias no, y deberian calcular el ahorro que tendrian usando HP-GCC, pues ahorro de "tiempo = ahorro de bateria!".

Aca les dejo el link con el mnanual y mas explicaciones de este herramienta:


http://rapidshare.com/files/160106505/hpgccespaniol.zip


Bueno sin mas que decir, si alguno esta interesado en el software de los programas, pues lo busca no? (en google). O si quieren me preguntan pues.

Me despido , saludos

PROGRAMANDO EN MODO ALGEBRAICO

Autor: Jose A.

Hola que tal, les comento que conversando con compañeros de la uni, algunos se mostraban asustados por el modo rpn de la hp(Hewlett-Packard) - [ nada que honey p.. :P ] ; bueno decirles solo que es mejor utilizar este modo no solo porque involucra el conocimiento y manejo de pilas, sino porque actualmente es el modo mas utilizado por la mayoria de programadores.

En todo caso, la programación en modo algebraico es muy similar al modo rpn, pero para los que de todas formas deseen seguir con el modo algebraico aca les dejo un manual para programar en modo algebraico, de nuevo aconsejandoles que se acostumbren de preferencia al modo rpn, pero = hagan lo que quieran:

http://rapidshare.com/files/160099306/programalg.zip

Saludos


sábado, 11 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.

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.

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


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.

domingo, 28 de septiembre de 2008

Modo algebraico y RPN

Autor: Chicho

Para los que usan una HP estas dos formas de usar la calculadora les debe sonar familiar, pero por sea caso daré una simple explicación sobre como funcionan.

El modo algebraico se distingue por mostrar primero el nombre de la funcion y luego la entrada de los parametros, mas o menos como en c++, donde poníamos por ejemplo:

strcpy(nombre,nom) ...(1)

Un ejemplo de este modo en la misma calculadora podría ser, por ejemplo, la funcion "CROSS":

CROSS([2 3 5],[4 1 6]) ...(2)

Donde se efectua el producto vectorial de los dos parametros.

Como podemos ver, el modo algebraico necesita encerrar entre parentesis todas las operaciones que va realizando. Así pues, si desearamos realizar un producto vectorial de un vector con el resultado de otro producto vectorial, tendría la siguiente estructura:

CROSS([5 6 9],CROSS([3 6 1],[5 8 12])) ...(3a)

Y, si desearamos realizar un producto vectorial del resultado de un producto vectorial con otro vector , tendríamos:

CROSS(CROSS([4 7 1],[4 8 3]),[2 8 4]) ...(3b)

Donde ambos son algo fastidiosos para la visión y cuando se trabaja con el código de un programa, dificulta su lectura.

Es ahí donde entra el modo RPN. Este modo (que significa "Notación Polaca Inversa") tiene la ventaja que los parametros no son ingresados dentro de parentesis, sino antes de la función. Como las palabras me quedan cortas, mostraremos el ejemplo (1) en RPN:

nombre
nom
strcpy ...(4)

Como que no queda muy claro lo que hice, así que lo explicaré. Los parametros que nos servirán de entrada son las variables "nombre" y "nom", y la función que les estamos aplicando es "strcpy".

El ejemplo (2) en RPN se vería de esta manera:

[2 3 5]
[4 1 6]
CROSS ...(5)

Lo cual es facil de comprender (por el momento, muajajaj).

Antes de continuar, daré una explicación muy concisa sobre el uso de el modo RPN (antes que me olvide :P). El modo RPN usa como parametros de entrada los ultimos "n" ("n" es el número de parametros que acepta la función) parametros ingresados en la pila ("pantalla" como un aproximación más comprensible) en orden de arriba hacia abajo (osea, si ingresamos 5, luego 2 y finalmente 6, el orden sería 5, 2, 6). Un ejemplo de esto sería:

[2 3 5]
[1 2 4]
[9 8 7]
[7 6 3]
CROSS ...(6)

Sabemos que la funcion CROSS admite dos parametros, de ahí que para aplicar la función se tomen los dos ultimos valores de la pila ordenados de arriba hacia abajo, osea [9 8 7] y [7 6 3]. Esta función nos devolvería el producto vectorial de [9 8 7] y [7 6 3] y lo colocaría al final de la pila, que finalmente quedaría de la siguiente manera:

[2 3 5]
[1 2 4]
[-18 22 -2] ...(7)

Ahora que sabemos eso, podemos poner el ejemplo (3a) en modo RPN. Nos quedará de la siguiente manera:

[5 6 9]
[3 6 1]
[5 8 12]
CROSS
CROSS ...(8a)

También podemos cambiar el ejemplo (3b) a RPN:

[4 7 1]
[4 8 3]
CROSS
[2 8 4]
CROSS ...(8b)

Podemos notar que en modo RPN el código es más legible y, aunque al principio parezca que operar en este modo es más difícil es más dificil ya que no hay paréntesis que nos avisen cuando comienza o termina algo, con la práctica nos aclara mucho las cosas.

Ahí les pongo unos cuantos ejemplos más para que comparen.

1. Queremos sumar 5 y 7:

Modo algebraico:
5 + 7

Modo RPN:
5 7 +

2. Queremos multiplicar 5 por la suma de 4 y 7:

Modo algebraico:
5 * ( 4 + 7 )

Modo RPN:
5 4 7 + *

3. Queremos sumar el producto de 8 y 2 con la división de 9 y 7:

Modo algebráico:
8 * 2 + 9 / 7

Modo RPN:
8 2 * 9 7 / +

Y así podría continuar pero me llego la hora de ir a dormir. Para otra ocación seguiré hablando sobre la HP (dicho sea de paso no tengo XD).