Capítulo II - Fundamentos de Programación Con Object Pascal
-
Upload
iracema-gonzalez -
Category
Documents
-
view
35 -
download
0
Transcript of Capítulo II - Fundamentos de Programación Con Object Pascal
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
8
FUNDAMENTOS DE PROGRAMACIÓN CON OBJECT PASCAL Pag.
1. Breve Historia de Pascal 10
2. Programación Estructurada 10
3. Tipos de Datos 10
3.1. Tipos de Datos Simples 10
3.1.1. Tipos Enteros 10
3.1.2. Tipos Reales 11
3.1.3. Tipos Booleanos 11
3.1.4. Tipos Carácter 11
3.1.5. Tipos Cadena 11
3.2. Tipos Estructurados 11
3.2.1. Arreglos 11
3.2.2. Registros 12
3.2.3. Subrangos 13
3.2.4. Conjuntos 13
3.2.5. Constantes de Tipo 13
3.2.6. Tipos Enumerados 14
3.2.7. Tipo Variant 14
4. Funciones y Procedimientos 14
5. Estructuras de Control 15
5.1. Selectivas 15
5.1.1. If...Then...Else 15
5.1.2. Case Of 15
5.2. Repetitivas 16
5.2.1. Repeat...Until 16
5.2.2. While...Do 16
5.2.3. For...Do 16
6. Introducción a la Programación Orientada a Objetos 17
Pag.
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
9
6.1. Principios y Fundamentos 17
6.1.1. Clase 17
6.1.2. Objeto 17
6.1.3. Encapsulamiento 18
6.1.4. Herencia 18
6.1.5. Polimorfismo 19
7. Partes de una Unidad de Código 19
8. Preguntas de Repaso 21
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
10
1. Breve Historia de Pascal Pascal fue diseñado originalmente por Nicklas Wirth en los finales de los años 60's pero
fue considerado como uno de los primeros lenguajes de los 70's. Wirth creó Pascal en
respuesta a otro lenguaje más robusto desarrollado en esa época, ALGOL68. Ambos
lenguajes estaban basados en el lenguaje ALGOL60, pero ALGOL68; quería crear un
lenguaje pequeño y simple que combinara poder con simplicidad. De hecho, Pascal fue
y es utilizado como uno de los primeros lenguajes para introducir a la programación a
los estudiantes de las ciencias de la computación. Se utiliza para ilustrar la mayor parte
de los temas de la programación sin grandes complicaciones.
2. Programación Estructurada La característica distintiva de un lenguaje estructurado es la "compartición" de código y
datos. Se trata de la capacidad de un lenguaje de seccionar (dividir una aplicación en
partes llamadas subrutinas o módulos) y esconder del resto del programa toda la
información y las instrucciones necesarias para llevar a cabo una determinada tarea.
Un ejemplo de lenguaje estructurado es Pascal, Delphi utiliza Object Pascal, que es una
extensión de Pascal y que hereda de éste sus capacidades como lenguaje estructurado y
agrega además la funcionalidad para manejar objetos.
3. Tipos de Datos 3.1. Tipos de Datos Simples
3.1.1. Tipos Enteros Tipo Rango de Valores Formato Shortint -128..127 Signo 8-bit
Smallint -32,768..32767 Signo 16-bit
Integer -
21,474,883,648..21,474,883,
647
Signo 32-bit
Longint -
21,474,883,648..21,474,883,
647
Signo 32-bit
Int64 -2^63..2^63-1 Signo 64-bit
Byte 0..255 Sin Signo 8-bit
Word 0..65,535 Sin Signo 16-bit
Longword 0..4294967295 Sin Signo 32-bit
Cardinal 0..4294967295 Sin Signo 32-bit
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
11
3.1.2. Tipos Reales Son números que se identifica por tener una parte fraccional.
Tipo Rango de Valores Bytes Requeridos
Dígitos
Real 5.0e10^-324..1.7e10^308 8 15-16
Real48 2.9e10^-39..1.7e10^38 6 11-12
Single 1.5e10^-45..3.4e10^38 4 7-8
Double 5.0e10^-324..1.7e10^308 8 15-16
Extended 3.6e10^-4951..1.1e10^4932 10 19-20
Comp -2^63+1..2^63-1 8 19-20
Currency -9233720366685477.5808 a
9233720366685477.5807
8 19-20
3.1.3. Tipos Booleanos Tipo Rango Valores Bytes Requeridos Boolean Booleano preferente de 1
Byte
1
ByteBool Booleano tamaño Byte 1
Bool Booleano de una palabra 2
WoordBool Booleano de una palabra 2
LongBool Booleano de doble palabra 4
3.1.4. Tipo Carácter
Este tipo de datos acepta solo caracteres
Tipo Tamaño en Bytes
ANSIChar 1
WideChar 2
Char 1
3.2. Tipos Estructurados 3.2.1. Arreglos
Un Arreglo es una estructura de datos que contiene elementos del mismo tipo
y su tamaño depende tanto del tipo de dato como del número de elementos que
contendrá el arreglo.
Un arreglo en Pascal se define dentro de la sección type con la palabra
reservada array.
Por ejemplo:
Type
Numeros = array [1..10] of integer;
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
12
Define un arreglo de 10 elementos de tipo entero.
Object Pascal y en consecuencia Delphi permiten la creación de arreglos
multidimensionales, los cuales funcionan como arreglos de columnas y
renglones.
Para crear un arreglo de más de una dimensión se emplea la misma sintaxis,
pero para cada dimensión se agrega una coma. Por ejemplo:
Type
Matriz = array [1..3,1..3] of integer;
Define un arreglo de 3 columnas con 3 elementos cada una del tipo entero.
Una vez definido el arreglo se debe declarar una variable del tipo arreglo para
poder ser utilizado. Una vez declarada la variable, se puede acceder a cada
elemento del arreglo por medio de su índice.
Var
ArrNumeros : Numeros;
Arrmatriz : Matriz;
Mientero : Integer;
Begin
Mientero := Numeros[1];
end
3.2.2. Registros Un registro es una estructura de datos que contiene un conjunto de
componentes o campos, los cuales pueden ser de cualquier tipo de dato válido
en Object Pascal.
Un registro se define dentro de un programa Object Pascal dentro de la sección
type usando la palabra reservada record. Un ejemplo de un registro es el
siguiente:
Type Registro = record Nombre : String;
Edad : Integer;
Telefono: String;
End,
Var MiRegistro : Registro;
3.2.3. Subrangos
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
13
Un subrango es un rango de valores de tipo ordinal denominado tipo anfitrión.
En el subrango se deben definir tanto el valor más pequeño como el más
grande dentro del subrango.
Un tipo de dato subrango se define dentro de la sección type de un programa.
Por ejemplo:
Type Letras = 'A'..'Z';
Opc = 1.10;
Var RgLetras : letras;
RgOpc : Opc;
Para crear este tipo de datos se deben tener dos consideraciones, una es que
deben ser de tipo ordinal, y la otra es que el valor del primer elemento debe ser
menor que el del último elemento definido.
3.2.4. Conjuntos Un conjunto es un grupo de elementos que se pueden asociar a un solo nombre
y con el cual se pueden comparar otros valores para su inclusión o exclusión
del mismo.
Una de las propiedades de los conjuntos es que pueden contener tanto valores
individuales como subrangos.
Un tipo de dato conjunto se define dentro de la sección type de un programa
utilizando las palabras reservadas set of. Por ejemplo:
Type Caracteres = set of ['a'..'z','0'..'9','_'];
Var CjCaracteres: Caracteres;
3.2.5. Constantes de tipos
Una constante de tipo no es más que una variable inicializada. Pudiera parecer
confuso el uso de una constante de tipo, pero su utilidad radica en que esta se
va a inicializar cada vez que se entra al módulo donde se declaró.
Var Opcion : Char = 'S';
3.2.6. Tipos Enumerados
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
14
Los tipos de datos enumerados permiten definir un grupo de elementos que
pertenece a un conjunto. La única consideración a tomar en cuenta es que el
número de elementos debe ser menor de 256.
Un tipo de dato enumerado se declara dentro de la sección type de un
programa o unidad. Por ejemplo:
Type Semana = (lunes, martes, miercoles, jueves, viernes, sabado,
domingo);
Var Dia: Semana ;
3.2.7. Tipo Variant El tipo de dato Variant es un tipo de dato de 16 bytes que puede contener
cualquier tipo de dato definido para Object Pascal; esto es; puede declararse
una variable de tipo variant que contenga al principio un valor entero, luego un
valor string, un valor boolean, etc..
Aunque es un tipo de dato incorporado a Delphi, no se recomienda su uso, ya
que Object Pascal cuenta con todos los tipos necesarios para realizar cualquier
operación. La única forma en que se recomienda su uso es cuando se utiliza
OLE.
4. Funciones y Procedimientos Las funciones y procedimientos son piezas modulares de código que realizan alguna
tarea específica. Estos son conocidos como subrutinas en otros lenguajes.
Para el funcionamiento de sus programas necesita de unos procedimientos llamados
librerías de Delphi ya escritas como Definición de Variables y Constantes, Control de
Errores, Control del Sistema, entre otros.
Cuando los procedimientos y funciones son declaradas dentro de alguna clase, estos son
llamados Métodos.
Usted puede definir sus propias funciones y procedimientos declarándolos en la sección
"Interface" de un programa y definiéndolos en la sección "Implementation".
Ejemplos:
Procedure Calculo( Tipo : Integer );
Function Mayor( val1, val2 : Real ): real;
5. Estructuras de Control
Este tipo de datos son sentencias definidas por el programador capaces de
determinar la dirección de flujo del programa en base a condiciones lógicas o
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
15
aritméticas o de datos, así como de controlar el número de veces que se ejecutará
una función. Los tipos de sentencias de control son los siguientes:
5.1. Selectivas
5.1.1. If..then...Else
If <Condición> Then
Sentencia (Condición Verdadera)
Else Sentencia(Condición Falsa);
If <Condición> then
Begin Sentencia 1;
Sentencia 2;
End Else Begin Sentencia 3;
Sentencia 4;
End;
5.1.2. Case Of
Case <Variable de Condición> Of Condición 1: Acción 1;
Condición 2: Acción 2;
Condición n: Acción n;
Else Otra acción;
End;
5.2. Repetitivas
5.2.1. Repeat...Until Se caracteriza por que la condición que determina las veces que se ejecutará el
ciclo, se evalúa al final, después de haber realizado por lo menos una vez todas
las acciones.
Repeat Acción 1;
Acción 2;
Acción n;
Until <Condición> Para la terminación del ciclo.
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
16
5.2.2. While....Do Se caracteriza porque evalúa la sentencia condicional al principio del bloque
de instrucciones y además que éstas van incluidas entre las palabras Begin y end. While <Condición> do Begin Acción 1;
Acción 2;
Acción n;
End;
5.2.3. For...Do Se utiliza cuando se sabe hasta cuantas veces se desea ejecutar el ciclo, ya que
la condición se debe determinar durante el diseño del sistema.
For <Variable> := <Valor Num. Inicial> to <Valor Num. Final> Do Begin Acción 1;
Acción 2;
Acción n;
End;
6. Introducción a la Programación Orientada a Objetos
La programación Orientada a Objetos es una extensión natural de la programación
estructurada. El resultado de una Programación Estructurada más la Programación
Orientada a Objetos es un código limpio que facilita de una manera sencilla y simple al
mantenimiento de sistemas.
La finalidad del diseño Orientado a Objetos consiste en que cada módulo del sistema
represente un objeto y que al modelo general se le considere como un conjunto de
objetos.
Object Pascal es un lenguaje Orientado a Objetos que presenta 3 características
principales:
• Encapsulamiento • Herencia • Polimorfismo
La forma en que éstos se implementan constituye el modelo de objetos de Delphi.
6.1. Principios y Fundamentos
6.1.1. Clase Definición de estructura que declara tipos de datos, métodos y propiedades.
Una clase es un registro, un conjunto de campos conteniendo datos, cada uno
de los cuáles son de un tipo definido.
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
17
Los registros facilitan la referencia a una colección de datos relacionados
como una entrada. Las clases pueden contener código ( Procedimientos y
Funciones) que actúan sobre los datos contenidos en los campos de Clase.
Estos procedimientos y funciones son llamadas Métodos.
Un método de clase es un procedimiento o función que puede usarse para
llevar a cabo una tarea o después de que un objeto exista en memoria.
6.1.2. Objeto Un objeto es un tipo de datos que se deriva a partir de una clase la cual
conjunta datos y código, todo dentro de un solo ente. Una vez que un objeto es
creado puede reutilizarse en otras aplicaciones reduciéndose en gran parte el
tiempo de desarrollo y aumentando la productividad. Estos se caracterizan por
contener métodos, propiedades y eventos que definen su comportamiento,
apariencia y funcionamiento.
Propiedades Son valores o atributos de un objeto definidos por default pero son
modificables tanto en tiempo de ejecución como en tiempo de diseño y
determinan la apariencia que tendrá el objeto.
En tiempo de diseño La definición de propiedades en tiempo de diseño se hace mediante el
Inspector de Objetos. Para ello selecciona el Objeto, usando el inspector de
objetos o seleccionándolo directamente de la forma, buscar la propiedad en la
columna "Properties" y en la columna de valores emplear cualquiera de las
siguientes opciones:
A) Teclear algún valor.
B) Seleccionar un valor de una lista despegable.
C) Dar clic sobre los tres puntos que se muestran en la columna de valores.
En tiempo de ejecución En tiempo de ejecución se utiliza el operador de asignación ( := ), de acuerdo a
la siguiente sintaxis:
<NombreDelObjeto>.Propiedad := Valor;
6.1.3. Encapsulamiento Literalmente significa ocultar o encerrar en una cápsula. En programación
significa que puede recibir servicios e información de otro, sin tener
conocimiento de cómo están implementados internamente. Ahí radica la
importancia de las partes Interface e Implementation de una unidad, para
diferenciar la información que se oculta y la que se muestra. La sección de
implementation es una sección privada y oculta. En Object Pascal existen
cuatro partes adicionales de una declaración de tipo que modifican que tan
accesible es: privada, protegida, pública y publicada.
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
18
Privada ( Private ) Contiene sentencias inaccesibles a elementos fuera de la
unidad donde se declaran.
Protegida ( Protected ) Sólo las clase descendientes fuera de la unidad donde
se declaran las piezas protegidas pueden acceder a éstas.
Publica ( Public ) Las piezas declaradas en esta sección son accesibles por
cualquier otra pieza.
Publicada ( Published ) Son públicas y tienen la capacidad adicional de
hacerse disponibles desde el inspector de objetos.
6.1.4. Herencia Significa que una nueva clase deriva su comportamiento predeterminado y sus
características de una clase ancestro definida con anterioridad. La nueva clase
denominada clase descendiente. A esta estructura de ancestros y
descendientes se le conoce como jerarquía de clases y tiene una clase de base
o raíz de la que descienden el resto de las clases.
En ciertos lenguajes la herencia múltiple permite que las nuevas clases
descendientes se hereden de más de una clase ancestro, Object Pascal no
soporta la herencia múltiple.
Cada nuevo descendiente hereda toda la funcionalidad de sus ancestros y
agrega un nuevo nivel de funcionalidad.
La herencia se utiliza para representar generalización y evitar duplicidad de
código al construir clases similares.
6.1.5. Polimorfismo Literalmente indica la habilidad de un objeto para tomar muchas formas, es
decir, permite referenciar objetos de diferentes clases con significado variable
para el mismo programa. ( Dentro de cada clase, los procedimientos tienen una
implementación diferente, por ejemplo el procedimiento OPEN).
La herencia y el polimorfismo pueden usarse para construir programas basados
en clases jerárquicas.
7. Partes de una Unidad de Código Los elementos generales de una unidad de código son:
Unit
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
19
Interface <Declaraciones de estructuras y Datos>
Implementation <Declaraciones de estructuras y Datos>
end.
Unit (Nombre de la unidad). Es el nombre con el cual Delphi identifica los
archivos.pas. Se logra cambiar el nombre al grabar el proyecto o al usar File | Save ó
File | Save as.
Interface. Las declaraciones realizadas en esta sección pueden ser accesadas desde
otras unidades declarándolas desde el "uses" de la unidad. El alcance de estas
declaraciones es global con respecto a la unidad actual. Las estructuras y datos que
puede contener se describen a continuación:
Uses. En esta sección se agregan automáticamente las librerías de Delphi al
incorporar un componente a la forma.
Type. Se identifican las declaraciones de los objetos usados en la forma. Es posible
definir un tipo de objeto de usuario para posteriormente crearlo en tiempo de ejecución.
Var. Con esta palabra reservada se indica la declaración de variables.
Const. Declaración de constantes.
Procedure <Nombre>(<Parámetros>). Se declaran procedimientos, solamente la
cabecera, con o sin parámetros.
Function <Nombre>(<Parámetros>):Tipo de dato de retorno>. Se declaran las
funciones, solamente las cabeceras, los parámetros son opcionales.
Implementation. En esta sección se pueden hacer las mismas declaraciones que en
la sección "Interface", las diferencias con respecto a esta sección son:
• El alcance de estas declaraciones es global para la unidad actual y no se pueden ver
desde otras unidades, ni aún usando el "Uses".
• Se puede declarar también un "Uses" y se aconseja que haga referencia a las
unidades creadas por el usuario dejando al "Uses" de la sección "Interface" las
referencias a las unidades propias de Delphi. Esto es con la intención de facilitar la
lectura del programa.
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
20
• Puede incluir una sección de "Initialization" antes del "end" del programa, que sirve
para inicializar variables o separar recursos para la aplicación.
• Puede incluir también una sección de "Finalization" que libera los recursos
asignados a la sección de "Initialization".
• Para los procedimientos y funciones se escriben las cabeceras y además el código de
cada uno de ellos.
Delphi 6.0 Fundamentos de Programación con Object Pascal
I.S.C. Leonel Vázquez Aguirre
21
Preguntas de Repaso
1. Describa las partes de una Unidad de Código.
2. Escriba tres diferentes tipos de datos que permite trabajar Delphi.
3. Defina los siguientes términos: Método, Propiedad, Evento, Clase y Objeto.
4. Defina: Herencia, Polimorfismo y Encapsulamiento.