calcuHP

8
Programación en User RPL Vicente Montecinos G. INTRODUCCIÓN 1 INTRODUCCIÓN INTRODUCCIÓN La programación en User RPL se puede catalogar dentro de un cierto modo de programación llamada Programación estructurada. Por lo tanto antes de comenzar con los conceptos propios del User RPL, se revisaran conceptos básicos acerca de programación estructurada DEFINICIONES DEFINICIONES La programación estructurada (en adelante simplemente PE ), es un estilo de programación con el cual el programador elabora programas, cuya estructura es la más clara posible, mediante el uso de tres estructuras básicas de control lógico, a saber : 1.SECUENCIA. 1.SECUENCIA. 2.SELECCIÓN. 2.SELECCIÓN. 3.ITERACIÓN. 3.ITERACIÓN. Un programa estructurado se compone de funciones, segmentos, módulos y/o subrutinas, cada una con una sola entrada y una sola salida. Cada uno de estos módulos (aún en el mismo programa completo), se denomina programa apropiado cuando, además de estar compuesto solamente por las tres estructuras básicas, tiene sólo una entrada y una salida y en ejecución no tiene partes por las cuales nunca pasa ni tiene ciclos infinitos. La PE tiene un teorema estructural o teorema fundamental, el cual afirma que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando únicamente las tres estructuras básicas ( secuencia, selección, iteración ). DEFINICIÓN DE LAS ESTRUCTURAS BÁSICAS DE CONTROL LÓGICO DEFINICIÓN DE LAS ESTRUCTURAS BÁSICAS DE CONTROL LÓGICO 1.- SECUENCIA 1.- SECUENCIA Indica que las instrucciones de un programa se ejecutan una después de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gráficamente como una caja después de otra, ambas con una sola entrada y una única salida. Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un módulo o programa completo, siempre y cuando que estos también sean programas apropiados. 2.- SELECCIÓN 2.- SELECCIÓN También conocida como la estructura SI-CIERTO-FALSO, plantea la selección entre

Transcript of calcuHP

Page 1: calcuHP

Programación en User RPL Vicente Montecinos G.

INTRODUCCIÓN 1

INTRODUCCIÓNINTRODUCCIÓN

La programación en User RPL se puede catalogar dentro de un cierto modo deprogramación llamada Programación estructurada. Por lo tanto antes de comenzarcon los conceptos propios del User RPL, se revisaran conceptos básicos acerca deprogramación estructurada

DEFINICIONES DEFINICIONES

La programación estructurada (en adelante simplemente PE ), es un estilode programación con el cual el programador elabora programas, cuya estructura esla más clara posible, mediante el uso de tres estructuras básicas de controllógico, a saber :

1.SECUENCIA. 1.SECUENCIA. 2.SELECCIÓN. 2.SELECCIÓN. 3.ITERACIÓN.3.ITERACIÓN.

Un programa estructurado se compone de funciones, segmentos, módulos y/osubrutinas, cada una con una sola entrada y una sola salida. Cada uno de estosmódulos (aún en el mismo programa completo), se denomina programa apropiadocuando, además de estar compuesto solamente por las tres estructuras básicas,tiene sólo una entrada y una salida y en ejecución no tiene partes por las cualesnunca pasa ni tiene ciclos infinitos.

La PE tiene un teorema estructural o teorema fundamental, el cual afirmaque cualquier programa, no importa el tipo de trabajo que ejecute, puede serelaborado utilizando únicamente las tres estructuras básicas ( secuencia,selección, iteración ).

DEFINICIÓN DE LAS ESTRUCTURAS BÁSICAS DE CONTROL LÓGICODEFINICIÓN DE LAS ESTRUCTURAS BÁSICAS DE CONTROL LÓGICO

1.- SECUENCIA 1.- SECUENCIA

Indica que las instrucciones de un programa se ejecutan una después de laotra, en el mismo orden en el cual aparecen en el programa. Se representagráficamente como una caja después de otra, ambas con una sola entrada y unaúnica salida.

Las cajas A y B pueden ser definidas para ejecutar desde una simpleinstrucción hasta un módulo o programa completo, siempre y cuando que estostambién sean programas apropiados.

2.- SELECCIÓN 2.- SELECCIÓN También conocida como la estructura SI-CIERTO-FALSO, plantea la selección entre

Page 2: calcuHP

Programación en User RPL Vicente Montecinos G.

INTRODUCCIÓN 2

dos alternativas con base en el resultado de la evaluación de una condición opredicado; equivale a la instrucción IF de todos los lenguajes de programacióny se representa gráficamente de la siguiente manera :

