MINI CURSO DE PROGRAMACIÓN EN DELPHI DANIEL EDUARDO SALAS USECHE SE PERMITE EL LIBRE USO DE ÉSTE DOCUMENTO MIENTRAS SE MANTENGA CLARA Y PÚBLICA LA

Tamaño: px
Comenzar la demostración a partir de la página:

Download "MINI CURSO DE PROGRAMACIÓN EN DELPHI DANIEL EDUARDO SALAS USECHE SE PERMITE EL LIBRE USO DE ÉSTE DOCUMENTO MIENTRAS SE MANTENGA CLARA Y PÚBLICA LA"

Transcripción

1 MINI CURSO DE PROGRAMACIÓN EN DELPHI DANIEL EDUARDO SALAS USECHE SE PERMITE EL LIBRE USO DE ÉSTE DOCUMENTO MIENTRAS SE MANTENGA CLARA Y PÚBLICA LA FUENTE Y EL AUTOR

2 Capítulo 1 Introducción 1.1 Introducción a Delphi La introducción a la herramienta es la creación del programa Hola Mundo. Éste es el primer paso típico para aprender a usar cualquier herramienta de desarrollo. Al abrir Delphi, se crea automáticamente un programa nuevo que está listo para correr. Es una ventana de windows vacía que no hace nada. Solamente se le puede cambiar el tamaño, cambiar de posición, minimizar y maximizar. El programador no tiene que hacer nada para que esto funcione, Delphi lo hace automáticamente. Figura 1-1 Presentación de Delphi al Iniciar En la Figura 1-1 se puede ver la pantalla de Delphi cuando abre. La ventana con el título Form1 es la interfaz gráfica del programa que se está creando. Las ventanas de interfaz gráfica se conocen como Formas. Allí se pueden colocar botones, cajas Material Curso Daniel Eduardo Salas Useche 2

3 de texto, dibujos, y cualquier otro objeto que el programador quiera que se vea en su programa. En la ventana con el título Unit1.Pas, se encuentran 2 paneles. El primero muestra el explorador de código y el segundo los archivos de código. El explorador de código permite navegar por los puntos importantes de la sintaxis de pascal OO 1. En el panel de archivos de código se pueden ver una o varias pestañas. En la Figura 1-1 se puede observar la pestaña con el nombre Unit1. Allí se encuentra el código que define los objetos que existen en la Forma Form1 las funciones y procedimientos asociadas a los botones, cajas de texto, etc. En el título de la ventana de Delphi se puede observar el nombre que se asignará al programa que se está creando. En éste caso es Project1. Esto significa que el archivo del proyecto se llamará Project1.dpr y el archivo ejecutable del programa que se está creando será Project1.exe. Al proceso de ejecutar el programa para probarlo se le llama CORRER el programa. Para CORRER el programa Project1, presione F9, o use el botón. Para cerrar el programa Project1, hágalo como en cualquier otro programa de windows. Figura 1-2 Ventana de Comandos de Delphi En la ventana de comandos de Delphi se puede observar el panel de componentes (Ver Figura 1-2, cuadro resaltado). Allí se encuentran los objetos gráficos que se pueden añadir a las Formas, como botones, cajas de texto, CheckBox, Menús, ComboBox, etc. Para añadir un componente a una Forma, se hace click en el componente y luego se hace click en la forma. La apariencia de Delphi después de añadir un Botón a la Forma, se puede observar en la Figura Orientado a Objetos Material Curso Daniel Eduardo Salas Useche 3

4 Figura 1-3 Añadiendo Componentes en una Forma El cuadro resaltado muestra el Inspector de Objetos. Éste muestra las propiedades de los componentes. Para ver las propiedades de un Objeto usando el inspector de objetos, selecciónelo y presione F11. En la Figura 1-3 el inspector de objetos muestra las propiedades del botón que se encuentra seleccionado: Button1. Allí se pueden editar propiedades como el Nombre del botón, el caption (Texto que se ve en el botón), tamaño, posición, fuente del mensaje, etc. Para colocar un mensaje sobre el botón, se hace click en la propiedad caption del inspector de objetos y se escribe el mensaje deseado (Ver Figura 1-4). Material Curso Daniel Eduardo Salas Useche 4

5 Figura 1-4 Colocando Caption a un Botón De la misma manera, modifique el nombre del botón de Button1 a BtnMensaje. Para indicar lo que el programa debe hacer cuando el usuario final oprima el botón, se hace doble click sobre el botón. Entonces, Delphi crea el código necesario para empezar a programar la acción del botón y lo muestra (Ver Figura 1-5). Las instrucciones que se programarán al click se escriben entre el y el end. En éste caso se escribirá únicamente la siguiente línea de código: ShowMessage('Hola Mundo'); Después de esto, presione F9 para correr el programa. Al oprimir el botón Ejecutar ( BtnMensaje ) aparecerá la ventana. Material Curso Daniel Eduardo Salas Useche 5

6 Figura 1-5 Código Inicial para escribir el procedimiento a ejecutar cuando el usuario final oprima el botón BtnMensaje En el panel de componentes en la pestaña Standard, el quinto componente que se encuentra es el Edit. Coloque un Edit en la Forma Form1 y modifíquele las siguientes propiedades: - Name: txtmensaje - Text: Luego, entre al código del click del botón BtnMensaje y agregue la línea: txtmensaje.text:='hola Mundo'; La nueva apariencia de la ventana de código se puede observar en la Figura 1-6. txtmensaje es el nombre de la caja de texto. El operador punto se usa para acceder a las propiedades de los objetos. En éste caso se accede a la propiedad Text, que es la que almacena el mensaje del componente Edit. Material Curso Daniel Eduardo Salas Useche 6

7 Figura 1-6 Modificación al código del click del botón BtnMensaje Corra nuevamente el programa Project1. Al oprimir el botón Ejecutar, aparecerá el mensaje Hola Mundo en la ventana que crea la función ShowMessage. Al oprimir el botón Aceptar de ésta ventana, el mensaje aparecerá en la caja de texto. Para cada programa que realice en Delphi, cree una carpeta para guardar allí todos los archivos que se requieren, las formas, archivos de código, archivo de proyecto, archivos compilados, archivos gráficos, copias de seguridad y ejecutable. En cualquier parte del código puede oprimir CONTROL + ESPACIO para observar una ventana en la que puede observar y escoger los objetos y propiedades que tiene disponibles para modificar (Ver Figura 1-7). Si no aparece, significa que hay un error de compilación. Material Curso Daniel Eduardo Salas Useche 7

8 Figura 1-7 Uso del CodeCompletion 1.2 Tipos de Variables en Pascal Delphi Existen tipos básicos de variables de Pascal y otros introducidos por Delphi. En éste numeral se explican solo aquellos que se usan según los patrones de software que se explican más adelante Tipos Univalor RANGO Integer Double 5.0 x 10 ^ x 10 ^ 308 Tabla 1-1 Tipos numéricos Material Curso Daniel Eduardo Salas Useche 8

9 DESCRIPCIÓN Char Un caracter String Cadena dinámica automática de hasta 255 caracteres Tabla 1-2 Tipos de manejo de texto Boolean DESCRIPCIÓN Almacena un valor de verdad: T o F Tabla 1-3 Tipo Booleano La Tabla 1-1, la Tabla 1-2 y la Tabla 1-3 muestran los tipos de variables que se utilizarán para cumplir los patrones de software en cuanto a implementación. El tipo Char se utiliza solamente cuando se intentan usar funciones externas (desde una dll) que requieren entradas de éste tipo. En general, cuando se quiere manejar un solo carácter se utiliza una variable tipo String. El tipo String permite la copia automática, por ejemplo: var MyString: String; MyString:= Carro ; En la variable MyString que es de tipo String se copia la cadena Carro. En otros lenguajes como C o JAVA es necesario copiar caracter por caracter a las distintas posiciones de la cadena. Es decir, el primer caracter se copia a la primera posición de la cadena, el segundo a la segunda posición, etc. Por ésta misma razón también se pueden asignar variables String entre si: var MyAndereString: String; MyAndereString:=MyString; En C o JAVA la anterior asignación ponía a MyAndereString a apuntar a la misma cadena MyString. En Delphi, se crea una nueva cadena, la nueva cadena se copia de la original y se asigna a MyAndereString. Y todo esto lo hace automáticamente. Y también se pueden realizar comparaciones entre variables de tipo String automáticamente: if MyAndereString = MyString then Material Curso Daniel Eduardo Salas Useche 9

