You are on page 1of 202

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.

html

Bienvenido a la ayuda de Pauscal


Seleccione un tema: Introduccin Manual del programador Referencia del lenguaje Pauscal en la Web

Copyright 2004 - 2005 Paul Guerra. Todos los derechos reservados

Page 1

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin
Bienvenido a Pauscal, el sistema de desarrollo para los entornos Microsoft Windows de 32 bits. Permite generar aplicaciones de cualquier tipo por medio de un entorno fcil de utilizar. Est pensado para aquellos que deseen iniciarse en la programacin estructurada, o para aquellos que ya poseen conociemientos en el tema y desean adentrarse un poco ms. Posee una caracterstica muy especial: su sintaxis est basada en el idioma espaol. Esto facilita la tarea de recordar los comandos e instrucciones que componen el lenguaje de Pauscal. Cuenta con un compilador que genera cdigo nativo, lo que permite acelerar sus aplicaciones ya que las mismas se ejecutan dirctamente por el procesador.

Novedades en Pauscal 3.1 Conceptos bsicos

Volver

Page 2

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Novedades en Pauscal 3.1

Cdigo nativo: Ahora el compilador genera cdigo nativo que es ejecutado directamente por el procesador. Esto incrementa considerablemente la velocidad de sus programas. Estructuras de datos: Las estructuras de datos han sido implementadas en Pauscal. Permiten un control ms flexible y ordenado de su cdigo. Matrices: Ahora es posible utilizar matrices en sus programas. No slo matrices estticas, sino tambin matrices dinmicas. Las matrices dinmicas son una de las caractersticas que hacen de Pauscal un lenguaje muy flexible a la hora de administrar correctamente la memoria. Clases y Objetos: Una de las caractersticas ms importantes de esta nueva versin de Pauscal es la posibilidad de crear clases y objetos en sus programas. Esto permite simplificar el cdigo. Control Estructurado de Excepciones: Ahora se pueden proteger las secciones importantes de sus programas por medio del uso del denominado Control Estructurado de Excepciones.

Volver

Page 3

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Conceptos bsicos
Pauscal es un lenguaje que permite realizar varias tareas bsicas y otras no tan bsicas. Su sintaxis es fcil de comprender y es similar a otros lenguajes conocidos. Si ya sabe programar, no le costar aprender Pauscal. Si aun no sabe programar, aprender Pauscal le servir para comprender otros lenguajes ms complejos.

Convenciones de documentos La interfaz de Pauscal Su primera aplicacin Fundamentos de la programacin en Pauscal

Volver

Page 4

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Convenciones de documentos
Esta documentacin utiliza las siguientes convenciones tipogrficas: Ejemplo
Var Num:Entero

Descripcin Esta fuente y color se utilizan para el cdigo. En la sintaxis, las palabras que el usuario debe escribir aparecen en negrita. En la sintaxis y el texto, las letras en cursiva pueden indicar marcadores de posicin para la informacin que proporciona. En la sintaxis, los elementos que aparecen entre corchetes son opcionales. En la sintaxis, las llaves y la barra vertical indican una eleccin entre dos o ms elementos. Se debe elegir uno de los elementos, a menos que todos estn entre corchetes. Las letras en maysculas se utilizan para los nombres de teclas y las secuencias de teclas, como ENTRAR y CTRL+R. Un signo ms (+) entre nombres de teclas indica una combinacin de teclas. Por ejemplo, Alt+F1 significa mantener presionada la tecla Alt mientras se presiona la tecla F1.

Redim variable

[listavariables] {HastaQue | PorSiempre}

ENTRAR

ALT+F1

Volver

Page 5

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

La interfaz de Pauscal
En esta seccin encontrar informacin sobre el editor de Pauscal y su depurador.

El editor de Pauscal Depurador

Volver

Page 6

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

El editor de Pauscal
Cuando Ud. abre Pauscal, aparecer una ventana como la siguiente:

Composicin visual del entorno de Pauscal


Botn 'Nuevo'. Crea un nuevo programa, o una nueva biblioteca.

Botn 'Abrir'. Abre un programa o una biblioteca previamente guardada.

Botn 'Guardar'. Guarda los cambios a un programa o biblioteca almacenado en el disco. Si el mismo no fue guardado anteriormente, se le preguntar dnde lo desea guardar.

Botn 'Cortar'. Mueve el texto seleccionado al portapapeles de Windows.

Page 7

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Botn 'Copiar'. Copia el texto seleccionado al portapapeles de Windows.

Botn 'Pegar'. Inserta el contenido del portapapeles de Windows en el cdigo.

Botn 'Compilar'. Transforma el cdigo fuente en un archivo ejecutable.

Botn 'Ejecutar'. Ejecuta el programa actual. No es posible ejecutar una biblioteca.

Botn 'Depurar'. Ejecuta el programa actual en el depurador. No es posible depurar una biblioteca.

Botn 'Verificar Sintaxis'. Verifica que no haya errores en el cdigo fuente.

Barra de archivos abiertos. Muestra los programas y bibliotecas abiertos. [Prog] indica que es un programa, y [Bib] que es una biblioteca.

Informacin sobre el cdigo fuente. Indica la posicin actual del cursor dentro del cdigo fuente, la cantidad de lneas que posee, y si ha sido modificado desde la ltima vez que guard.

Mensajes del compilador. Muestra los mensajes que gener el compilador al generar el ejecutable.

Ventana Configuracin

Volver

Page 8

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Ventana Configuracin
En Herramientas/Configuracin... se puede encontrar la siguiente ventana de configuracin. Aqu se configuran varios aspectos del editor de Pauscal, como as tambin algunas opciones del compilador.

Buscar archivos de importacin en: Esta lista indica las carpetas donde Pauscal debe buscar los archivos de importacin. El botn Agregar agrega una nueva carpeta a la lista, y el botn Quitar saca la carpeta seleccionada de la lista. Pauscal siempre busca en la carpeta \Lib en el directorio de Pauscal. Esta carpeta no puede quitarse.

Lnea de comando adicional: Aqu puede agregar los comandos que desea pasarle al compilador de Pauscal. En la mayora de los casos se deja en blanco.

Generar un controlador estructurado... Si est activa esta opcin, el compilador genera un controlador estructurado de excepciones (ver Introduccin al control estructurado de excepciones) en cada procedimiento que posea variables que necesiten ser liberadas, como por ejemplo cadenas, matrices dinmicas, objetos y estructuras que tengan

Page 9

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

como miembro algunos de estos elementos. En caso de que ocurra una excepcin, si esta opcin esta activa, las variables sern liberadas. Esto es importante en el caso de objetos que poseen un destructor. Esta opcin slo se tiene en cuenta al generar el ejecutable. Al depurar, el compilador siempre genera un controlador estructurado de excepciones en los procedimientos.

Comprobar los lmites de las matrices Si est activa esta opcin, el compilador produce cdigo que verifica cada vez que se accede a un elemento de una matriz si el subndice est dentro de los lmites vlidos de esa matriz. Desactivar esta opcin acelera el trabajo con matrices, pero no ocurrir una excepcin si intenta leer o escribir ms all del lmite de la matriz. Esta opcin slo se tiene en cuenta al generar el ejecutable. Al depurar, el compilador siempre produce cdigo que comprueba los lmites de las matrices.

Asociar las extensiones... Al activar esta opcin, se asocian las extensiones .pdp y .bdp con Pauscal. Esto permite que se puedan abrir los programas y bibliotecas de Pauscal hacindoles doble clic en el Explorador de Windows.

No advertir al cargar un archivo... Si esta opcin est desactiva y se carga un archivo con formato antiguo en el editor de Pauscal, aparecer un mensaje informando esta situacin y que al guardar el archivo se transformar al nuevo formato. Si est opcin est activa, este mensaje no aparece.

Volver

Page 10

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Depurador
Al hacer clic en el botn Depurar se inicia el depurador. Con el depurador puede examinar el contenido de las variables del programa sin tener que insertar llamadas adicionales a procedimientos que lo muestren. Puede insertar un punto de interrupcin en el cdigo para detener la ejecucin en el lugar de inters. Cuando el programa est en pausa (modo de interrupcin), puede examinar las variables locales u otros datos relevantes a travs de las inspecciones. Cuando se establece un punto de interrupcin, no se agrega una llamada funcional al cdigo fuente. Por ello, es poco probable que el establecimiento de un punto de interrupcin cambie el comportamiento del programa que se intenta depurar. Para obtener ms informacin, vea Interrumpir la ejecucin. El depurador tiene el siguiente aspecto:

Botn "Ejecutar" (F5) Al hacer clic en este botn el programa se ejecuta hasta que se encuentre un punto de interrupcin, se haga clic en el botn "Pausa", o hasta que se termine.

Botn "Paso a paso" (F7) Cada vez que se hace clic en este botn el programa ejecuta una lnea de cdigo. Es til para ejecutar una instruccin y ver qu efectos produce. (Ver Ejecutar instrucciones paso a paso)

Page 11

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Botn "Pausa" (F6) Pausa un programa en ejecucin. Si el punto de ejecucin del programa est fuera del cdigo visible, por ejemplo, dentro de una llamada al procedimiento Mensaje, el programa se detendr en la siguiente instruccin luego de terminar de ejecutar el procedimiento actual. (Ver Interrumpir la ejecucin)

Botn "Saltear llamadas" (F8) Este botn es similar al botn "Paso a paso", con la diferencia de que este botn saltea las llamadas a procedimientos y se detiene en la siguiente instruccin. En caso de que la lnea de cdigo no posea ninguna llamada a un procedimiento, este botn funciona igual al botn "Paso a paso". Es til para ver qu efectos produce una llamada a un procedimiento sin entrar en los detalles de su funcionamiento. (Ver Ejecutar instrucciones paso a paso)

Botn "Interrupcin" (F2) Establece un punto de interrupcin en la lnea de cdigo seleccionada. En caso de que ya haya un punto de interrupcin en esa lnea, el mismo se quita.

Botn "Terminar" Termina la ejecucin del programa siendo depurado. (Ver Detener la ejecucin)

Botn "Cerrar" Termina el programa actual si ste se estuviera ejecutando, y cierra el depurador.

Botn "Acerca de..." Muestra informacin sobre el depurador.

Botn "Establecer siguiente instruccin" Al hacer clic sobre este botn se mueve el punto de ejecucin a la lnea de cdigo seleccionada. Debe ser una lnea de cdigo ejecutable. En caso de que haya ms de una instruccin en la lnea seleccionada, el punto de ejecucin se mover a la primera instruccin de la lnea. Al mover el punto de ejecucin no se puede entrar o salir de un procedimiento, ni tampoco de la mayora de las estructuras de control. (Ver Introduccin a las estructuras de control).

Page 12

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Botn "Mostrar siguiente instruccin" Muestra la lnea de cdigo en donde est el punto de ejecucin.

Control de la ejecucin Inspecciones Pila de llamadas

Volver

Page 13

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Inspecciones
Las inspecciones son expresiones que el depurador evala, y muestra su resultado en el panel de inspecciones.

Las inspecciones son tiles ya que permiten conocer el valor de las variables del programa siendo depurado.

Botn "Agregar" Permite agregar y configurar una nueva inspeccin. (Ver Agregar una inspeccin).

Botn "Quitar" Elimina la inspeccin seleccionada.

Botn "Editar" Permite modificar y/o reconfigurar la inspeccin seleccionada. Tambin es posible editar una inspeccin haciendo doble clic sobre la misma.

Agregar una inspeccin

Volver

Page 14

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Pila de llamadas
En el panel Pila de llamadas se pueden ver los nombres de los procedimientos de la pila de llamadas. Cuando se llama a un procedimiento, ste es agregado en la parte superior de la pila de llamadas. Si el procedimiento llama a otro procedimiento, este ltimo es agregado encima del anterior. Cuando un procedimiento termina, es eliminado de la pila de llamadas.

En caso de que el procedimiento sea un mtodo, en la pila de llamadas aparece el nombre de la clase, el separador "::" y luego el nombre del mtodo. La primer llamada siempre es "[cdigo inicial]", que representa el cdigo inicial que est fuera de todo procedimiento.

Botn "Ver" Este botn permite ir a la lnea de cdigo que produjo la llamada seleccionada en la lista de llamadas. Esto tambin se consigue haciendo doble clic sobre la llamada en la lista.

Volver

Page 15

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Agregar una inspeccin


Al hacer clic en Agregar en la ventana inspeccin, aparece la siguiente ventana.

Expresin: Aqu se ingresa la expresin a evaluar. Puede ser cualquier combinacin de variables, constantes y operadores vlidos. No es posible evaluar llamadas a procedimientos ni propiedades que estn implementadas como llamadas a procedimientos.

Tipo de inspeccin Permite especificar el tipo de inspeccin a agregar. Interrumpir cuando el valor sea verdadero: pausa el programa cuando el valor de la expresin sea verdadero. Es verdadero si el valor es diferente de cero (en caso de una expresin numrica) o si es Verd (en caso de una expresin booleana). Interrumpir cuando entre en contexto: pausa el programa cuando se ingrese en el contexto indicado (ver ms abajo). Inspeccin de expresin: la expresin es evaluada, pero en ningn caso produce una pausa en la ejecucin.

Contexto El contexto de una inspeccin es el procedimiento, clase o mtodo en donde Pauscal debe evaluar la expresin. Si la expresin est fuera de su contexto, la misma no se evala. En caso de que Clase sea "[Ninguna]" y Procedimiento sea "[Todos]", la expresin posee contexto global y siempre se evala. Si Clase indica una clase y Procedimiento es "[Todos]", la expresin posee contexto de clase

Page 16

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

y se evala al entrar a cualquier procedimiento de la clase especificada.

Volver

Page 17

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Su primera aplicacin
A continuacin veremos como hacer la clsica aplicacin "hola mundo", la cual muestra dicho mensaje en la pantalla. 1. Abra Pauscal si todava no lo hizo. 2. Ingrese el siguiente cdigo:
' El programa "Hola mundo" hecho en Pauscal Importar "Pauscal.prp" Mensaje("Hola mundo") Fin

3. Haga clic en el botn Ejecutar Al ejecutar este programa aparecer el mensaje:

A continuacin se indican algunos puntos importantes de este programa:


Comentarios Inicio del programa Entrada y salida Compilacin y ejecucin

Comentarios
La primera lnea del ejemplo contiene un comentario:
' El programa "Hola mundo" hecho en Pauscal