En el diagrama de flujo anterior, C es una condición que se evalúa; A esla acción que se ejecuta cuando la evaluación de este predicado resulta verdaderay B es la acción ejecutada cuando indica falso. La estructura también tiene unasola entrada y una sola salida; y las funciones A y B también pueden sercualquier estructura básica o conjunto de estructuras.

3.- ITERACIÓN 3.- ITERACIÓN

También llamada la estructura HACER-MIENTRAS-QUE, corresponde a laejecución repetida de una instrucción mientras que se cumple una determinadacondición. El diagrama de flujo para esta estructura es el siguiente :

Aquí el bloque A se ejecuta repetidamente mientras que la condición C secumpla o sea cierta. También tiene una sola entrada y una sola salida; igualmenteA puede ser cualquier estructura básica o conjunto de estructuras.

VENTAJAS DE LA PROGRAMACIÓN ESTRUCTURADA VENTAJAS DE LA PROGRAMACIÓN ESTRUCTURADA

1.Los programas son más fáciles de entender. Un programa estructurado puede serleído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de unsitio a otro en la lógica, lo cual es típico de otros estilos de programación.La estructura del programa es más clara puesto que las instrucciones están másligadas o relacionadas entre si, por lo que es más fácil comprender lo que hacecada función.

Page 3: calcuHP

Programación en User RPL Vicente Montecinos G.

INTRODUCCIÓN 3

2.Reducción del esfuerzo en las pruebas. El programa se puede tener listo paraproducción normal en un tiempo menor del tradicional; por otro lado, elseguimiento de las fallas o depuración (debugging) se facilita debido a la lógicamás visible, de tal forma que los errores se pueden detectar y corregir másfácilmente. 3.Programas más sencillos y más rápidos.

Page 4: calcuHP

Programación en User RPL Vicente Montecinos G.

1 Para ejecutar un programa cuyo contenido se encuentra en nivel 1 se debe usar

el comando EVALEVAL .

2 Solo los primeros cinco caracteres del nombre se visualizan en el menu.

CONCEPTOS GENERALES 4

11 CONCEPTOS GENERALESCONCEPTOS GENERALES

En la HP48/49 un programa es un objeto encerrado por los delimitadores« » ; que contiene una secuencia de números, comandos y otros objetos, separadospor espacios, que se desean ejecutar en forma automática.

Por ejemplo se desea calcular el seno al cuadrado de un numero que seencuentra en nivel 1, se puede pulsar S2Q, o bien hacerlo a través delsiguiente programa el cual ejecuta la misma secuencia de comandos1.

« SIN 2 ^ »

Sin cambiar el programa pudríamos mostrar un comando por linea similar aotros lenguajes de programación:

« SIN 2 ^

»

Ahora veamos como almacenar un programa en la memoria del usuario. Estedebe estar en nivel 1, luego teclear nombre entre ‘ ’ , pulsar ` y luego K.Ahora pulse J y el nombre del programa se visualizara en la primera etiquetadel menu2 . Ahora para ejecutarlo bastara con pulsar la tecla que le correspondeen el menu.

Tomando como ejemplo el programa anterior supongamos que se quierealmacenar con nombre de ‘SC’‘SC’.

‘SC’` K

Felicitaciones acaba de guardar su primer programa en User RPL.

Page 5: calcuHP

Programación en User RPL Vicente Montecinos G.

CONCEPTOS GENERALES 5

1.1 El Contenido de un Programa1.1 El Contenido de un Programa

Como se ha mencionado con anterioridad, un programa contiene una secuenciade objetos. Como cada objeto se procesa en un programa, la acción producidadepende del tipo de objeto, como se resume a continuación

ObjetoObjeto AcciónAcción

Comando Ejecutado.

Número Puesto en la pila.

Operación algebraica Puesto en la pila.

Cadena Puesto en la pila.

Lista Puesto en la pila.

Programa Puesto en la pila.

Nombre global (entre comillas) Puesto en la pila.

Nombre global (sin comillas)

Programa ejecutadoNombre evaluado.El directorio se convierte enactualOtro objeto, puesto en la pila.

Nombre local (entre comillas) Puesto en la pila.

Nombre local (sin comillas) Contenido puesto en la pila.

Como puede verse en esta tabla, la mayoría de los tipos de objetos seponen en la pila pero se ejecutan los programas y comandos incorporados llamadospor su nombre. Los ejemplos siguientes muestran los resultados de la ejecuciónde programas que contienen secuencias de objetos diferentes.

ProgramaPrograma ResultadosResultados

« 1 2 »2: 11: 2

« “Hola” { A B } »2: “Hola”1: { A B }

« '1+2' » 1: '1+2'

« '1+2' NUM » 1: 3

« « 1 2 + » » 1: « 1 2 + »