10 En C o JAVA se requeriría comparar caracter por carácter. Las propiedades de tipo texto de los componentes son String también. Por ejemplo, la propiedad Caption de un botón, o la propiedad Text de un Edit. Por esto es que se pueden realizar asignaciones como: txtmensaje.text:='hola Mundo'; BtnMensaje.Caption:='Oprima este Botón'; A veces se requiere obtener números escritos por el usuario a partir de las cajas o archivos de texto. En éste caso es necesario convertir un String en Integer o Double. Por ejemplo, si se requiere convertir el String 123 en el número 123, se utiliza la siguiente instrucción: var MyNum: Integer; MyString: String; MyString:= 123 ; MyNum:=StrToInt(MyString); Si se requiere convertir un número con decimales: var MyNum: Double; MyString: String; MyString:= ; MyNum:=StrToFloat(MyString); Para realizar el proceso inverso, y convertir un número en una cadena para poder mostrarlo por pantalla se usa FloatToStr o IntToStr. Un Integer puede asignarse a un Double sin problema. Pero para asignar un Double a un Integer se debe usar alguna de las dos funciones que se encuentran en el código a continuación: var MyInt: Integer; MyDouble: Double; MyInt:=3; MyDouble:=MyInt; MyDouble:=3.456; MyInt:=trunc(MyDouble); MyInt:=round(MyDouble); //Integer a Double se asigna sin problema //Double a Integer se puede usar ésta función //O ésta función Material Curso Daniel Eduardo Salas Useche 10

11 Si se utiliza la función round, el Double es redondeado al entero más cercano y luego se asigna al Integer. Si se utiliza la función trunc, primero se redondea al entero inmediatamente menor al Double, y luego se asigna al Integer. Los String se pueden concatenar con el operador + : MyString1:= Hola ; MyString2:= Mundo ; MyString3:=MyString1 + + MyString2; //Aqui, MyString3 es igual a Hola Mundo El tipo Booleano almacena un valor de verdad. Esto quiere decir que almacena un TRUE o un FALSE. Para asignar un valor de verdad a una variable Booleana, se puede asignar como si fuera una constante, o a partir de una condición lógica. var MyBoolean: Boolean; MyBoolean:=true; MyBoolean:=false; MyBoolean:=( a > b ); //Si a es mayor que b, MyBoolean será true, sino, será false Tipos Multivalor (Vectores) En Delphi existen dos tipos de vectores. Vectores estáticos o dinámicos. Los vectores estáticos son aquellos que definen su tamaño desde su declaración. Los vectores dinámicos pueden definir y cambiar su tamaño con valores desconocidos en tiempo de diseño a lo largo de todo su ciclo de vida. Sintaxis de declaración de vectores estáticos: var ArrayName: array[initindex..endindex] of Type; ArrayName es el nombre de la variable vector declarada. InitIndex es el índice del primer elemento del vector. EndIndex es el índice del último elemento del vector. Si se declara un vector usando InitIndex igual a 4 y EndIndex igual 12, se tendrá un vector cuyo primer elemento es ArrayName[4] y cuyo último elemento es ArrayName[12]. Type es el tipo de las variables almacenadas en el vector. Ejemplo: var MyNumeros: array[2..9] of Integer; //Es una lista de 8 enteros. Sintaxis de declaración de vectores dinámicos: Material Curso Daniel Eduardo Salas Useche 11

12 var ArrayName: array of Type; Para definir el tamaño de los vectores dinámicos, Delphi provee la siguiente instrucción: SetLength(ArrayName,NewLength); Ésta instrucción permite asignar un tamaño a un vector dinámico. asignado es un número entero variable o constante. El nuevo tamaño Asignación de tamaño con valor variable: var Tam: Integer; var MyArray: array of Boolean; Tam:=.. ; SetLength(MyArray,Tam); Asignación de tamaño con valor constante: var MyArray: array of Boolean; SetLength(MyArray,12); El tamaño de un vector dinámico se puede cambiar en cualquier momento del ciclo de vida del vector. Si el tamaño del vector dinámico crece, los nuevos espacios son creados pero están desocupados. Si el tamaño del vector disminuye, se pierden los datos en las posiciones mayores al nuevo tamaño. Uso de Vectores: Para acceder a un valor almacenado en un vector, se requiere el nombre del vector y la posición en la cual está almacenado. Con esto, ya se puede acceder al valor para lectura o escritura: var Aux: Type; var MyArray: array of Type; var Posicion: Integer; SetLength(MyArray,10); Material Curso Daniel Eduardo Salas Useche 12

13 Posicion:=.. ; Aux:=MyArray[Posicion]; // Lectura de una posición de un vector Aux:= ; MyArray[4]:=Aux; // Escritura en una posición de un vector El acceso a variables en vectores es igual para vectores estáticos o dinámicos. 1.3 Sintaxis Global El programa que se crea en Delphi está conformado por distintos archivos. El principal de ellos es el archivo del proyecto, que tiene extensión DPR. También están los archivos de Formas (Extensión DFM) y los de código de unidades (Extensión PAS). El archivo de proyecto es creado automáticamente por Delphi, lo mismo que los archivos de Formas. Los archivos de código de unidades son creados parcialmente por Delphi y completados por el programador. Por ésta razón, éste numeral hace énfasis solamente en los archivos de código de unidades. La sintaxis principal consta de las siguientes palabras reservadas: unit interface implementation end. Después de la palabra unit se coloca el nombre de la unidad, que es el mismo nombre de archivo pero sin extensión. Entre la interface y la implementation se coloca código que es visible para otras unidades, y que permite a la unidad comunicarse con otras partes del programa. Entre la implementation y el end. se coloca el código que define la implementación de las declaraciones realizadas en la parte de interface. Se debe tener cuidado especial con éste end.. Otros end en el código de Pascal, no tienen signo de puntación al final o tienen un punto y coma:. El end. que define el final del archivo de la unidad es el único que es seguido de un punto. Cualquier cosa que sea escrita después de end. es ignorada por el compilador de Pascal OO. Material Curso Daniel Eduardo Salas Useche 13

14 Cuando se requiere utilizar otra unidad del proyecto, debe colocarse después de la palabra uses. Por ejemplo: unit Unit1; interface uses Unit2,Unit3,Unit4; implementation uses Unit5,Unit6,Unit7; end. Para declarar nuevos tipos de variables o clases de objetos se debe incluir primero la palabra type. Para declarar variables globales se deben colocar después de la palabra var. Estas palabras reservadas, al igual que el uses, se puede colocar en la interface o en la implementation. Sin embargo, deben seguir siempre el orden uses, type, var. A continuación se presenta un ejemplo del caso general: unit Unit1; interface uses Unit2,Unit3,Unit4; type MyNuevoTipo = record MyAndereTipo = class var MyVar: Eintippen; MyAndereVar: Anderetippen; //Aquí se declaran funciones y procedimientos compartidos implementation uses Unit5,Unit6,Unit7; type MyNeuTipo = record MyOtroTipo = class Material Curso Daniel Eduardo Salas Useche 14

15 var MiVariable: UnTipo; MyOtraVar: OtroTipo; //Aquí van las implementaciones de las funciones y procedimientos compartidos y no //compartidos. Los no compartidos, pueden tener o no tener declaración, en //cualquier caso, si no es compartido debe estar dentro de la implementation. end. 1.4 Procedimientos y Funciones Los procedimientos y funciones son agrupaciones de instrucciones. En un procedimiento o función, se puede mantener un conjunto de instrucciones para utilizarlas en algún momento, por ejemplo, cuando el usuario hace click sobre algún botón. Sin éstas agrupaciones, un programa constaría de una lista gigantesca de instrucciones, difícil de entender, mantener, evolucionar e incluso difícil de escribir por primera vez. Cuando se hace doble click en un botón de una Forma, para ingresar al código del click del botón, Delphi escribe automáticamente la declaración y la sintaxis básica de la implementación de un nuevo procedimiento. Por esto es que el programador puede simplemente escribir las instrucciones en ese punto, sin tener que pensar en la declaración de los procedimientos. La declaración automática del procedimiento de click se puede observar en la Figura 1-8. Nótese que la declaración del procedimiento se encuentra al interior del código de declaración de la clase TForm1. Material Curso Daniel Eduardo Salas Useche 15

16 Figura 1-8 Declaración automática del procedimiento BtnMensajeClick La implementación del procedimiento que crea Delphi automáticamente se puede observar en la Figura 1-9. Esto significa que el procedimiento es parte de la clase TForm1. Por esto, el encabezado de la implementación inicia con TForm1 seguido de un punto y del nombre del procedimiento. Los procedimientos asociados a componentes siempre generan su propia declaración y el código básico de la implementación. No debe intentarse crear manualmente éste código. Por ejemplo, la declaración e implementación del click del botón no funcionará si es escrita por el programador, solo si es creada a partir del componente botón (En éste caso al hacer doble click sobre el botón). Material Curso Daniel Eduardo Salas Useche 16