La comilla sencilla (') indica que el resto de la lnea es un comentario y el compilador lo pasar por alto. Es posible tanto hacer un comentario en toda una lnea como anexar un comentario al final de otra instruccin, como se muestra a continuacin:
Mensaje("Hola mundo") ' Muestra el mensaje en pantalla

Inicio del programa


Todos los programas de Pauscal tienen un punto de partida desde donde comienza la ejecucin. Este punto se conoce como inicio del programa o punto de entrada. El inicio del programa es la primer lnea de cdigo ejecutable fuera de una clase o procedimiento.

Page 18

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Entrada y salida
Este ejemplo utiliza la biblioteca estndar en tiempo de ejecucin de Pauscal, que est en el archivo Pauscal.prp. Para poder utilizar esta biblioteca primero debe importarla al programa mediante la instruccin Importar. Uno de los procedimientos definidos en el archivo importado es Mensaje, que muestra un mensaje en la pantalla de la computadora. En este caso mostramos la cadena de caracteres "Hola mundo".
Mensaje("Hola mundo")

Compilacin y ejecucin
Una vez que copiado el cdigo fuente del programa en el editor de Pauscal, seleccione Proyecto/Compilar.... Luego Pauscal le permitir elegir la ubicacin que desea para el archivo ejecutable compilado.

Volver

Page 19

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Fundamentos de la programacin en Pauscal


Este tema presenta los componentes esenciales de la programacin en Pauscal. Como la mayora de los lenguajes modernos de programacin, Pauscal acepta ciertas construcciones de programacin y elementos de lenguajes comunes.

Estructura de un programa Instrucciones Operadores Introduccin a las variables Introduccin a los procedimientos Introduccin a las estructuras de control Introduccin al control estructurado de excepciones Introduccin a las estructuras Introduccin a las clases y los objetos

Volver

Page 20

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Estructura de un programa
Un programa es un conjunto de instrucciones que la computadora (o mejor dicho, el procesador) puede ejecutar. La estructura de un programa hace referencia a la forma de organizar cdigo. En programas simples, la estructura no es muy importante y todo el cdigo se escribe directamente. Pero a medida que el programa se hace ms complejo, es recomendable separar el cdigo en subrutinas que ejecutan una accin especfica. De esta forma, es ms fcil la lectura y el mantenimiento del cdigo. Esto es un elemento clave en los proyectos que involucran a ms de un programador. Por convensin, la estructura de un programa debera ser de la siguiente forma: <archivos a importar> <declaracin de constantes> <declaracin de estructuras de datos> <declaracin de variables globales> <clases> <procedimientos> <cdigo inicial>

Nota En general, Pauscal no exige que los programas sigan esta convensin. Esto slo permite que sus aplicaciones sean ms fciles de entender y mantener.

Volver

Page 21

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instrucciones
En Pauscal, una instruccin es un comando completo que puede contener palabras clave, operadores, variables, constantes y expresiones. Las instrucciones se clasifican en dos categoras: instrucciones de declaracin, que asignan nombre a una variable, constante o procedimiento, y tambin pueden especificar un tipo de datos, e instrucciones ejecutables, que inician acciones.

Introduccin a las instrucciones Instrucciones de asignacin Instrucciones de declaracin Instrucciones ejecutables Operadores Expresiones

Volver

Page 22

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Operadores
Un operador es una unidad de cdigo que realiza una operacin sobre uno o ms elementos de cdigo que devuelven valores. Tal operacin puede ser una operacin aritmtica, como una suma o una multiplicacin; una operacin de concatenacin, que combina dos cadenas en una nueva; una operacin de comparacin, que determina cul de dos valores es mayor; una operacin lgica, que evala si dos expresiones son ambas verdaderas. Los operadores combinados con elementos de cdigo que devuelven valores como literales o variables forman expresiones o, en el caso del operador de asignacin, instrucciones. El siguiente es un ejemplo de una instruccin que utiliza el operador de asignacin (=):
x = 45

En este ejemplo, el operador de asignacin realiza la operacin de asignacin: toma el valor del lado derecho del operador y lo asigna a la variable del lado izquierdo. Varios operadores pueden realizar acciones en una expresin o instruccin simples, como se demuestra a continuacin:
x = 45 + y * z ^ 2

En este ejemplo, se realizan las operaciones de la expresin situada a la derecha del operador de asignacin y el valor resultante se asigna a la variable x, situada a la izquierda. No existe lmite en cuanto al nmero de operadores que se pueden combinar en una expresin, pero debe comprender la prioridad de operadores en Pauscal para asegurarse de que obtendr los resultados previstos. (Ver Prioridad de operador).

Operadores aritmticos Operadores de comparacin Operador de concatenacin Operador de evaluacin Prioridad de operador Expresiones Instrucciones

Volver

Page 23

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Expresiones
Una expresin puede considerarse una serie de elementos que representan valores, separados por operadores, que produce un nuevo valor. Como ejemplos de tales elementos que representan valores pueden citarse los literales, las variables, otras expresiones y las llamadas a procedimientos. Los operadores actan sobre los elementos que representan valores realizando clculos, comparaciones y otras operaciones. El resultado final de la expresin representa un valor, que puede ser de tipo numrico, Booleano o Cadena.

Calcular valores numricos Comparaciones de valores Expresiones booleanas Operadores Instrucciones

Volver

Page 24

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Expresiones booleanas
Una expresin booleana es una expresin que da como resultado un valor Booleano. Las expresiones booleanas pueden tener varias formas. La ms simple es la comparacin directa del valor de una variable de tipo Booleano con un literal Booleano, como se muestra en el siguiente ejemplo:
Si x = Verd ' Compara x con el valor booleano Verd. ' Cdigo a ejecutarse si x es igual a Verd Sino ' Cdigo a ejecutarse si x es igual a Falso FinSi

Es de resear que la instruccin de asignacin x = Verd tiene el mismo aspecto que la expresin del ejemplo, pero realiza funciones diferentes y se utiliza de forma distinta. En el ejemplo anterior, la expresin x = Verd representa un valor y por tanto el signo = se interpreta como operador de comparacin. En una instruccin independiente, se interpretara como operador de asignacin y asignara el valor de la derecha a la variable de la izquierda. Esto se ilustra en el siguiente ejemplo:
Si x = Verd y = Falso FinSi ' Compara x con el valor booleano Verd. ' Asigna el valor booleano Verd a la variable y.

Para obtener ms informacin, vea Comparaciones de valores e Instrucciones de asignacin. Los operadores de comparacin, como =, <, >, <>, <= y >=, producen expresiones booleanas mediante la comparacin de la expresin situada a la izquierda del operador con la expresin situada a la derecha, y evala el resultado como verdadero (Verd) o falso (Falso). Por ejemplo:
42 < 81 ' Evala a Verd.

Para obtener ms informacin sobre esta clase de expresin, vea Comparaciones de valores. Las expresiones de comparacin se pueden combinar con operadores lgicos para producir expresiones booleanas ms complejas. El siguiente ejemplo demuestra el uso de operadores de comparacin junto con un operador lgico:
(x > y) And (x < 1000)

En el ejemplo, el valor de toda la expresin depende de los valores de las expresiones especificadas a cada lado del operador And. Si las dos expresiones son verdaderas, la evaluacin de toda la expresin devuelve Verd. Si una de las expresiones es falsa, devuelve Falso. Ntense los parntesis a ambos lados del operador And. Estos parntesis deben ir ya que el operador And posee una prioridad mayor al de los operadores de comparacin, y Pauscal tratara de evaluarlos antes. (Ver Prioridad de operador).

Expresiones entre parntesis


Pueden utilizarse parntesis para controlar la evaluacin de expresiones booleanas. Las expresiones entre parntesis se evalan primero. En el caso de mltiples niveles de anidamiento, se garantiza la prioridad de las expresiones anidadas a mayor profundidad. Dentro de los parntesis, la evaluacin se lleva a cabo segn las reglas de prioridad de operador. Para obtener ms informacin, vea Prioridad de operador.

Page 25

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Volver

Page 26

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Calcular valores numricos


Los valores numricos pueden calcularse mediante expresiones numricas. Una expresin numrica es una expresin que contiene literales y variables que representan valores numricos, y operadores que actan sobre esos valores. A continuacin se muestra un ejemplo de una expresin numrica:
4 * (67 + x) ' En este ejemplo, x = 2.

Esta expresin se evala como 276, que es el valor de 67 ms 2, multiplicado por 4. Si la expresin numrica contiene ms de un operador, el orden en que se evalan lo determina las reglas de prioridad de operador. Para anular las reglas de prioridad de operador, las expresiones se escriben entre parntesis, como en el ejemplo anterior; tales expresiones se evalan primero. Para obtener ms informacin, vea Prioridad de operador. Puede utilizar una instruccin de asignacin para asignar los valores representados mediante esta expresin a otra variable, como en el ejemplo siguiente:
Var x,y:Entero x = 2 y = 4 * (67 + x)

Aqu, el valor de la expresin a la derecha del operador se asigna a la variable y situada a la izquierda del operador, de modo que y se evala como 276. Para obtener ms informacin sobre la asignacin, vea Instrucciones de asignacin.

Volver

Page 27

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Comparaciones de valores
Los operadores de comparacin pueden utilizarse para construir expresiones que comparan los valores de variables numricas. Estas expresiones devuelven un valor Booleano que depende de si la comparacin es verdadera o falsa. Los siguientes son ejemplos de este tipo de expresin:
45 > 26 26 > 45

La evaluacin de la primera expresin devuelve Verd, puesto que 45 es mayor que 26. La evaluacin del segundo ejemplo devuelve Falso, puesto que 26 no es mayor que 45. De esta forma, puede comparar cualquier par de expresiones numricas. Las expresiones comparadas pueden ser complejas, como en el siguiente ejemplo:
x / 45.0 * (y + 17.0) >= RaizCuad(z) / (p - (x * 16.0))

Esta expresin compleja incluye literales, variables y llamadas a procedimientos. Se evalan las expresiones especificadas a ambos lados del operador de comparacin y los valores resultantes se comparan mediante el operador de comparacin >=. Si el valor de la expresin de la izquierda es mayor o igual que el valor de la expresin de la derecha, la evaluacin de la expresin completa devuelve Verd; de lo contrario, devuelve Falso. Las expresiones que comparan valores se utilizan con frecuencia en los bloques condicionales Si, como en el siguiente ejemplo:
Si x > 50 ' Cdigo a ejecutarse si x es mayor a 50 Sino ' Cdigo a ejecutarse si x es menor o igual a 50 FinSi

El signo = es un operador de comparacin, adems de un operador de asignacin. Cuando se utiliza como operador de comparacin, evala si el valor de la izquierda es igual que el valor de la derecha, como se muestra en el siguiente ejemplo:
Si x = 50 ' Cdigo a ejecutarse si x es igual a 50 FinSi

Una expresin de comparacin tambin se puede utilizar all donde sea necesario un valor Booleano, como en una instruccin Si, Mientras, HastaQue, o cuando se asigna o se pasa un valor a una variable de tipo Booleano. En el siguiente ejemplo, el valor devuelto por la expresin de comparacin se asigna a una variable Booleano:
Var x:Booleano x = 50 < 30 ' a x se le asigna Falso.

Volver

Page 28

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a los procedimientos


Un procedimiento es un bloque de instrucciones de Pauscal delimitado por una instruccin de declaracin y una instruccin FinProc. Los procedimientos se invocan desde otras partes del cdigo. Cuando finaliza la ejecucin de un procedimiento, ste devuelve el control al cdigo que lo invoc, que recibe el nombre de cdigo de llamada. El cdigo de llamada es una instruccin o una expresin contenida en una instruccin, que hace referencia al procedimiento por su nombre y le transfiere el control.

Tipos de procedimientos
En Pauscal existen dos tipos de procedimientos: los procedimientos que ejecutan acciones, y los procedimientos que, adems de ejecutar acciones, devuelven un valor al cdigo de llamada. Estos ltimos tambin se conocen con el nombre de funciones.

Procedimientos y cdigo estructurado


Los procedimientos son tiles para realizar tareas repetitivas o compartidas, como clculos de uso frecuente, manipulacin de texto y controles, y otras operaciones. Se puede llamar a un procedimiento desde distintos lugares del cdigo; de modo que los procedimientos se prestan a servir de unidades de creacin de la aplicacin. Hay que tener en cuenta que la aplicacin se leer con mayor facilidad si subdivide los procedimientos grandes en procedimientos ms pequeos. Aunque Pauscal no requiere el uso de procedimientos, es recomendable utilizarlos. La estructuracin del cdigo en procedimientos aporta las siguientes ventajas:

Los procedimientos permiten desglosar los programas en unidades lgicas independientes. Es ms fcil depurar unidades individuales que todo un programa sin procedimientos. Los procedimientos desarrollados para un programa pueden utilizarse en otros programas, generalmente sin tener que realizar grandes modificaciones.

Declaracin de procedimientos Parmetros de procedimientos Procedimientos recursivos Prototipos y variables de procedimientos Fundamentos de la programacin en Pauscal

Volver

Page 29

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las estructuras de control Estructuras de bucles


Las estructuras de bucles permiten ejecutar una o ms lneas de cdigo repetitivamente. Una instruccin puede repetirse hasta que una condicin sea verdadera, hasta que sea falsa o un nmero de veces especificado. Las estructuras de bucles que admite Pauscal incluyen:

Mientras Repetir Contar

Estructuras de desicin
Pauscal permite probar condiciones y realizar diferentes operaciones en funcin de los resultados de la prueba. Puede comprobar si una condicin es verdadera o falsa, los distintos valores de una expresin o las diferentes excepciones que se generan al ejecutar una serie de instrucciones. Las instrucciones de decisin que admite Pauscal incluyen:

Si Seleccionar AdmErr

Estructuras de programacin
En esta categora se ubican las estructuras de programacin que no son de bucles ni de desicin.

Eval Bloque

Estructuras de control anidadas Instruccin "Salir" Fundamentos de la programacin en Pauscal

Volver

Page 30

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin al control estructurado de excepciones


Pauscal admite un control estructurado de excepciones (errores). La simple introduccin de fragmentos de cdigo especficos en la aplicacin permite controlar la mayora de los errores con los que pueden encontrarse los usuarios y permite que la aplicacin siga ejecutndose. El control de errores estructurado permite establecer un plan para detectar posibles errores, y as impedir que stos interfieran en los supuestos objetivos de la aplicacin. Reflexione sobre el uso de mtodos de control de excepciones que utilicen operadores que puedan generar una excepcin o que llamen o tengan acceso a otros procedimientos que puedan generar una excepcin. Si se produce una excepcin en un mtodo que no est preparado para controlarla, la excepcin se propagar de vuelta al mtodo de llamada o al mtodo anterior. Si el mtodo anterior tampoco tiene controlador de excepciones, la excepcin se propagar de vuelta al llamador del mtodo, y as sucesivamente. La bsqueda de un controlador continuar hasta la pila de llamadas, que es la serie de procedimientos a los que se llama dentro de la aplicacin. Si sta tampoco encuentra un controlador para la excepcin, se mostrar un mensaje de error y la aplicacin finalizar. En el control estructurado de excepciones, los bloques de cdigo se encapsulan y cada uno de ellos tiene un controlador asociado. Cuando el cdigo de un bloque protegido genera una excepcin, se ejecuta su controlador. Un mtodo puede tener varios bloques de control estructurado de excepciones y dichos bloques pueden adems estar anidados. La instruccin AdmErr se utiliza especficamente para el control estructurado de excepciones.

Control estructurado de excepciones Tipos de errores Bloque "AdmErr" Iniciar excepciones Fundamentos de la programacin en Pauscal

Volver

Page 31

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las estructuras


Se pueden combinar elementos de datos de distintos tipos para crear una estructura. Una estructura asocia uno o ms miembros entre ellos y con la propia estructura. Al declarar una estructura, sta se convierte en un tipo de datos compuesto y se puede declarar variables de este tipo. Las estructuras son tiles si se quiere que una nica variable contenga varios datos relacionados. Por ejemplo, quizs desee mantener juntos el nombre de un empleado, su extensin telefnica y su salario. Podra utilizar varias variables para esta informacin, o bien definir una estructura y utilizarla para una nica variable de empleado. La ventaja de la estructura se hace evidente si tiene muchos empleados y, por consiguiente, muchas instancias de la variable.

Declaracin de estructuras Variables de estructura Temas avanzados de estructuras Uniones Fundamentos de la programacin en Pauscal

Volver

Page 32

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las clases y los objetos


Las clases son representaciones simblicas de objetos; describen las propiedades, campos y mtodos que forman objetos de la misma forma que los planos describen los elementos que componen un edificio. As como un plano puede utilizarse para crear varios edificios, una nica clase puede utilizarse para crear tantos objetos como sea necesario. Del mismo modo que un plano define qu partes de un edificio son accesibles a las personas que lo utilizan, las clases tambin pueden controlar el acceso de los usuarios a los elementos de los objetos a travs de la encapsulacin.

Clases y objetos
Los trminos "clase" y "objeto" se utilizan a veces indistintamente, pero en realidad, las clases describen la estructura de los objetos, mientras que los objetos son instancias de clases que se pueden utilizar. Cada instancia es una copia exacta pero diferente de su clase. Puesto que un objeto es una "instancia" de una clase, la accin de crear un objeto se denomina creacin de instancias. Con la analoga de plano, una clase es un plano, y un objeto es un edificio basado en ese plano. Generalmente, el cambio de datos en un objeto no cambia los datos de otro objeto.

Encapsulacin
La encapsulacin es la capacidad de contener y controlar el acceso a un grupo de elementos asociados. Las clases proporcionan una de las formas ms comunes de encapsular elementos. En el ejemplo siguiente, la clase CuentaBancaria encapsula los mtodos, campos, y propiedades que describen una cuenta bancaria. Sin la encapsulacin, sera necesario declarar diferentes procedimientos y campos para almacenar y administrar la informacin de la cuenta bancaria, y sera difcil trabajar con ms de una cuenta bancaria a la vez. La encapsulacin permite utilizar datos y procedimientos de la clase CuentaBancaria como una unidad. Puede trabajar con varias cuentas bancarias al mismo tiempo sin confusin, puesto que cada cuenta se representa mediante una instancia nica de la clase. La encapsulacin tambin permite controlar la forma de utilizar los datos y los procedimientos. Se pueden utilizar modificadores de acceso, como Privado o Pblico, para evitar que procedimientos externos ejecuten mtodos de clase o lean y modifiquen datos privados. Los detalles internos de una clase deben declararse como Privado para evitar que sean utilizados fuera de la misma; esta tcnica se denomina ocultacin de datos. En la clase CuentaBancaria, la informacin del cliente, por ejemplo el saldo de la cuenta, se protege de esta forma. Una de las reglas bsicas de la encapsulacin es que los datos de clase slo se deben modificar o recuperar mediante mtodos o propiedades. Al ocultar los detalles de implementacin de las clases se evita que sean utilizados de forma no deseada y hace posible la modificacin posterior de tales elementos sin problemas de compatibilidad. Por ejemplo, en las versiones posteriores de la clase CuentaBancaria que se muestra a continuacin se podra cambiar el tipo de datos de la variable BalanceDeLaCuenta sin peligro de interrumpir las aplicaciones que se basan en que esa variable tenga un tipo de datos especfico.

Herencia

Page 33

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Las clases de Pauscal pueden heredar y extender las caractersticas de otras clases. Las clases que sirven de base para nuevas clases se denominan clases base. Las clases que se derivan de clases base se denominan clases derivadas. Las clases derivadas heredan todos los campos, propiedades y mtodos definidos en la clase base. Esto significa que puede desarrollar y depurar una clase una vez y reutilizarla despus como base de otras clases. En el siguiente ejemplo se define una clase base que representa una cuenta bancaria genrica y una clase especfica que hereda las propiedades de la clase base pero que se personaliza para describir una cuenta corriente:
Clase CuentaBancaria ClaseVar NmeroDeCuenta:Cadena ClaseVar BalanceDeLaCuenta:Real Proc Intereses() ' Cdigo que calcula el inters de la cuenta. FinProc Proc Balance():Real Devolver BalanceDeLaCuenta FinProc FinClase Clase CuentaCorriente(CuentaBancaria) Proc ProcesarCheque ' Cdigo que procesa un cheque de esta cuenta. FinProc FinClase

Duracin de los objetos Constructores y destructores Mtodos de una clase Campos de una clase Propiedades y procedimientos de propiedad Propiedades frente a mtodos Fundamentos de la programacin en Pauscal

Volver

Page 34

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Manual del programador


Esta seccin explica los elementos de programacin con los que cuenta Pauscal. Fundamentos de la programacin en Pauscal Instrucciones Introduccin Instrucciones de asignacin Instrucciones de declaracin Instrucciones ejecutables Operadores Operadores aritmticos Operadores de comparacin Operador de concatenacin Operador de evaluacin Prioridad de operador Variables Tipos de datos Resumen de tipos de datos Matrices Declaracin de matrices Usando las matrices Limitaciones de matrices estticas Procedimientos Declaracin Parmetros Procedimientos recursivos Prototipos Estructuras de control Bucle 'Mientras' Bucle 'Repetir' Bucle 'Contar' Bloque 'Si' Bloque 'Seleccionar' Bloque 'AdmErr' Estructura 'Eval' Estructura 'Bloque' Estructuras Declaracin Temas avanzados sobre estructuras Uniones Clases Duracin de los objetos Constructores y destructores Mtodos de una clase Campos de una clase Propiedades y procedimientos de propiedad Propiedades frente a mtodos

Page 35

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Referencia del lenguaje Instrucciones

Volver

Page 36

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Control de la ejecucin
El depurador de Pauscal proporciona comandos eficaces para controlar la ejecucin de las aplicaciones. En los temas siguientes se describen las tareas que puede realizar con comandos del depurador para controlar la ejecucin:

Iniciar la depuracin Interrumpir la ejecucin Detener la ejecucin Avanzar paso a paso por la aplicacin Establecer el punto de ejecucin

Volver

Page 37

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Iniciar la depuracin
Para iniciar la depuracin

En el men Proyecto, seleccione Depurar.... O bien Presione la tecla F7.

Antes de iniciar la depuracin, Pauscal compilar el proyecto en un archivo temporal. En caso de que no hubieran ocurrido errores, se iniciar el depurador. Una vez iniciado el depurador, el programa se interrumpir en la primera lnea de cdigo ejecutable.

Volver

Page 38

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Interrumpir la ejecucin
Cuando se depura una aplicacin con el depurador de Pauscal, la aplicacin o se est ejecutando o est en modo de interrupcin. Numerosas funciones del depurador, como la evaluacin de expresiones en el panel Inspeccin, slo estn disponibles en el modo de interrupcin. El depurador interrumpe la ejecucin del programa cuando llega a un punto de interrupcin o cuando se produce una excepcin. Puede interrumpir manualmente la ejecucin en cualquier momento. Para interrumpir manualmente la ejecucin del programa

Haga clic en el botn Pausa, o F6. El depurador detendr la ejecucin del programa, pero no lo termina. Es posible reanudar su ejecucin en cualquier momento. El depurador y la aplicacin se encuentran ahora en modo de interrupcin. Nota Para interrumpir un programa manualmente, el punto de ejecucin en ese momento debe estar dentro del cdigo fuente. Si, por alguna razn, el programa est en alguna seccin donde no hay cdigo fuente, por ejemplo dentro de un procedimiento externo, Pauscal interrumpir el programa cuando ste ingrese al cdigo fuente.

Volver

Page 39

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Detener la ejecucin
Detener la ejecucin significa terminar el programa que se est depurando y concluir la sesin de depuracin. No debe confundirse con interrumpir la ejecucin, que significa detener temporalmente la ejecucin del programa que se est depurando pero dejando la sesin de depuracin activa. Para obtener ms informacin, vea Interrumpir la ejecucin. Para detener la depuracin Haga clic en el botn Terminar. Nota Este botn detiene inmediatamente un programa y todos sus subprocesos sin pedir confirmacin. Esto puede causar prdida de informacin en ciertos casos.

Volver

Page 40

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Ejecutar instrucciones paso a paso


Uno de los procedimientos de depuracin ms comunes es la ejecucin paso a paso, lnea a lnea del cdigo. Hay dos comandos para avanzar paso a paso por el cdigo:

Paso a paso (F7) Saltear llamadas (F8)

Paso a paso y Saltear llamadas slo se diferencian en la forma en que tratan las llamadas a procedimientos. Ambos comandos indican al depurador que ejecute la siguiente lnea de cdigo. Si la lnea contiene una llamada a un procedimiento, Paso a paso slo ejecuta la llamada en s y, a continuacin, se detiene en la primera lnea de cdigo incluida en el procedimiento. Saltear llamadas ejecuta todo el procedimiento y despus se detiene en la primera lnea que est fuera de ella. Utilice Paso a paso si desea examinar el interior de la llamada al procedimiento. Utilice Saltear llamadas si desea evitar la ejecucin paso a paso de las instrucciones incluidas en el procedimiento. Los comandos anteriores no pueden utilizarse mientras la aplicacin se est ejecutando. Estos comandos slo son vlidos en modo de interrupcin. Para obtener ms informacin, vea Interrumpir la ejecucin.

Volver

Page 41

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Establecer el punto de ejecucin


En el depurador de Pauscal, puede mover el punto de ejecucin para establecer la siguiente instruccin de cdigo que se debe ejecutar. Una flecha en el margen derecho del cdigo fuente indica la ubicacin actual del punto de ejecucin. Moviendo el punto de ejecucin puede saltarse una parte del cdigo o volver a una lnea previamente ejecutada. Esto resulta til en algunas situaciones: por ejemplo, si desea omitir una seccin del cdigo que contiene un error conocido y continuar depurando otras secciones. Precaucin Utilice este comando con precaucin. Hay casos en los que mover el punto de ejecucin puede producir errores en el programa. Nota Cambiar el punto de ejecucin mientras se procesa una excepcin puede causar errores inesperados. No se puede establecer el punto de ejecucin mientras se est ejecutando activamente la aplicacin. Para establecer la siguiente instruccin, el depurador debe estar en modo de interrupcin. Para obtener ms informacin, vea Interrumpir la ejecucin. Para establecer la siguiente instruccin que debe ejecutarse

Haga doble clic sobre la lnea del cdigo fuente en donde desea establecer el punto de ejecucin, o haga clic en el botn Establecer siguiente instruccin luego de seleccionar la lnea de cdigo fuente.

Volver

Page 42

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instrucciones
En Pauscal, una instruccin es un comando completo que puede contener palabras clave, operadores, variables, constantes y expresiones. Las instrucciones se clasifican en dos categoras: instrucciones de declaracin, que asignan nombre a una variable, constante o procedimiento, y tambin pueden especificar un tipo de datos, e instrucciones ejecutables, que inician acciones.

Introduccin a las instrucciones Instrucciones de asignacin Instrucciones de declaracin Instrucciones ejecutables Operadores Expresiones

Volver

Page 43

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las instrucciones


En Pauscal, una instruccin es una instruccin completa. Puede contener palabras clave, operadores, variables, constantes y expresiones. Cada instruccin pertenece a una de las dos categoras siguientes:

Instrucciones de declaracin, que dan nombre a una variable, constante o procedimiento y tambin pueden especificar un tipo de datos. Para obtener ms informacin, vea Instrucciones de declaracin. Instrucciones ejecutables, que inician acciones. Estas instrucciones pueden ejecutar un mtodo o procedimiento, y pueden realizar un bucle o una bifurcacin a travs de bloques de cdigo. Las instrucciones ejecutables incluyen instrucciones de asignacin, que asignan un valor o expresin a una variable. Para obtener ms informacin, vea Instrucciones ejecutables e Instrucciones de asignacin.

Varias instrucciones en una lnea


Se pueden tener varias instrucciones en una sola lnea separadas por el carcter de punto y coma (;). Por ejemplo:
Texto = "Hola mundo" ; Mensaje(Texto)

Aunque ocasionalmente puede resultar conveniente, esta forma de sintaxis dificulta la lectura y el mantenimiento del cdigo. Por tanto, se recomienda mantener una instruccin por lnea.

Continuar una instruccin en varias lneas


Normalmente, una lnea suele ser suficiente para una instruccin, pero si no es as, una instruccin larga puede continuar en la siguiente lnea mediante el uso de un carcter de continuacin de lnea, que consiste en un carcter de subrayado (_) seguido de un retorno de carro. En el siguiente ejemplo, la instruccin ejecutable Mensaje contina en dos lneas:
Proc MostrarMensaje() Var Texto:Cadena ' Muestra un mensaje en pantalla.

Texto = "Pedro" Mensaje("Hola " + Texto + _ ". Cmo ests?") FinProc

Agregar comentarios
El cdigo fuente no es siempre fcil de entender, ni siquiera para el programador que lo escribi. Por consiguiente, como ayuda para documentar el cdigo, la mayora de los programadores utilizan libremente comentarios incrustados. Los comentarios en el cdigo pueden explicar un procedimiento o una instruccin concreta a cualquiera que lea o trabaje con ellos posteriormente. No obstante, Pauscal omite los comentarios al ejecutar el cdigo. Las lneas de comentarios comienzan con un apstrofo ('), y puede incluirse en cualquier punto del

Page 44

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

cdigo. Para anexar un comentario a una instruccin, inserte un apstrofo despus de la instruccin, seguido del comentario. Tal comentario aparece en el ejemplo anterior. Los comentarios tambin pueden escribirse separados en una lnea propia.

Volver

Page 45

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instrucciones de asignacin
Las instrucciones de asignacin realizan operaciones de asignacin. Las operaciones de asignacin consisten en tomar el valor de la derecha del operador y asignarlo a la variable a la izquierda, como en este ejemplo:
x = 42

Aqu, la variable x se asigna al valor literal 42. El valor de la derecha del operador puede ser cualquier literal, variable, expresin o llamada a procedimiento que devuelva un valor, como en este ejemplo:
x = y + z + MiProcedimiento(3)

Aqu, el valor que representa y se agrega al valor que representa z, que se suma al valor que devuelve la llamada a MiProcedimiento(3). Despus, el valor total de esta expresin se asigna a la variable x. El operador de asignacin tambin puede asignar valores a variables y expresiones de tipo Cadena, como en este ejemplo:
Var x:Cadena x = "Asignacin de variable de cadena" x = "Con" + "cat" + "enacin" ' x es igual a "Concatenacin".

Tambin se pueden asignar los valores de variables de tipo Booleano, mediante un literal Booleano o una expresin booleana como argumento de la derecha:
Var x:Booleano x = Verd x = 45 > 1003 ' x es igual a Falso. x = (45 > 1003) Or (45 > 17) ' x es igual a Verd.

El argumento en el lado izquierdo del operador puede ser cualquier variable o propiedad vlidas. En el siguiente ejemplo se muestra como se establece el valor de la propiedad Texto de una caja de texto:
txtNombre.Texto = "Ingrese su nombre aqu"

Tambin es posible asignar matrices y estructuras, como se aprecia en el ejemplo siguiente:


Var x[],y[]:Entero x = [4,5,9,165] y = x

Para ms informacin, vea Usando las matrices y Temas avanzados sobre las estructuras.

Volver

Page 46

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instrucciones de declaracin
Las instrucciones de declaracin se utilizan para definir procedimientos, variables, matrices y constantes, y asignarles nombre. Cuando se declara un procedimiento, variable o constante, tambin se define su mbito, dependiendo del lugar en el que se coloque la declaracin. El siguiente ejemplo contiene tres declaraciones.
Const Lim = 33 Proc AplicarFormato() Var Texto:Cadena ' Cdigo que implementa el procedimiento. FinProc

Primero, la instruccin Const declara la constante Lim, con el valor 33. A continuacin la instruccin Proc (con la instruccin FinProc correspondiente) declara un procedimiento denominado AplicarFormato. Todas las instrucciones entre Proc y FinProc se ejecutan cada vez que se llama o ejecuta el procedimiento AplicarFormato. Finalmente, la instruccin Var declara la variable local Texto. El tipo de datos de la variable es Cadena .

Volver

Page 47

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instrucciones ejecutables
Una instruccin ejecutable inicia una accin mediante la ejecucin de un mtodo. Puede realizar un bucle o una bifurcacin a travs de bloques de cdigo. Las instrucciones ejecutables a menudo contienen operadores matemticos o condicionales. El siguiente ejemplo utiliza una instruccin Si para ejecutar diferentes bloques basndose en el valor de una variable. Dentro de cada bloque de cdigo, una instruccin Contar hace que se ejecute un bucle un nmero de veces especificado.
Proc Rotar(Img:cImagen, SentidoHorario:Booleano, Revoluciones:Entero) Var i:Entero Si SentidoHorario = Verd Contar i = 1 a Revoluciones Img.GirarSentidoHorario Seguir Sino Contar i = 1 a Revoluciones Img.GirarSentidoAntihorario Seguir FinSi FinProc

La instruccin Si del ejemplo comprueba el valor de la variable SentidoHorario. Si el valor es Verd, se llama al mtodo GirarSentidoHorario de Img. Si el valor es Falso, se llama al mtodo GirarSentidoAntihorario de Img. Las instrucciones Si finalizan con FinSi. Las instrucciones Contar dentro de cada bloque hacen que se llame el mtodo apropiado un nmero de veces igual al indicado por la variable Revoluciones.

Volver

Page 48

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Operadores
Un operador es una unidad de cdigo que realiza una operacin sobre uno o ms elementos de cdigo que devuelven valores. Tal operacin puede ser una operacin aritmtica, como una suma o una multiplicacin; una operacin de concatenacin, que combina dos cadenas en una nueva; una operacin de comparacin, que determina cul de dos valores es mayor; una operacin lgica, que evala si dos expresiones son ambas verdaderas. Los operadores combinados con elementos de cdigo que devuelven valores como literales o variables forman expresiones o, en el caso del operador de asignacin, instrucciones. El siguiente es un ejemplo de una instruccin que utiliza el operador de asignacin (=):
x = 45

En este ejemplo, el operador de asignacin realiza la operacin de asignacin: toma el valor del lado derecho del operador y lo asigna a la variable del lado izquierdo. Varios operadores pueden realizar acciones en una expresin o instruccin simples, como se demuestra a continuacin:
x = 45 + y * z ^ 2

En este ejemplo, se realizan las operaciones de la expresin situada a la derecha del operador de asignacin y el valor resultante se asigna a la variable x, situada a la izquierda. No existe lmite en cuanto al nmero de operadores que se pueden combinar en una expresin, pero debe comprender la prioridad de operadores en Pauscal para asegurarse de que obtendr los resultados previstos. (Ver Prioridad de operador).

Operadores aritmticos Operadores de comparacin Operador de concatenacin Operador de evaluacin Prioridad de operador Expresiones Instrucciones

Volver

Page 49

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Operadores aritmticos
Los operadores aritmticos se utilizan para realizar muchas de las operaciones aritmticas habituales que implican el clculo de valores numricos representados por literales, variables, otras expresiones, llamadas a procedimientos y propiedades, y constantes.

Operaciones aritmticas
Puede sumar dos valores en una expresin con el operador + o restar un valor de otro con el operador , como se muestra en los siguientes ejemplos:
Var x:EnteroSig x = 67 + 34 x = 32 - 12

La negacin tambin utiliza el operador -, pero con una sintaxis algo diferente, como se muestra a continuacin:
Var x,y:EnteroSig x = 87 y = -x

La multiplicacin y la divisin utilizan los operadores * y /, respectivamente, como en estos ejemplos:


Var y:Real y = 45.0 * 55.23 y = 32.0 / 23.0

La exponenciacin utiliza el operador ^, como se muestra a continuacin:


Var z:Real z = 23.0 ^ 3.0 ' z es igual al cubo de 23

La divisin de enteros se lleva a cabo con el operador \. La divisin de enteros devuelve el nmero de veces que un entero puede dividirse exactamente en otro. Con este operador, slo se pueden utilizar tipos enteros (ver Resumen de tipos de datos). A continuacin se muestra un ejemplo de una divisin de enteros:
Var k:Entero k = 23 \ 5 ' k = 4

El mdulo aritmtico se calcula con el operador Mod. Este operador devuelve el resto una vez que se divide el divisor por el dividendo un nmero integral de veces. Este operador slo trabaja con tipos enteros.
Var x = y = z = x,y:Entero 100 6 x Mod y ' z = 4

Los operadores Shl (Shift Left) y Shr (Shift Right) mueven del primer operando tantos bits como indica el segundo operando hacia la izquierda y derecha, respectivamente. Matemticamente se puede decir que:
a shl b = a * (2 ^ b) a shr b = a \ (2 ^ b)

Estos operadores slo funcionan con tipos enteros.

Page 50

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Operaciones bit a bit


Las operaciones bit a bit que evalan dos valores en formato binario (base 2), comparan los bits en las posiciones correspondientes y, a continuacin, asignan los valores basados en la comparacin, como en la demostracin siguiente de And bit a bit:
Var x:Entero x = 3 And 5 ' x = 1

En este ejemplo, el valor de x es 1. He aqu por qu:

Primero, los valores se convierten a formato binario, como se muestra a continuacin: 3 en formato binario = 011 5 en formato binario = 101

A continuacin, las representaciones binarias se comparan, de posicin en posicin binaria. Si los dos bits en una posicin dada son 1, entonces se coloca un 1 en esa posicin del resultado. Si uno de los dos bits es un 0, entonces se coloca un 0 en esa posicin del resultado. En el ejemplo, esto funciona como sigue: 011 101 001 3 en formato binario 5 en formato binario El resultado, en formato binario

En la conversin de nuevo a decimal, 001 es la representacin binaria de 1, luego x = 1. La operacin Or bit a bit es similar, con la diferencia de que asigna un 1 al bit de resultado si uno de los dos bits comparados es 1. Xor asigna un 1 al bit de resultado si slo uno de los dos bits comparados vale 1 (no los dos). Not invierte todos los bits de un solo operando y asigna ese valor al resultado. Los operadores And, Or y Not tambin se pueden usar en Pauscal como Y, O y Neg, respectivamente. Nota Las operaciones bit a bit slo se pueden realizar en tipos enteros.

Volver

Page 51

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Operadores de comparacin
Los operadores de comparacin comparan dos expresiones y devuelven un valor Booleano que representa el resultado de la comparacin. Existen operadores para comparar valores numricos, operadores para comparar cadenas y operadores para comparar objetos. Los tres tipos de operadores se describen a continuacin.

Comparar valores numricos


Para comparar valores numricos se utilizan seis operadores de comparacin numrica. En la siguiente tabla se muestran los operadores y un ejemplo de la condicin que prueba cada uno. Operador = (Igualdad) Condicin que prueba 23 Es el valor que representa la primera expresin igual que el valor 23 23 que representa la segunda? 23 Es el valor que representa la primera expresin no igual que el 23 23 valor que representa la segunda? 23 Es el valor que representa la 23 primera expresin menor que el 23 valor que representa la segunda? 23 Es el valor que representa la 23 primera expresin mayor que el 23 valor que representa la segunda? 23 Es el valor que representa la primera expresin menor o igual 23 23 que el valor que representa la segunda? 23 Es el valor que representa la primera expresin mayor o igual 23 23 que el valor que representa la segunda? Ejemplos
= 33 ' Falso = 23 ' Verd = 12 ' Falso <> 33 ' Verd <> 23 ' Falso <> 12 ' Verd < 33 ' Verd < 23 ' Falso < 12 ' Falso > 33 ' Falso > 23 ' Falso > 12 ' Verd <= 33 ' Verd <= 23 ' Verd <= 12 ' Falso

<> (Desigualdad)

< (Menor que)

> (Mayor que)

<= (Menor o igual que)

>= (Mayor o igual que)

>= 33 ' Falso >= 23 ' Verd >= 12 ' Verd

Comparar cadenas
Para comparar cadenas slo se pueden utilizar los operadores de igualdad (=) y de desigualdad (<>), como indica el ejemplo siguiente:
"734" = "734" ' Verd

En este ejemplo, las dos cadenas se comparan directamente y, puesto que son iguales, se devuelve Verd .
"73" <> "9" ' Verd

En este ejemplo, las dos cadenas son diferentes, por lo que se devuelve Verd.

Page 52

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Comparar objetos
Puede utilizar el operador Es para determinar si dos variables de objeto hacen referencia a la misma instancia de una clase. Por ejemplo:
Var x,y:MiClase Crear y x = y 'x apunta a y Si x Es y ' Cdigo que se ejecuta si x e y apuntan al mismo objeto FinSi

En este ejemplo, la evaluacin de x Es y devuelve Verd, porque las dos variables hacen referencia a la misma instancia. Compare este resultado con el del ejemplo siguiente:
Var x,y:MiClase Crear x,y Si x Es y ' Cdigo que se ejecuta si x e y apuntan al mismo objeto FinSi

En este ejemplo, la evaluacin de x Es y devuelve Falso, puesto que aunque las variables son del mismo tipo, hacen referencia a instancias diferentes de ese tipo.

Volver

Page 53

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Operador de concatenacin
El operador de concatenacin (+) combina varias cadenas en una sola, como se muestra a continuacin:
Var x:Cadena x = "Con" + "caten" + "acin" ' x = "Concatenacin"

Estos operadores tambin concatenan variables de tipo Cadena, como en el ejemplo siguiente:
Var x,y,z:Cadena x = "abc" y = "def" z = x + y

' z = "abcdef"

Volver

Page 54

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Operador de evaluacin
El operador de evaluacin >:? se utiliza para seleccionar un valor de entre dos, basndose en una condicin. El operador de evaluacin es el nico en Pauscal que requiere tres operandos.
> condicin ? parteVerdadero : parteFalso

condicin puede ser cualquier expresin de tipo Booleano que pueda evaluarse como Verd o Falso. El operador devuelve parteVerdadero si condicin es Verd. Si condicin es Falso el operador devuelve parteFalso. En el siguiente ejemplo, debido a que la condicin es falsa, el operador devuelve la parte falsa, es decir 6.
Var x,y:Entero x = 9 y = > (x = 4) ? (5) : (6) ' y = 6

Los parentesis de los operandos no son necesarios, pero ayudan a comprender el cdigo. El operador de evaluacin funciona con cualquier tipo de datos, incluso estructuras y matrices.
Var x:Entero Var y[]:Entero x = 4 y = > (x = 4) ? ([5,8,9]) : ([8,6]) ' y = [5,8,9]

Volver

Page 55

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prioridad de operador
Cuando aparecen varias operaciones en una expresin, cada parte se evala y se resuelve en un orden predeterminado conocido como prioridad de operador. En Pauscal, los operadores se evalan en el siguiente orden de prioridad: 1 2 3 4 5 6 7 Not/Neg * + Or/O And/Y = >?: <> <= < > >= Es / Xor \ Shl Shr Mod ^

Cuando aparecen varios operadores de la misma prioridad se evala cada operacin segn aparece de izquierda a derecha. Puede utilizar parntesis para pasar por alto el orden de prioridad y obligar a evaluar algunas partes de una expresin antes que otras. Las operaciones entre parntesis se realizan siempre antes que las de fuera del parntesis. Sin embargo, entre parntesis se mantiene la prioridad de los operadores.

Volver

Page 56

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las variables


A menudo ser necesario almacenar valores en memoria cuando est realizando clculos. Pauscal, como la mayora de los lenguajes de programacin, utiliza variables para almacenar estos valores. Las variables tienen un nombre (la palabra que utiliza para referirse al valor que contiene la variable) y un tipo de dato (que determina la clase de datos que puede almacenar la variable). Se pueden utilizar matrices para almacenar colecciones indexadas de variables relacionadas.

Almacenamiento y recuperacin de datos en variables


Se utiliza el operador de asignacin (=) para almacenar valores en una variable. Por ejemplo:
Num = 20 'Asignamos el valor 20 a la variable Num Num = Num + 1 'Incrementamos el valor de la variable Num

Declaracin de las variables


Pauscal es un lenguaje que requiere que todas sus variables sean declaradas antes de utilizarse. Para esto se utiliza la instruccin Var, de la siguiente forma:
Var listaVariables : tipoDato listaVariables es la lista de las variables a declarar, separadas por coma. tipoDato indica el tipo de dato que almacenar la variable.

Al nombre de una variable se le aplican las siguientes restricciones:


No puede comenzar con un dgito. No puede incluir ningn smbolo utilizado internamente (p.ej: el punto). Debe ser nico en su alcance.

Para ms informacin sobre los tipos de datos, vea Tipos de datos.

Alcance
Al declarar una variable, sta puede ser local, global o de clase, dependiendo del lugar en donde fue declarada: si fue declarada dentro de un procedimiento, la variable es local; si fue declarada dentro de una clase, la variable es de clase y se denomina campo; y si fue declarada fuera de un procedimiento y fuera de una clase, la variable es global. Las variable locales slo existen dentro del procedimiento en el cual fueron declaradas, es decir, slo pueden ser accedidas desde dentro de ese procedimiento y una vez que el procedimiento se termina, las variable se pierden (como as tambin sus valores). Un hecho interesante de las variables locales es que si existe ms de una instancia de un mismo procedimiento, sus variables locales son independientes de las otras instancias. Las variables de clase, denominadas campos, existen dentro de la instancia de la clase en la que fueron

Page 57

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

declaras. Al igual que las variables locales, si hay ms de una instancia de una clase, estas variables son diferentes en cada instancia. Las variables globales existen en todo el programa, y su valor permanece hasta que el programa finaliza. Atencin: Las declaraciones de las variables locales dentro de un procedimiento deben estar ubicadas antes que cualquier otra instruccin del procedimiento.

Tipos de datos Matrices Fundamentos de la programacin en Pauscal

Volver

Page 58

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Tipos de datos
El tipo de datos de un elemento de programacin hace referencia al tipo de datos que puede contener y a cmo son almacenados. Los tipos de datos se aplican a todos los valores que pueden almacenarse en la memoria del equipo o participar en la evaluacin de una expresin. Cada variable, propiedad, parmetro de procedimiento y valor devuelto por un procedimiento tiene un tipo de datos. Aqu se describen la declaracin y el uso de los tipos de datos de Pauscal.

Resumen de tipos de datos Tipos de datos elementales Tipos de datos compuestos

Volver

Page 59

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Resumen de tipos de datos


La tabla siguiente muestra los tipos de datos de Pauscal, su asignacin de almacenamiento nominal y sus intervalos de valores.
Nombre Booleano Memoria Requerida 1 byte (8 bits) Rango Verd ~ Falso Descripcin Permite almacenar los valores Verd (Verdadero) o Falso. Permite almacenar un byte sin signo. Permite almacenar un byte con signo. Permite almacenar un entero corto sin signo. Permite almacenar un entero corto con signo. Permite almacenar un entero largo sin signo. Permite almacenar un entero largo con signo. Permite almacenar un nmero con coma flotante de doble precisin. Permite almacenar un nmero con coma fija de 4 decimales. Permite almacenar una cadena caracteres alfanumrica.

Byte

1 byte (8 bits)

0 ~ 255

ByteSig

1 byte (8 bits)

-128 ~ 127

Word

2 bytes (16 bits)

0 ~ 65.535

WordSig

2 bytes (16 bits)

-32768 ~ 32767

Entero

4 bytes (32 bits)

0 ~ 4.294.967.295

EnteroSig

4 bytes (32 bits)

- 2.147.483.648 ~ 2.147.483.647 -1,79769313486232 ~ -324 -4,94065645841247 -922.337.203.685.477,5800 ~ 922.337.203.685.477,5800 0 ~ 2.000 millones de caracteres
308

Real

8 bytes (64 bits)

Decimal

8 bytes (64 bits)

Cadena

Variable

Consumo de memoria
Al declarar un tipo de datos bsico, no debe suponerse que su consumo de memoria es igual a su asignacin de almacenamiento nominal. Pauscal asigna el almacenamiento en funcin de varios factores, incluyendo el alcance de la variable, el contexto en el que se emplea, etc. Esto tambin se aplica a cada miembro de una estructura, clase o una matriz. Adems, algunos tipos compuestos tienen requisitos adicionales de memoria. Por ejemplo, una instancia de una clase utiliza memoria adicional para almacenar la cuenta de referencias. No se puede sumar simplemente todas las asignaciones de almacenamiento nominales de los componentes para obtener el consumo real de memoria.

Volver

Page 60

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Tipos de datos elementales


Tipos de datos numricos

Tipos de datos integrales Los tipos de datos integrales son aquellos que slo representan nmeros enteros. Los tipos de datos integrales sin signo son Entero (32 bits), Word (16 bits) y Byte (8 bits). Los tipos de datos integrales con signo son WordSig (16 bits), EnteroSig (32 bits) y ByteSig (8 bits). Si una variable almacena siempre nmeros enteros en lugar de nmeros con una parte decimal, declrela como variable de uno de estos tipos. Los tipos de datos sin signos no pueden representar valores negativos, pero pueden representar valores positivos mayores. (Ver Resume de tipos de datos) Los operadores aritmticos son ms rpidos con los tipos integrales que con cualquier otro tipo de datos. Con el que ms rpidos son es con el tipo de datos Entero y EnteroSig. Los tipos integrales son especialmente tiles como variables de contador en bucles Contar...Seguir. Si intenta asignar a una variable de un tipo integral un nmero que est fuera del intervalo correspondiente a este tipo, se produce un error.

Tipos de datos no integrales Los tipos de datos no integrales son aquellos que representan nmeros que contienen tanto partes enteras como decimales. En Pauscal los tipos no integrales son los tipos de datos Real y Decimal. El tipo de datos Real permite almacenar nmeros reales de coma flotante con una presicin de 64 bits. Para indicar que un valor es de tipo Real, el nmero debe tener el separador decimal (.):
1.5 ' es Real 5 ' no es Real 8.0 'es Real

El tipo de datos Decimal almacena nmeros de 64 bits con coma fija de 4 decimales. Para indicar que un valor es de tipo Decimal, el nmero debe tener el sufijo @:
2.15@ ' es Decimal 4.4 ' no es Decimal 468@ ' es Decimal 7 'no es Decimal

Tipos de datos no numricos

Tipo de datos Cadena El tipo de datos Cadena es una secuencia de cero o ms caracteres de un byte. Los primeros 128

Page 61

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

puntos de cdigo (0127) de ASCII corresponden a las letras y los smbolos de un teclado estndar americano. Los siguientes 128 puntos de cdigo (128255) representan caracteres especiales, como letras de alfabetos latinos, acentos, smbolos de moneda y fracciones. Si una variable siempre contiene una cadena de caracteres y nunca contiene un valor numrico, declrela para que sea del tipo Cadena, como en el ejemplo siguiente:
Var S:Cadena

A continuacin puede asignar cadenas a esta variable y manipularla mediante el uso de procedimientos de cadena, como en el ejemplo siguiente:
S = "Hola"

Un parmetro o variable Cadena siempre es una cadena de longitud variable, que crece o se reduce a medida que se le asignan datos nuevos. Una cadena puede contener hasta unos 2.000 millones (231) de caracteres.

Tipo de datos Booleano El tipo de datos Booleano es un valor sin signo de 8 bits que se interpreta como Verd (Verdadero) o Falso. Si una variable slo puede contener informacin de tipo verdadero/falso, s/no o activado/desactivado, declrela como de tipo Booleano. El valor predeterminado es Falso.

Volver

Page 62

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Tipos de datos compuestos


Adems de los tipos de datos bsicos que proporciona Pauscal, tambin es posible juntar elementos de distintos tipos para crear tipos de datos compuestos, como estructuras, matrices y clases. Pueden crearse tipos de datos compuestos a partir de tipos elementales y de otros tipos compuestos. Por ejemplo, puede definir una matriz de elementos de estructura, o una estructura con miembros de matriz. Un tipo compuesto es diferente del tipo de datos de cualquiera de sus componentes. Por ejemplo, una matriz de elementos Entero no es del tipo de datos Entero. No existe ningn tipo de datos que incluya todas las estructuras. En su lugar, cada definicin de una estructura representa un tipo de datos exclusivo. La misma exclusividad es aplicable a las clases. No existe ningn tipo de datos que incluya todas las matrices. El tipo de datos de una instancia especfica de una matriz est determinada por:

El hecho de ser una matriz La longitud de la matriz El tipo de matriz El tipo de elemento de la matriz
A[12]:Byte B[2]:Byte C[2]:Entero D[]:Entero

Esto queda reflejado en el ejemplo siguiente:


Var Var Var Var

En el ejemplo anterior, las variables de matriz A y B no se consideran del mismo tipo de datos porque poseen distintas longitudes. Las variables de matriz B y C no son del mismo tipo porque sus tipos de elemento son distintos. C y D no son del mismo tipo porque una matriz es esttica y la otra dinmica.

Introduccin a las variables Introduccin a las estructuras Matrices Introduccin a las clases y los objetos

Volver

Page 63

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Matrices
Las matrices permiten hacer referencia a una serie de variables mediante un mismo nombre y utilizar un nmero, denominado ndice o subndice, para distinguirlas. De esta forma, se puede crear un cdigo ms simple y reducido en muchos casos, ya que es posible utilizar bucles que usen el ndice para procesar eficientemente cualquier nmero de elementos de la matriz.

Tamao de matriz
La matriz tiene un tamao o longitud distinto de cero. Los elementos de la matriz son contiguos, desde 0 hasta el mayor valor del subndice de la matriz, que es igual a su tamao menos uno. Puesto que Pauscal asigna espacio para todos los elementos de una matriz, se debe evitar declarar una matriz mayor de lo necesario. Existen dos tipos de matrices: las matrices estticas y las matrices dinmicas. Una matriz esttica no puede cambiar su tamao. En cambio una matriz dinmica puede variar su tamao mediante la instruccin Redim.

Tipo de elemento de matriz


Una declaracin de matriz especifica un tipo de datos y todos sus elementos deben ser de ese tipo. Se pueden declarar matrices de cualquiera de los tipos de datos fundamentales, de una estructura (ver Introduccin a las estructuras) o de clases de objetos (ver Introduccin a las clases y los objetos).

Declaracin de matrices Usando las matrices Limitaciones de matrices estticas

Volver

Page 64

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Declaracin de matrices
Matrices estticas
Las matrices estticas se declaran de la misma forma que una variable, pero incluyendo su tamao entre corchetes luego del nombre. As:
Var Matriz[20]:Entero Var Nombres[10]:Cadena

Los elementos de una matriz van desde 0 hasta su tamao menos 1. Por ejemplo, la siguiente matriz:
Var Elementos[10]:Entero

que posee 10 elementos, que van desde 0 (el primer elemento) hasta 9 (el ltimo elemento).

Matrices dinmicas
Una matriz dinmica puede cambiar de tamao en cualquier momento. Las matrices dinmicas son una de las caractersticas ms flexibles de Pauscal, y le ayudan a administrar de forma eficiente la memoria. Por ejemplo, puede utilizar una matriz grande durante un tiempo corto y liberar memoria del sistema cuando no necesite volver a utilizar la matriz. La alternativa consiste en declarar la matriz con el mayor tamao posible y pasar por alto los elementos de la matriz que no necesite. Sin embargo, esta solucin, si se utiliza demasiado, puede hacer que el sistema operativo funcione con muy poca memoria. Para declarar una matriz dinmica, debe declarar la matriz como si fuese una esttica, pero sin especificar su tamao. As:
Var Dinamico[]:Entero Var Elementos[]:Real

Pero antes de poder utilizarlas, hay que dimensionarlas. Para eso se utiliza la instruccin Redim:
Redim Elementos, 200

De esta forma dimensionamos la matriz para que almacene 200 elementos, que van de 0 hasta 199. La instruccin Redim permite, tambin, cambiarle el tamao de una matriz dinmica que ya ha sido dimensionada:
Redim Elementos, 300

Ahora el tamao de la matriz cambia de 200 a 300. Al cambiar el tamao de una matriz dinmica que ya ha sido dimensionada, se pierden los valores que estaban almacenados en la matriz. Si necesita que los valores sean preservados, deber agregarle a la instruccin Redim la palabra clave Preservar:
Redim Preservar Elementos, 255

En caso de que el nuevo tamao de la matriz sea menor, Pauscal liberar los elementos eliminados. En el caso de que sean objetos, stos sern destrudos.

El entorno de Pauscal Su primera aplicacin

Page 65

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Fundamentos de la programacin en Pauscal

Volver

Page 66

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Usando las matrices


Las matrices son tiles para trabajar con un conjunto de valores del mismo tipo de datos. Una matriz es una nica variable con varios compartimentos para almacenar valores, mientras que una variable escalar (es decir, no matricial) slo dispone de un compartimiento para almacenar un nico valor. Se puede hacer referencia a la matriz como un todo si se desea hacer referencia a todos los valores que contiene, o bien se puede hacer referencia a sus elementos individuales uno a uno.

Acceso a los elementos de una matriz


Para acceder a un elemento de una matriz, se debe colocar el nombre de la matriz y el ndice del elemento al que se desea acceder entre corchetes. Por ejemplo:
Var Matriz[10]:Entero Var Ret:Entero Matriz[0] = 8 Matriz[9] = 5 + Matriz[4] Matriz[2] = 3 Ret = Matriz[1]

El ndice del elemento no necesariamente debe ser conocido en tiempo de diseo, sino que puede estar dado por una variable o incluso una llamada a un procedimiento:
Matriz[3] = 9 + Matriz[7 * Variable]

Acceso a la matriz completa


En ciertos casos puede que sea necesario acceder a toda la matriz, en lugar de acceder a un elemento en particular. Suponga que debe realizar una copia de una matriz determinada. Una forma sera mediante un bucle Contar asignar cada elemento de una matriz a la otra.
Var Matriz1[]:Cadena, Matriz2[]:Cadena Var i:EnteroSig Redim Matriz2, LongMat(Matriz1) Contar i = 0 a Lmite(Matriz1) Matriz2[i] = Matriz1[i] Seguir

En este ejemplo se redimensiona la matriz de destino con la cantidad de elementos de la matriz de origen, luego se cuenta desde el primer elemento hasta el ltimo, asignando en cada iteracin el elemento en cuestin de la matriz de origen a la de destino. Aunque este mtodo funciona perfectamente, hay una forma ms fcil y rpida de copiar la matriz:
Matriz1 = Matriz2

Aqu Pauscal se encarga de copiar los elementos de la matriz de forma automtica. Este mtodo es ms transparente e intuitivo, pero tiene sus limitaciones:

Las matrices deben ser del mismo tipo: no basta con que sean compatibles. Ambas matrices deben ser dinmicas. En caso de ser estticas deben ser del mismo tamao.

Page 67

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Devolver una matriz desde un procedimiento


Un procedimiento puede devolver una matriz. Es til cuando un procedimiento debe devolver un nmero indefinido de valores, todos del mismo tipo. Por ejemplo, suponga que necesita un procedimiento que devuelva los nombres de las personas encargadas de un proyecto. Para ello el procedimiento puede devolver una matriz de elementos de tipo Cadena.
Proc Diseadores():Cadena[] Resultado = ["Alberto", "Pedro", "Jaime"] FinProc Var Nombres[]:Cadena Nombres = Diseadores()

Despus de ejecutar el ejemplo anterior, la matriz Nombres posee tres elementos que corresponden a los valores devueltos por el procedimiento Diseadores.

Constructor de matrices
Si es necesario que una matriz tenga determinados valores asignados a cada uno de sus elementos, se puede hacer:
Var Matriz[4]:Entero Matriz[0] Matriz[1] Matriz[2] Matriz[3] = = = = 7 87 135 28

Este mtodo es perfectamente vlido, pero si la matriz es grande, la sintaxis puede volverse engorrosa, complicada y muy larga. Afortunadamente hay otra forma de hacer lo mismo: emplear el constructor de matrices. La sintaxis del constructor de matrices es la siguiente:
matriz = [ listaElementos ]

donde listaElementos es una lista separada por comas de los elementos que debe tener la matriz. En el caso de matrices dinmicas, la cantidad de elementos de la lista no tiene lmite prctico y puede variar; en cambio si la matriz es una matriz esttica, la cantidad de elementos debe coincidir exactamente con la declaracin de la matriz.
Var Matriz[4]:Entero Matriz = [7, 87, 135, 28]

Este cdigo produce exactamente el mismo resultado que el cdigo anterior, pero es mucho ms simple y fcil de leer. La lista de elementos del constructor de matrices no necesariamente debe estar compuesta de constantes: puede ser cualquier expresin, incluso llamadas a procedimientos. Si el tipo de la matriz es una estructura, en la lista de elementos hay que emplear el constructor de estructuras (ver Temas avanzados sobre las estructuras).

Page 68

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Matrices

Volver

Page 69

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Limitaciones de matrices estticas


Las matrices estticas poseen varias limitaciones comparadas con las matrices dinmicas. Se recomienda minimizar e incluso eliminar su uso, ya que es posible que en futuras versiones sean completamente removidas del lenguaje. Limitaciones

No pueden ser redimensionadas, es decir su tamao no puede variar. No pueden pasarse como parmetro a un procedimiento. No son compatibles con las matrices dinmicas. Para poder asignar una matriz esttica a otra, ambas deben ser del mismo tamao. Un procedimiento no puede devolver una matriz esttica.

Volver

Page 70

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a los procedimientos


Un procedimiento es un bloque de instrucciones de Pauscal delimitado por una instruccin de declaracin y una instruccin FinProc. Los procedimientos se invocan desde otras partes del cdigo. Cuando finaliza la ejecucin de un procedimiento, ste devuelve el control al cdigo que lo invoc, que recibe el nombre de cdigo de llamada. El cdigo de llamada es una instruccin o una expresin contenida en una instruccin, que hace referencia al procedimiento por su nombre y le transfiere el control.

Tipos de procedimientos
En Pauscal existen dos tipos de procedimientos: los procedimientos que ejecutan acciones, y los procedimientos que, adems de ejecutar acciones, devuelven un valor al cdigo de llamada. Estos ltimos tambin se conocen con el nombre de funciones.

Procedimientos y cdigo estructurado


Los procedimientos son tiles para realizar tareas repetitivas o compartidas, como clculos de uso frecuente, manipulacin de texto y controles, y otras operaciones. Se puede llamar a un procedimiento desde distintos lugares del cdigo; de modo que los procedimientos se prestan a servir de unidades de creacin de la aplicacin. Hay que tener en cuenta que la aplicacin se leer con mayor facilidad si subdivide los procedimientos grandes en procedimientos ms pequeos. Aunque Pauscal no requiere el uso de procedimientos, es recomendable utilizarlos. La estructuracin del cdigo en procedimientos aporta las siguientes ventajas:

Los procedimientos permiten desglosar los programas en unidades lgicas independientes. Es ms fcil depurar unidades individuales que todo un programa sin procedimientos. Los procedimientos desarrollados para un programa pueden utilizarse en otros programas, generalmente sin tener que realizar grandes modificaciones.

Declaracin de procedimientos Parmetros de procedimientos Procedimientos recursivos Prototipos y variables de procedimientos Fundamentos de la programacin en Pauscal

Volver

Page 71

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Declaracin de procedimientos
Un procedimiento consiste en una serie de instrucciones delimitadas por las instrucciones Proc y FinProc. Cada vez que se llama a un procedimiento, se ejecutan las instrucciones de ste, desde la primera instruccin ejecutable tras la instruccin Proc hasta la primera instruccin FinProc, Devolver o Salir que se encuentre. Un procedimiento ejecuta acciones, y opcionalmente puede devolver un valor. Puede tomar parmetros, como constantes, variables o expresiones, que le pasa el cdigo de llamada. La sintaxis para declarar un procedimiento es la siguiente:
Proc nombre[(listaparmetros)][:tiporetorno][[]] 'Instrucciones FinProc

Declaracin de parmetros
Los parmetros de un procedimiento se declaran igual que las variables, especificando el nombre y el tipo de datos del parmetro. Tambin puede especificarse el mecanismo que se va a utilizar para pasar el parmetro (ver Mecanismos para pasar parmetros), as como si se trata de un parmetro opcional. La sintaxis de los parmetros en una lista de parmetros es la siguiente:
[Opcional] [Referencia] nombre : tipo

Si el parmetro es opcional, la declaracin de ste puede contener tambin un valor predeterminado, como se muestra a continuacin:
Opcional [Referencia] nombre : tipo [ = valorpredeterminado ]

Valores devueltos
En caso de que un procedimiento devuelva un valor, ste se denomina valor devuelto. El procedimiento puede devolver dicho valor de dos maneras:

El procedimiento asigna un valor a la variable Resultado en una o ms instrucciones del procedimiento. No se devuelve el control al programa que realiza la llamada hasta que se ejecuta una instruccin FinProc o Salir, como en el siguiente ejemplo:
Proc nombre[(listaparmetros)] : tiporetorno ' ... Resultado = expresin 'El control permanece en el procedimiento ' ... FinProc

El procedimiento utiliza la instruccin Devolver para especificar el valor devuelto, e inmediatamente devuelve el control al cdigo de llamada, como en el siguiente ejemplo:
Proc nombre[(listaparmetros)] : tiporetorno ' ... Devolver expresin 'El control se devuelve inmediatamente ' ... FinProc

Page 72

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

La ventaja de asignar el valor devuelto a la variable Resultado es que el control permanece en el procedimiento hasta que el programa encuentra una instruccin FinProc o Salir, lo que permite asignar un valor previo y, si es necesario, se puede ajustar despus. Nota: la instruccin Devolver slo funciona cuando el procedimiento devuelve un tipo de datos elemental. Un procedimiento tambien puede devolver una matriz. Para ello se deben agregar corchetes vacos ("[] ") en la declaracin del procedimiento. En el siguiente ejemplo, el procedimiento DevolverMatriz devuelve una matriz de enteros, y requiere dos parmetros: el primero indica el tamao de la matriz, y el segundo el valor de cada elemento de esa matriz.
Proc DevolverMatriz(N,V:Entero):Entero[] 'devuelve una matriz Var i:Entero Redim Resultado, N Contar i = 0 a Lmite(Resultado) Resultado[i] = V Seguir FinProc Var Nmeros[]:Entero Nmeros = DevolverMatriz(4, 1) 'devuelve una matriz de 4 elementos

Sintaxis de llamada
Para llamar a un procedimiento, hay que incluir el nombre y los parmetros de ste en la parte derecha de una asignacin o, en el caso de que devuelva un valor, en una expresin. Esto ltimo se ilustra en los siguientes ejemplos de llamada:
valor = nombreprocedimiento[(parmetros)] Si ((nombreprocedimiento[(parmetros)] / 3) <= expresin) ...

El siguiente procedimiento calcula la hipotenusa de un tringulo rectngulo a partir de los valores de los catetos:
Proc Hipotenusa (Lado1, Lado2 : Real) : Real Devolver RaizCuad((Lado1 ^ 2) + (Lado2 ^ 2)) FinProc

Son llamadas vlidas a Hipotenusa las siguientes:


Ret = Hipotenusa(4.0, 3.0) 'Devuelve 5 Area = AreaTriangulo(X, Y, Hipotenusa(X, Y))

Pauscal incluye varios procedimientos. Entre los ms usados se encuentran Mensaje, Val, etc. Puede llamar a estos procedimientos de la misma manera que llama a los procedimientos que ha creado usted mismo. Cuando se llama a un procedimiento que devuelve un valor, no es necesario utilizar ese valor, en cuyo caso se ejecutan todas las acciones del procedimiento, pero el valor devuelto se omite. Las llamadas a Mensaje suelen hacerse de esta manera.

Introduccin a los procedimientos Accesibilidad

Page 73

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Parmetros de procedimientos Mecanismos para pasar parmetros

Volver

Page 74

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Parmetros de procedimientos
En la mayora de los casos, un procedimiento necesita algunos datos sobre las circunstancias en las que se le ha llamado. Un procedimiento que ejecuta tareas repetidas o compartidas utiliza datos distintos en cada llamada. Estos datos se componen de variables, constantes y expresiones que se pasan al procedimiento cuando se le llama. Un valor que se pasa a un procedimiento se denomina parmetro.

Parmetros por valor o por referencia


En Pauscal, puede pasarse un parmetro a un procedimiento por valor o por referencia. Los parmetros se pasan siempre por valor a menos que el parmetro fuera declarado con la palabra clave Referencia. Pasar un parmetro por valor implica que el procedimiento no puede modificar el contenido del elemento variable en el cdigo de llamada subyacente al parmetro. Pasar un parmetro por referencia permite que el procedimiento modifique el contenido de la misma forma que puede hacerlo el propio cdigo de llamada.

Orden de los parmetros


Al llamar a un procedimiento, los parmetros se pasan de derecha a izquierda, es decir de atras para adelante. Si bien esto no es de mucha importancia, tngalo en cuenta si en la lista de parmetros se incluyen ms de una llamada a un procedimiento. En el ejemplo siguiente, P2 se llama antes que P1.
Proc P1:Entero Resultado = 1 FinProc Proc P2:Entero Resultado = 2 FinProc Proc Prueba(N1,N2:Entero) FinProc Prueba(P1(),P2()) 'Los parmetros se pasan de derecha a izquierda

Parmetros variables y no variables


El elemento de programacin subyacente a un parmetro puede ser un elemento variable, con capacidad para cambiar de valor, o un elemento no variable. La siguiente tabla muestra elementos variables y no variables. Elementos variables Elementos no variables Variables declaradas, incluidas las variables de objetos Constantes

Page 75

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

y los campos Elementos matriciales Elementos estructurales

Valores devueltos por los procedimiento Expresiones

Los parmetros no variables no se modifican nunca en el cdigo de llamada, por esta razn no pueden ser pasados por referencia. (Ver Mecanismo para pasar parmetros).

Mecanismo para pasar parmetros Parmetros opcionales

Volver

Page 76

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Parmetros opcionales
Un parmetro de un procedimiento puede ser opcional si as se especifica, es decir, que no es necesario suministrarlo al llamar al procedimiento. Los parmetros opcionales se indican mediante la palabra clave Opcional en la definicin del procedimiento. Se aplican las siguientes reglas:

Los parmetros opcionales slo pueden ser de un tipo de datos elemental. El valor predeterminado de un parmetro opcional debe ser una expresin constante. Todos los parmetros que vayan a continuacin de un parmetro opcional en la definicin del procedimiento tambin deben ser opcionales.

La siguiente sintaxis muestra una declaracin de procedimiento con un parmetro opcional:


Proc nombre(param1 : tipo1, Opcional param2 : tipo2 = valorpredeterminado)

Llamar a procedimientos con parmetros opcionales


Cuando se llama a un procedimiento con un parmetro opcional, se puede elegir si se suministra o no el parmetro. Si no se suministra, el procedimiento utiliza el valor predeterminado declarado para dicho parmetro. Si no se hubiera declarado un valor predeterminado, se pasar cero (0) si el parmetro es numrico, Falso si es Booleano, o una cadena de longitud cero ("") si es Cadena. Si se omiten uno o ms parmetros opcionales de la lista de parmetros, hay que utilizar comas sucesivas para delimitar sus posiciones. En el ejemplo de llamada siguiente se suministran los parmetros primero y cuarto, pero no el segundo ni el tercero:
nombre(param1, , , param4) ' No se pasan param2 ni param3.

Determinar si un parmetro opcional est presente


En tiempo de ejecucin un procedimiento no puede detectar si un parmetro determinado se ha omitido o si el cdigo de llamada ha suministrado de forma explcita el valor predeterminado de dicho parmetro. Si fuese necesario hacer esta distincin, se podra establecer como valor predeterminado un valor improbable. El procedimiento que se muestra a continuacin incluye el parmetro opcional PersonaDestino y comprueba si su valor predeterminado, QJW, ha sido omitido:
Proc Notificar(Texto:Cadena, Opcional PersonaDestino:Cadena = "QJW") Si PersonaDestino = "QJW" ' Si no se especific la persona de destino PersonaDestino = "Administrador" ' utilizamos el administrador FinSi ' Cdigo para notificar FinProc

Parmetros de procedimientos

Volver

Page 77

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Mecanismos para pasar parmetros


Si se pasa un elemento no variable como parmetro, el procedimiento no podr modificarlo nunca en el cdigo de llamada. En la tabla siguiente se resume, para un elemento variable, la interaccin entre el tipo de datos del elemento y el mecanismo para pasarlos. Tipo de elemento Pasado por valor Tipo de valor (slo El procedimiento no contiene un valor) puede modificar la variable ni ninguno de los miembros de sta. Tipo de referencia El procedimiento no (contiene un puntero) puede modificar la variable, pero puede cambiar el objeto al que seala. Pasado por referencia El procedimiento puede modificar la variable y los miembros de sta. El procedimiento puede cambiar la variable y el objeto al que seala.

Seleccin del mecanismo para pasar parmetros


A la hora de elegir uno de los dos mecanismos que existen para pasar parmetros, el criterio ms importante que hay que tener en cuenta es la exposicin al cambio de las variables de llamada. La ventaja de pasar un parmetro por referencia es que el procedimiento puede devolver un valor al cdigo de llamada por medio del parmetro. La ventaja de pasarlo por valor es que protege a la variable de los cambios que sobre ella pueda efectuar el procedimiento. Aunque el mecanismo que se utilice para pasar parmetros tambin puede afectar al rendimiento del cdigo, la diferencia suele ser insignificante. Existe una excepcin: cuando se pasa una estructura o matriz por valor. En este caso, Pauscal copia todo el contenido de los datos al parmetro. En estos casos, lo ms eficiente es pasarlos por referencia. Para los tipos de referencia, como los objetos, slo se copia el puntero de cuatro bytes a los datos. Por lo tanto, se pueden pasar parmetros de objetos por valor sin perjudicar al rendimiento.

Parmetros de procedimientos

Volver

Page 78

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Procedimientos recursivos
Un procedimiento recursivo es aqul que se llama a s mismo. Por ejemplo, el siguiente procedimiento utiliza la recursividad para calcular el factorial de su parmetro original:
Proc Factorial(N:Entero):Entero Si N <= 1 ' Se alcanz el final de las llamadas recursivas Devolver 1 SiNo ' N > 1, llamar a Factorial de nuevo Devolver Factorial(N - 1) * N FinSi FinProc

Los programas tienen una cantidad de espacio limitado para las variables. Cada vez que un procedimiento se llama a s mismo, se utiliza ms espacio. Si este proceso contina indefinidamente, se acaba produciendo un error de desbordamiento de la pila. La causa puede ser menos evidente si dos procedimientos se llaman entre s indefinidamente, o si nunca se cumple una condicin que limita la recursividad. Debe asegurarse de que los procedimientos recursivos no se llamen a s mismos indefinidamente, o tantas veces que puedan agotar la memoria. La recursividad normalmente puede sustituirse por bucles.

Volver

Page 79

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prototipos y variables de procedimientos


Un prototipo es una definicin de un procedimiento y se emplea para crear variables de procedimientos. Una variable de procedimiento es una variable que se utiliza para llamar a un procedimiento. Por ejemplo:
Prototipo pMostrar(Texto:Cadena) Proc Mostrar(Texto:Cadena) Mensaje(Texto) Finproc Var vLlamada:pMostrar vLlamada@ = Mostrar@ vLlamada("Hola")

En el ejemplo anterior se puede apreciar el funcionamiento de una variable de procedimiento. La variable vLlamada es de tipo pMostrar, que es el prototipo del procedimiento Mostrar. Una vez que la variable apunta a un procedimiento (en este caso, a Mostrar), se la utiliza como si fuera un procedimiento. El operador @ se utiliza para acceder a la direccin del procedimiento, que es asignada a la variable de procedimiento. Nota: Pauscal no verifica que el procedimiento concuerda con el prototipo. Si bien esto puede ocasionar errores y un mal funcionamiento del programa, tambin es una caracterstica muy poderosa si es usado correctamente.

Introduccin a los procedimientos Declaracin de procedimientos

Volver

Page 80

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las estructuras de control Estructuras de bucles


Las estructuras de bucles permiten ejecutar una o ms lneas de cdigo repetitivamente. Una instruccin puede repetirse hasta que una condicin sea verdadera, hasta que sea falsa o un nmero de veces especificado. Las estructuras de bucles que admite Pauscal incluyen:

Mientras Repetir Contar

Estructuras de desicin
Pauscal permite probar condiciones y realizar diferentes operaciones en funcin de los resultados de la prueba. Puede comprobar si una condicin es verdadera o falsa, los distintos valores de una expresin o las diferentes excepciones que se generan al ejecutar una serie de instrucciones. Las instrucciones de decisin que admite Pauscal incluyen:

Si Seleccionar AdmErr

Estructuras de programacin
En esta categora se ubican las estructuras de programacin que no son de bucles ni de desicin.

Eval Bloque

Estructuras de control anidadas Instruccin "Salir" Fundamentos de la programacin en Pauscal

Volver

Page 81

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bucle "Mientras"
Se puede utilizar la instruccin Mientras para ejecutar un bloque de instrucciones, un nmero de veces indefinido, dependiendo del valor de tipo Booleano de una condicin. Las instrucciones se repiten mientras la condicin sea Verdadero. Generalmente, la condicin es el resultado de comparar dos valores, pero tambin puede ser cualquier expresin que da como resultado un valor de tipo Booleano ( Verdadero o Falso). Esto incluye los valores de otros tipos de datos, como los numricos, que han sido convertidos a valores de tipo Booleano. La instruccin Mientras comprueba siempre la condicin antes de iniciar el bucle. La ejecucin en bucle contina mientras el valor de la condicin permanezca en Verdadero. En el ejemplo siguiente, el procedimiento TestearMientras comprueba la condicin antes de entrar en el bucle. Si Num se hubiera inicializado en 6 y no en 10, las instrucciones del bucle nunca se ejecutaran.
Proc TestearMientras() Var Contador, Num : Entero Num = 10 Mientras Num > 6 Num = Num - 1 Contador = Contador + 1 FinMientras ' Contador vale 4 en este punto FinProc

Puede transferirse el control fuera de una instruccin Mientras mediante la instruccin Salir Mientras. Un uso de esta instruccin consiste en comprobar una condicin que pudiera ocasionar un bucle sin fin; es decir, un bucle que pudiera ejecutarse un nmero extremadamente elevado de veces e incluso infinitamente. Si la condicin es Verdadero, utilice Salir Mientras para salir. Si la condicin es Falso, el bucle contina ejecutndose. En el siguiente ejemplo se asigna a Number un valor que podra ocasionar que el bucle se ejecutara ms de 231 veces. La instruccin Si realiza esta comprobacin y sale si existe el valor para evitar un bucle sin fin.
Proc EjemploSalirMientras() Var Contador, Num : Entero Num = 8 Mientras Num <> 10 Si Num < 0 Salir Mientras FinSi Num = Num - 1 Contador = Contador + 1 FinMientras ' Contador vale 9 en este punto FinProc

Estructuras de control anidadas Instruccin "Salir"

Volver

Page 82

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bucle "Repetir"
Puede utilizar la instruccin Repetir para ejecutar un bloque de instrucciones un nmero de veces indefinido dependiendo del valor de tipo Booleano de una condicin. Las instrucciones se repiten hasta que el valor sea Verdadero. Generalmente, la condicin es el resultado de comparar dos valores, pero tambin puede ser cualquier expresin que da como resultado un valor de tipo Booleano (Verdadero o Falso). Esto incluye los valores de otros tipos de datos, como los numricos, que han sido convertidos a valores de tipo Booleano. La instruccin Repetir tambin puede funcionar de forma incondicional, es decir que sus instrucciones se ejecuten un nmero de veces indefinido sin depender de una condicin.

Repetir instrucciones hasta que una condicin sea Verdadera


Utilizar el bucle de esta manera significa terminar el bucle Repetir con la instruccin HastaQue, seguido de la condicin. El bucle se ejecuta al menos una vez, luego se evala la condicin. La ejecucin en bucle contina mientras la condicin permanezca en Falso. En el ejemplo siguiente, las instrucciones dentro del bucle se ejecutan una vez antes de comprobar la condicin, que es Falso en la primera prueba.
Proc TestearRepetirHastaQue() Var Contador, Num : Entero Num = 20 Repetir Num = Num - 1 Contador = Contador + 1 HastaQue Num = 15 ' Contador vale 5 en este punto FinProc

Repetir instrucciones incondicionalmente


Utilizar el bucle de esta manera significa terminar el bucle Repetir con la instruccin PorSiempre. La ejecucin en bucle contina indefinidamente. La nica forma de romper el bucle es por medio de una salida alternativa. (Ver ms abajo). En el ejemplo siguiente, las instrucciones dentro del bucle se ejecutan incondicionalmente. Se utiliza la salida alternativa (ver ms abajo) para no entrar en un bucle infinito.
Proc TestearRepetirHastaQue() Var Contador, Num : Entero Num = 20 Repetir Num = Num - 1 Contador = Contador + 1 Si Num = 15 Salir Repetir FinSi PorSiempre ' Contador vale 5 en este punto

Page 83

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html FinProc

Salir de un bucle Repetir desde dentro del bucle


Puede transferirse el control fuera de un bucle Repetir mediante la instruccin Salir Repetir. Un uso de esta instruccin consiste en comprobar una condicin que pudiera ocasionar un bucle sin fin; es decir, un bucle que pudiera ejecutarse un nmero extremadamente elevado de veces e incluso infinitamente. Si la condicin es Verdadero, utilice Salir Repetir para salir. Si la condicin es Falso, el bucle contina ejecutndose.

Estructuras de control anidadas Instruccin "Salir"

Volver

Page 84

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bucle "Contar"
Los bucles Repetir y Mientras funcionan bien cuando no se sabe de antemano cuntas veces se necesitan ejecutar las instrucciones en el bucle. No obstante, si tiene previsto ejecutar el bucle un nmero especfico de veces, un bucle Contar es una opcin mejor. A diferencia de otros bucles, un bucle Contar utiliza una variable denominada contador cuyo valor aumenta o disminuye cada vez que se repite el bucle. La sintaxis es la siguiente:
Contar contador = inicio A final [ Dec ] ' Instrucciones a ejecutar para cada valor de contador. Seguir

La variable contador debe ser un tipo de datos numrico entero que admita los operadores mayor que ( >), menor que (<) y suma (+); generalmente es de tipo Entero. Los valores de iteracin inicio y final son expresiones que deben evaluarse como tipos de datos enteros. Normalmente tambin son Entero. La palabra clave Dec opcional permite controlar la direccin de la cuenta; si se omite, la cuenta es positiva, de lo contrario la cuenta es negativa. Al iniciarse la ejecucin del bucle Contar, Pauscal evala inicio y final. Despus asigna inicio a contador. Antes de ejecutar el bloque de instrucciones, compara contador con final. Si contador ya ha superado el valor final, el bucle Contar finaliza y el control pasa a la instruccin que sigue a Seguir. En caso contrario, se ejecuta el bloque de instrucciones. Cada vez que Pauscal encuentra la instruccin Seguir, incrementa (si se omite Dec) o decrementa (si Dec est presente) en uno el contador, y vuelve a la instruccin Contar. Vuelve a comparar el contador con final, y una vez ms ejecuta el bloque o termina el bucle dependiendo del resultado. Este proceso contina hasta que el contador supera final o se ejecuta una instruccin Salir Contar. El procedimiento siguiente preestablece todos los elementos de una matriz en 128. La instruccin Contar especifica la variable de contador i y sus valores de inicio y fin. La instruccin Seguir incrementa el contador en 1, porque se omite Dec.
Proc Inicializar(Referencia M[]:Entero) Var i: Entero Contar i = 0 a Lmite(M) M[i] = 128 Seguir FinProc

Los valores de iteracin inicio y final slo se evalan una vez, antes de iniciarse el bucle. Si el bloque de instrucciones cambia final, estos cambios no afectan a la iteracin del bucle. En el ejemplo anterior, Lmite (que devuelve el ndice del ltimo elemento de una matriz) slo se invoca cuando la instruccin Contar se ejecuta por primera vez. Si el bloque de instrucciones hubiera cambiado posteriormente la longitud de la matriz M, el bucle Contar seguira utilizando la longitud original como valor final, puesto que no vuelve a llamar a Lmite.

Salir de un bucle Contar antes de que el contador supere su valor final


Puede salir de un bucle Contar antes de que el contador supere su valor final utilizando la instruccin Salir Contar. Por ejemplo, puede desear salir de un bucle si detecta una condicin que hace que sea innecesario o imposible continuar la iteracin, como puede ser un valor errneo o una solicitud de

Page 85

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

finalizacin.

Estructuras de control anidadas Instruccin "Salir"

Volver

Page 86

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Si"
Se pueden utilizar instrucciones Si para ejecutar una instruccin especfica o un bloque de instrucciones dependiendo del valor de tipo Booleano de una condicin. Generalmente, la condicin es el resultado de comparar dos valores, pero tambin puede ser cualquier expresin que da como resultado un valor de tipo Booleano (Verdadero o Falso). Esto incluye los valores de otros tipos de datos, como los numricos, que han sido convertidos a valores de tipo Booleano

Ejecutar instrucciones si una condicin es Verdadero


Para ejecutar slo una instruccin cuando una condicin es Verdadero, se puede utilizar la sintaxis de una sola lnea del bloque Si omitiendo las instrucciones SiNo y FinSi, como muestra el ejemplo siguiente:
Proc Comprobar Var Valor:Entero Si (Valor < 500) Valor = 500 FinProc

Para ejecutar ms de una lnea de cdigo cuando la condicin es Verdadero se utiliza la sintaxis de varias lneas, que incluye la instruccin FinSi. Si no existe cdigo que ejecutar cuando la condicin es Falso, se omite la instruccin SiNo, como se muestra en el ejemplo siguiente:
Proc Comprobar Var Valor:Entero Si Valor < 500 Mensaje("Valor invlido") Valor = 500 FinSi FinProc

Ejecutar algunas instrucciones si una condicin es verdadera y otras si es falsa


Puede utilizar el bloque Si con la instruccin SiNo para definir dos bloques de instrucciones ejecutables. Si el valor de la condicin es Verdadero, se ejecuta un bloque, y si es Falso, se ejecuta el otro.
Proc Comprobar(Valor:Entero):Entero Si Valor < 500 Resultado = 500 SiNo Resultado = Valor FinSi FinProc

Las instrucciones Si se pueden anidar a tantos niveles como sea necesario. No obstante, es posible que en favor de la legibilidad, desee utilizar instrucciones Seleccionar en lugar de varios niveles de instrucciones Si anidadas.

Estructuras de control anidadas Instruccin "Salir" Bloque "Seleccionar"

Page 87

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Volver

Page 88

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Seleccionar"
Cuando compara una misma expresin con varios valores diferentes, puede utilizar las instrucciones Seleccionar como alternativa a las instrucciones Si. A diferencia de las instrucciones Si, que pueden evaluar una expresin diferente en cada instruccin, la instruccin Seleccionar evala una nica expresin una sola vez y la utiliza para cada comparacin. Pauscal compara el valor de la expresin con los valores de las instrucciones Caso en el orden en que stos aparecen en el bloque Seleccionar. Si encuentra una coincidencia o una instruccin Caso Otro, ejecuta el bloque de instrucciones correspondiente. En cualquier caso, despus ejecuta el cdigo que sigue a la instruccin FinSeleccionar. Puede utilizarse cualquier nmero de instrucciones Caso e incluirse u omitirse una instruccin Caso Otro . En el ejemplo siguiente se usa Seleccionar para evaluar el nivel de rendimiento que se pasa al procedimiento. Observe que cada instruccin Caso puede contener ms de un valor. Cuando una instruccin Caso contiene ms de un valor, el bloque Caso se ejecuta si cualquiera de los valores coincide con el valor de la expresin de instruccin Seleccionar.
Proc Bono(Performance:Entero, Salario:Real):Real Seleccionar Performance Caso 1 ' Performance es 1. Devolver Salario * 0.1 Caso 2, 3 ' Performance es 2 o 3. Devolver Salario * 0.09 Caso 4, 5, 6, 7 ' Performance es 5, 6, o 7. Devolver Salario * 0.07 Caso Otro ' Performance es otro valor. Devolver 0 inSeleccionar FinProc

Cuando Pauscal encuentra una instruccin Caso cuyo valor coincide con la expresin de la instruccin Seleccionar, deja de evaluar las expresiones en ese instante. Si bien esto en general no afecta en nada, hay casos en los que hay que tener cuidado. Por ejemplo, en el siguiente caso el procedimiento Ret nunca se llama:
Proc Ret:Entero Resultado = 3 FinProc Seleccionar 4 Caso 5 ' Instrucciones Caso 4, Ret(), 2 ' Pauscal encuentra el valor coincidente ' antes de llamar a Ret() ' Instrucciones Caso 1 ' Instrucciones FinSeleccionar

Estructuras de control anidadas Instruccin "Salir"

Page 89

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Si"

Volver

Page 90

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "AdmErr"
Puede utilizar la instruccin AdmErr para el control estructurado de excepciones. As puede ejecutarse un bloque concreto de instrucciones si se produce una excepcin especificada mientras se ejecuta el cdigo. Cuando esto ocurre, se dice que el cdigo provoca la excepcin, que se detecta con la instruccin Controlar correspondiente. La ejecucin entra en el bloque AdmErr con el bloque de instrucciones que sigue a la instruccin AdmErr. Si Pauscal finaliza este bloque sin que se genere una excepcin, busca la instruccin opcional Finalmente al final del bloque. Si ha proporcionado la instruccin Finalmente, Pauscal ejecuta el bloque de instrucciones que est a continuacin de dicha instruccin. En cualquier caso, a continuacin el control se transfiere a la instruccin que sigue a la instruccin FinAdmErr. Si se produce una excepcin, Pauscal busca la instruccin opcional Controlar. Si la encuentra, se ejecutan las instrucciones que ha proporcionado la instruccin Controlar. Cuando termina de ejecutar el bloque Controlar, ejecuta el bloque Finalmente, en caso de estar presente. Despus, la ejecucin contina en la instruccin que sigue a FinAdmErr. Si se incluye la instruccin opcional Finalmente, el bloque de instrucciones correspondiente es siempre el ltimo cdigo que se ejecuta inmediatamente antes de que el control abandone AdmErr, excepto cuando se sale del bloque debido a una instruccin Salir AdmErr. Las instrucciones Controlar y Finalmente puede opcionalmente especificar una variable de tipo Entero . En caso de ocurrir una excepcin, esta variable recibe el valor numrico de la excepcin. Si bien las instrucciones Controlar y Finalmente son opcionales, debe utilizarse al menos una de ellas. En el ejemplo siguiente, se utiliza el bloque AdmErr para verificar si el usuario ingres un valor numrico vlido:
Var Valor:Real Var CodigoDeExcepcion:Entero Crear Dos Dos.EscribirLn("Ingrese un nmero entre 0 y 100:") AdmErr Valor = Dos.LeerReal() Si (Valor < 0) o (Valor > 100) Dos.EscribirLn("Valor fuera de rango") FinSi Controlar CodigoDeExcepcion Si (CodigoDeExcepcion=errTipoIncompatible) Dos.EscribirLn("Valor invlido") SiNo Dos.EscribirLn("Error") FinSi Finalmente Dos.Esperar Dos.Finalizar FinAdmErr

El bloque Controlar se ejecutar en caso de que ocurra una excepcin. En el ejemplo, se controla la excepcin errTipoIncompatible, que es generada cuando el usuario ingresa un valor no numrico. Con independencia de lo que suceda, el bloque Finalmente es siempre el cdigo que se ejecuta en

Page 91

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

ltimo lugar antes de abandonar AdmErr.

Introduccin al control estructurado de excepciones Estructuras de control anidadas Instruccin "Salir"

Volver

Page 92

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Estructura "Eval"
En Pauscal generalmente se debe especificar un objeto en cada instruccin que llame a uno de sus mtodos o que tenga acceso a una de sus propiedades. Sin embargo, si tiene una serie de instrucciones que operan en un mismo objeto, puede utilizar una instruccin Eval...FinEval para especificar el objeto solo una sola vez para todas las instrucciones. De este modo puede acelerar la ejecucin de los procedimientos y evitar la escritura repetitiva. En el siguiente ejemplo se accede a varios miembros de un objeto sin calificarlo completamente.
Eval Obj.Items[4].Fuente .Tamao = 14 ' igual a Obj.Items[4].Fuente.Tamao = 14 .Nombre = "Times New Roman" ' igual a Obj.Items[4].Nombre = "Times New Roman" .Subrayado = Verd ' igual a Obj.Items[4].Subrayado = Verd FinEval

Puede anidar instrucciones Eval...FinEval para conseguir mayor eficacia.


Eval Obj.Items[4] .Nombre = "Item" .Ancho = 105 Eval .Fuente .Tamao = 14 .Nombre = "Times New Roman" .Subrayado = Verd FinEval FinEval

Para salir prematuramente de un bloque Eval, utilice la instruccin Salir Eval.


Eval Obj.Items[4] Si .Modificado = Falso Salir Eval FinSi .Nombre = "Item" .Ancho = 105 Eval .Fuente .Tamao = 14 .Nombre = "Times New Roman" .Subrayado = Verd FinEval FinEval

Estructuras de control anidadas Introduccin a las clases y los objetos Instruccin "Salir"

Volver

Page 93

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Estructura "Bloque"
La instruccin Bloque permite definir una estructura de programacin Bloque...FinBloque. La nica funcin de esta estructura es la de ser un punto de referencia para la instruccin Salir Bloque. Se utiliza para salir de varias estructuras de desicin y/o de bucles anidadas.
Contar i = 1 a 10 Bloque A = i + A Repetir V = "" Mientras V = "" K = 9 + i * K B = i * A V = HacerLlamada(K - V, B) Si K = 0 Salir Bloque ' Permite que el bucle Contar siga haciendo ' las iteraciones. Sera complicado salir de ' los bloques Repetir y Mientras manualmente ' sin emplear la estructura de programacin ' Bloque. FinSi FinMientras HastaQue (K + i) = (B * A) K = B + A * K A = CalcularValor(V, K + i) FinBloque ' Despus de Salir Bloque la ejecucin contina aqu Seguir

Estructuras de control anidadas Instruccin "Salir"

Volver

Page 94

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instruccin "Salir"
La instruccin Salir permite salir directamente de cualquier estructura de decisin, bucle o procedimiento. Transfiere inmediatamente la ejecucin a la instruccin que sigue a la ltima instruccin de control. La sintaxis de la instruccin Salir especifica el tipo de instruccin de control desde la que se transfiere la ejecucin. Son posibles las siguientes versiones de la instruccin Salir:

Salir Contar Salir Mientras Salir Repetir Salir Eval Salir Bloque Salir Seleccionar Salir AdmErr Salir

Tambin puede salir directamente de un procedimiento; para ello especifique Salir solamente:

Las instrucciones Salir pueden aparecer todas las veces que sea necesario, en cualquier punto del cuerpo del procedimiento. Incluso pueden aparecer dentro de una instruccin de control como Si. Estas instrucciones son tiles cuando un procedimiento ha completado su cometido y puede volver inmediatamente.

Salir de instrucciones de control anidadas


Si se encuentra una instruccin Salir dentro de instrucciones de control anidadas, la ejecucin contina con la instruccin que sigue al final de la instruccin de control ms interna del tipo especificado en la instruccin Salir.

Mltiples instrucciones Salir


La instruccin Salir en cualquiera de sus formas puede aparecer tantas veces como sea necesaria dentro del bucle o instruccin apropiados. En el siguiente ejemplo se muestra esto dentro de un bucle Mientras :
Mientras y <> -1 Si (x < 0) Salir Mientras x = RaizCuad(x) Si (y > 0) Salir Mientras y = y + 3 Si (z = 0) Salir Mientras z = x / z FinMientras

Introduccin a las estructuras de control Estructuras de control anidadas

Page 95

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Volver

Page 96

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Estructuras de Control Anidadas


Puede colocar instrucciones de control dentro de otras instrucciones de control, por ejemplo un bloque Si dentro de un bucle Contar. Cuando una instruccin de control se coloca dentro de otra, se dice que est anidada. En Pauscal, las instrucciones de control pueden anidarse tantos niveles como se desee. A fin de que las estructuras de decisin y los bucles anidados sean ms fciles de leer, es prctica habitual aplicar sangra al cuerpo de cada uno. En el ejemplo siguiente, el procedimiento multiplica cada elemento de la primera matriz por cada elemento de la segunda matriz, y devuelve la suma de esas multiplicaciones:
Proc Multiplicar(M1[]:Entero, M2[]:Entero):Entero Var i, j : Entero Contar i = 0 a Lmite(M1) Contar j = 0 a Lmite(M2) Resultado = Resultado + M1(i) * M2(j) Seguir Seguir FinProc

Observe que el primer Seguir cierra el bucle Contar interno y el ltimo Seguir cierra el bucle Contar externo. Del mismo modo, en las instrucciones Si anidadas, las instrucciones FinSi se aplican automticamente a la instruccin Si anterior ms prxima. Los bucles Mientras anidados funcionan de forma similar; la instruccin FinMientras ms interna est emparejada con la instruccin Mientras ms interna.

Volver

Page 97

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las estructuras


Se pueden combinar elementos de datos de distintos tipos para crear una estructura. Una estructura asocia uno o ms miembros entre ellos y con la propia estructura. Al declarar una estructura, sta se convierte en un tipo de datos compuesto y se puede declarar variables de este tipo. Las estructuras son tiles si se quiere que una nica variable contenga varios datos relacionados. Por ejemplo, quizs desee mantener juntos el nombre de un empleado, su extensin telefnica y su salario. Podra utilizar varias variables para esta informacin, o bien definir una estructura y utilizarla para una nica variable de empleado. La ventaja de la estructura se hace evidente si tiene muchos empleados y, por consiguiente, muchas instancias de la variable.

Declaracin de estructuras Variables de estructura Temas avanzados de estructuras Uniones Fundamentos de la programacin en Pauscal

Volver

Page 98

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Declaracin de estructuras
Una declaracin de estructuras se realiza mediante la instruccin Estruc. A continuacin debe declararse por lo menos un miembro. Los miembros pueden ser de cualquier tipo de datos. Si desea mantener un nombre de empleado, su extensin telefnica y su salario juntos en una nica variable, puede declarar una estructura para esta informacin de la siguiente manera:
Estruc Empleado, Nombre:Cadena, ExtTel:Entero, Salario:Real

Para facilitar la lectura de una estructura, se recomienda separar la estructura de tal forma que cada miembro quede en una lnea diferente. Para ello se utiliza el carcter de subrayado (_), que indica que la lnea de cdigo contina en la siguiente lnea. (Ver Introduccin a las instrucciones).
Estruc Empleado, _ Nombre:Cadena, _ ExtTel:Entero, _ Salario:Real

De esta forma se hace ms fcil la lectura e interpretacin de los miembros de la estructura.

Introduccin a las estructuras Accesibilidad Variables de estructura

Volver

Page 99

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Variables de estructura
Una vez creada una estructura, se pueden declarar variables de procedimiento y de mdulo como del mismo tipo. Por ejemplo, puede crear una estructura que registre informacin acerca de un sistema de equipo, como en el cdigo siguiente:
Estruc InfoDeSistema, _ CPU:Cadena, _ SistemaOperativo:Cadena, _ Memoria:Entero

Ahora puede declarar variables de ese tipo de la siguiente manera:


Var MiSistema, TuSistema : InfoDeSistema

Acceso a valores de estructura


Para asignar y recuperar valores de los elementos de una variable de estructura, utilice la misma sintaxis que para establecer y obtener propiedades de un objeto. Por ejemplo, mediante la utilizacin de las variables declaradas anteriormente como InfoDeSistema, puede obtener acceso a sus elementos del modo siguiente:
MiSistema.CPU = "Pentium III" Si (TuSistema.CPU = "Pentium IV") Mensaje("Buen procesador")

Tambin puede asignar una variable a otra si ambas son del mismo tipo de estructura. Si lo hace, se copiarn todos los elementos de una estructura en los elementos correspondientes de la otra, como en el ejemplo siguiente:
TuSistema = MiSistema

Si un elemento de una estructura es de tipo referencia, como un objeto o un puntero, se copia el puntero a los datos. Si InfoDeSistema hubiera incluido una variable de objeto, en el ejemplo anterior se habra copiado el puntero de MiSistema a TuSistema, y los cambios realizado en los datos del objeto a travs de una estructura habran surtido efecto al tener acceso a ellos a travs de la otra estructura.

Introduccin a las estructuras Declaracin de estructuras Temas avanzados de estructuras

Volver

Page 100

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Temas avanzados sobre las estructuras


Se pueden utilizar estructuras conjuntamente con matrices, objetos y variables de procedimientos, as como unos con otros. Las interacciones utilizan la misma sintaxis que utilizan estos elementos de forma individual.

Estructuras y matrices
Una estructura puede contener una matriz como uno de sus elementos, como se muestra en este ejemplo:
Estruc InfoDeSistema, _ CPU:Cadena, _ SistemaOperativo:Cadena, _ Memoria:Entero, _ Discos[]:Cadena

Se obtiene acceso a los valores de una matriz de una estructura del mismo modo que se obtiene acceso a una propiedad de un objeto, como se muestra en este ejemplo:
Var MiSistema:InfoDeSistema Redim MiSistema.Discos, 3 MiSistema.Discos[0] = "1.44 MB"

Tambin se puede declarar una matriz de estructuras, como se muestra en este ejemplo:
Var TodosLosSistemas[100]:InfoDeSistema

Las mismas reglas se siguen para obtener acceso a los componentes de esta arquitectura de datos, como se muestra en este ejemplo:
TodosLosSistemas[5].CPU = "486" TodosLosSistemas[5].Discos[2] = "100M SCSI"

Estructuras y objetos
Una estructura puede contener un objeto como uno de sus elementos, como se muestra en el siguiente ejemplo:
Estruc Info, _ Nombre:Cadena, _ Formulario:pscForm

Estructuras y procedimientos
Puede pasar una estructura como parmetro de un procedimiento, como se muestra en este ejemplo:
Proc LlenarDatos(Referencia Sistema:InfoDeSistema) Sistema.CPU = txtCPU.Texto Sistema.Memoria = lstMemoria.Items.Item(lstMemoria.ItemSeleccionado) Sistema.SistemaOperativo = "Windows XP" FinProc

El ejemplo anterior pasa la estructura por referencia, lo cual permite al procedimiento modificar sus

Page 101

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

elementos de tal forma que los cambios se hacen efectivos en el cdigo de llamada. Si desea proteger una estructura frente a una modificacin de este tipo, psela por valor. Tambin puede obtener una estructura como resultado de un procedimiento, como se muestra en este ejemplo:
Var TodosLosSistemas[100]:InfoDeSistema Proc BuscarCPU(CPU:Cadena):InfoDeSistema Var i:Entero Contar i = 0 a 99 Si (TodosLosSistemas[i].CPU=CPU) Resultado = TodosLosSistemas[i] Salir FinSi Seguir ' Error. No se encontr el CPU buscado FinProc

Estructuras dentro de estructuras


Las estructuras pueden contener otras estructuras, como se muestra en el ejemplo siguiente:
Estruc InfoDeDisco, _ Tipo:Cadena, _ Tamao:Entero Estruc InfoDeSistema, _ CPU:Cadena, _ SistemaOperativo:Cadena, _ Memoria:Entero, _ Discos[]:InfoDeDisco Var TodosLosSistemas[100]:InfoDeSistema TodosLosSistemas[1].Discos[0].Tipo = "Disco 3 1/2"

Las estructuras pueden contener otras estructuras hasta cualquier nivel.

Constructor de estructuras
Hay una forma de asignacin que solamente es vlido para las estructuras, llamado constructor de estructuras. El constructor de estructuras permite asignar de una sola vez todos los miembros de una estructura. La sintaxis del constructor de estructuras es la siguiente:
variableEstructura = { listaElementos }

donde listaElementos es una lista separada por comas de los valores de los miembros de la estructura. El orden y la cantidad de los elementos debe coincidir exactamente con la declaracin de la estructura, y los tipos de datos deben ser compatibles.
Estruc InfoDeSistema, _ CPU:Cadena, _ SistemaOperativo:Cadena, _ Memoria:Entero Var MiSistema:InfoDeSistema MiSistema = {"Pentium IV", "Windows XP", 512}

Page 102

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

La lista de elementos del constructor de estructuras no necesariamente debe estar compuesta de constantes: puede ser cualquier expresin, incluso llamadas a procedimientos. Si la estructura tiene matrices, en la lista de elementos hay que emplear el constructor de matrices (ver Usando las matrices).

Introduccin a las estructuras Declaracin de estructuras Matrices

Volver

Page 103

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Uniones
Una unin es muy similar a una estructura. La diferencia radica en que los miembros de una estructura tienen un espacio asignado individualmente en la memoria; en cambio en una unin todos los miembros comparten el mismo espacio de memoria. Las uniones se declaran de forma anloga a las estructuras, pero utilizando la instruccin Unin :
Unin nombre, miembro1:tipo[, miembro2:tipo]...

En el siguiente ejemplo, los miembros a y b de la estructura son elementos separados: cuando en a se almacena un valor, el valor de b no cambia.
Estruc sPrueba, _ a : Entero, _ b : Entero Var P:sPrueba P.b = 6 P.a = 8 ' En este punto P.a vale 8 y P.b vale 6

En cambio, en el siguiente ejemplo, los miembros a y b comparten el mismo espacio de memoria, lo que significa que si a vara, b tambin vara.
Unin uPrueba, _ a : Entero, _ b : Entero Var P:uPrueba P.b = 6 P.a = 8 ' En este punto P.a vale 8 y P.b vale 8

El tamao de una unin es siempre igual al tamao de su miembro ms grande.

Introduccin a las estructuras

Volver

Page 104

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las clases y los objetos


Las clases son representaciones simblicas de objetos; describen las propiedades, campos y mtodos que forman objetos de la misma forma que los planos describen los elementos que componen un edificio. As como un plano puede utilizarse para crear varios edificios, una nica clase puede utilizarse para crear tantos objetos como sea necesario. Del mismo modo que un plano define qu partes de un edificio son accesibles a las personas que lo utilizan, las clases tambin pueden controlar el acceso de los usuarios a los elementos de los objetos a travs de la encapsulacin.

Clases y objetos
Los trminos "clase" y "objeto" se utilizan a veces indistintamente, pero en realidad, las clases describen la estructura de los objetos, mientras que los objetos son instancias de clases que se pueden utilizar. Cada instancia es una copia exacta pero diferente de su clase. Puesto que un objeto es una "instancia" de una clase, la accin de crear un objeto se denomina creacin de instancias. Con la analoga de plano, una clase es un plano, y un objeto es un edificio basado en ese plano. Generalmente, el cambio de datos en un objeto no cambia los datos de otro objeto.

Encapsulacin
La encapsulacin es la capacidad de contener y controlar el acceso a un grupo de elementos asociados. Las clases proporcionan una de las formas ms comunes de encapsular elementos. En el ejemplo siguiente, la clase CuentaBancaria encapsula los mtodos, campos, y propiedades que describen una cuenta bancaria. Sin la encapsulacin, sera necesario declarar diferentes procedimientos y campos para almacenar y administrar la informacin de la cuenta bancaria, y sera difcil trabajar con ms de una cuenta bancaria a la vez. La encapsulacin permite utilizar datos y procedimientos de la clase CuentaBancaria como una unidad. Puede trabajar con varias cuentas bancarias al mismo tiempo sin confusin, puesto que cada cuenta se representa mediante una instancia nica de la clase. La encapsulacin tambin permite controlar la forma de utilizar los datos y los procedimientos. Se pueden utilizar modificadores de acceso, como Privado o Pblico, para evitar que procedimientos externos ejecuten mtodos de clase o lean y modifiquen datos privados. Los detalles internos de una clase deben declararse como Privado para evitar que sean utilizados fuera de la misma; esta tcnica se denomina ocultacin de datos. En la clase CuentaBancaria, la informacin del cliente, por ejemplo el saldo de la cuenta, se protege de esta forma. Una de las reglas bsicas de la encapsulacin es que los datos de clase slo se deben modificar o recuperar mediante mtodos o propiedades. Al ocultar los detalles de implementacin de las clases se evita que sean utilizados de forma no deseada y hace posible la modificacin posterior de tales elementos sin problemas de compatibilidad. Por ejemplo, en las versiones posteriores de la clase CuentaBancaria que se muestra a continuacin se podra cambiar el tipo de datos de la variable BalanceDeLaCuenta sin peligro de interrumpir las aplicaciones que se basan en que esa variable tenga un tipo de datos especfico.

Herencia

Page 105

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Las clases de Pauscal pueden heredar y extender las caractersticas de otras clases. Las clases que sirven de base para nuevas clases se denominan clases base. Las clases que se derivan de clases base se denominan clases derivadas. Las clases derivadas heredan todos los campos, propiedades y mtodos definidos en la clase base. Esto significa que puede desarrollar y depurar una clase una vez y reutilizarla despus como base de otras clases. En el siguiente ejemplo se define una clase base que representa una cuenta bancaria genrica y una clase especfica que hereda las propiedades de la clase base pero que se personaliza para describir una cuenta corriente:
Clase CuentaBancaria ClaseVar NmeroDeCuenta:Cadena ClaseVar BalanceDeLaCuenta:Real Proc Intereses() ' Cdigo que calcula el inters de la cuenta. FinProc Proc Balance():Real Devolver BalanceDeLaCuenta FinProc FinClase Clase CuentaCorriente(CuentaBancaria) Proc ProcesarCheque ' Cdigo que procesa un cheque de esta cuenta. FinProc FinClase

Duracin de los objetos Constructores y destructores Mtodos de una clase Campos de una clase Propiedades y procedimientos de propiedad Propiedades frente a mtodos Fundamentos de la programacin en Pauscal

Volver

Page 106

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Duracin de los objetos


La vida de los objetos comienza cuando se crea una instancia de una clase mediante la palabra clave Crear o Nuevo. A menudo, los nuevos objetos requieren la realizacin de tareas de inicializacin antes de utilizarlos por primera vez. Las tareas de inicializacin comunes incluyen la apertura de archivos, la lectura de valores de claves de Registro y otras operaciones. Pauscal controla la inicializacin de nuevos objetos mediante procedimientos denominados constructores. La vida de los objetos finaliza cuando dejan el mbito y son liberados. Pauscal controla la liberacin de los recursos del sistema mediante procedimientos denominados destructores. Juntos, los constructores (mtodos especiales que permiten controlar la inicializacin) y los destructores permiten la creacin de bibliotecas de clases slidas y predecibles. Para crear un objeto, utilice la instruccin Crear de la siguiente manera:
Var Obj:MiClase Crear Obj

Tambin es posible utilizar la palabra clave Nuevo para crear una nueva instancia de una clase:
Var Obj:MiClase Obj = Nuevo miClase

Estos dos ejemplos anteriores son equivalentes. En caso de que el constructor de la clase requiera parmetros, stos debern pasarse al crear el objeto.
Var Obj:MiClase Obj = Nuevo miClase(Parmetro)

Para destruir un objeto explcitamente, utilice la instruccin Destruir.


Destruir Obj

Constructores y destructores
El constructor de una clase es llamado por Pauscal cada vez que se crea una nueva instancia de la clase. En caso de que sea una clase derivada, Pauscal llama primero al constructor de la clase base y luego al de la clase derivada. Si la clase no especifica un constructor, Pauscal crea implcitamente un constructor interno. El destructor de una clase es llamado por Pauscal justo antes de liberar una instancia de la clase. El destructor puede contener cdigo que es necesario ejecutar inmediatamente antes de destruir un objeto, como cerrar archivos y guardar informacin de estado. Puesto que se produce una ligera disminucin del rendimiento al ejecuta el destructor, ste slo debe definirse cuando sea necesario liberar objetos explcitamente.

Liberacin de objetos

Page 107

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Para liberar objetos Pauscal utiliza un sistema denominado recuento de referencias. Cuando una variable de objeto es liberada, Pauscal verifica si hay otras referencias al objeto en cuestin. Si no hay ms referencias, se llama al destructor de la clase e inmediatamente despus el objeto se quita de la memoria.

Introduccin a las clases y los objetos

Volver

Page 108

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Constructores y destructores
Los constructores y destructores son mtodos normales que controlan la creacin y destruccin de objetos. Se utiliza la instruccin Constructor para declarar al mtodo constructor de una clase:
Clase cPrueba Proc iInicio Mensaje("Objeto creado") FinProc Constructor:iInicio FinClase

De forma anloga, se utiliza la instruccin Destructor para declarar al mtodo destructor de una clase:
Clase cPrueba Proc iInicio Mensaje("Objeto creado") FinProc Proc iFinal Mensaje("Objeto destruido") FinProc Constructor:iInicio Destructor:iFinal FinClase

Una clase puede tener ms de un constructor y ms de un destructor. En caso de ser una clase derivada, se heredan el constructor y el destructor de la clase base. Si la clase derivada declara un nuevo constructor (o destructor), ste simplemente se agrega, no reemplaza al anterior. Cuando se crea o se destruye el objeto, Pauscal llama al constructor y destructor de la clase base y luego a los de la clase derivada. Si el constructor de la clase base requiere parmetros, el de la clase derivada debe aceptar los mismos parmetros. En caso contrario, el nuevo constructor esconde al constructor anterior, haciendo que Pauscal no lo llame. En el siguiente ejemplo, iConst1 y iConst2 son constructores de la clase. Cuando se cree una nueva instancia de la clase, Pauscal llamar a iConst1 y luego a iConst2.
Clase cPrueba Proc iConst1 Mensaje("Constructor 1") FinProc Proc iConst2 Mensaje("Constructor 2") FinProc Constructor:iConst1 Constructor:iConst2

Page 109

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html FinClase

En el siguiente ejemplo, iConst1 y iConst2 son constructores de la clase, al igual que en el ejemplo anterior. Pero como la lista de parmetros de los constructores no coincide, iConst2 esconde a iConst1. Por esta razn, cuando se cree una nueva instancia de la clase, Pauscal no llamar a iConst1, slo a iConst2.
Clase cPrueba Proc iConst1 Mensaje("Constructor 1") FinProc Proc iConst2(Dato:Cadena) Mensaje("Constructor 2: " + Dato) FinProc Constructor:iConst1 Constructor:iConst2 ' Pauscal genera una advertencia que ' indica que el constructor iConst2 ' esconde a iConst1. FinClase

Introduccin a las clases y los objetos Mtodos de una clase Duracin de los objetos

Volver

Page 110

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Mtodos de una clase


Los mtodos de una clase son simplemente procedimientos pblicos declarados dentro de la clase. Por ejemplo, para crear un mtodo Agregar para una clase denominada Coleccin :
Proc Agregar(Valor:Cadena) ' Cdigo que agrega el item a la coleccin FinProc

Proteccin de los detalles de la implementacin


Los procedimientos de utilidades que una clase utiliza internamente deben declararse como Privado. La restriccin de la accesibilidad de tales mtodos evita que puedan utilizarlos otros programadores, y permite realizar cambios en el futuro sin que se vea afectado el cdigo que utiliza los objetos. Ocultar los detalles de la implementacin de un objeto es otra faceta de la encapsulacin. La encapsulacin permite mejorar el rendimiento de los mtodos o cambiar totalmente la forma de implementar un mtodo, sin necesidad de modificar el cdigo que utiliza el mtodo. Para ms informacin sobre cmo ocultar los detalles de la implementacin, vea Accesibilidad.

Introduccin a las clases y los objetos Campos de una clase Propiedades y procedimientos de propiedad

Volver

Page 111

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Campos de una clase


Los campos de una clase son las variables que han sido declaradas dentro de esa clase. Los campos se declaran con la instruccin ClaseVar y su sintaxis es igual a la de la instruccin Var. En el siguiente ejemplo, a y b son campos.
Clase cPrueba ClaseVar a,b:Entero Proc Accin ' Cdigo que realiza la accin FinProc FinClase

Tambin es posible declarar los campos luego del nombre de la clase. Los campos declarados de esta forma son siempre privados y no se puede cambiar su accesibilidad. (Ver Accesibilidad) En el siguiente ejemplo, a y b son campos, pero esta vez son privados.
Clase cPrueba, a,b:Entero Proc Accin ' Cdigo que realiza la accin FinProc FinClase

Agregar campos y propiedades a una clase

Volver

Page 112

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Propiedades y procedimientos de propiedad


Se pueden utilizar tanto propiedades como campos para almacenar informacin en un objeto. Mientras que los campos son simplemente variables pblicas, las propiedades utilizan procedimientos de propiedad para controlar cmo se establecen y devuelven valores. Los procedimientos de propiedad se ejecutan cuando se establece o recupera el valor de una propiedad. Pauscal tiene dos tipos de procedimientos de propiedad: procedimientos de lectura de propiedad para recuperar el valor de una propiedad, y procedimientos de asignacin de propiedad para asignar un valor a una propiedad. Por ejemplo, una propiedad que almacena el saldo de una cuenta bancaria podra utilizar un procedimiento de lectura de propiedad para notificar el inters y comprobar comisiones por servicios antes de devolver el saldo disponible. El procedimiento de asignacin de propiedad para el saldo disponible podra proporcionar cdigo de validacin para evitar que el saldo se actualice incorrectamente. Es decir, los procedimientos de propiedad permiten a un objeto proteger y validar sus propios datos. En el siguiente fragmento de cdigo se compara cmo los campos y propiedades validan los valores:
Clase cPrueba Pblico: ClaseVar NumCampo:Entero Privado: ClaseVar iNumProp:Entero Proc LecNumProp:Entero Resultado = iNumProp FinProc Proc EscNumProp(Valor:Entero) Si Valor < 10 iNumProp = Valor FinSi FinProc Pblico: Prop NumProp:Entero Lec:LecNumProp Esc:EscNumProp FinProp FinClase ' En este ejemplo se supone que slo los valores ' menores a 10 son vlidos para la propiedad y el campo. Var Obj:cPrueba 'Se crea una nueva instancia de la clase Crear Obj ' Verifica validacin Obj.NumCampo = 36 ' Funciona porque no hay validacin. Mensaje("NumCampo = " + EntCad(Obj.NumCampo)) ' Muestra 36. ' El valor 7 es vlido. Obj.NumProp = 7 ' El valor 36 no es vlido, por lo que la asignacin no se producir.

Page 113

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html Obj.NumProp = 36 ' Muestra el valor 7, ya que el valor 36 no fue almacenado. Mensaje("NumProp = " + EntCad(Obj.NumProp))

Aqu se crea una instancia de la clase y establece y recupera los valores de los campos y propiedades. A efectos de este ejemplo, se considera que slo los valores vlidos son nmeros menores de 10. Puesto que no hay forma de validar los valores asignados a los campos, se puede establecer el valor 36 en el campo. No obstante, la propiedad solamente realiza asignaciones para nmeros menores de 10, de modo que el intento de establecer 36 en el campo no se tiene en cuenta. Tambin es posible hacer que uno o ambos accesos a la propiedad (lectura y asignacin) se realicen a traves de campos en lugar de utilizar procedimientos de propiedad. Esto permite que, por ejemplo, se validen slo los datos de asignacin (por medio de un procedimiento de asignacin de propiedad) pero no los de lectura, o viceversa. Para ello slo especifique en la instruccin Lec o Esc el nombre del campo al que Pauscal deber acceder cuando se produzca la lectura o asignacin de la propiedad, respectivamente. La siguiente clase es similar a la del ejemplo anterior, con la diferencia de que no hay procedimiento de lectura de propiedad.
Clase cPrueba Pblico: ClaseVar NumCampo:Entero Privado: ClaseVar iNumProp:Entero Proc EscNumProp(Valor:Entero) Si Valor < 10 iNumProp = Valor FinSi FinProc Pblico: Prop NumProp:Entero Lec:iNumProp ' Al leer la propiedad, slo se accede al campo iNumProp Esc:EscNumProp ' Al asignar la propiedad, se llama a EscNumProp FinProp FinClase

Aunque las propiedades que utilizan campos en lugar de procedimientos para la lectura y/o escritura de propiedad son ms rpidos (ya que no se realiza ninguna llamada de cdigo), no se tiene mucho control debido a que son similares a los campos pblicos.

Propiedades de slo lectura y slo escritura


La mayora de las propiedades tienen procedimientos de lectura y de asignacin para permitir tanto la lectura como la modificacin del valor que almacenan. No obstante, es posible omitir la instruccin Esc o la instruccin Lec (pero no ambas) para declarar variables de slo lectura o de slo escritura, respectivamente. Las propiedades de slo lectura son tiles para elementos que desea exponer, pero cuya modificacin no desea permitir. Por ejemplo, podra utilizar una propiedad de slo lectura para proporcionar la velocidad del procesador de un equipo. Las propiedades de slo escritura son tiles para datos que desea almacenar, pero no exponer a otros objetos. Por ejemplo, una propiedad de slo

Page 114

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

escritura podra utilizarse para almacenar una contrasea.

Introduccin a las clases y los objetos Mtodos de una clase

Volver

Page 115

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Propiedades frente a mtodos


Las propiedades y los mtodos son similares en que ambos se implementan como procedimientos que aceptan parmetros. En general, las propiedades almacenan datos para un objeto, y los mtodos son acciones cuya realizacin puede pedirse a un objeto. Algunas caractersticas de objeto son claramente propiedades, como Nombre, mientras que otras son evidentemente mtodos, como Mover y Mostrar. En otros casos, no resulta obvio qu miembros de una clase deberan ser propiedades y cules deberan ser mtodos. Por ejemplo, el mtodo Item de una supuesta clase de coleccin almacena y recupera datos y puede implementarse como una propiedad indizada. Por otra parte, tambin resulta razonable implementar Item como un mtodo.

Sintaxis de propiedades frente a sintaxis de mtodos Una forma de decidir cmo implementar un miembro de una clase consiste en considerar cmo se desea utilizar. Aunque la sintaxis para recuperar informacin de una propiedad parametrizada es casi idntica a la utilizada con un mtodo, la sintaxis para modificar tal valor es algo diferente. Por ejemplo, si implementa el miembro de una clase como propiedad, las sintaxis siguiente describe cmo debera utilizarse:
Objeto.Propiedad(ndice) = Valor

Si implementa el miembro de la clase como mtodo, el valor que se modifica debe ser un parmetro. El fragmento de cdigo siguiente describe el uso de sintaxis equivalente:
Objeto.Propiedad(ndice, Valor)

Mensajes de error Otro factor a considerar a la hora de elegir cmo implementar un miembro de una clase es qu tipo de mensajes se generarn cuando la clase se utilice incorrectamente. Si alguien intenta accidentalmente asignar un valor a una propiedad de slo lectura, el mensaje de error devuelto es distinto del que se obtendra en respuesta a una llamada similar a un mtodo. Los miembros de una clase implementados correctamente devuelven mensajes de error que son ms fciles de interpretar.

Introduccin a clases y objetos Mtodos de una clase Propiedades y procedimientos de propiedad

Volver

Page 116

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Agregar campos y propiedades a una clase


Se pueden utilizar tanto campos como propiedades para almacenar informacin en un objeto. Aunque los campos y las propiedades son prcticamente imposibles de distinguir desde una perspectiva exterior de la clase, se declaran de forma diferente en una clase. Mientras que los campos son simplemente variables pblicas que una clase expone, las propiedades utilizan procedimientos para controlar cmo se establecen y devuelven valores. Para agregar un campo a una clase

Un campo se declara mediante la instruccin ClaseVar, como se aprecia en el ejemplo siguiente::


Clase cPrueba ClaseVar Campo:Cadena FinClase

Para agregar una propiedad a una clase 1. Declare una variable local en la clase para almacenar el valor de la propiedad. Este paso es necesario puesto que las propiedades no asignan almacenamiento por s mismas. A fin de proteger sus valores contra la modificacin directa, las variables que se utilizan para almacenar valores de propiedad deben declararse como Privado 2. Defina los procedimientos de lectura y de asignacin de la propiedad dentro de la clase. Los procedimientos de lectura de propiedad se utilizan para devolver el valor de una propiedad. Si este procedimiento requiere parmetros, al acceder a la propiedad habr que pasar los parmetros requeridos.. Los procedimientos de asignacin de propiedad se utilizan para establecer el valor de una propiedad; tienen un parmetro ms al comienzo de la lista de parmetros, generalmente denominado Valor, del mismo tipo de datos que la propiedad. Cada vez que se cambia el valor de la propiedad, se pasa el valor de la propiedad en Valor al procedimiento de asignacin de propiedad, donde se puede validar y almacenar en una variable local. 3. Una vez declarados los procedimientos de lectura y de asignacin de propiedad, declare la propiedad mediante la instruccin Prop. 4. Mediante la instruccin Lec establezca el procedimiento de lectura de propiedad. 5. Mediante la instruccin Esc establezca el procedimiento de asignacin de propiedad. 6. Finalice la declaracin de la propiedad con una instruccin FinProp. En el siguiente ejemplo se declara una propiedad en una clase:
Clase cPrueba Privado: ClaseVar iNombre:Cadena ' variable que almacena la propiedad Proc LecNombre():Cadena ' procedimiento de lectura de propiedad Resultado = iNombre FinProc Proc EscNombre(Valor:Cadena) ' procedimiento de escritura de propiedad lNombre = Valor FinProc Pblico: Prop Nombre:Cadena ' declaramos la propiedad y su tipo de datos Lec:LecNombre ' procedimiento a llamar al leer la propiedad Esc:EscNombre ' procedimiento a llamar al asignar a la propiedad

Page 117

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html FinProp FinClase

Cuando se crea una instancia de cPrueba y se establece el valor de la propiedad Nombre, se llama al procedimiento de asignacin de propiedad EscNombre y se pasa el valor en el parmetro Valor, que se almacena en una variable local denominada iNombre. Cuando se recupera el valor de esta propiedad, se llama al procedimiento de lectura de propiedad LecNombre y devuelve el valor almacenado en la variable local iNombre.

Introduccin a las clases y los objetos Campos de una clase Propiedades y procedimientos de propiedad Mtodos de una clase

Volver

Page 118

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Control estructurado de excepciones


Pauscal admite el control estructurado de excepciones, que facilita la tarea de crear y mantener programas mediante controladores de errores consistentes y exhaustivos. El control estructurado de excepciones es un cdigo diseado para detectar y dar respuesta a los errores que se producen durante la ejecucin, mediante la combinacin de una estructura de control (similar a Seleccionar o Mientras) con excepciones, bloques de cdigo protegidos y controladores. El uso de la instruccin AdmErr permite proteger bloques de cdigo con posibilidades de generar errores. Los controladores de excepciones pueden anidarse, dando la posibilidad de proteccin al cdigo controlador.

Instruccin AdmErr
En el siguiente fragmento de cdigo se muestra la estructura de una instruccin AdmErr:
AdmErr ' Comienza el control estructurado de errores. ' Aqu van las instrucciones con posibilidades ' de generar excepciones. [Controlar [variable] ' Este cdigo se ejecuta cuando el cdigo controlado ' produce una excepcin. variable recibe el valor ' numrico de la excepcin.] [Finalmente [variable] ' Este cdigo se ejecuta inmediatamente antes de salir ' del bloque AdmErr. variable recibe el valor numrico ' de la excepcin, o cero si no hubo una excepcin.] FinAdmErr ' Fin del control estructurado de errores.

Las instrucciones inmediatamente despus de la instruccin AdmErr contiene la seccin del cdigo que el controlador de errores va a supervisar. Si se produce un error durante la ejecucin de cualquier parte del cdigo de esta seccin, Pauscal transferir el control a la primera lnea de cdigo del bloque Controlar, si lo hubiera. El cdigo de la seccin Finalmente siempre se ejecuta en ltimo lugar, inmediatamente antes que el bloque de control de errores pierda su mbito, con independencia de que se ejecute el cdigo del bloque Controlar. Site el cdigo de limpieza (el cdigo que cierra los archivos y libera los objetos, por ejemplo) en la seccin Finalmente. Las instrucciones Controlar y Finalmente pueden indicar una variable de tipo Entero que recibe el valor numrico de la excepcin. Este valor se utiliza para conocer el tipo de excepcin que fue generado. Esta variable es cero si no ocurri una excepcin. El uso de esta variable es opcional. Si se omite, no es posible conocer la excepcin que fue generada, y en el caso de una instruccin Finalmente, tampoco es posible saber si hubo una excepcin o no. Aunque las instrucciones Controlar y Finalmente son opcionales, al menos una de ellas debe aparecen en un bloque AdmErr.

Page 119

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin al control estructurado de excepciones Control estructurado de excepciones Tipos de errores Bloque "AdmErr"

Volver

Page 120

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Tipos de errores
En Pauscal, los errores (tambin llamados excepciones) se dividen en tres categoras: errores sintcticos, errores en tiempo de ejecucin y errores lgicos.

Errores sintcticos
Los errores sintcticos (o en tiempo de diseo) son aquellos que aparecen mientras se escribe el cdigo. Se deben a la escritura incorrecta de una palabra o el uso incorrecto de un elemento del lenguaje. Los errores sintcticos son los errores ms frecuentes, y se detectan en el momento de la compilacin.

Errores en tiempo de ejecucin


Los errores en tiempo de ejecucin son aquellos que aparecen solamente despus de la compilacin y la ejecucin del cdigo. Pueden darse errores de este tipo, por ejemplo, en fragmentos de cdigo aparentemente correctos, por no presentar errores sintcticos, pero que no se ejecutan correctamente. Por ejemplo, podra escribir correctamente una lnea de cdigo que abre un archivo. Pero, si el archivo est daado, la aplicacin no podr ejecutar la instruccin que abre el archivo y se detendr su ejecucin. La mayora de los errores de este tipo pueden corregirse modificando el cdigo que presenta errores, para despus compilarlo y volver a ejecutarlo.

Errores lgicos
Los errores lgicos son aquellos que aparecen cuando la aplicacin est en funcionamiento. Normalmente se manifiestan en forma de resultados inesperados o no deseados en respuesta a las acciones del usuario. Por ejemplo, una clave mal escrita u otra influencia externa podra hacer que la aplicacin dejase de funcionar an siendo correctos los parmetros, o que simplemente no funcionase. Por lo general, los errores lgicos son los ms difciles de corregir, puesto que no siempre est claro dnde se originan.

Introduccin al control estructurado de excepciones Control estructurado de excepciones Bloque "AdmErr"

Volver

Page 121

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Referencia del lenguaje


Esta seccin proporciona una referencia completa para el lenguaje Pauscal y sus elementos de tiempo de ejecucin. Instrucciones Documenta las instrucciones disponibles en Pauscal.

Volver

Page 122

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instrucciones de Pauscal
La siguiente tabla contiene una lista de las instrucciones del lenguaje Pauscal. AdmErr Bloque Borrar Caso Clase ClaseVar Const Constructor Contar Controlar Crear Destructor Destruir Devolver Esc Estruc Eval Fin FinAdmErr Finalmente FinBloque FinClase FinEval FinMientras FinProc FinProp FinSeleccionar FinSi GenerarError HastaQue Importar Interrumpir IrHacia Lec Mientras PorSiempre Proc Prop Prototipo PuertoEnviar Redim Repetir Salir Seguir Seleccionar Si SiNo Unin Var

Volver

Page 123

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

AdmErr (Instruccin)
Esta instruccin proporciona una manera de controlar los errores posibles que pueden ocurrir en un bloque de cdigo determinado mientras se ejecuta el cdigo. AdmErr [ instruccionesControladas ] [ Controlar [ cdigoErrorControlar ] ] [ instruccionesControlador ] ] [ Finalmente [ cdigoErrorFinalmente ] [ instruccionesFinalmente ] ] FinAdmErr instruccionesControladas Opcional. Instrucciones en las que puede ocurrir un error. Puede ser una instruccin compuesta. Controlar Opcional. Marca el comienzo del bloque Controlar, que administra el error. Este bloque es ejecutado slo cuando ocurre un error en instruccionesControladas. cdigoErrorControlar Opcional si se especifica Controlar. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Controlar. Finalmente Opcional. Marca el comienzo del bloque Finalmente. Siempre se ejecuta un bloque Finalmente cuando se termina de ejecutar instruccionesControladas o el bloque Controlar. cdigoErrorFinalmente Opcional si se especifica Finalmente. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Finalmente. instruccionesFinalmente Opcional. Instrucciones que se ejecutan despus de las dems operaciones de procesamiento de error. FinAdmErr Termina el bloque AdmErr...FinAdmErr.

Comentarios El bloque AdmErr contiene cdigo en el que puede producirse un error, mientras que el bloque Controlar contiene el cdigo para controlar cualquier error que pueda tener lugar. Debido a que el bloque Finalmente se ejecuta sin importar si ocurre un error o no, la variable cdigoErrorFinalmente recibe o el cdigo de error que se produjo o el valor 0 en caso de que no hubiera ocurrido un error. Nota Si una instruccin AdmErr no contiene un bloque Controlar, debe tener un bloque Finalmente. De lo contrario este ltimo es opcional. Nota El bloque Finalmente no se ejecutar si se sale del bloque AdmErr mediante una instruccin Salir. Para ms informacin, vea Instruccin "Salir".

Page 124

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin al control estructurado de excepciones Bloque "AdmErr"

Volver

Page 125

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque (Instruccin)
Esta instruccin define un bloque de instrucciones. Se utiliza como una estructura de referencia para finalizar rpidamente la ejecucin del bloque de instrucciones. Bloque [ instrucciones ] [ Salir Bloque ] [ instrucciones ] FinBloque instrucciones Opcional. Instrucciones que componen el bloque de instrucciones.

Comentarios La estructura Bloque se utiliza para definir un bloque de instrucciones que se deben ejecutar como una unidad. Mediante la instruccin Salir Bloque es posible romper esta unidad y finalizar el bloque de instrucciones. En muchos casos esto sera ms difcil de realizar si no se utilizara la estructura Bloque.

Estructura "Bloque" Instruccin "Salir"

Volver

Page 126

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Borrar (Instruccin)
Se utiliza para liberar una variable de matriz y desasignar la memoria utilizada para sus elementos. Borrar matriz matriz Requerido. Variable de matriz a liberar.

Comentarios Si matriz es una matriz dinmica, luego de ser liberada no tendr elementos. Si matriz es una matriz esttica, los elementos son inicializados a sus valores predeterminados, es decir 0 en caso de ser un tipo de datos numrico, Falso si es Booleano, "" si es Cadena, o un objeto sin crear en caso de ser una clase. Si es una estructura, sus miembros se inicializan como se menciona anteriormente. Si matriz es una matriz dinmica, la instruccin Borrar produce el mismo resultado que si se redimensiona la matriz a cero elementos.

Redim (Instruccin) Matrices

Volver

Page 127

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Seleccionar (Instruccin)
Ejecuta uno de varios grupos de instrucciones, segn el valor de una expresin. Seleccionar expresin [ Caso listaExpresiones [ instrucciones ] ] [ Caso Otro [ otrasInstrucciones ] ] FinSeleccionar expresin Requerido. Expresin. Debe evaluarse en uno de los tipos de datos elementales. listaExpresiones Requerido en una instruccin Caso. Lista de clusulas de expresiones que representan valores que coinciden para expresin. Las clusulas de varias expresiones se separan mediante comas. Las expresiones en listaExpresiones pueden ser de cualquier tipo de datos compatible con el de expresin. instrucciones Opcional. Una o ms instrucciones despus de Caso que se ejecutan si expresin coincide con cualquier clusula en listaExpresiones. otrasInstrucciones Opcional. Una o ms instrucciones a continuacin de Caso Otro que se ejecutan si expresin no coincide con ninguna clusula de listaExpresiones. FinSeleccionar Termina un bloque Seleccionar.

Comentarios Si expresin coincide con cualquier clusula Caso listaExpresiones, se ejecutan las instrucciones que siguen a la instruccin Caso hasta la siguiente instruccin Caso o FinSeleccionar. El control pasa despus a la instruccin que sigue a FinSeleccionar. Si expresin coincide con una clusula de listaExpresiones en ms de una clusula Caso, slo se ejecutan las instrucciones que siguen a la primera coincidencia. La instruccin Caso Otro se utiliza para introducir las instrucciones otrasInstrucciones que se ejecutarn si no se encuentra ninguna coincidencia entre expresin y una clusula de listaExpresiones en cualquiera de las dems instrucciones Caso. Aunque no es necesario, es recomendable tener una instruccin Caso Otro en el bloque Seleccionar para controlar los valores de expresin imprevistos. Si ninguna clusula Caso listaExpresiones coincide con expresin y no existe ninguna instruccin Caso Otro, la ejecucin contina en la instruccin que sigue a FinSeleccionar. Las instrucciones Seleccionar pueden anidarse. Cada instruccin Seleccionar anidada debe tener una instruccin FinSeleccionar coincidente. Si no necesita ejecutar ms instrucciones de un bloque Caso o Caso Otro, puede salir del bloque mediante una instruccin Salir Seleccionar. Esto transfiere inmediatamente el control a la instruccin que sigue a FinSeleccionar.

Page 128

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Seleccionar" Instruccin "Salir"

Volver

Page 129

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Clase (Instruccin)
Declara el nombre de una clase, as como una definicin de las variables, propiedades y mtodos que la componen. Clase nombre [ ( base) ] [ , campos ] [ instrucciones ] [ Constructor: mtodoConstructor ] [ instrucciones ] [ Destructor: mtodoDestructor ] [ instrucciones ] FinClase nombre Requerido. Nombre de la clase. Sigue las convenciones de nomenclatura estndar de las variables. base Opcional. Nombre de la clase base de la cual se heredan los miembros. Si se omite, la clase no posee una clase base. campos Opcional. Lista de los campos de la clase. instrucciones Opcional. Instrucciones que componen las variables, propiedades y mtodos de la clase. mtodoConstructor Requerido si se especifica Constructor. Define el mtodo constructor de la clase. mtodoDestructor Requerido si se especifica Destructor. Define el mtodo destructor de la clase. FinClase Termina la declaracin de la clase.

Cada campo de campos tiene la siguiente sintaxis y partes: [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que el campo es un puntero. nombre Requerido. Nombre del campo. Debe ser un identificador vlido. [] Opcional. Indica que el campo es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos del campo.

Page 130

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Comentarios La posibilidad de declarar los campos de una clase en la instruccin Clase slo se mantiene por compatibilidad con versiones anteriores. Se recomienda utilizar la instruccin ClaseVar para declarar los campos de una clase. Los campos declarados en la instruccin Clase son privados. Para ms informacin, vea Accesibilidad. La clusula Constructor define el mtodo que es llamado cuando se crea una nueva instancia de la clase, mientras que la clusula Destructor define el mtodo que es llamado cuando se destruye una instancia de la clase. Para ms informacin, vea Constructores y destructores. Una clase debe poseer al menos un miembro. De lo contrario el compilador genera un error.

Introduccin a las clases y los objetos Constructores y destructores

Volver

Page 131

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

ClaseVar (Instruccin)
Es utilizada para declarar y asignar espacio de almacenamiento para campos (variables de clase). ClaseVar [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que el campo es un puntero. nombre Requerido. Nombre del campo. Debe ser un identificador vlido. [] Opcional. Indica que el campo es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos del campo.

Comentarios Un campo es una variable de una clase. Cada instancia de la clase posee una copia independiente del campo. La instruccin ClaseVar declara slamente campos. Para declarar variables globales y locales, utilice la instruccin Var. La instruccin ClaseVar slo es vlida a nivel de clase. No se puede declarar un campo como matriz y puntero a la vez. Es posible declarar varios campos con una sola instruccin ClaseVar, separando los campos con comas. En el siguiente ejemplo se declaran tres campos de tipo Entero:
ClaseVar A,B,C:Entero

Tambin es posible mezclar tipos de datos en una misma instruccin ClaseVar. En el siguiente ejemplo se declaran dos campos de tipo Entero y uno de tipo Cadena:
ClaseVar A,B:Entero, C:Cadena

Introduccin a las variables Introduccin a las clases y los objetos Matrices Var (Instruccin)

Volver

Page 132

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Const (Instruccin)
Se utiliza para declarar constantes para utilizar en lugar de valores literales. Const nombre = valor nombre Requerido. Nombre de la constante. Debe ser un identificador vlido. valor Requerido. Expresin que se asigna a la constante cuando se crea.

Comentarios Puede utilizar una constante en cualquier lugar en que pueda utilizar una expresin.

Introduccin a las variables

Volver

Page 133

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Clase (Instruccin)
Declara el nombre de una clase, as como una definicin de las variables, propiedades y mtodos que la componen. Clase nombre [ ( base) ] [ , campos ] [ instrucciones ] [ Constructor: mtodoConstructor ] [ instrucciones ] [ Destructor: mtodoDestructor ] [ instrucciones ] FinClase nombre Requerido. Nombre de la clase. Sigue las convenciones de nomenclatura estndar de las variables. base Opcional. Nombre de la clase base de la cual se heredan los miembros. Si se omite, la clase no posee una clase base. campos Opcional. Lista de los campos de la clase. instrucciones Opcional. Instrucciones que componen las variables, propiedades y mtodos de la clase. mtodoConstructor Requerido si se especifica Constructor. Define el mtodo constructor de la clase. mtodoDestructor Requerido si se especifica Destructor. Define el mtodo destructor de la clase. FinClase Termina la declaracin de la clase.

Cada campo de campos tiene la siguiente sintaxis y partes: [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que el campo es un puntero. nombre Requerido. Nombre del campo. Debe ser un identificador vlido. [] Opcional. Indica que el campo es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos del campo.

Page 134

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Comentarios La posibilidad de declarar los campos de una clase en la instruccin Clase slo se mantiene por compatibilidad con versiones anteriores. Se recomienda utilizar la instruccin ClaseVar para declarar los campos de una clase. Los campos declarados en la instruccin Clase son privados. Para ms informacin, vea Accesibilidad. La clusula Constructor define el mtodo que es llamado cuando se crea una nueva instancia de la clase, mientras que la clusula Destructor define el mtodo que es llamado cuando se destruye una instancia de la clase. Para ms informacin, vea Constructores y destructores. Una clase debe poseer al menos un miembro. De lo contrario el compilador genera un error.

Introduccin a las clases y los objetos Constructores y destructores

Volver

Page 135

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Contar (Instruccin)
Repite un grupo de instrucciones un nmero de veces especificado. Contar contador = inicio A final [ Dec ] [ instrucciones ] [ Salir Contar ] [ instrucciones ] Seguir contador Requerido. Variable. El tipo de contador suele ser Entero o EnteroSig, pero puede ser cualquier tipo numrico entero elemental que admita los operadores mayor que (>), menor que (<) y suma (+). inicio Requerido. Expresin. El valor inicial de contador. La expresin inicio debe evaluarse como cualquier tipo de datos compatible con el tipo de contador. final Requerido. Expresin. El valor final de contador. La expresin final debe evaluarse como cualquier tipo de datos compatible con el tipo de contador. Dec Opcional. Si se omite, indica que la variable de contador se incrementa por cada iteracin. Si se especifica, indica que la variable se decrementa por cada iteracin. instrucciones Opcional. Una o ms instrucciones que se ejecutan un nmero especificado de veces.

Comentarios Las expresiones inicio y final slo se evalan una vez, cuando se encuentra por primera vez la instruccin Contar. No se volvern a evaluar, aunque cambien las partes que componen las instrucciones del bucle. La variable contador se compara con final cada vez que se entra en el bucle. Esto incluye la primera vez que se ejecuta la instruccin Contar. Por consiguiente, si el valor de inicio supera el valor de final al entrar en el bucle, ste no se ejecuta, y la ejecucin pasa inmediatamente a la instruccin que sigue a Seguir. Una vez que se han ejecutado las instrucciones del bucle, se incrementa o decrementa contador (dependiendo si se omite o no la palabra clave Dec). En este momento, la instruccin Contar compara de nuevo contador con final. Como resultado de esta comparacin, bien se ejecutan otra vez las instrucciones del bucle o se termina el bucle y la ejecucin contina con la instruccin que sigue a Seguir . Nota Cambiar el valor de contador mientras se est dentro de un bucle puede dificultar la lectura y la depuracin del cdigo. La instruccin Salir Contar transfiere el control inmediatamente a la instruccin que sigue a la instruccin Seguir. Se puede incluir cualquier nmero de instrucciones Salir Contar en cualquier lugar del bucle Contar. Salir Contar suele utilizarse despus de evaluar alguna condicin, por ejemplo con

Page 136

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

una instruccin Si. Se pueden anidar bucles Contar, colocando un bucle dentro de otro. Cada bucle debe tener una variable contador nica. La siguiente construccin es correcta:
Contar I = 1 A 10 Contar J = 1 A 10 Contar K = 1 A 10 ' Instrucciones Seguir Seguir Seguir

Es recomendable que el tipo de datos de contador sea EnteroSig u otro tipo de datos con signo. Esto permite que se eliminen errores provocados por valores negativos con tipos sin signo.

Introduccin a las estructuras de control Bucle "Contar" Instruccin "Salir"

Volver

Page 137

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

AdmErr (Instruccin)
Esta instruccin proporciona una manera de controlar los errores posibles que pueden ocurrir en un bloque de cdigo determinado mientras se ejecuta el cdigo. AdmErr [ instruccionesControladas ] [ Controlar [ cdigoErrorControlar ] ] [ instruccionesControlador ] ] [ Finalmente [ cdigoErrorFinalmente ] [ instruccionesFinalmente ] ] FinAdmErr instruccionesControladas Opcional. Instrucciones en las que puede ocurrir un error. Puede ser una instruccin compuesta. Controlar Opcional. Marca el comienzo del bloque Controlar, que administra el error. Este bloque es ejecutado slo cuando ocurre un error en instruccionesControladas. cdigoErrorControlar Opcional si se especifica Controlar. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Controlar. Finalmente Opcional. Marca el comienzo del bloque Finalmente. Siempre se ejecuta un bloque Finalmente cuando se termina de ejecutar instruccionesControladas o el bloque Controlar. cdigoErrorFinalmente Opcional si se especifica Finalmente. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Finalmente. instruccionesFinalmente Opcional. Instrucciones que se ejecutan despus de las dems operaciones de procesamiento de error. FinAdmErr Termina el bloque AdmErr...FinAdmErr.

Comentarios El bloque AdmErr contiene cdigo en el que puede producirse un error, mientras que el bloque Controlar contiene el cdigo para controlar cualquier error que pueda tener lugar. Debido a que el bloque Finalmente se ejecuta sin importar si ocurre un error o no, la variable cdigoErrorFinalmente recibe o el cdigo de error que se produjo o el valor 0 en caso de que no hubiera ocurrido un error. Nota Si una instruccin AdmErr no contiene un bloque Controlar, debe tener un bloque Finalmente. De lo contrario este ltimo es opcional. Nota El bloque Finalmente no se ejecutar si se sale del bloque AdmErr mediante una instruccin Salir. Para ms informacin, vea Instruccin "Salir".

Page 138

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin al control estructurado de excepciones Bloque "AdmErr"

Volver

Page 139

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Crear (Instruccin)
Esta instruccin asigna una nueva instancia a la variable de objeto especificado. Crear objeto [ ( [ parmetros ] ) ] objeto Requerido. Variable de objeto. parmetros Requerido si el constructor de la clase requiere parmetros. Parmetros que se pasan al constructor del objeto.

Comentarios La instruccin Crear asigna a objeto una nueva instancia de su clase. Antes de producirse la asignacin, objeto es liberado. En caso de que el constructor de la clase de objeto requiera parmetros, stos deben ser pasados al crear el objeto. Se pueden especificar ms de una variable de objeto en una instruccin Crear, separando cada variable mediante comas. No es necesario que todas las variables sean de la misma clase.

Introduccin a las clases y los objetos

Volver

Page 140

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Clase (Instruccin)
Declara el nombre de una clase, as como una definicin de las variables, propiedades y mtodos que la componen. Clase nombre [ ( base) ] [ , campos ] [ instrucciones ] [ Constructor: mtodoConstructor ] [ instrucciones ] [ Destructor: mtodoDestructor ] [ instrucciones ] FinClase nombre Requerido. Nombre de la clase. Sigue las convenciones de nomenclatura estndar de las variables. base Opcional. Nombre de la clase base de la cual se heredan los miembros. Si se omite, la clase no posee una clase base. campos Opcional. Lista de los campos de la clase. instrucciones Opcional. Instrucciones que componen las variables, propiedades y mtodos de la clase. mtodoConstructor Requerido si se especifica Constructor. Define el mtodo constructor de la clase. mtodoDestructor Requerido si se especifica Destructor. Define el mtodo destructor de la clase. FinClase Termina la declaracin de la clase.

Cada campo de campos tiene la siguiente sintaxis y partes: [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que el campo es un puntero. nombre Requerido. Nombre del campo. Debe ser un identificador vlido. [] Opcional. Indica que el campo es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos del campo.

Page 141

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Comentarios La posibilidad de declarar los campos de una clase en la instruccin Clase slo se mantiene por compatibilidad con versiones anteriores. Se recomienda utilizar la instruccin ClaseVar para declarar los campos de una clase. Los campos declarados en la instruccin Clase son privados. Para ms informacin, vea Accesibilidad. La clusula Constructor define el mtodo que es llamado cuando se crea una nueva instancia de la clase, mientras que la clusula Destructor define el mtodo que es llamado cuando se destruye una instancia de la clase. Para ms informacin, vea Constructores y destructores. Una clase debe poseer al menos un miembro. De lo contrario el compilador genera un error.

Introduccin a las clases y los objetos Constructores y destructores

Volver

Page 142

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Destruir (Instruccin)
Esta instruccin libera a la variable de objeto especificada y eventualmente destruye el objeto. Destruir objeto objeto Requerido. Variable de objeto.

Comentarios La instruccin Destruir decrementa la cuenta de referencias del objeto al que apunta objeto. En caso de llegar a cero, el objeto se destruye. En cualquier caso, objeto queda liberado. Nota No confundir "liberar" con "destruir". El trmino "liberar" hace referencia a la variable de objeto; en cambio "destruir" hace referencia al objeto en s. Se pueden especificar ms de una variable de objeto en una instruccin Destruir, separando cada variable mediante comas. No es necesario que todas las variables sean de la misma clase.

Introduccin a las clases y los objetos

Volver

Page 143

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Devolver (Instruccin)
Devuelve el control al cdigo que llam a un procedimiento. Devolver valor valor Requerido. Expresin que representa el valor que se devolver al cdigo de llamada.

Comentarios Esta instruccin slo es vlida dentro de un procedimiento que devuelve un valor cuyo tipo de datos es elemental.

Introduccin a los procedimientos

Volver

Page 144

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prop (Instruccin)
Se utiliza a nivel de clase para declarar una propiedad. Prop nombre : tipo [ Lec : objetoLectura ] [ Esc : objetoEscritura ] FinProp nombre Requerido. Nombre nico que identifica la propiedad. tipo Requerido. Tipo de datos de la propiedad. objetoLectura Requerido si se especifica Lec. Campo o mtodo de clase que se invoca al leer la propiedad. objetoEscritura Requerido si se especifica Esc. Campo o mtodo de clase que se invoca al asignar a la propiedad.

Comentarios La clusula Lec puede especificar un campo o un mtodo. Si especifica un campo, al leer la propiedad se devolver el valor de ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al leer la propiedad se llamar a ese mtodo. El mtodo debe devolver el mismo tipo de datos que la propiedad. Si el mtodo requiere parmetros, al leer la propiedad se debern pasar estos parmetros. La clusula Esc, al igual que Lec, tambin puede especificar un campo o un mtodo. Si especifica un campo, al asignar a la propiedad se almacenar el valor en ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al asignar a la propiedad se llamar a ese mtodo. El primer parmetro del mtodo debe ser del mismo tipo de datos que la propiedad. Si el mtodo requiere ms parmetros, al asignar a la propiedad se debern pasar estos parmetros extra. Si se omite la clusula Esc, la propiedad es de slo lectura. Si se omite la clusula Lec, la propiedad es de slo escritura. Si bien las clusulas Esc y Lec son ambas opcionales, al menos una de ellas se debe especificar en una propiedad.

Introduccin a las clases y los objetos Propiedades y procedimientos de propiedad Clase (Instruccin)

Volver

Page 145

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Estruc (Instruccin)
Se utiliza para declarar una estructura y definir sus miembros. Estruc nombre , miembros nombre Requerido. Nombre de la estructura. Debe ser un identificador vlido. miembros Requerido. Miembros de la estructura separados por comas.

Cada miembro de miembros tiene la siguiente sintaxis y partes: [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que el miembro es un puntero. nombre Requerido. Nombre del miembro. Debe ser un identificador vlido. [] Opcional. Indica que el miembro es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos del miembro.

Comentarios En una estructura debe declararse por lo menos un miembro. No se podr inicializar el valor de los miembro de datos de una estructura como parte de su declaracin. Se debe inicializar un miembro de datos despus de crear una instancia de la estructura. El tipo de datos de un miembro de la estructura puede ser la misma estructura slo si el miembro es un puntero o una matriz dinmica. En cualquier otro caso ocurre un error al compilar. A diferencia de una unin, a todos los miembros de una estructura se les asigna una porcin de memoria independiente. Esto quiere decir que cada miembro puede almacenar informacin sin interferir con los otros miembros.

Introduccin a las estructuras Unin (Instruccin)

Volver

Page 146

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Eval (Instruccin)
Ejecuta una serie de instrucciones que hacen referencia repetidas veces a un nico objeto o estructura. Eval objeto [ instrucciones ] [ Salir Eval ] [ instrucciones ] FinEval objeto Requerido. Referencia a una variable de objeto o una estructura. instrucciones Opcional. Una o ms instrucciones que siguen a Eval que se ejecutan sobre objeto. FinEval Termina la ejecucin de la estructura Eval.

Comentarios La estructura Eval permite realizar una serie de instrucciones sobre un objeto especificado sin volver a calificar el nombre del objeto. Por ejemplo, para cambiar un nmero de propiedades diferentes en un nico objeto, coloque las instrucciones de asignacin de las propiedades dentro de Eval...FinEval, haciendo referencia al objeto una vez, en lugar de utilizar cada asignacin de propiedades para hacerlo. En el siguiente ejemplo se ilustra el uso de la estructura Eval para asignar valores a varias propiedades del mismo objeto:
Eval MiEtiqueta .Visible = Verd .Texto = "Hola mundo" FinEval

Una vez que se ha especificado una instruccin Eval, no se puede reasignar objeto hasta que se pase FinEval. Por consiguiente, se puede tener acceso a los miembros de slo el objeto especificado sin calificarlos. Se pueden acceder a miembros de otros objetos y estructuras, pero es necesario calificarlos con sus respectivos nombres. Se pueden anidar estructuras Eval colocando una dentro de otra. Sin embargo, como los miembros de las estructuras externas estn enmascaradas dentro de las estructuras internas, debe proporcionar una referencia de objeto completa en una estructura Eval interna a cualquier miembro de un objeto de una estructura externa. La instruccin Salir Eval transfiere el control inmediatamente a la instruccin que sigue a la instruccin FinEval. Se puede incluir cualquier nmero de instrucciones Salir Eval en cualquier lugar de la estructura Eval. Salir Eval suele utilizarse despus de evaluar alguna condicin, por ejemplo con una instruccin Si.

Introduccin a las estructuras de control Introduccin a las clases y los objetos Estructura "Eval" Instruccin "Salir"

Page 147

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Volver

Page 148

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Fin (Instruccin)
Finaliza la ejecucin inmediatamente. Fin

Comentarios La instruccin Fin se puede colocar en cualquier lugar para finalizar la ejecucin de cdigo, destruir objetos y borrar variables. Cuando se ejecuta la instruccin Fin, se destruyen las variables de objeto locales, globales y de clase. El orden de destruccin es indefinido. La instruccin Fin proporciona una manera de forzar la detencin de un programa. Para la finalizacin de un programa de Visual Pauscal, debe llamar al mtodo Terminar del objeto Programa.

Volver

Page 149

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

AdmErr (Instruccin)
Esta instruccin proporciona una manera de controlar los errores posibles que pueden ocurrir en un bloque de cdigo determinado mientras se ejecuta el cdigo. AdmErr [ instruccionesControladas ] [ Controlar [ cdigoErrorControlar ] ] [ instruccionesControlador ] ] [ Finalmente [ cdigoErrorFinalmente ] [ instruccionesFinalmente ] ] FinAdmErr instruccionesControladas Opcional. Instrucciones en las que puede ocurrir un error. Puede ser una instruccin compuesta. Controlar Opcional. Marca el comienzo del bloque Controlar, que administra el error. Este bloque es ejecutado slo cuando ocurre un error en instruccionesControladas. cdigoErrorControlar Opcional si se especifica Controlar. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Controlar. Finalmente Opcional. Marca el comienzo del bloque Finalmente. Siempre se ejecuta un bloque Finalmente cuando se termina de ejecutar instruccionesControladas o el bloque Controlar. cdigoErrorFinalmente Opcional si se especifica Finalmente. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Finalmente. instruccionesFinalmente Opcional. Instrucciones que se ejecutan despus de las dems operaciones de procesamiento de error. FinAdmErr Termina el bloque AdmErr...FinAdmErr.

Comentarios El bloque AdmErr contiene cdigo en el que puede producirse un error, mientras que el bloque Controlar contiene el cdigo para controlar cualquier error que pueda tener lugar. Debido a que el bloque Finalmente se ejecuta sin importar si ocurre un error o no, la variable cdigoErrorFinalmente recibe o el cdigo de error que se produjo o el valor 0 en caso de que no hubiera ocurrido un error. Nota Si una instruccin AdmErr no contiene un bloque Controlar, debe tener un bloque Finalmente. De lo contrario este ltimo es opcional. Nota El bloque Finalmente no se ejecutar si se sale del bloque AdmErr mediante una instruccin Salir. Para ms informacin, vea Instruccin "Salir".

Page 150

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin al control estructurado de excepciones Bloque "AdmErr"

Volver

Page 151

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

AdmErr (Instruccin)
Esta instruccin proporciona una manera de controlar los errores posibles que pueden ocurrir en un bloque de cdigo determinado mientras se ejecuta el cdigo. AdmErr [ instruccionesControladas ] [ Controlar [ cdigoErrorControlar ] ] [ instruccionesControlador ] ] [ Finalmente [ cdigoErrorFinalmente ] [ instruccionesFinalmente ] ] FinAdmErr instruccionesControladas Opcional. Instrucciones en las que puede ocurrir un error. Puede ser una instruccin compuesta. Controlar Opcional. Marca el comienzo del bloque Controlar, que administra el error. Este bloque es ejecutado slo cuando ocurre un error en instruccionesControladas. cdigoErrorControlar Opcional si se especifica Controlar. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Controlar. Finalmente Opcional. Marca el comienzo del bloque Finalmente. Siempre se ejecuta un bloque Finalmente cuando se termina de ejecutar instruccionesControladas o el bloque Controlar. cdigoErrorFinalmente Opcional si se especifica Finalmente. Variable de tipo Entero que recibe el cdigo de error al ejecutarse el bloque Finalmente. instruccionesFinalmente Opcional. Instrucciones que se ejecutan despus de las dems operaciones de procesamiento de error. FinAdmErr Termina el bloque AdmErr...FinAdmErr.

Comentarios El bloque AdmErr contiene cdigo en el que puede producirse un error, mientras que el bloque Controlar contiene el cdigo para controlar cualquier error que pueda tener lugar. Debido a que el bloque Finalmente se ejecuta sin importar si ocurre un error o no, la variable cdigoErrorFinalmente recibe o el cdigo de error que se produjo o el valor 0 en caso de que no hubiera ocurrido un error. Nota Si una instruccin AdmErr no contiene un bloque Controlar, debe tener un bloque Finalmente. De lo contrario este ltimo es opcional. Nota El bloque Finalmente no se ejecutar si se sale del bloque AdmErr mediante una instruccin Salir. Para ms informacin, vea Instruccin "Salir".

Page 152

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin al control estructurado de excepciones Bloque "AdmErr"

Volver

Page 153

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque (Instruccin)
Esta instruccin define un bloque de instrucciones. Se utiliza como una estructura de referencia para finalizar rpidamente la ejecucin del bloque de instrucciones. Bloque [ instrucciones ] [ Salir Bloque ] [ instrucciones ] FinBloque instrucciones Opcional. Instrucciones que componen el bloque de instrucciones.

Comentarios La estructura Bloque se utiliza para definir un bloque de instrucciones que se deben ejecutar como una unidad. Mediante la instruccin Salir Bloque es posible romper esta unidad y finalizar el bloque de instrucciones. En muchos casos esto sera ms difcil de realizar si no se utilizara la estructura Bloque.

Estructura "Bloque" Instruccin "Salir"

Volver

Page 154

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Clase (Instruccin)
Declara el nombre de una clase, as como una definicin de las variables, propiedades y mtodos que la componen. Clase nombre [ ( base) ] [ , campos ] [ instrucciones ] [ Constructor: mtodoConstructor ] [ instrucciones ] [ Destructor: mtodoDestructor ] [ instrucciones ] FinClase nombre Requerido. Nombre de la clase. Sigue las convenciones de nomenclatura estndar de las variables. base Opcional. Nombre de la clase base de la cual se heredan los miembros. Si se omite, la clase no posee una clase base. campos Opcional. Lista de los campos de la clase. instrucciones Opcional. Instrucciones que componen las variables, propiedades y mtodos de la clase. mtodoConstructor Requerido si se especifica Constructor. Define el mtodo constructor de la clase. mtodoDestructor Requerido si se especifica Destructor. Define el mtodo destructor de la clase. FinClase Termina la declaracin de la clase.

Cada campo de campos tiene la siguiente sintaxis y partes: [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que el campo es un puntero. nombre Requerido. Nombre del campo. Debe ser un identificador vlido. [] Opcional. Indica que el campo es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos del campo.

Page 155

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Comentarios La posibilidad de declarar los campos de una clase en la instruccin Clase slo se mantiene por compatibilidad con versiones anteriores. Se recomienda utilizar la instruccin ClaseVar para declarar los campos de una clase. Los campos declarados en la instruccin Clase son privados. Para ms informacin, vea Accesibilidad. La clusula Constructor define el mtodo que es llamado cuando se crea una nueva instancia de la clase, mientras que la clusula Destructor define el mtodo que es llamado cuando se destruye una instancia de la clase. Para ms informacin, vea Constructores y destructores. Una clase debe poseer al menos un miembro. De lo contrario el compilador genera un error.

Introduccin a las clases y los objetos Constructores y destructores

Volver

Page 156

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Eval (Instruccin)
Ejecuta una serie de instrucciones que hacen referencia repetidas veces a un nico objeto o estructura. Eval objeto [ instrucciones ] [ Salir Eval ] [ instrucciones ] FinEval objeto Requerido. Referencia a una variable de objeto o una estructura. instrucciones Opcional. Una o ms instrucciones que siguen a Eval que se ejecutan sobre objeto. FinEval Termina la ejecucin de la estructura Eval.

Comentarios La estructura Eval permite realizar una serie de instrucciones sobre un objeto especificado sin volver a calificar el nombre del objeto. Por ejemplo, para cambiar un nmero de propiedades diferentes en un nico objeto, coloque las instrucciones de asignacin de las propiedades dentro de Eval...FinEval, haciendo referencia al objeto una vez, en lugar de utilizar cada asignacin de propiedades para hacerlo. En el siguiente ejemplo se ilustra el uso de la estructura Eval para asignar valores a varias propiedades del mismo objeto:
Eval MiEtiqueta .Visible = Verd .Texto = "Hola mundo" FinEval

Una vez que se ha especificado una instruccin Eval, no se puede reasignar objeto hasta que se pase FinEval. Por consiguiente, se puede tener acceso a los miembros de slo el objeto especificado sin calificarlos. Se pueden acceder a miembros de otros objetos y estructuras, pero es necesario calificarlos con sus respectivos nombres. Se pueden anidar estructuras Eval colocando una dentro de otra. Sin embargo, como los miembros de las estructuras externas estn enmascaradas dentro de las estructuras internas, debe proporcionar una referencia de objeto completa en una estructura Eval interna a cualquier miembro de un objeto de una estructura externa. La instruccin Salir Eval transfiere el control inmediatamente a la instruccin que sigue a la instruccin FinEval. Se puede incluir cualquier nmero de instrucciones Salir Eval en cualquier lugar de la estructura Eval. Salir Eval suele utilizarse despus de evaluar alguna condicin, por ejemplo con una instruccin Si.

Introduccin a las estructuras de control Introduccin a las clases y los objetos Estructura "Eval" Instruccin "Salir"

Page 157

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Volver

Page 158

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Mientras (Instruccin)
Ejecuta una serie de instrucciones siempre que una condicin dada sea Verd. Mientras condicin [ instrucciones ] [ Salir Mientras ] [ instrucciones ] FinMientras condicin Requerido. Expresin. Debe evaluarse como Verd o Falso. instrucciones Opcional. Instrucciones a ejecutarse si condicin es Verd. FinMientras Termina la ejecucin del bloque Mientras.

Comentarios Si condicin es Verd, se ejecutan todas las instrucciones hasta que se encuentre la instruccin FinMientras. Despus, el control vuelve a la instruccin Mientras y se comprueba de nuevo condicin. Si condicin an es Verd, se repite el proceso. Si es Falso, la ejecucin se reanuda con la instruccin que sigue a la instruccin FinMientras. La instruccin Salir Mientras transfiere el control inmediatamente a la instruccin que sigue a la instruccin FinMientras. Se puede incluir cualquier nmero de instrucciones Salir Mientras en cualquier lugar del bucle Mientras. Salir Mientras suele utilizarse despus de evaluar alguna condicin, por ejemplo con una instruccin Si. Se pueden anidar bucles Mientras si se coloca un bucle dentro de otro.

Introduccin a las estructuras de control Bucle "Mientras" Instruccin "Salir"

Volver

Page 159

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Proc (Instruccin)
Declara el nombre, los parmetros y el cdigo que definen un procedimiento. Sintaxis 1: Proc [ clase . ] nombre [ ( parmetros ) ] [ : tipo [ [] ] ] [{ Exportar | Inicio }] [ instrucciones ] [ Salir ] [ instrucciones ] FinProc Sintaxis 2: Proc nombre [ ( parmetros ) ] [ : tipo [ [] ] ] , biblioteca [ export ] Sintaxis 3: Proc nombre [ ( parmetros ) ] [ : tipo [ [] ] ] Adelantado clase Opcional en la sintaxis 1. Nombre de clase. Slo es vlido en caso de que el procedimiento sea un mtodo adelantado definido fuera de la clase. nombre Requerido. Nombre del procedimiento. Debe ser un identificador vlido. parmetros Opcional. Lista de variables que representan los parmetros que se pasan al procedimiento cuando se le llama. Los parmetros mltiples se separan por comas. tipo Opcional. Tipos de datos del valor devuelto por el procedimiento. En caso de omitirse, el procedimiento no devuelve ningn valor. [] Opcional si se suministra tipo. Indica que el procedimiento devuelve una matriz de tipo. Exportar Opcional en la sintaxis 1. Indica que el procedimiento se exporta. Al exportar un procedimiento, ste puede ser llamado desde otro programa. Es til slo en bibliotecas DLL. Inicio Opcional en la sintaxis 1. Indica que el procedimiento es un procedimiento de inicio. Ver la seccin comentarios. instrucciones Opcional en la sintaxis 1. Un bloque de instrucciones que se ejecutan dentro del procedimiento. FinProc Requerido en la sintaxis 1. Termina la definicin del procedimiento. biblioteca Requerido en la sintaxis 2. Nombre de la biblioteca DLL desde donde se importa este procedimiento. export Opcional en la sintaxis 2. Nombre real del procedimiento que es importado. Adelantado

Page 160

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Requerido en la sintaxis 3. Indica que el cdigo del procedimiento ser definido ms adelante.

Cada parmetro de parmetros tiene la siguiente sintaxis y partes: [ Opcional ] [ Referencia ] nombre [ [] ] : tipo [ = valor ] Opcional Opcional. Indica que este parmetro no es necesario cuando se llama al procedimiento. Si se utiliza esta palabra clave, todos los parmetros siguientes deben ser opcionales y declararse mediante la palabra clave Opcional. La declaracin opcional de parmetros puede proporcionar la clusula valor. Referencia Opcional. Indica que el parmetro se pasa por referencia, es decir que el procedimiento puede modificar la variable subyacente en el cdigo de llamada de la misma forma que puede hacerlo el propio cdigo de llamada. Si se omite, el parmetro se pasa por valor. nombre Requerido. Nombre de la variable que representa el parmetro. Debe ser un identificador vlido. [] Opcional. Indica que el parmetro es una matriz. tipo Requerido. Tipos de datos del parmetro pasado al procedimiento. valor Opcional para parmetros declarados con Opcional. Cualquier constante o expresin constante que se evala como el tipo de datos del parmetro.

Comentarios La sintaxis 1 declara un procedimiento o mtodo normal. La sintaxis 2 declara un procedimiento externo que est ubicado en una biblioteca DLL. La sintaxis 3 declara un mtodo adelantado. Solamente la sintaxis 1 puede definir cdigo en el procedimiento. Un procedimiento adelantado slo puede declararse dentro de una clase. Se declara especificando la palabra clave Adelantado, e indica que el cdigo del procedimiento se define ms adelante en el cdigo, posiblemente fuera de la clase. Cuando el procedimiento vuelva al cdigo que realiza la llamada, la ejecucin contina con la instruccin que sigue a la instruccin que lo llam. La instruccin Salir provoca una salida inmediata de un procedimiento. Puede aparecer cualquier nmero de instrucciones Salir en cualquier lugar de un procedimiento. Para devolver un valor, se puede asignar el valor a la variable especial Resultado o incluirlo en una instruccin Devolver. Este ltimo caso slo es vlido cuando el tipo de datos que devuelve el procedimiento es un tipo de datos elemental. Si se utiliza Salir sin establecer un valor de devolucin, el procedimiento devolver el valor predeterminado apropiado para el tipo de datos del valor de devolucin, que es 0 si es numrico, Falso si es Booleano, "" si es Cadena, o un objeto sin crear si es una clase. Si es una estructura, se devuelve una estructura cuyos miembros se han inicializado como se menciona anteriormente. Si es una matriz, se devuelve una matriz de tamao 0.

Page 161

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Puede aparecer cualquier nmero de instrucciones Devolver en cualquier lugar de un procedimiento. Asimismo, pueden mezclarse las instrucciones Salir y Devolver. La variable Resultado y la instruccin Devolver slo son vlidas dentro de un procedimiento que devuelve un valor. Se puede utilizar un procedimiento que devuelve un valor en el lado derecho de una expresin cuando desee utilizar dicho valor. Puede llamar a un procedimiento mediante su nombre, seguido por la lista de parmetros entre parntesis, en una expresin. Si no se proporcionan parmetros, se pueden omitir los parntesis. Nota Al llamar a un procedimiento, los parmetro se evalan de derecha a izquierda, es decir de atrs para adelante. Tenga esto en cuenta si un parmetro realiza una llamada a otro procedimiento, ya que el orden de llamadas ser inverso al orden de declaracin. Al especificar la palabra clave Inicio se declara un procedimiento de inicio, que es llamado al iniciar el programa. No debe aceptar ningn parmetro ni devolver ningn valor. Puede haber ms de un procedimiento de inicio por programa. En tal caso, el orden de llamada es igual al orden de declaracin.

Introduccin a los procedimientos Declaracin de procedimientos Parmetros de procedimientos

Volver

Page 162

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prop (Instruccin)
Se utiliza a nivel de clase para declarar una propiedad. Prop nombre : tipo [ Lec : objetoLectura ] [ Esc : objetoEscritura ] FinProp nombre Requerido. Nombre nico que identifica la propiedad. tipo Requerido. Tipo de datos de la propiedad. objetoLectura Requerido si se especifica Lec. Campo o mtodo de clase que se invoca al leer la propiedad. objetoEscritura Requerido si se especifica Esc. Campo o mtodo de clase que se invoca al asignar a la propiedad.

Comentarios La clusula Lec puede especificar un campo o un mtodo. Si especifica un campo, al leer la propiedad se devolver el valor de ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al leer la propiedad se llamar a ese mtodo. El mtodo debe devolver el mismo tipo de datos que la propiedad. Si el mtodo requiere parmetros, al leer la propiedad se debern pasar estos parmetros. La clusula Esc, al igual que Lec, tambin puede especificar un campo o un mtodo. Si especifica un campo, al asignar a la propiedad se almacenar el valor en ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al asignar a la propiedad se llamar a ese mtodo. El primer parmetro del mtodo debe ser del mismo tipo de datos que la propiedad. Si el mtodo requiere ms parmetros, al asignar a la propiedad se debern pasar estos parmetros extra. Si se omite la clusula Esc, la propiedad es de slo lectura. Si se omite la clusula Lec, la propiedad es de slo escritura. Si bien las clusulas Esc y Lec son ambas opcionales, al menos una de ellas se debe especificar en una propiedad.

Introduccin a las clases y los objetos Propiedades y procedimientos de propiedad Clase (Instruccin)

Volver

Page 163

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Seleccionar (Instruccin)
Ejecuta uno de varios grupos de instrucciones, segn el valor de una expresin. Seleccionar expresin [ Caso listaExpresiones [ instrucciones ] ] [ Caso Otro [ otrasInstrucciones ] ] FinSeleccionar expresin Requerido. Expresin. Debe evaluarse en uno de los tipos de datos elementales. listaExpresiones Requerido en una instruccin Caso. Lista de clusulas de expresiones que representan valores que coinciden para expresin. Las clusulas de varias expresiones se separan mediante comas. Las expresiones en listaExpresiones pueden ser de cualquier tipo de datos compatible con el de expresin. instrucciones Opcional. Una o ms instrucciones despus de Caso que se ejecutan si expresin coincide con cualquier clusula en listaExpresiones. otrasInstrucciones Opcional. Una o ms instrucciones a continuacin de Caso Otro que se ejecutan si expresin no coincide con ninguna clusula de listaExpresiones. FinSeleccionar Termina un bloque Seleccionar.

Comentarios Si expresin coincide con cualquier clusula Caso listaExpresiones, se ejecutan las instrucciones que siguen a la instruccin Caso hasta la siguiente instruccin Caso o FinSeleccionar. El control pasa despus a la instruccin que sigue a FinSeleccionar. Si expresin coincide con una clusula de listaExpresiones en ms de una clusula Caso, slo se ejecutan las instrucciones que siguen a la primera coincidencia. La instruccin Caso Otro se utiliza para introducir las instrucciones otrasInstrucciones que se ejecutarn si no se encuentra ninguna coincidencia entre expresin y una clusula de listaExpresiones en cualquiera de las dems instrucciones Caso. Aunque no es necesario, es recomendable tener una instruccin Caso Otro en el bloque Seleccionar para controlar los valores de expresin imprevistos. Si ninguna clusula Caso listaExpresiones coincide con expresin y no existe ninguna instruccin Caso Otro, la ejecucin contina en la instruccin que sigue a FinSeleccionar. Las instrucciones Seleccionar pueden anidarse. Cada instruccin Seleccionar anidada debe tener una instruccin FinSeleccionar coincidente. Si no necesita ejecutar ms instrucciones de un bloque Caso o Caso Otro, puede salir del bloque mediante una instruccin Salir Seleccionar. Esto transfiere inmediatamente el control a la instruccin que sigue a FinSeleccionar.

Page 164

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Seleccionar" Instruccin "Salir"

Volver

Page 165

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Si (Instruccin)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresin. Si condicin [ Entonces ] [ instruccionesSi ] [ SiNo [ instruccionesSino ] ] FinSi O bien Si condicin [ Entonces ] instruccionesSi [ ; SiNo instruccionesSino ] condicin Requerido. Expresin. La expresin que proporcione en condicin debe evaluarse como Verd o Falso, o como un tipo de datos que sea implcitamente convertible a Booleano. instruccionesSi Opcional en formato de mltiples lneas; se requiere en formato de una sola lnea. Una o ms instrucciones a ejecutarse si condicin es Verd. instruccionesSino Opcional en formato de mltiples lneas; se requiere en formato de una sola lnea que tenga una clusula SiNo. Una o ms instrucciones a ejecutarse si condicin es Falso. FinSi Termina un bloque Si...FinSi.

Comentarios Puede utilizar la forma de una sola lnea para pruebas cortas y sencillas. Sin embargo, el formato de mltiples lneas proporciona ms estructura y flexibilidad que el formato de una sola lnea y, generalmente, es ms fcil de leer, mantener y depurar. Con el formato de una sola lnea, es posible ejecutar varias instrucciones como resultado de una decisin del bloque Si. Todas las instrucciones deben estar en la misma lnea y separadas por el carcter punto y coma, como en el ejemplo siguiente:
Si A > 10 Entonces A = A + 1 ; B = B + A ; C = C + B

La instruccin Si de varias lneas debe finalizar con una instruccin FinSi. Cuando se encuentra un bloque Si de mltiples lneas, se prueba condicin. Si condicin es Verd, se ejecutan las instrucciones que estn a continuacin. Si condicin es Falso se ejecutan las instrucciones que siguen a SiNo en caso de que est presente. La ejecucin contina con la instruccin que sigue a FinSi. La palabra clave Entonces es opcional en todos los casos. Sugerencia El bloque Seleccionar puede ser ms til cuando se evala una nica expresin que tiene varios valores posibles.

Page 166

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Si" Bloque "Seleccionar"

Volver

Page 167

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

GenerarError (Instruccin)
Genera una excepcin en tiempo de ejecucin. GenerarError nmero [ , mensaje ] nmero Requerido. Expresin nmerica entera que representa el cdigo de la excepcin. mensaje Opcional. Expresin de cadena que representa el mensaje de error asociado con la excepcin. Si se omite, se utiliza el mensaje predeterminado para la excepcin indicada.

Comentarios Esta instruccin produce una excepcin en tiempo de ejecucin, que es controlada mediante el bloque AdmErr. En caso de que no haya un bloque AdmErr, esta instruccin muestra un mensaje de error y finaliza el programa.

Introduccin al control estructurado de excepciones AdmErr (Instruccin) Bloque "AdmErr"

Volver

Page 168

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Repetir (Instruccin)
Ejecuta una serie de instrucciones incondicionalmente, o hasta que una condicin dada sea Verd. Sintaxis 1: Repetir [ instrucciones ] [ Salir Repetir ] [ instrucciones ] PorSiempre Sintaxis 2: Repetir [ instrucciones ] [ Salir Repetir ] [ instrucciones ] HastaQue condicin

condicin Requerido en la sintaxis 2. Expresin. Debe evaluarse como Verd o Falso. instrucciones Opcional. Instrucciones a ejecutarse incondicionalmente o hasta que condicin sea Verd. PorSiempre Requerido en la sintaxis 1. Marca el final del bucle Repetir. HastaQue Requerido en la sintaxis 2. Marca el final del bucle Repetir.

Comentarios El la sintaxis 1, las instrucciones se ejecutan indefinidamente. Se puede utilizar una instruccin Salir Repetir para romper el bucle (ver ms abajo). En la sintaxis 2, las instrucciones se ejecutan hasta que condicin sea Verd. Debido a que condicin se evala al final del bucle, las instrucciones se ejecutan por lo menos una vez. Cuando condicin es Verd, la ejecucin se reanuda con la instruccin que sigue a la instruccin HastaQue. La instruccin Salir Repetir transfiere el control inmediatamente a la instruccin que sigue a la instruccin PorSiempre o HastaQue. Se puede incluir cualquier nmero de instrucciones Salir Repetir en cualquier lugar del bucle Repetir. Salir Repetir suele utilizarse despus de evaluar alguna condicin, por ejemplo con una instruccin Si. Se pueden anidar bucles Repetir si se coloca un bucle dentro de otro.

Introduccin a las estructuras de control Bucle "Repetir"

Page 169

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instruccin "Salir"

Volver

Page 170

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Importar (Instruccin)
Indica al compilador que utilice el cdigo y las declaraciones del archivo especificado. Importar archivo archivo Requerido. Nombre entre comillas del archivo a importar. Comentarios Normalmente archivo indica una biblioteca precompilada (extensin .prp). Cuando se importa una biblioteca, todo su cdigo est disponible para la aplicacin.

Volver

Page 171

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Interrumpir (Instruccin)
Produce una pausa en el depurador. Interrumpir [ condicin ] condicin Opcional. Expresin de tipo Booleano. Se produce la pausa slo si condicin es Verd.

Comentarios Cuando se encuentra una instruccin Interrumpir, se evala condicin. Si es Verd o se ha omitido condicin, se produce una pausa en el depurador. El uso de la instruccin Interrumpir es similar a establecer un punto de interrupcin en el cdigo. La instruccin Interrumpir se ignora si el programa no est siendo depurado. Nota condicin siempre se evala al encontrarse la instruccin Interrumpir, independientemente de si el programa se est depurando o no. Tenga esto en cuenta si condicin realiza llamadas a procedimientos. Depurador

Volver

Page 172

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

IrHacia (Instruccin)
Realiza un salto incondicional a una lnea especificada. IrHacia lnea lnea Requerido. Cualquier etiqueta de lnea.

Comentarios La instruccin IrHacia no se puede utilizar para entrar o salir de un procedimiento o estructura de control. Las instrucciones IrHacia pueden dificultar la lectura y el mantenimiento del cdigo. Se recomienda en su lugar emplear, siempre que sea posible, estructuras de control, como por ejemplo Si..FinSi, Mientras...FinMientras, Contar...Seguir, etc. Una etiqueta de lnea se define de la siguiente manera:
etiquetaLnea:

El siguiente ejemplo muestra un mensaje 3 veces:


Var Contador:Entero Vuelta: Mensaje("Hola !!!") Contador = Contador + 1 Si Contador <> 3 Entonces IrHacia Vuelta Fin

Introduccin a las estructuras de control

Volver

Page 173

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prop (Instruccin)
Se utiliza a nivel de clase para declarar una propiedad. Prop nombre : tipo [ Lec : objetoLectura ] [ Esc : objetoEscritura ] FinProp nombre Requerido. Nombre nico que identifica la propiedad. tipo Requerido. Tipo de datos de la propiedad. objetoLectura Requerido si se especifica Lec. Campo o mtodo de clase que se invoca al leer la propiedad. objetoEscritura Requerido si se especifica Esc. Campo o mtodo de clase que se invoca al asignar a la propiedad.

Comentarios La clusula Lec puede especificar un campo o un mtodo. Si especifica un campo, al leer la propiedad se devolver el valor de ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al leer la propiedad se llamar a ese mtodo. El mtodo debe devolver el mismo tipo de datos que la propiedad. Si el mtodo requiere parmetros, al leer la propiedad se debern pasar estos parmetros. La clusula Esc, al igual que Lec, tambin puede especificar un campo o un mtodo. Si especifica un campo, al asignar a la propiedad se almacenar el valor en ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al asignar a la propiedad se llamar a ese mtodo. El primer parmetro del mtodo debe ser del mismo tipo de datos que la propiedad. Si el mtodo requiere ms parmetros, al asignar a la propiedad se debern pasar estos parmetros extra. Si se omite la clusula Esc, la propiedad es de slo lectura. Si se omite la clusula Lec, la propiedad es de slo escritura. Si bien las clusulas Esc y Lec son ambas opcionales, al menos una de ellas se debe especificar en una propiedad.

Introduccin a las clases y los objetos Propiedades y procedimientos de propiedad Clase (Instruccin)

Volver

Page 174

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Mientras (Instruccin)
Ejecuta una serie de instrucciones siempre que una condicin dada sea Verd. Mientras condicin [ instrucciones ] [ Salir Mientras ] [ instrucciones ] FinMientras condicin Requerido. Expresin. Debe evaluarse como Verd o Falso. instrucciones Opcional. Instrucciones a ejecutarse si condicin es Verd. FinMientras Termina la ejecucin del bloque Mientras.

Comentarios Si condicin es Verd, se ejecutan todas las instrucciones hasta que se encuentre la instruccin FinMientras. Despus, el control vuelve a la instruccin Mientras y se comprueba de nuevo condicin. Si condicin an es Verd, se repite el proceso. Si es Falso, la ejecucin se reanuda con la instruccin que sigue a la instruccin FinMientras. La instruccin Salir Mientras transfiere el control inmediatamente a la instruccin que sigue a la instruccin FinMientras. Se puede incluir cualquier nmero de instrucciones Salir Mientras en cualquier lugar del bucle Mientras. Salir Mientras suele utilizarse despus de evaluar alguna condicin, por ejemplo con una instruccin Si. Se pueden anidar bucles Mientras si se coloca un bucle dentro de otro.

Introduccin a las estructuras de control Bucle "Mientras" Instruccin "Salir"

Volver

Page 175

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Repetir (Instruccin)
Ejecuta una serie de instrucciones incondicionalmente, o hasta que una condicin dada sea Verd. Sintaxis 1: Repetir [ instrucciones ] [ Salir Repetir ] [ instrucciones ] PorSiempre Sintaxis 2: Repetir [ instrucciones ] [ Salir Repetir ] [ instrucciones ] HastaQue condicin

condicin Requerido en la sintaxis 2. Expresin. Debe evaluarse como Verd o Falso. instrucciones Opcional. Instrucciones a ejecutarse incondicionalmente o hasta que condicin sea Verd. PorSiempre Requerido en la sintaxis 1. Marca el final del bucle Repetir. HastaQue Requerido en la sintaxis 2. Marca el final del bucle Repetir.

Comentarios El la sintaxis 1, las instrucciones se ejecutan indefinidamente. Se puede utilizar una instruccin Salir Repetir para romper el bucle (ver ms abajo). En la sintaxis 2, las instrucciones se ejecutan hasta que condicin sea Verd. Debido a que condicin se evala al final del bucle, las instrucciones se ejecutan por lo menos una vez. Cuando condicin es Verd, la ejecucin se reanuda con la instruccin que sigue a la instruccin HastaQue. La instruccin Salir Repetir transfiere el control inmediatamente a la instruccin que sigue a la instruccin PorSiempre o HastaQue. Se puede incluir cualquier nmero de instrucciones Salir Repetir en cualquier lugar del bucle Repetir. Salir Repetir suele utilizarse despus de evaluar alguna condicin, por ejemplo con una instruccin Si. Se pueden anidar bucles Repetir si se coloca un bucle dentro de otro.

Introduccin a las estructuras de control Bucle "Repetir"

Page 176

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instruccin "Salir"

Volver

Page 177

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Proc (Instruccin)
Declara el nombre, los parmetros y el cdigo que definen un procedimiento. Sintaxis 1: Proc [ clase . ] nombre [ ( parmetros ) ] [ : tipo [ [] ] ] [{ Exportar | Inicio }] [ instrucciones ] [ Salir ] [ instrucciones ] FinProc Sintaxis 2: Proc nombre [ ( parmetros ) ] [ : tipo [ [] ] ] , biblioteca [ export ] Sintaxis 3: Proc nombre [ ( parmetros ) ] [ : tipo [ [] ] ] Adelantado clase Opcional en la sintaxis 1. Nombre de clase. Slo es vlido en caso de que el procedimiento sea un mtodo adelantado definido fuera de la clase. nombre Requerido. Nombre del procedimiento. Debe ser un identificador vlido. parmetros Opcional. Lista de variables que representan los parmetros que se pasan al procedimiento cuando se le llama. Los parmetros mltiples se separan por comas. tipo Opcional. Tipos de datos del valor devuelto por el procedimiento. En caso de omitirse, el procedimiento no devuelve ningn valor. [] Opcional si se suministra tipo. Indica que el procedimiento devuelve una matriz de tipo. Exportar Opcional en la sintaxis 1. Indica que el procedimiento se exporta. Al exportar un procedimiento, ste puede ser llamado desde otro programa. Es til slo en bibliotecas DLL. Inicio Opcional en la sintaxis 1. Indica que el procedimiento es un procedimiento de inicio. Ver la seccin comentarios. instrucciones Opcional en la sintaxis 1. Un bloque de instrucciones que se ejecutan dentro del procedimiento. FinProc Requerido en la sintaxis 1. Termina la definicin del procedimiento. biblioteca Requerido en la sintaxis 2. Nombre de la biblioteca DLL desde donde se importa este procedimiento. export Opcional en la sintaxis 2. Nombre real del procedimiento que es importado. Adelantado

Page 178

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Requerido en la sintaxis 3. Indica que el cdigo del procedimiento ser definido ms adelante.

Cada parmetro de parmetros tiene la siguiente sintaxis y partes: [ Opcional ] [ Referencia ] nombre [ [] ] : tipo [ = valor ] Opcional Opcional. Indica que este parmetro no es necesario cuando se llama al procedimiento. Si se utiliza esta palabra clave, todos los parmetros siguientes deben ser opcionales y declararse mediante la palabra clave Opcional. La declaracin opcional de parmetros puede proporcionar la clusula valor. Referencia Opcional. Indica que el parmetro se pasa por referencia, es decir que el procedimiento puede modificar la variable subyacente en el cdigo de llamada de la misma forma que puede hacerlo el propio cdigo de llamada. Si se omite, el parmetro se pasa por valor. nombre Requerido. Nombre de la variable que representa el parmetro. Debe ser un identificador vlido. [] Opcional. Indica que el parmetro es una matriz. tipo Requerido. Tipos de datos del parmetro pasado al procedimiento. valor Opcional para parmetros declarados con Opcional. Cualquier constante o expresin constante que se evala como el tipo de datos del parmetro.

Comentarios La sintaxis 1 declara un procedimiento o mtodo normal. La sintaxis 2 declara un procedimiento externo que est ubicado en una biblioteca DLL. La sintaxis 3 declara un mtodo adelantado. Solamente la sintaxis 1 puede definir cdigo en el procedimiento. Un procedimiento adelantado slo puede declararse dentro de una clase. Se declara especificando la palabra clave Adelantado, e indica que el cdigo del procedimiento se define ms adelante en el cdigo, posiblemente fuera de la clase. Cuando el procedimiento vuelva al cdigo que realiza la llamada, la ejecucin contina con la instruccin que sigue a la instruccin que lo llam. La instruccin Salir provoca una salida inmediata de un procedimiento. Puede aparecer cualquier nmero de instrucciones Salir en cualquier lugar de un procedimiento. Para devolver un valor, se puede asignar el valor a la variable especial Resultado o incluirlo en una instruccin Devolver. Este ltimo caso slo es vlido cuando el tipo de datos que devuelve el procedimiento es un tipo de datos elemental. Si se utiliza Salir sin establecer un valor de devolucin, el procedimiento devolver el valor predeterminado apropiado para el tipo de datos del valor de devolucin, que es 0 si es numrico, Falso si es Booleano, "" si es Cadena, o un objeto sin crear si es una clase. Si es una estructura, se devuelve una estructura cuyos miembros se han inicializado como se menciona anteriormente. Si es una matriz, se devuelve una matriz de tamao 0.

Page 179

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Puede aparecer cualquier nmero de instrucciones Devolver en cualquier lugar de un procedimiento. Asimismo, pueden mezclarse las instrucciones Salir y Devolver. La variable Resultado y la instruccin Devolver slo son vlidas dentro de un procedimiento que devuelve un valor. Se puede utilizar un procedimiento que devuelve un valor en el lado derecho de una expresin cuando desee utilizar dicho valor. Puede llamar a un procedimiento mediante su nombre, seguido por la lista de parmetros entre parntesis, en una expresin. Si no se proporcionan parmetros, se pueden omitir los parntesis. Nota Al llamar a un procedimiento, los parmetro se evalan de derecha a izquierda, es decir de atrs para adelante. Tenga esto en cuenta si un parmetro realiza una llamada a otro procedimiento, ya que el orden de llamadas ser inverso al orden de declaracin. Al especificar la palabra clave Inicio se declara un procedimiento de inicio, que es llamado al iniciar el programa. No debe aceptar ningn parmetro ni devolver ningn valor. Puede haber ms de un procedimiento de inicio por programa. En tal caso, el orden de llamada es igual al orden de declaracin.

Introduccin a los procedimientos Declaracin de procedimientos Parmetros de procedimientos

Volver

Page 180

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prop (Instruccin)
Se utiliza a nivel de clase para declarar una propiedad. Prop nombre : tipo [ Lec : objetoLectura ] [ Esc : objetoEscritura ] FinProp nombre Requerido. Nombre nico que identifica la propiedad. tipo Requerido. Tipo de datos de la propiedad. objetoLectura Requerido si se especifica Lec. Campo o mtodo de clase que se invoca al leer la propiedad. objetoEscritura Requerido si se especifica Esc. Campo o mtodo de clase que se invoca al asignar a la propiedad.

Comentarios La clusula Lec puede especificar un campo o un mtodo. Si especifica un campo, al leer la propiedad se devolver el valor de ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al leer la propiedad se llamar a ese mtodo. El mtodo debe devolver el mismo tipo de datos que la propiedad. Si el mtodo requiere parmetros, al leer la propiedad se debern pasar estos parmetros. La clusula Esc, al igual que Lec, tambin puede especificar un campo o un mtodo. Si especifica un campo, al asignar a la propiedad se almacenar el valor en ese campo. El tipo de datos del campo debe coincidir con el de la propiedad. Si se especifica un mtodo, al asignar a la propiedad se llamar a ese mtodo. El primer parmetro del mtodo debe ser del mismo tipo de datos que la propiedad. Si el mtodo requiere ms parmetros, al asignar a la propiedad se debern pasar estos parmetros extra. Si se omite la clusula Esc, la propiedad es de slo lectura. Si se omite la clusula Lec, la propiedad es de slo escritura. Si bien las clusulas Esc y Lec son ambas opcionales, al menos una de ellas se debe especificar en una propiedad.

Introduccin a las clases y los objetos Propiedades y procedimientos de propiedad Clase (Instruccin)

Volver

Page 181

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prototipo (Instruccin)
Declara un prototipo y sus parmetros. Prototipo nombre [ ( parmetros ) ] [ : tipo [ [] ] ] nombre Requerido. Nombre del prototipo. Debe ser un identificador vlido. parmetros Opcional. Lista de variables que representan los parmetros que se pasan al procedimiento cuando se le llama. Los parmetros mltiples se separan por comas. tipo Opcional. Tipos de datos del valor devuelto por el prototipo. En caso de omitirse, el prototipo no devuelve ningn valor. [] Opcional si se suministra tipo. Indica que el prototipo devuelve una matriz de tipo.

Cada parmetro de parmetros tiene la siguiente sintaxis y partes: [ Opcional ] [ Referencia ] [ nombre ] [ [] ] : tipo [ = valor ] Opcional Opcional. Indica que este parmetro no es necesario cuando se llama al procedimiento. Si se utiliza esta palabra clave, todos los parmetros siguientes deben ser opcionales y declararse mediante la palabra clave Opcional. La declaracin opcional de parmetros puede proporcionar la clusula valor. Referencia Opcional. Indica que el parmetro se pasa por referencia, es decir que el procedimiento puede modificar la variable subyacente en el cdigo de llamada de la misma forma que puede hacerlo el propio cdigo de llamada. Si se omite, el parmetro se pasa por valor. nombre Opcional. Nombre de la variable que representa el parmetro. Debe ser un identificador vlido. [] Opcional. Indica que el parmetro es una matriz. tipo Requerido. Tipos de datos del parmetro pasado al procedimiento. valor Opcional para parmetros declarados con Opcional. Cualquier constante o expresin constante que se evala como el tipo de datos del parmetro.

Comentarios Un prototipo es una definicin de un procedimiento y se emplea para crear variables de procedimientos. Para ms informacin, vea Prototipos y variables de procedimientos. Un prototipo solamente define un nuevo tipo de datos; no define ningn cdigo asociado con el mismo.

Page 182

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Prototipos y variables de procedimientos Introduccin a los procedimientos

Volver

Page 183

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

PuertoEnviar (Instruccin)
Enva un valor a travs de un puerto de la PC. PuertoEnviar puerto , valor puerto Requerido. Nmero del puerto. valor Requerido. Valor de tipo Byte a enviar.

Comentarios Slo es posible acceder a los puertos de la PC desde Windows 95/98. En los otros sistemas operativos slo es posible acceder a los puertos desde un controlador de dispositivo o una rutina ejecutndose en modo ncleo.

Volver

Page 184

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Redim (Instruccin)
Se utiliza para asignar o reasignar espacio de almacenamiento para una variable de matriz dinmica. Redim [ Preservar ] nombre , tamao Preservar Opcional. Palabra clave utilizada para conservar los datos en una matriz existente. nombre Requerido. Nombre de la variable de matriz dinmica. tamao Requerido. Valor numrico entero que representa el tamao de la matriz. Los elementos de la matriz se cuentan desde 0 hasta su tamao menos uno. Si tamao es 0, la matriz no tendr dimensin.

Comentarios La instruccin Redim no puede cambiar el tipo de datos de una variable de matriz o proporcionar valores nuevos de inicializacin para los elementos de la matriz. La instruccin Redim no puede cambiar el tamao de una matriz esttica. Redim libera la matriz existente y crea una matriz nueva. Los elementos de la nueva matriz se inicializan al valor predeterminado para su tipo de datos, a menos que especifique Preservar. Si se incluye la palabra clave Preservar, Pauscal copia los elementos de la matriz existente en la nueva matriz. Si se utiliza Preservar y la matriz se achica, Pauscal liberar los elementos eliminados de la matriz. Si tamao es cero, la matriz no tendr dimensin. En este caso, la instruccin Redim funciona igual que la instruccin Borrar.

Matrices Borrar (Instruccin)

Volver

Page 185

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Repetir (Instruccin)
Ejecuta una serie de instrucciones incondicionalmente, o hasta que una condicin dada sea Verd. Sintaxis 1: Repetir [ instrucciones ] [ Salir Repetir ] [ instrucciones ] PorSiempre Sintaxis 2: Repetir [ instrucciones ] [ Salir Repetir ] [ instrucciones ] HastaQue condicin

condicin Requerido en la sintaxis 2. Expresin. Debe evaluarse como Verd o Falso. instrucciones Opcional. Instrucciones a ejecutarse incondicionalmente o hasta que condicin sea Verd. PorSiempre Requerido en la sintaxis 1. Marca el final del bucle Repetir. HastaQue Requerido en la sintaxis 2. Marca el final del bucle Repetir.

Comentarios El la sintaxis 1, las instrucciones se ejecutan indefinidamente. Se puede utilizar una instruccin Salir Repetir para romper el bucle (ver ms abajo). En la sintaxis 2, las instrucciones se ejecutan hasta que condicin sea Verd. Debido a que condicin se evala al final del bucle, las instrucciones se ejecutan por lo menos una vez. Cuando condicin es Verd, la ejecucin se reanuda con la instruccin que sigue a la instruccin HastaQue. La instruccin Salir Repetir transfiere el control inmediatamente a la instruccin que sigue a la instruccin PorSiempre o HastaQue. Se puede incluir cualquier nmero de instrucciones Salir Repetir en cualquier lugar del bucle Repetir. Salir Repetir suele utilizarse despus de evaluar alguna condicin, por ejemplo con una instruccin Si. Se pueden anidar bucles Repetir si se coloca un bucle dentro de otro.

Introduccin a las estructuras de control Bucle "Repetir"

Page 186

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Instruccin "Salir"

Volver

Page 187

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Salir (Instruccin)
Sale de un procedimiento o bloque y transfiere el control inmediatamente a la instruccin que sigue a la llamada al procedimiento o a la definicin del bloque. Salir [{ Contar | Mientras | Repetir | Eval | Bloque | Seleccionar | AdmErr }] Contar Sale inmediatamente del bucle Contar en el que aparece. La ejecucin contina con la instruccin que sigue a la instruccin Seguir. Salir Contar slo se puede utilizar dentro de un bucle Contar. Cuando se utiliza con bucles anidados Contar, Salir Contar transfiere el control al bucle que est anidado un nivel por encima del bucle donde ocurre Salir Contar. Mientras Sale inmediatamente del bucle Mientras en el que aparece. La ejecucin contina con la instruccin que sigue a la instruccin FinMientras. Salir Mientras slo se puede utilizar dentro de un bucle Mientras. Cuando se utiliza con bucles anidados Mientras, Salir Mientras transfiere el control al bucle que est anidado un nivel por encima del bucle donde ocurre Salir Mientras. Repetir Sale inmediatamente del bucle Repetir en el que aparece. La ejecucin contina con la instruccin que sigue a la instruccin PorSiempre o HastaQue. Salir Repetir slo se puede utilizar dentro de un bucle Repetir. Cuando se utiliza con bucles anidados Repetir, Salir Repetir transfiere el control al bucle que est anidado un nivel por encima del bucle donde ocurre Salir Repetir. Eval Sale inmediatamente de la estructura Eval en la que aparece. La ejecucin contina con la instruccin que sigue a la instruccin FinEval. Salir Eval slo se puede utilizar dentro de una estructura Eval. Cuando se utiliza con estructuras anidadas Eval, Salir Eval transfiere el control a la estructura que est anidada un nivel por encima de la estructura donde ocurre Salir Eval. Bloque Sale inmediatamente de la estructura Bloque en la que aparece. La ejecucin contina con la instruccin que sigue a la instruccin FinBloque. Salir Bloque slo se puede utilizar dentro de una estructura Bloque. Cuando se utiliza con estructuras anidadas Bloque, Salir Bloque transfiere el control a la estructura que est anidada un nivel por encima de la estructura donde ocurre Salir Bloque. Seleccionar Sale inmediatamente del bloque Seleccionar en el que aparece. La ejecucin contina con la instruccin que sigue a la instruccin FinSeleccionar. Salir Seleccionar slo se puede utilizar dentro de un bloque Seleccionar. AdmErr Sale inmediatamente del bloque AdmErr en el que aparece. La ejecucin contina con la instruccin que sigue a la instruccin FinAdmErr. Salir AdmErr slo se puede utilizar dentro de un bloque AdmErr. Comentarios La instruccin Salir sola se utiliza para salir de un procedimiento. Slo es vlida dentro de un procedimiento.

Page 188

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las estructuras de control

Volver

Page 189

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Contar (Instruccin)
Repite un grupo de instrucciones un nmero de veces especificado. Contar contador = inicio A final [ Dec ] [ instrucciones ] [ Salir Contar ] [ instrucciones ] Seguir contador Requerido. Variable. El tipo de contador suele ser Entero o EnteroSig, pero puede ser cualquier tipo numrico entero elemental que admita los operadores mayor que (>), menor que (<) y suma (+). inicio Requerido. Expresin. El valor inicial de contador. La expresin inicio debe evaluarse como cualquier tipo de datos compatible con el tipo de contador. final Requerido. Expresin. El valor final de contador. La expresin final debe evaluarse como cualquier tipo de datos compatible con el tipo de contador. Dec Opcional. Si se omite, indica que la variable de contador se incrementa por cada iteracin. Si se especifica, indica que la variable se decrementa por cada iteracin. instrucciones Opcional. Una o ms instrucciones que se ejecutan un nmero especificado de veces.

Comentarios Las expresiones inicio y final slo se evalan una vez, cuando se encuentra por primera vez la instruccin Contar. No se volvern a evaluar, aunque cambien las partes que componen las instrucciones del bucle. La variable contador se compara con final cada vez que se entra en el bucle. Esto incluye la primera vez que se ejecuta la instruccin Contar. Por consiguiente, si el valor de inicio supera el valor de final al entrar en el bucle, ste no se ejecuta, y la ejecucin pasa inmediatamente a la instruccin que sigue a Seguir. Una vez que se han ejecutado las instrucciones del bucle, se incrementa o decrementa contador (dependiendo si se omite o no la palabra clave Dec). En este momento, la instruccin Contar compara de nuevo contador con final. Como resultado de esta comparacin, bien se ejecutan otra vez las instrucciones del bucle o se termina el bucle y la ejecucin contina con la instruccin que sigue a Seguir . Nota Cambiar el valor de contador mientras se est dentro de un bucle puede dificultar la lectura y la depuracin del cdigo. La instruccin Salir Contar transfiere el control inmediatamente a la instruccin que sigue a la instruccin Seguir. Se puede incluir cualquier nmero de instrucciones Salir Contar en cualquier lugar del bucle Contar. Salir Contar suele utilizarse despus de evaluar alguna condicin, por ejemplo con

Page 190

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

una instruccin Si. Se pueden anidar bucles Contar, colocando un bucle dentro de otro. Cada bucle debe tener una variable contador nica. La siguiente construccin es correcta:
Contar I = 1 A 10 Contar J = 1 A 10 Contar K = 1 A 10 ' Instrucciones Seguir Seguir Seguir

Es recomendable que el tipo de datos de contador sea EnteroSig u otro tipo de datos con signo. Esto permite que se eliminen errores provocados por valores negativos con tipos sin signo.

Introduccin a las estructuras de control Bucle "Contar" Instruccin "Salir"

Volver

Page 191

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Seleccionar (Instruccin)
Ejecuta uno de varios grupos de instrucciones, segn el valor de una expresin. Seleccionar expresin [ Caso listaExpresiones [ instrucciones ] ] [ Caso Otro [ otrasInstrucciones ] ] FinSeleccionar expresin Requerido. Expresin. Debe evaluarse en uno de los tipos de datos elementales. listaExpresiones Requerido en una instruccin Caso. Lista de clusulas de expresiones que representan valores que coinciden para expresin. Las clusulas de varias expresiones se separan mediante comas. Las expresiones en listaExpresiones pueden ser de cualquier tipo de datos compatible con el de expresin. instrucciones Opcional. Una o ms instrucciones despus de Caso que se ejecutan si expresin coincide con cualquier clusula en listaExpresiones. otrasInstrucciones Opcional. Una o ms instrucciones a continuacin de Caso Otro que se ejecutan si expresin no coincide con ninguna clusula de listaExpresiones. FinSeleccionar Termina un bloque Seleccionar.

Comentarios Si expresin coincide con cualquier clusula Caso listaExpresiones, se ejecutan las instrucciones que siguen a la instruccin Caso hasta la siguiente instruccin Caso o FinSeleccionar. El control pasa despus a la instruccin que sigue a FinSeleccionar. Si expresin coincide con una clusula de listaExpresiones en ms de una clusula Caso, slo se ejecutan las instrucciones que siguen a la primera coincidencia. La instruccin Caso Otro se utiliza para introducir las instrucciones otrasInstrucciones que se ejecutarn si no se encuentra ninguna coincidencia entre expresin y una clusula de listaExpresiones en cualquiera de las dems instrucciones Caso. Aunque no es necesario, es recomendable tener una instruccin Caso Otro en el bloque Seleccionar para controlar los valores de expresin imprevistos. Si ninguna clusula Caso listaExpresiones coincide con expresin y no existe ninguna instruccin Caso Otro, la ejecucin contina en la instruccin que sigue a FinSeleccionar. Las instrucciones Seleccionar pueden anidarse. Cada instruccin Seleccionar anidada debe tener una instruccin FinSeleccionar coincidente. Si no necesita ejecutar ms instrucciones de un bloque Caso o Caso Otro, puede salir del bloque mediante una instruccin Salir Seleccionar. Esto transfiere inmediatamente el control a la instruccin que sigue a FinSeleccionar.

Page 192

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Seleccionar" Instruccin "Salir"

Volver

Page 193

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Si (Instruccin)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresin. Si condicin [ Entonces ] [ instruccionesSi ] [ SiNo [ instruccionesSino ] ] FinSi O bien Si condicin [ Entonces ] instruccionesSi [ ; SiNo instruccionesSino ] condicin Requerido. Expresin. La expresin que proporcione en condicin debe evaluarse como Verd o Falso, o como un tipo de datos que sea implcitamente convertible a Booleano. instruccionesSi Opcional en formato de mltiples lneas; se requiere en formato de una sola lnea. Una o ms instrucciones a ejecutarse si condicin es Verd. instruccionesSino Opcional en formato de mltiples lneas; se requiere en formato de una sola lnea que tenga una clusula SiNo. Una o ms instrucciones a ejecutarse si condicin es Falso. FinSi Termina un bloque Si...FinSi.

Comentarios Puede utilizar la forma de una sola lnea para pruebas cortas y sencillas. Sin embargo, el formato de mltiples lneas proporciona ms estructura y flexibilidad que el formato de una sola lnea y, generalmente, es ms fcil de leer, mantener y depurar. Con el formato de una sola lnea, es posible ejecutar varias instrucciones como resultado de una decisin del bloque Si. Todas las instrucciones deben estar en la misma lnea y separadas por el carcter punto y coma, como en el ejemplo siguiente:
Si A > 10 Entonces A = A + 1 ; B = B + A ; C = C + B

La instruccin Si de varias lneas debe finalizar con una instruccin FinSi. Cuando se encuentra un bloque Si de mltiples lneas, se prueba condicin. Si condicin es Verd, se ejecutan las instrucciones que estn a continuacin. Si condicin es Falso se ejecutan las instrucciones que siguen a SiNo en caso de que est presente. La ejecucin contina con la instruccin que sigue a FinSi. La palabra clave Entonces es opcional en todos los casos. Sugerencia El bloque Seleccionar puede ser ms til cuando se evala una nica expresin que tiene varios valores posibles.

Page 194

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Si" Bloque "Seleccionar"

Volver

Page 195

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Si (Instruccin)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresin. Si condicin [ Entonces ] [ instruccionesSi ] [ SiNo [ instruccionesSino ] ] FinSi O bien Si condicin [ Entonces ] instruccionesSi [ ; SiNo instruccionesSino ] condicin Requerido. Expresin. La expresin que proporcione en condicin debe evaluarse como Verd o Falso, o como un tipo de datos que sea implcitamente convertible a Booleano. instruccionesSi Opcional en formato de mltiples lneas; se requiere en formato de una sola lnea. Una o ms instrucciones a ejecutarse si condicin es Verd. instruccionesSino Opcional en formato de mltiples lneas; se requiere en formato de una sola lnea que tenga una clusula SiNo. Una o ms instrucciones a ejecutarse si condicin es Falso. FinSi Termina un bloque Si...FinSi.

Comentarios Puede utilizar la forma de una sola lnea para pruebas cortas y sencillas. Sin embargo, el formato de mltiples lneas proporciona ms estructura y flexibilidad que el formato de una sola lnea y, generalmente, es ms fcil de leer, mantener y depurar. Con el formato de una sola lnea, es posible ejecutar varias instrucciones como resultado de una decisin del bloque Si. Todas las instrucciones deben estar en la misma lnea y separadas por el carcter punto y coma, como en el ejemplo siguiente:
Si A > 10 Entonces A = A + 1 ; B = B + A ; C = C + B

La instruccin Si de varias lneas debe finalizar con una instruccin FinSi. Cuando se encuentra un bloque Si de mltiples lneas, se prueba condicin. Si condicin es Verd, se ejecutan las instrucciones que estn a continuacin. Si condicin es Falso se ejecutan las instrucciones que siguen a SiNo en caso de que est presente. La ejecucin contina con la instruccin que sigue a FinSi. La palabra clave Entonces es opcional en todos los casos. Sugerencia El bloque Seleccionar puede ser ms til cuando se evala una nica expresin que tiene varios valores posibles.

Page 196

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Bloque "Si" Bloque "Seleccionar"

Volver

Page 197

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Unin (Instruccin)
Se utiliza para declarar una unin y definir sus miembros. Unin nombre , miembros nombre Requerido. Nombre de la unin. Debe ser un identificador vlido. miembros Requerido. Miembros de la unin separados por comas.

Cada miembro de miembros tiene la siguiente sintaxis y partes: [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que el miembro es un puntero. nombre Requerido. Nombre del miembro. Debe ser un identificador vlido. [] Opcional. Indica que el miembro es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos del miembro.

Comentarios En una unin debe declararse por lo menos un miembro. No se podr inicializar el valor de los miembro de datos de una unin como parte de su declaracin. Se debe inicializar un miembro de datos despus de crear una instancia de la unin. El tipo de datos de un miembro de la unin puede ser la misma unin slo si el miembro es un puntero o una matriz dinmica. En cualquier otro caso ocurre un error al compilar. A diferencia de una estructura, los miembros de una unin comparten todos la misma porcin de memoria. Esto quiere decir que cuando un miembro de la unin cambia, todos los otros miembros cambian tambin. Es muy importante que una unin no posea miembros dinmicos, como por ejemplo una cadena o una matriz dinmica. Este tipo de miembros debe ser liberado cuando la unin no se utiliza ms, pero debido a que todos los miembros comparten la misma zona de memoria, Pauscal no puede saber a qu miembro tiene que liberar (tenga en cuenta que slo uno es vlido). Por esta razn, cuando Pauscal encuentra una unin con miembros dinmicos, se produce una advertencia.

Page 198

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Introduccin a las estructuras Uniones Estruc (Instruccin)

Volver

Page 199

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Var (Instruccin)
Es utilizada para declarar y asignar espacio de almacenamiento para variables. Var [ @ ] nombre [ [ [ tamao ] ] ] : tipo @ Opcional. Indica que la variable es un puntero. nombre Requerido. Nombre de la variable. Debe ser un identificador vlido. [] Opcional. Indica que la variable es una matriz. tamao Opcional si se incluye [ ]. Especifica el tamao de la matriz esttica. Si se omite, la matriz es una matriz dinmica. tipo Requerido. Tipos de datos de la variable.

Comentarios La instruccin Var declara variables globales y locales. Para declarar campos (variables de clase), utilice la instruccin ClaseVar. No se puede declarar una variable como matriz y puntero a la vez. Es posible declarar varias variables con una sola instruccin Var, separando las variables con comas. En el siguiente ejemplo se declaran tres variables de tipo Entero:
Var A,B,C:Entero

Tambin es posible mezclar tipos de datos en una misma instruccin Var. En el siguiente ejemplo se declaran dos variables de tipo Entero y una de tipo Cadena:
Var A,B:Entero, C:Cadena

Introduccin a las variables Matrices

Volver

Page 200

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Glosario C
Cdigo Nativo

Secuencia de instrucciones en formato binario que se ejecutan directamente por el procesador sin ningn tipo de intermediario.

E
Expresin

Combinacin de variables, constantes y operadores que puede ser evaluado como un valor.

P
Procedimiento

Secuencia de instrucciones. Un procedimiento posee un nombre que se utiliza para invocarlo (o llamarlo). Al llamar a un procedimiento, Pauscal ejecuta sus instrucciones.
Punto de Ejecucin

Lnea de cdigo que se est ejecutando actualmente, o, en el caso de que el programa est en pausa, lnea de cdigo que se ejecutar en el siguiente paso.
Punto de Interrupcin

Lnea de cdigo marcada de tal forma que produce una pausa en el programa cuando ste se ejecuta. Se emplea en el depurador.

T
Tiempo de Diseo

Referente al momento en que se disea la aplicacin, en contraste con el Tiempo de Ejecucin.


Tiempo de Ejecucin

Referente al momento en que la aplicacin se est ejecutando, en contraste con el Tiempo de Diseo
Tipo de Datos Elementales

Conjunto de tipos de datos que ofrece el lenguaje. Los tipos de datos elementales en Pauscal son: Entero, EnteroSig, Word, WordSig, Byte, ByteSig, Booleano, Real, Decimal y Cadena. (Ver Resumen de tipos de datos).

Volver

Page 201

ABC Amber CHM Converter Trial version, http://www.processtext.com/abcchm.html

Accesibilidad
La accesibilidad de un elemento de programacin indica qu tan visible es ese elemento en el programa. Existen dos valores de accesibilidad: pblico y privado. Un elemento pblico puede ser accedido desde dentro y fuera del mbito donde fue declarado. En cambio un elemento privado slo puede ser accedido desde dentro del mbito donde fue declarado. Por ejemplo, un mtodo privado de una clase slo puede ser llamado desde dentro de esa clase. La instruccin Pblico indica que las instrucciones siguientes declaran elementos pblicos. Anlogamente la instruccin Privado indica que las declaraciones son privadas. Si no se especifica ninguna accesibilidad, se toma por defecto la accesibilidad pblica. Las instrucciones de accesibilidad se emplean de la siguiente manera:
accesibilidad : [ declaraciones ]

La accesibilidad afecta las siguientes declaraciones: procedimientos variables estructuras clases mtodos propiedades campos En el siguiente ejemplo, el mtodo iInit es privado, y el mtodo RealizarClculos es pblico.
Clase cPrueba Privado: Proc iInit ' Cdigo de inicializacin FinProc Constructor:iInit Pblico: Proc RealizarClculo ' Cdigo que realiza el clculo FinProc FinClase

Los elementos de programacin de Pauscal son por defecto pblicos si no se especifica su accesibilidad.

Volver

Page 202

You might also like