« « 1 2 + » EVAL » 1: 3

Page 6: calcuHP

Programación en User RPL Vicente Montecinos G.

MANIPULACIÓN DE LA PILA 6

22 MANIPULACIÓN DE LA PILA (STACK)MANIPULACIÓN DE LA PILA (STACK)

El User RPL esta basado en la utilización de la pila (stack).Usted puedeagregar o puede quitar objetos de la pila. Usted también puede reestructurar elorden de los objetos. A continuación se listan los comandos disponibles para lamanipulación de la pila.

Comando/DescripciónComando/DescripciónEjemploEjemplo

EntradaEntrada SalidaSalida

DUPDUP Duplica el objeto del nivel 1.3:2: A 1: B

3: A2: B1: B

SWAPSWAP Intercambia los niveles 1 y 2.3:2: A 1: B

3:2: B 1: A

DROPDROP Remueve (borra) el objeto del nivel 1.3:2: A 1: B

3:2: 1: A

OVEROVER Copia el objeto del nivel 2 en el nivel 1.3:2: A 1: B

3: A2: B1: A

ROT ROT Mueve el objeto del nivel 3 al nivel 1(equivalente a 3 ROLL).

3: A2: B1: C

3: B2: C1: A

*UNROT*UNROT Mueve el objeto del nivel 1 al nivel 3(equivalente ROT ROT o 3 ROLLD).

3: A2: B1: C

3: C2: A1: B

ROLL ROLL Mueve el objeto del nivel n+1 al nivel 1 (n está en el nivel 1)

4: A3: B2: C1: 3

4:3: B2: C1: A

ROLLDROLLD Mueve el objeto del nivel 2 al nivel n (n está en el nivel 1)

5: A 4: B3: C2: D1: 3

5:4: A3: D2: B1: C

PICKPICK Devuelve una copia del nivel n+1 al nivel 1 (n está en el nivel 1)

5: A 4: B3: C2: D1: 3

5: A 4: B3: C2: D1: B

*UNPICK*UNPICK Reemplaza el objeto del nivel n+2 por elobjeto del nivel 2 (n está en el nivel 1).

5: A 4: B3: C2: “A”1: 3

5: 4: 3: “A”2: B1: C

Page 7: calcuHP

Programación en User RPL Vicente Montecinos G.

MANIPULACIÓN DE LA PILA 7

*PICK3*PICK3 Equivalente a 3 PICK.

5: 4: A3: B2: C1: D

5: A 4: B3: C2: D1: B

DEPTHDEPTH Devuelve el numero de objetos que seencuentran la pila.

5: 4: A3: B2: C1: D

5: A 4: B3: C2: D1: 4

DUP2DUP2 Duplica los objetos de los niveles 1 y 2.

4:3:2: A 1: B

4: A3: B2: A1: B

DUPNDUPN Duplica n objetos en la pila partiendo delnivel 2.

6:5:4: A3: B2: C1: 3

6: A5: B4: C3: A2: B1: C

DROP2DROP2 Borra los objetos de los niveles 1 y 2.

4: A3: B2: C1: D

4: 3: 2: A1: B

DROPNDROPN Borra n objetos de la pila.

5: A 4: B3: C2: D1: 3

5: 4: 3: 2: 1: A

*DUPDUP*DUPDUP Devuelve 2 copias del nivel 1 (equivalentea DUP DUP).

4:3:2: A 1: B

4: A3: B2: B1: B

*NIP *NIP Borra el objeto del nivel 2 (equivalente aSWAP DROP).

4: A3: B2: C1: D

4:3: A2: B1: D

*NDUPN *NDUPN Crea n-1 copias del nivel 2 y deja n en lapila.

7:6:5: A 4: B3: C2: D1: 3

7: A6: B5: C 4: D3: D2: D1: 3

* Comandos disponibles solo en la HP49

Page 8: calcuHP

Programación en User RPL Vicente Montecinos G.

MANIPULACIÓN DE LA PILA 8

LASTARGLASTARG Devuelve el(los) argumento(s) a la pila.

Auque tanto en los menús de la HP48/49 como en los manuales LASTARG no secataloga como comando para la manipulación de la pila (Se le cataloga comocomando para la manipulación/detección de errores). Lo incluyo porque permitereemplazar a otro comandos de manipulacion de la pila, ahorrando pasos y tiempoen los programas.

El siguiente ejemplo ilustra la utilidad de LASTARG. Supongase que se que

se quiere calcular la cotangente( ) de un numero tomado del nivel 1.cot xcos x

sen x=

« DUP COS SWAP SIN / »

Su equivalente usando LASTARG:

« COS LASTARG SIN / »