17 Figura 1-9 Código básico de la implementación del procedimiento BtnMensajeClick El programador puede crear sus propios procedimientos o funciones. Los procedimientos creados por el programador se hacen para ser utilizados o llamados desde los procedimientos automáticos o desde otros procedimientos creados por el programador. Se pueden declarar procedimientos al interior de la declaración de la clase de la Forma. En éste caso, el procedimiento creado es parte de la forma, pero esto no lo hace un procedimiento automático, sigue siendo manual (Ver Figura 1-10). El código básico de la implementación se puede generar colocando el cursor en la línea de la declaración del procedimiento y oprimiendo SHIFT + CNTRL + C. En el encabezado de la implementación se debe anteponer el nombre de la clase y un punto al nombre del procedimiento (Ver Figura 1-11). Material Curso Daniel Eduardo Salas Useche 17

18 Figura 1-10 Declaración de procedimientos manuales al interior de la declaración de clase de la Forma Cuando se están programando funciones o procedimientos que tienen que ver con el manejo de la interfaz, se recomienda colocarlos al interior de la clase de la Forma. Cuando se trata de funciones que tienen que ver con cálculos matemáticos, acceso a bases de datos, archivos, o todo lo que tenga que ver con las funciones que debe prestar el programa, se recomienda declarar e implementar el procedimiento por fuera de la clase de la Forma (Ver Figura 1-12 y Figura 1-13). Sin embargo, por calidad de software, cada archivo o unidad debe mantener solo algún tipo de algoritmos. En particular, la unidad que guarda el código de la Forma, en éste caso Unit1.pas, solo debe guardar funciones y procedimientos que tienen que ver con la interfaz. Esto significa, que en Unit1.pas todos los procedimientos y funciones automáticos y declarados por el programador, deberían estar al interior de la declaración de la forma. Si se requiere un procedimiento que no tenga que ver con la interfaz, éste no solo debe estar afuera de la Forma, sino afuera de la unidad, declarado en otro archivo. Material Curso Daniel Eduardo Salas Useche 18

19 Figura 1-11 Código básico de un procedimiento manual que ha sido declarado al interior de la clase de una forma El uso de procedimientos y funciones que se encuentran en un archivo distinto, se explica más adelante. Al declarar procedimientos que se encuentran afuera de la declaración de la Forma, no se puede utilizar SHIFT + CNTRL + C, se debe escribir todo el código manualmente. Además se debe tener en cuenta que la implementación del procedimiento debe colocarse después de cualquier declaración de tipo uses, type, var y directivas del compilador. Las directivas del compilador son líneas que se encuentran entre {}, pero cuyo primer caracter es el signo $ (Ver Figura 1-13). Los procedimientos son subrutinas que agrupan instrucciones. Las funciones hacen lo mismo pero permiten retornar una respuesta. Por ejemplo, se puede crear una función de tipo String. Ésta función retorna una respuesta de tipo String. Las funciones se pueden declarar e implementar en las mismas partes del código que los procedimientos. Sin embargo la sintaxis cambia un poco: function MyFunction: Integer; Material Curso Daniel Eduardo Salas Useche 19

20 Figura 1-12 Procedimiento declarado afuera de la clase de la Forma Figura 1-13 Código básico de la implementación de un procedimiento que está por fuera de la clase de la forma Material Curso Daniel Eduardo Salas Useche 20

21 Esta línea de código declara una función, que retorna una respuesta de tipo Integer. La implementación de ésta función puede ubicarse en los mismos sitios donde se ubica una implementación de un procedimiento. Lo único adicional que debe tenerse en cuenta es la especificación del resultado de la función. Esto se hace a través de la palabra reservada Result: function MyFunction: Integer; function MyFunction: Integer; Result:=34; Ésta función retorna el Integer Variables en Procedimientos y Funciones Al interior de las funciones y procedimientos se utilizan variables locales y variables que llegan como parámetros. Los parámetros se especifican en la declaración y en el código básico de la implementación, para cada uno se debe especificar el tipo, por ejemplo: procedure MyProcedimiento(Param1: Integer; Param2: Double; Param3: String); function MyFunction(Param1: Integer; Param2: Double; Param3: String): Double; procedure MyProcedimiento(Param1: Integer; Param2: Double; Param3: String); ShowMessage(FloatToStr(Param1 + Param2) + Param3); function MyFunction(Param1: Integer; Param2: Double; Param3: String): Double; Material Curso Daniel Eduardo Salas Useche 21

22 Result:=Param2 / 35; Los parámetros pueden ser utilizados al interior de la función. Si se necesitan más variables se pueden crear variables locales. Éstas se declaran antes del y cada una debe especificar su tipo: procedure MyProcedure(Param1: Integer; Param2: String); var MyVar1: Integer; MyVar2: Double; MyVar3: String; 1.6 Sintaxis Instrucciones Básicas Las instrucciones básicas son el for, while, if else. El if es la instrucción de bifurcación. Permite ejecutar un grupo de instrucciones u otro dependiendo de una condición. Si la condición es verdadera, se ejecuta el grupo de instrucciones del if, sino, se ejecuta el grupo de instrucciones del else. La condición es una variable Booleana. if Condicion then end else Nótese que a diferencia de otros end, el end que está antes del else no tiene punto y coma. Esto es por una condición de Pascal que dice que antes de un else nunca puede ir un punto y coma. Material Curso Daniel Eduardo Salas Useche 22

23 En la condición puede especificarse el nombre de alguna variable Booleana, una condición lógica o una función que retorne una variable Booleana. Ejemplo de if con variable Booleana: var MyBoolean: Boolean; if MyBoolean then Ejemplo de if con condición lógica: if (( a > b ) and ( c > d )) or ( m = n ) then Ejemplo de if con función Booleana: function MyFunction: Boolean; Result:=true; if MyFunction then La estructura if else que se acaba de mostrar es útil cuando se tienen dos posibles condiciones. Que se cumpla el condicional, o que no se cumpla. Pero si se tienen 3 posibles condiciones se debe modificar la estructura. if Condicion1 then end else if Condicion2 then end Material Curso Daniel Eduardo Salas Useche 23

24 else Esta estructura puede seguirse expandiendo según la cantidad de condiciones que se tengan. El for se utiliza para ejecutar un grupo de instrucciones cierta cantidad de veces. La cantidad de repeticiones se conoce justo antes de empezar a correr el for o desde antes. Tiene 3 variables. El contador de ciclos, el valor de inicio y el valor final. for Counter:= Val_Ini to Val_Fin do En el ejemplo anterior, las instrucciones entre el y el end se realizan: Val_Fin Val_Ini + 1 Veces. En el primer ciclo, Counter vale Val_Ini. En el último ciclo, Counter vale Val_Fin. En cualquier ciclo se puede acceder a Counter. Después de terminadas todas las repeticiones, el valor almacenado en Counter es INCIERTO. Cuando no se conoce la cantidad de veces que se debe correr el procedimiento, ni siquiera justo antes de que empiece a ejecutarse (Como por ejemplo la rutinas que evalúan resultados por ensayo y error), entonces se usa un while. El while tiene una única variable. Es una variable Booleana que es evaluada antes de cada ciclo. El grupo de instrucciones se sigue repitiendo mientras la variable Booleana (que se conoce como la condición del while), tenga valor true. while Condicion do Material Curso Daniel Eduardo Salas Useche 24

25 El while evalúa la condición antes de ejecutar las instrucciones. condición es false, detiene las repeticiones. Si encuentra que la Como condición puede colocarse el nombre de una variable Booleana o una función o condición lógica que retorne una variable Booleana. Ejemplo de while con nombre de variable Boolena: var MyBoolean: Boolean; MyBoolean:=true; while MyBoolean do Ejemplo de while con condición lógica: while a > b do Otro ejemplo de while con condición lógica: while ( a > b ) and ( c < d ) do Otro ejemplo de while con condición lógica: while (( a > b ) and ( c > d )) or ( m = f ) do En el ejemplo anterior es importante notar que la condición de igualdad se realiza con un solo símbolo de igual, a diferencia del lenguaje C que se realiza con doble igual (Ver Tabla 1-4). Material Curso Daniel Eduardo Salas Useche 25

26 Condicional Asignación C == = Pascal = := Tabla 1-4 Signo igual en C y Pascal Ejemplo de while con una función que retorna un Boolean: function MyFunction(Param1: Integer): Boolean; function MyFunction(Param1: Integer): Boolean; if Param1 = 1 then Result:=true else Result:=false; var MyInteger: Integer; while MyFunction(MyInteger) do 1.7 Indentación La indentación es uno de los parámetros más importantes de la calidad de software. Se refiere a la organización del código al interior de las funciones en la sintaxis de cada una de las instrucciones. Cuando se habla del nivel de indentación, esto se refiere a la distancia que hay entre el margen izquierdo y la primera palabra de la instrucción Agrupamiento de instrucciones Material Curso Daniel Eduardo Salas Useche 26

27 El agrupamiento de instrucciones en Pascal se hace a través de las palabras reservadas y end. Éstas palabras deben ir al mismo nivel que la instrucción que realiza el agrupamiento, por ejemplo: procedure MyProcedimiento(Param1: Integer); No se debe escribir: procedure MyProcedimiento(Param1: Integer); Tampoco se debe escribir: procedure MyProcedimiento(Param1: Integer); Otros ejemplos correctos son: for i:=1 to 1000 do while a > b do Instrucciones Cada instrucción dentro de un agrupamiento de instrucciones debe ubicarse a un nivel inferior al de las palabras reservadas, end que limitan el agrupamiento. Esto significa deben estar más a la derecha. Siempre que se requiera disminuir el nivel de indentación de una instrucción, se realiza añadiendo dos espacios antes de la instrucción. procedure MyProcedure(Param1: Integer); Material Curso Daniel Eduardo Salas Useche 27

28 ShowMessage(IntToStr(Param1)); // Antes de ésta instrucción hay 2 espacios function MyFunction(Param1: Double):Double; var i: Integer; MyProcedure(2); // Antes de ésta instrucción hay 2 espacios for i:=1 to 1000 do MyProcedure(i); // Antes de ésta instrucción hay 4 espacios Result:=2 + Param1; 1.8 Ejercicios del Capítulo Programa Calculadora 1. Manejo básico de interfaz. 2. Manejo básico de sintaxis. 3. Manejo de ciclos e introducción a métodos de ensayo y error si incluye el cálculo de raíz cuadrada. 4. Manejo y conversión de tipos básicos de variables. Si se incluye el uso del RadioButton también sirve como introducción al manejo de variables Booleanas Programa Contar Letras 1. Manejo de String. 2. Manejo de vectores. 3. Uso de ciclos. Material Curso Daniel Eduardo Salas Useche 28

29 1.8.3 Programa Calcular Primos 1. Uso de todos los temas introducidos. 2. Aplica para introducir al estudiante a técnicas de calidad de software. Material Curso Daniel Eduardo Salas Useche 29

30 Capítulo 2 Introducción a Objetos Este capítulo introduce a los conceptos de software orientado a objetos, a partir del método inmediatamente anterior históricamente. Se parte de conceptos de la programación basada en procedimientos independientes y el uso de estructuras de datos estáticos. Uniendo éstos dos conceptos, y aplicando filosofías de calidad de software, se llega a la programación orientada a objetos. Figura 2-1 Esquema RESUMIDO del cambio en el concepto de la programación La Figura 2-1 muestra un esquema de la reorganización en conceptos que implica la programación basada en objetos. Los círculos pequeños indican que existen otros conceptos pero no todos serán tenidos en cuenta en éste curso. 2.1 Estructuras Material Curso Daniel Eduardo Salas Useche 30

31 Las estructuras son definiciones de tipos de variables a partir del agrupamiento de otras variables de tipos conocidos. Se puede explicar con el siguiente ejemplo. Se desea hacer un programa que maneja empleados. manejar los siguientes datos: Para cada empleado se quiere - Cédula - Nombres - Apellidos - Número de hijos - Entidad prestadora de Salud - Entidad administradora de Cesantías - Estatura (metros) El almacenamiento de datos se podría hacer creando 7 vectores. guardaría un listado de cédulas, el segundo, un listado de nombres, etc. El primer vector Sin embargo ésta solución hace que no exista en sí una variable EMPLEADO que almacene todos los datos del empleado. Simplemente el programador se imagina que existe, y accede a la posición correspondiente en los vectores. Nada garantiza que todos los vectores tienen el mismo tamaño, y por esto, no se puede garantizar la coherencia de todos los datos. La otra forma de almacenar los datos es creando un nuevo tipo de datos que almacene todo lo concerniente al empleado, y hacer un vector de éste nuevo tipo. En Pascal, ésta estructura se crearía de la siguiente forma: TEmpleado = record Cedula: String; Nombres: String; Apellidos: String; NumHijos: Integer; EntidadSalud: String; EntidadCesantias: String; Estatura: Double; El código anterior se debe colocar en el sector type del archivo de código del programa. Ver Numeral 1.3. El vector de empleados se declararía así: Material Curso Daniel Eduardo Salas Useche 31

32 var Empleados: array of TEmpleado; El acceso a los datos guardados al interior de una variable de tipo estructura, se hace a través del operador punto: Empleados[2].Cedula:= ; // Escritura Aux:=Empleados[4].Cedula; //Lectura El concepto importante que se debe recordar de las estructuras, es que permiten encapsular todos los datos que tienen que ver con alguna entidad en particular, en éste caso el empleado Ejercicio Hacer un programa que permita ingresar nuevos empleados, borrar empleados, editar datos de empleados y que se puedan guardar los datos en el disco duro. 2.2 Clases, Abstracción, Encapsulamiento Las clases son para los objetos lo que los tipos son para las variables. Cuando se quiere utilizar una variable, ésta debe ser de algún tipo. Cuando se quiere utilizar un objeto, éste debe ser de alguna clase. Las estructuras solamente encapsulaban los datos de las entidades a las que representaban. Esto evitaba el desorden de tener cada propiedad en una sitio distinto. Sin embargo, las entidades del mundo real que se requieren modelar, no solo tienen datos, también tienen una funcionalidad. Esto se refiere al movimiento de los datos, cambios en la estructura, servicios que debe prestar, acciones que ejecuta, etc. Las estructuras son insuficientes para encapsular la funcionalidad. Las necesidades de unas estructuras se mezclan con las de otras creando desorden, pues nada garantiza que al modificar el código de una función, el cambio va a funcionar bien en todas las estructuras para las cuales se creó. La programación orientada a objetos, permite encapsular TODO lo concerniente a una entidad: sus datos y su funcionalidad. Cuando se hace un programa, hay entidades del mundo real que se quiere modelar en el computador. Cuando se identifican los datos de la entidad y se define su funcionalidad (al menos la parte de la funcionalidad que se quiera programar), la entidad puede modelarse con una CLASE. Cuando se logra definir una clase completamente a partir de una entidad del mundo real, se dice que dicha entidad a sido abstraída. A esto se refiere el concepto de abstracción del título. Material Curso Daniel Eduardo Salas Useche 32

33 Figura 2-2 Clases y tipos El concepto de encapsulamiento no solo implica que la entidad es autosuficiente en datos y funcionalidad. También, que no debe poder ser alterada desde el exterior de manera descontrolada. Esto es porque, ya que la clase es responsable de los servicios que debe prestar, requiere también garantizar en todo momento la coherencia de sus datos internos. Por ejemplo, una clase puede tener datos internos en los que unos dependen de otros. Es posible entonces que al modificar algún dato, se requiera la modificación de otro, o al menos su revisión. La clase tiene la obligación de prestar el servicio de realizar ésta revisión. Para poder cumplir ésta función, requiere que no se tenga acceso desde el exterior a datos sensibles a daños Sintaxis La siguiente es la sintaxis de declaración de clases en Pascal OO: (Debe ubicarse en el sector type del archivo de código, ver Numeral 1.3) TClaseName = class(clasenameinhertisfrom) Material Curso Daniel Eduardo Salas Useche 33

34 private PrivateVars; PrivateProperties; PrivateProcedures; protected ProtectedVars; ProtectedProperties; ProtectedProcedures; public PublicVars; PublicProperties; PublicProcedures; published PublishedVars; PublishedProperties; PublishedProcedures; TClaseName Nombre de la clase que se está creando ClaseNameInheritsFrom Nombre de la clase de la cuál se hereda (Ver Numeral 2.3) P Vars Declaraciones de variables: VariableName: Type; VariableName Nombre de la variable que se declara Type Tipo de la variable P Properties Declaraciones de propiedades: property PropertyName: UserClassType read ReadFunction write WriteFuncion; PropertyName Nombre de la propiedad UserClassType Tipo de variable que simulará ante el usuario de la clase ReadFunction Función que retorna un UserClassType y que se usa cuando el usuario de la clase desea leer la propiedad WriteFunction Función o procedimiento que recibe un UserClassType como parámetro y que se usa cuando el usuario de la clase desea escribir en la propiedad Material Curso Daniel Eduardo Salas Useche 34

35 Las clases permiten realizar 4 tipos de declaraciones: Privadas, Protegidas, Públicas y Publicadas. A las declaraciones privadas solo se tiene acceso desde las funciones internas de la clase. A las declaraciones protegidas se tiene acceso solamente desde las funciones internas de la clase que se declara y las clases que hereden de ella. A las declaraciones publicas se tiene acceso desde cualquier unidad que use a la unidad en la que se está declarando la clase. Las declaraciones publicadas son un servicio de Delphi, no de Pascal OO. Se trata de declaraciones públicas cuyos valores iniciales pueden ser editados gráficamente en tiempo de diseño Properties Las propiedades que se especifican como properties son un servicio de Delphi, que permite hacer declaraciones que aparentan ser variables desde el exterior de la clase. Sin embargo, al interior de la clase, permiten un control de las cosas que el usuario de la clase intenta hacer con la variable. Para esto, definen un procedimiento de lectura y otro de escritura, que se interponen a cualquier modificación directa desde el exterior. Ejemplo: TMyClase = class(tobject) private MyNumero: Integer; procedure EscribirNumero(Numero: Integer); function LeerNumero: Integer; public property Numero: Integer read LeerNumero write EscribirNumero; function LeerNumero: Integer; Result:=MyNumero; procedure EscribirNumero(Numero: Integer); Material Curso Daniel Eduardo Salas Useche 35

36 MyNumero:=Numero; Universidad de los Andes var MyObjeto: TMyClase; Aux: Integer; Aux:=MyObjeto.Numero; //En lectura. Lo que realmente ocurre aquí, es que se //llama a la función LeerNumero, y el resultado se asigna //a Aux MyObjeto.Numero:=Aux; //En escritura. Lo que realmente ocurre aquí, es que se //llama al procedimiento EscribirNumero, con el //parámetro Aux; Ejemplo TCarro = class(tobject) private NumRuedas: Integer; MyColor: Integer; procedure SetColor(Color: String); function GetColor: String; public constructor Init; property NumRuedas: Integer read NumRuedas write NumRuedas; property Color: String read GetColor write SetColor; destructor Destroy; override; procedure TCarro.SetColor(Color: String); if Color = Rojo then MyColor:=1 else if Color = Verde then MyColor:=2 else Material Curso Daniel Eduardo Salas Useche 36

37 MyColor:=3; Universidad de los Andes function TCarro.GetColor: String; if MyColor = 1 then Result:= Rojo else if MyColor = 2 then Result:= Verde else Result:= Otro ; Nótese que el tipo interno de una variable, no necesariamente es el mismo tipo con el que el usuario la vé, cuando se usan properties. En éste caso, la variable COLOR se usa internamente como entero, pero para el usuario de la clase se trata de un String Constructores y Destructores Toda clase debe definir al menos un constructor y un destructor. En el ejemplo del Numeral 2.2.3, se puede observar que la clase declarada los tiene. Se trata de procedimientos que se declaran con la palabra reservada constructor o destructor en vez de function o procedure. Cuando se desea utilizar un objeto de una clase, no es suficiente con declararlo, como si ocurre con las variables de tipos simples. Después de declarar el objeto es necesario crearlo, y al terminar de usarlo debe ser destruido para que libere recursos del computador. El programador no tiene que escribir el código a través del cual se crea o destruye el objeto. Basta con declarar el constructor y el destructor. Al usarlos, Delphi automáticamente crea o destruye el objeto. Lo que se coloca al interior de los procedimientos constructores o destructores, es el código para llamar los constructores o destructores de las variables u objetos internos. También se acostumbra colocar allí valores de inicialización de las variables simples. No se recomienda hacer constructores con procedimientos internos complejos, ya que Delphi destruye al objeto que está creando cuando el constructor falla. Es mejor declarar una rutina de construcción y otra para inicializar los valores internos, si esto implica procesos complejos. Para que los constructores efectivamente construyan el objeto, deben ser accedidos desde la clase, y no desde los objetos: MyObjeto:=TMyClase.MyConstructor; Material Curso Daniel Eduardo Salas Useche 37

38 Cuando un constructor se accede desde un objeto, no crea nada, simplemente realiza las inicializaciones de variables que se encuentren en la implementación del constructor: MyObjeto.MyConstructor; 2.3 Herencia La herencia es una característica de la programación orientada a objetos que permite que una clase tenga lo que ya tiene otra, sin necesidad de volverlo a declarar. Conceptualmente, la herencia ocurre cuando existe una entidad de una clase que aun no se ha modelado, pero que es una especialización de una clase que ya se modeló. Por ejemplo, suponga que se tiene la clase TMamifero: TMamifero = class(tobjeto) y ahora se desean modelar entidades caballo, entonces, la clase caballo se puede declarar heredando de la clase mamífero, pues un caballo ES un mamífero. TCaballo = class(tmamifero) Todas las clases en Pascal OO heredan de la clase TObject. La clase TCaballo, que hereda de TMamifero, hereda indirectamente de TObject. Cuando se desea crear una clase que no hereda de ninguna otra, por ejemplo la clase TMamifero, ésta tiene que heredar de TObject. En éstos casos se permite también dejar la clase de herencia sin especificar, entonces, la clase TMamifero quedaría así: TMamifero = class La clase que hereda, tendrá automáticamente todas las propiedades y funcionalidad de la clase de la cual hereda, excepto las que sean privadas. La clase que hereda, puede adicionalmente declarar sus propios datos y funcionalidad, lo que la convierte en una especialización de la clase madre. También puede reemplazar un procedimiento de la clase madre utilizando la palabra reservada override, como se muestra en el ejemplo del Numeral Material Curso Daniel Eduardo Salas Useche 38

39 No se debe confundir la herencia con el almacenamiento. La herencia tiene que ver con SER y el almacenamiento con TENER. Sería un gran error crear una clase TCaballo y luego crear una clase TCabeza, que heredara de TCaballo, para modelar la cabeza del caballo. El caballo TIENE cabeza, la cabeza NO ES una clase de caballo. En cambio, el caballo, ES una clase de mamífero, ES un mamífero, y por eso la clase TCaballo hereda de la clase TMamifero. La cabeza del caballo, por ser una relación de almacenamiento debe declararse como una propiedad o variable al interior de la declaración de la clase TCaballo. Cuando hay dificultades en conceptualizar la correcta modelación de la relación entre dos clases, es útil pensar en la relación SER o TENER. Si una entidad de la clase A ES al mismo tiempo una entidad de la clase B, se trata de herencia. Si la clase B TIENE una entidad de la clase A, se trata de almacenamiento. 2.4 Polimorfismo El polimorfismo es la característica de la programación orientada a objetos que permite manipular entidades de subclases, a partir de una clase de alto nivel, determinando dinámicamente (en tiempo de ejecución) la clase específica a la cual pertenece la entidad. El polimorfismo permite entonces tener un vector de mamíferos, en donde cada posición del vector puede ser un mamífero de cualquier subclase específica. Las subclases serían TCaballo, TVaca, TGato, etc. Ejemplo: var MyVector: array of TMamifero; MyCaballo: TCaballo; MyVaca: TVaca; MyGato: TGato; MyCaballo:=TCaballo.MyConstructor; MyVaca:=TVaca.MyConstructor; MyGato:=TGato.MyConstructor; SetLenght(MyVector,4); MyVector[1]:=MyCaballo; MyVector[2]:=MyVaca; MyVector[3]:=MyGato; Material Curso Daniel Eduardo Salas Useche 39

40 Suponga que cada subclase tiene un procedimiento Caminar, y éste procedimiento muestra al animal caminando por la pantalla del computador. El polimorfismo permite que el vector de mamíferos sea recorrido y a cada mamífero se le ordene caminar, indistintamente de que tipo de mamífero se trate: for i:=1 to 4 do MyVector[i].Caminar; Gracias, al polimorfismo, se puede tener una cantidad n de mamíferos y para cada uno aplicar el procedimiento caminar adecuado. Sin el polimorfismo, cada tipo de mamífero tendría que estar en un vector y cada uno se tendría que recorrer por aparte para ejecutar el caminar adecuado. Además, en caso de programar eventualmente una nueva subclase, por ejemplo TPerro, habría que añadir el código que almacenara los objetos de ésta clase en otro vector y programar otro for para que lo recorriera. Gracias al polimorfismo, el código del ejemplo sirve para cualquier clase que herede de TMamifero y tenga un procedimiento Caminar. 2.5 Ejercicio Programa Manejo de Polígonos 1. Manejo de interfaz, componentes, TChart, conversiones de tipos, sintaxis de ciclos, declaración, implementación y uso de clases, abstracción, encapsulamiento, herencia, polimorfismo, persistencia, manejo de properties. 2. Se requiere investigación del manejote TChart y persistencia. Enunciado: Hacer un programa que permita al usuario mantener un conjunto de polígonos, editarlos, calcular sus propiedades. Se debe hacer uso de la herencia y el polimorfismo. El polígono debe poderse ver por pantalla. NO PROGRAME ANIMACIONES NI CAMBIOS DE POSICIÓN DE LA FIGURA, basta con un esquema en planta de la figura en un único sistema cartesiano. Material Curso Daniel Eduardo Salas Useche 40

41 Capítulo 3 Excepciones Antes de la programación orientada a objetos, el control de errores en los programas se controlaba a través de if else y códigos numéricos de error. Por ejemplo, si la función retornaba 0, no había error, si retornaba 1, se trataba del error TAL, si retornaba 2, se trataba del TAL OTRO error. Si los algoritmos que se quieren programar, ya son complejos en sí, añadir un control de errores basado en estructuras if else aumenta la complejidad del código muchísimo. Además, se debía escoger entre retornar lo que interesa retornar en la función, o retornar el código de error, y pasar el resto por referencia. Las excepciones permiten que los errores trabajen por una línea de programación distinta a la que se lleva mientras no ocurran errores (Ver Figura 3-1). El manejo de errores se realiza entonces por un hilo paralelo de ejecución 2. De ésta forma, en caso de error, el control de errores no usa los recursos existentes de retorno, sino que retorna sus propios valores por otro medio. Hay tipos de excepciones que ya existen en Delphi y que se disparan automáticamente cuando ocurre el error. El programador puede además definir nuevos tipos de excepciones y dispararlas cuando exista algún error lógico o de consistencia. Sin embargo, el programador no puede definir excepciones que se disparen automáticamente. Cuando el error sea detectado en la lógica del problema, se debe disparar la excepción explícitamente. La Figura 3-1 muestra como el hilo de ejecución de errores, sale hacia arriba. Esto indica que esta excepción sube hasta la función desde la cual se hizo el llamado a MyFunction. Suponiendo que MyFunction fue llamada desde MyOtherFunction, entonces, en MyOtherFunction ocurre lo mismo que ocurrió en MyFunction. El error sacará la ejecución de su hilo normal hacia el hilo de error y la excepción seguirá subiendo. La excepción pasará entonces a la función que llamó a MyOtherFunction, y así hasta llegar al núcleo principal del programa o hasta el controlador interno de la Forma, si el proceso se inició desde una forma. En cualquiera de los dos casos, la excepción es controlada y se muestra como una ventana de mensaje en la que se muestra el mensaje de la excepción. Todas las excepciones tienen un mensaje asociado. 2 No es realmente un HILO distinto, lo que se conoce como thread. Es un hilo paralelo en sentido lógico de la estructura del programa. Material Curso Daniel Eduardo Salas Useche 41

42 Al proceso de pasar el hilo de excepción desde una función hacia su superior, y de ésta a su superior, etc. se le conoce como propagación de excepciones. Una forma de programar con excepciones sería levantando las excepciones a propósito cuando un error de consistencia de datos es detectado, y luego permitir que se propaguen libremente hasta que las controle las herramientas que ya tiene Delphi. Sin embargo el manejo descontrolado de excepciones no es bueno en cuanto a calidad de software. Cada función debe tener un control de las excepciones que genera, por si acaso debe hacer algo en caso de error. Después, de haberla procesado, lanza la excepción nuevamente para que la detecte el procedimiento de mayor jerarquía. Figura 3-1 Esquema de hilo de ejecución con manejo de excepciones Entonces, para poder implementar lo explicado anteriormente, se debe tener la sintaxis y el funcionamiento de: - Definición de tipos de excepciones por parte del programador. - Lanzamiento explícito de excepciones. - Sistema de atrapar excepciones. Material Curso Daniel Eduardo Salas Useche 42

43 3.1 Definición de Excepciones En Delphi ya existen ciertas excepciones definidas. Están definidas en clases y hay un tipo de excepción del cual heredan todos los demás tipos de excepciones. Se llama Exception. Un nuevo tipo de excepción se define como cualquier otra clase: MyException = class(exception) Muchas veces no es necesario definir nada al interior de un nuevo tipo de excepción. Sin embargo, es útil programar utilidades que faciliten el manejo del mensaje de la excepción y que guarden un LOG de errores, esto se explicará más adelante. Todas las excepciones tienen una propiedad llamada message: String, que la heredan de Exception. 3.2 Lanzamiento de Excepciones El lanzamiento de excepciones se realiza al interior de un if que evalúe una condición de consistencia de datos o algún otro tipo de error. También se lanzan excepciones en el sistema de control de excepciones que debe tener cada función, para enviar la excepción a la función de mayor jerarquía después de haber realizado el control local de la excepción. Las excepciones, tal como otras Clases en Pascal OO, también tienen instancias, es decir, objetos. Cuando una excepción automática de Delphi es lanzada, lo que realmente viaja por el hilo de ejecución no es la clase. Es un objeto de esa clase de excepción. Al lanzar excepciones definidas por el programador, también se debe lanzar un objeto de la clase de error que sea. Este puede crearse en la misma línea de código del lanzamiento de la excepción: raise MyException.Create( Aquí se escribe el mensaje de error ); o puede crearse en otro sitio y luego lanzarse: var ObjException: MyException; Material Curso Daniel Eduardo Salas Useche 43

44 ObjException:=MyException.Create( Aquí se escribe el mensaje de la excepción ); raise ObjException; Esto es útil sobre todo cuando se relanzan excepciones que han sido atrapadas para controlarlas, pues el objeto excepción ya existe y solo se requiere lanzarlo de nuevo. 3.3 Atrapar Excepciones No se pueden atrapar excepciones que hayan sido lanzadas en cualquier sitio. Solamente aquellas que hayan sido lanzadas en un área protegida. Un área protegida es una porción de código que se encuentra en medio de las palabras reservadas try except. El código de control de excepciones, para atraparlas, controlarlas y relanzarlas se escribe después del except, y antes de un. try //código en zona protegida except //código de control de excepciones Para cada tipo de excepción que se desee controlar, se debe escribir el siguiente código: on ExceptionClassName do //código de control de la excepción ExceptionClassName Material Curso Daniel Eduardo Salas Useche 44

45 3.4 Ejemplo de Manejo de Excepciones function Division(Dividendo, Divisor: Double): Double; try if Divisor = 0 then raise MyExcepcion.Create( Dividendo: + FloatToStr(Dividendo) + Divisor: + FloatToStr(Divisor)); Result:=Dividendo / Divisor; except on ME: MyException do raise MyExcepcion.Create(ME.message + Ocurrió en función división ); El código anterior revisa si el divisor es igual a cero. En ese caso, levanta una excepción antes de calcular la división. Sin control de excepciones, la excepción se levantaría automáticamente al realizar la división. Sin embargo, por calidad de software, es preferible lanzar las excepciones y propagarlas de manera controlada. Así se controla el mensaje y el tipo de excepción. Nótese que al atrapar la excepción, se antepone ME:. Esto declara un objeto tipo MyException con el nombre ME, y le asigna la excepción atrapada. Esto permite acceder al mensaje de la excepción que se atrapó. Así, se puede ir añadiendo al mensaje de la excepción, la ruta que siguió a través de las funciones. Cuando el mensaje finalmente llega a la pantalla, trae consigo información sobre todas las funciones por las cuales se propagó. Esto facilita enormemente la tarea de depuración. Si en un área de código existe la posibilidad de que disparen dos excepciones del mismo tipo, en distintas partes del código, no habría como diferenciarlas. Solamente se podrían diferenciar por el mensaje, pero esto no es recomendable por calidad de software. Esto porque el mensaje debe ser dinámico, no necesariamente sirve como identificador. Material Curso Daniel Eduardo Salas Useche 45

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases Herencia 3.- Herencia La herencia nos permite definir datos y métodos que son generales (comunes a distintas clases) por separado de las que son particulares a cada clase. Esto se logra definiendo lo que

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario Apéndice 5 Manual de usuario de ColeXión ColeXión 1.0 Manual de usuario Índice 1. Qué es ColeXión?... 2 2. Requerimientos del sistema... 3 3. Instalación de ColeXión... 3 4. Creación de un nuevo esquema...

Más detalles

WINDOWS. Iniciando Windows. El mouse

WINDOWS. Iniciando Windows. El mouse Windows es un sistema operativo, cuyo nombre lo debe al principal elemento de trabajo, la ventana - en inglés window -. Este tiene características como: Multitarea: durante una sesión de trabajo, es posible

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid MANUAL DE EMPRESA Modo de entrar en ÍCARO Para comenzar a subir una oferta de empleo, el acceso es a través del siguiente enlace: http://icaro.uam.es A continuación, aparecerá la página de inicio de la

Más detalles

Uso de Visual C++ Pre-Practica No. 3

Uso de Visual C++ Pre-Practica No. 3 Pre-Practica No. 3 Uso de Visual C++ Microsoft Visual C++ 2010 es una versión de Visual Studio específica para el lenguaje de programación C++. Es un entorno de desarrollo muy completo y profesional. Por

Más detalles

MANUAL DE LA APLICACIÓN HELP DESK

MANUAL DE LA APLICACIÓN HELP DESK CASAMOTOR MANUAL DE LA APLICACIÓN HELP DESK Desarrollado por: NOVIEMBRE, 2012 BOGOTÁ D.C. - COLOMBIA INTRODUCCIÓN Este documento es el manual de la aplicación de Help Desk de Casamotor, producto desarrollado

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Manual de Procedimiento

Manual de Procedimiento Manual de Procedimiento INSTALACION DEL PROGRAMA Este manual pretende ser una ayuda para el usuario, indicando cada uno de los pasos a seguir en su utilización. REQUERIMIENTOS: 1. Windows 98 o superior.

Más detalles

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda: Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema Sistema de Gestión Portuaria Uso General del Sistema Uso General del Sistema Página 1 de 21 Contenido Contenido... 2 1.Ingreso al Sistema... 3 2.Uso del Menú... 6 3.Visualizar Novedades del Sistema...

Más detalles

Guía N 1: Fundamentos básicos(i)

Guía N 1: Fundamentos básicos(i) 1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,

Más detalles

GENERACIÓN DE TRANSFERENCIAS

GENERACIÓN DE TRANSFERENCIAS GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas. Módulo 3 Herramientas de Cómputo Listas, tabulaciones, columnas y cuadros de texto Listas En muchas ocasiones es necesario que enumeres diferentes elementos en tus documentos. Word no sólo reconoce números

Más detalles

Manual de operación Tausend Monitor

Manual de operación Tausend Monitor Manual de operación Tausend Monitor Luego de haber realizado satisfactoriamente el proceso de instalación, al iniciar el programa le aparecerá la siguiente ventana: El usuario principal y con el primero

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Ministerio de Educación Nacional Dirección de Calidad

Ministerio de Educación Nacional Dirección de Calidad FORO VIRTUAL GESTION EDUCATIVA 2007 Próximamente estaremos informando la fecha de inicio del foro virtual para que usted pueda participar activamente El foro Educativo Nacional 2007 sobre el tema de gestión

Más detalles

Edición de Ofertas Excel Manual de Usuario

Edición de Ofertas Excel Manual de Usuario Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE

Más detalles

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa Documentos de Proyecto Medusa Documentos de: Serie: Manuales Servicio de Alta, Baja, Modificación y Consulta del documento: Fecha 22 de febrero de 2007 Preparado por: José Ramón González Luis Aprobado

Más detalles

UNIDAD DIDÁCTICA Nº 7 USO DE LOS RECURSOS EN MOODLE

UNIDAD DIDÁCTICA Nº 7 USO DE LOS RECURSOS EN MOODLE PROGRAMA: TUTORÍA VIRTUAL EN AMBIENTES DE APRENDIZAJE UNIDAD DIDÁCTICA Nº 7 USO DE LOS RECURSOS EN MOODLE 1 USO DE LOS RECURSOS EN MOODLE 1. Tipos de Recursos 2. Editar Páginas de Texto o Web 3. Enlazar

Más detalles

Cómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO

Cómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO Cómo registrarse y crear su cuenta de usuario? Si es la primera vez que visita la página, y nunca ha creado un usuario para poder acceder a todos los servicios que el sistema ofrece, deberá registrarse

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN FACULTAD NACIONAL DE MINAS Escuela de Sistemas OBJETIVOS: General: Estudiar y utilizar los elementos del entorno de trabajo Visual Basic for Applications

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

ICARO MANUAL DE LA EMPRESA

ICARO MANUAL DE LA EMPRESA ICARO MANUAL DE LA EMPRESA 1. ENTRANDO EN ICARO Para acceder al Programa ICARO tendremos que entrar en http://icaro.ual.es Figura 1 A continuación os aparecerá la página de Inicio del aplicativo ICARO.

Más detalles

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de: Gemelo Backup Online DESKTOP Manual DISCO VIRTUAL Es un Disco que se encuentra en su PC junto a las unidades de discos locales. La información aquí existente es la misma que usted ha respaldado con su

Más detalles

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Sistema de Facturación de Ventas WhitePaper Enero de 2007 Sistema de Facturación de Ventas WhitePaper Enero de 2007 Ronda Guglielmo Marconi, 9 Parque Tecnológico 46980 Paterna Valencia Spain T +34 96 338 99 66 ventas@preference.es Please Recycle PrefSuite Document

Más detalles

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición. Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

Selección de los puntos de montaje

Selección de los puntos de montaje PARTICIONES PARA LINUX Selección de los puntos de montaje Tanto para aquellos que vayan a instalar ahora, como para quienes quieran cambiar el tamaño de una partición o formatear este apunte (resumen de

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

TPV Táctil. Configuración y Uso. Rev. 1.2 21/01/09

TPV Táctil. Configuración y Uso. Rev. 1.2 21/01/09 Configuración y Uso Rev. 1.2 21/01/09 Rev. 2.0 20100616 1.- Ruta de Acceso a Imágenes. 2.- Estructuración de los Artículos. 3.- Creación de Grupos de Familias. 4.- Creación de Familias de Ventas. 5.- Creación

Más detalles

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE ANTICIPOS DE CRÉDITO GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal Karel para todos! 1 Estás interesado en aprender a programar en lenguaje de Karel? Te interesa la Olimpiada Mexicana de Informática? Esta es tu oportunidad de unirte al equipo OMI y ser parte de la mejor

Más detalles

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS 1. Introducción Los ambientes de aprendizaje acompañados de trabajos colaborativos como estrategia se revierten en actividades de diferente índole (análisis de videos,

Más detalles

Manual del Usuario. Portal Web Para uso exclusivo de Ministros de Estado.

Manual del Usuario. Portal Web Para uso exclusivo de Ministros de Estado. Manual del Usuario Portal Web Para uso exclusivo de Ministros de Estado. Índice de contenido Pimi 2011... 3 Ingreso al Portal... 3 Manual de Usuario... 4 Vista Perfil Privado... 5 Navegación por Perfil

Más detalles

Parámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE)

Parámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE) QUÉ SON CONCEPTOS PARAMÉTRICOS? Los conceptos paramétricos de Presto permiten definir de una sola vez una colección de conceptos similares a partir de los cuales se generan variantes o conceptos derivados

Más detalles

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 16 de septiembre de 2013 Histórico de cambios Fecha Descripción Autor

Más detalles

Introducción a los sitios de SharePoint en Office 365

Introducción a los sitios de SharePoint en Office 365 Introducción a los sitios de SharePoint en Office 365 Universidad Central del Este Contenido 1. QUÉ ES UN SITIO SHAREPOINT?... 3 2. CÓMO INGRESAR AL ÁREA DE SITIOS?... 3 3. DESCRIPCIÓN GENERAL DEL ÁREA

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido Tabla de contenido 1 INFORMACIÓN PERSONAL... 2 1.1 Cómo ingresar al Aula Digital?... 2 1.2 Qué hacer si olvida su contraseña?... 2 1.3 Qué veo cuando

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Seven ERP Guía De Referencia - Imágenes

Seven ERP Guía De Referencia - Imágenes Seven ERP Guía De Referencia - Imágenes Digital WARE Ltda. Calle 72 # 12-65 P.2 Bogotá, Colombia 2004 Digital Ware, Ltda. Todos Los Derechos Reservados Toda la documentación utilizada en Seven ERP está

Más detalles

COMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA

COMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA COMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA PROGRAMA DE EFICIENCIA ENERGÉTICA SISTEMA DE CONTROLY SEGUIMIENTO DE INDICADORES DEL CONSUMO DE ENERGÍA HERRAMIENTA ELECTRÓNICA DE INDICADORES DEL CONSUMO DE

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0

CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0 CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0 El dispositivo que mide el nivel del agua necesita una interfase sencilla para el usuario, amigable y sin rutinas difíciles de entender, haciendo de esta manera una

Más detalles

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo INDICE Cómo crear una cuenta en ARQA? 4 Cómo tener un grupo en ARQA? 5 Secciones y funcionalidades de los grupos 6 Muro del Grupo 6 Compartir Textos 8 Compartir Imágenes 9 Compartir videos 10 Compartir

Más detalles

NORMA 34.14(SEPA) 05/11/2013

NORMA 34.14(SEPA) 05/11/2013 NORMA 34.14(SEPA) 05/11/2013 1. Descripción La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que se efectúe el pago de transferencias a los beneficiarios

Más detalles

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

SIIGO Pyme. Templates. Cartilla I

SIIGO Pyme. Templates. Cartilla I SIIGO Pyme Templates Cartilla I Tabla de Contenido 1. Presentación 2. Qué es un Template? 3. Qué Aspectos se Deben Tener en Cuenta Antes de Diseñar o Modificar un Template? 4. Cuáles son las Formas que

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

Más detalles

Microsoft Access proporciona dos métodos para crear una Base de datos.

Microsoft Access proporciona dos métodos para crear una Base de datos. Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las

Más detalles

Capítulo 3 Usando GUIDE. 3.1 Acerca de GUIDE

Capítulo 3 Usando GUIDE. 3.1 Acerca de GUIDE Capítulo 3 Usando GUIDE 3.1 Acerca de GUIDE Las interfaces gráficas de usuario (GUI - Graphical User Interface en inglés), es la forma en que el usuario interactúa con el programa o el sistema operativo

Más detalles

Sistema de Captura de Expedientes de Trabajadores

Sistema de Captura de Expedientes de Trabajadores Sistema de Captura de Expedientes de Trabajadores Junio, 2007 Página 1 Índice 1. 1.Generalidades del. 3 1.1. Descripción del módulo 3 1.2. Propósito de este manual 3 2. Instalación del 3 3. Navegación

Más detalles

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A)

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) aprenderaprogramar.com Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029

Más detalles

MANUAL DE USO PROGRAMA DE GESTIÓN AGENCIAS DE VIAJES

MANUAL DE USO PROGRAMA DE GESTIÓN AGENCIAS DE VIAJES MANUAL DE USO PROGRAMA DE GESTIÓN AGENCIAS DE VIAJES Estructura general... 2 Pantalla General de Reservas... 3 Alta de una reserva Pantalla de un expediente... 5 Manejo de Documentos... 7 Ejemplo de un

Más detalles

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición

Más detalles

GedicoPDA: software de preventa

GedicoPDA: software de preventa GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente

Más detalles

Manual Ingreso Notas y Acta Electrónica

Manual Ingreso Notas y Acta Electrónica Manual Ingreso Notas y Acta Electrónica ÍNDICE ÍNDICE 2 I. INTRODUCCIÓN 3 II. CREAR LA ESTRUCTURA DE NOTAS PARCIALES (OPCIÓN NOTAS NORMALES) _ 4 III. CREAR LA ESTRUCTURA DE NOTA FINAL (OPCIÓN NOTAS CALCULADAS)

Más detalles

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

Más detalles

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Guía Práctica para el Uso del Servicio de Software Zoho CRM Guía Práctica para el Uso del Servicio de Software Zoho CRM Parte 4 Modificación de las Listas Estándar del Sistema Modificación del Menú Principal del Sistema Importación de información al Sistema Adición

Más detalles

Sistema Integrado de Control de Presencia Dactilar

Sistema Integrado de Control de Presencia Dactilar Sistema Integrado de Control de Presencia Dactilar Índice Índice... 1 Ventana Principal de la aplicación... 2 Zona de Administración... 7 Mantenimiento de trabajadores... 9 Parámetros... 12 1 Ventana Principal

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Manual hosting acens

Manual hosting acens Manual hosting acens Contenido Acceso al panel de control de cliente... 3 Asociar un dominio a mi Hosting... 5 Acceso al panel de administración del hosting... 7 INICIO - Visión general del estado de nuestro

Más detalles

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1 Traslado de Copias y Presentación de Escritos Manual de Usuario V.3.1 Página: 2 45 INDICE INTRODUCCIÓN... 3 1 ACCESO A LA APLICACIÓN... 3 2 PROCESO DE FIRMA... 4 3 TRASLADOS PENDIENTES DE ACEPTAR POR EL

Más detalles

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX...

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX... INDICE 1 Configuración previa...2 1.1 Configuración Internet Explorer para ActiveX...2 1.2 Problemas comunes en sistema operativo Windows...8 1.2.1 Usuarios con sistema operativo Windows XP con el Service

Más detalles

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2) 1. Qué es un sistema operativo?...2 2. Funciones de los sistemas operativos...2 3. Windows...2 3.1. La interfaz gráfica...2 3.2. La administración y los usuarios...3 3.3. El sistema de archivos...3 3.4.

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

Archivo de correo con Microsoft Outlook contra Exchange Server

Archivo de correo con Microsoft Outlook contra Exchange Server Archivo de correo con Microsoft Outlook contra Exchange Server Resumen Con este proceso de archivado, lo que pretendemos es guardar nuestro correo en un archivo de datos, para así poder realizar una copia

Más detalles

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD Carpetas sin Conexión... 2 Gestión de mensajes enviados... 3 Gestión de mensajes eliminados... 6 Firma Digital... 8 Envío de mensajes firmados digitalmente...

Más detalles

3. Número inicial y número final de mensajes mostrados en la página actual.

3. Número inicial y número final de mensajes mostrados en la página actual. Sistema WEBmail El sistema WEBmail permite el acceso rápido y sencillo a su buzón de correo utilizando un navegador de páginas Web. Normalmente es usado como complemento al lector de correo tradicional,

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Sintaxis y Convenciones de Java. M. en C. Erika Vilches Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando

Más detalles

V i s i t a V i r t u a l e n e l H o s p i t a l

V i s i t a V i r t u a l e n e l H o s p i t a l V i s i t a V i r t u a l e n e l H o s p i t a l Manual de Restauración del PC Septiembre 2011 TABLA DE CONTENIDOS SOBRE EL SOFTWARE... 3 CONSIDERACIONES ANTES DE RESTAURAR... 4 PROCEDIMIENTO DE RECUPERACION...

Más detalles

Creación paso a paso de Formularios con Google (Parte I) (AKA: no corrijo nunca más!)

Creación paso a paso de Formularios con Google (Parte I) (AKA: no corrijo nunca más!) Creación paso a paso de Formularios con Google (Parte I) (AKA: no corrijo nunca más!) por Rodrigo Martínez Gazoni La idea de este tutorial es meternos en una de los servicios que ofrece Google en forma

Más detalles

Curso de Python Inicial

Curso de Python Inicial Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos

Más detalles

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4. TABLAS A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4.1. Principales Elementos Al momento de generar y diseñar una tabla es importante

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

MANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS.

MANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS. MANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS. INDICE Cómo Ingresar al Sistema?... 1 Autenticación de Usuario... 2 Pantalla Principal del Sistema de Operaciones Estadisticas... 3

Más detalles

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS

Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS Delphos Portal GUÍA PARA LA CONSULTA DE LA INFORMACIÓN SOBRE PÉRDIDAS OCASIONADAS POR EVENTOS NATURALES MÓDULO DE PÉRDIDAS Índice Aplicación Delphos Portal... 3 Consulta de la Información... 4 1. Información

Más detalles

Introducción a Moodle

Introducción a Moodle Instituto la Américas de Nayarit Ing. Elías Portugal Luna Qué es Moodle? Moodle es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión de cursos, de distribución libre, que ayuda

Más detalles

20011 SInformáticas.

20011 SInformáticas. CONFIGURACIÓN DEL MOZILLA THUNDERBIRD...1 INTRODUCCIÓN...1 Características....1 Protección contra spam....1 Thunderbird portátil....1 CÓMO INSTALARLO?...1 Cómo descargarlo?...1 Instalación de Mozilla Thunderbird....2

Más detalles

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

Más detalles

MATERIAL 2 EXCEL 2007

MATERIAL 2 EXCEL 2007 INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta

Más detalles

5.4. Manual de usuario

5.4. Manual de usuario 5.4. Manual de usuario En esta sección se procederá a explicar cada una de las posibles acciones que puede realizar un usuario, de forma que pueda utilizar todas las funcionalidades del simulador, sin

Más detalles

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO 1 Objetivo del Manual Elaborado por: Revisado por: Aprobado por: Fecha: 13/08/2015 Difusión: Información del Manual

Más detalles