Top Banner
ESTRUCTURA DE DATOS ESTRUCTURA DE DATOS Clase IV Clase IV TIPOS DE DATOS DEFINIDOS TIPOS DE DATOS DEFINIDOS POR EL USUARIO POR EL USUARIO IUTE – MÉRIDA IUTE – MÉRIDA PROF: DUBERLIS GONZÁLEZ PROF: DUBERLIS GONZÁLEZ
12

Clase IV Estructura de Datos IUTE - Mérida

Jul 22, 2015

Download

Technology

guestc906c2
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Clase IV Estructura de Datos IUTE - Mérida

ESTRUCTURA DE DATOS ESTRUCTURA DE DATOS Clase IVClase IV

TIPOS DE DATOS DEFINIDOS TIPOS DE DATOS DEFINIDOS POR EL USUARIOPOR EL USUARIO

IUTE – MÉRIDAIUTE – MÉRIDA

PROF: DUBERLIS GONZÁLEZPROF: DUBERLIS GONZÁLEZ

Page 2: Clase IV Estructura de Datos IUTE - Mérida

TIPOS DE DATOS DEFINIDOS POR EL TIPOS DE DATOS DEFINIDOS POR EL USUARIOUSUARIO

Uno de los aspectos más preponderantes de Turbo Pascal es su Uno de los aspectos más preponderantes de Turbo Pascal es su capacidad para crear estructuras de datos a partir de los datos capacidad para crear estructuras de datos a partir de los datos simples. Los datos estructurados aumentan la legibilidad de los simples. Los datos estructurados aumentan la legibilidad de los programas y simplifican su mantenimiento.programas y simplifican su mantenimiento.

Los tipos de datos definidos por el usuario se clasifican en:Los tipos de datos definidos por el usuario se clasifican en: Escalares definidos por el usuario (Enumerados y Subrango)Escalares definidos por el usuario (Enumerados y Subrango) RegistrosRegistros Arrays (Arreglos)Arrays (Arreglos) Conjunto (Set)Conjunto (Set) Archivo (File)Archivo (File) Puntero (Apuntador)Puntero (Apuntador) ProcedimientoProcedimiento

Page 3: Clase IV Estructura de Datos IUTE - Mérida

Es el tipo de dato más simple que se puede definir en un programa Es el tipo de dato más simple que se puede definir en un programa Pascal. Estos tipos de datos son útiles, por la facilidad que Pascal. Estos tipos de datos son útiles, por la facilidad que ofrecen para verificar automáticamente errores. Un tipo ofrecen para verificar automáticamente errores. Un tipo subrango se define de un tipo ordinal, especificando dos subrango se define de un tipo ordinal, especificando dos constantes de ese tipo, que actúan como límite inferior y constantes de ese tipo, que actúan como límite inferior y superior del conjunto de datos de ese tipo. superior del conjunto de datos de ese tipo.

Ejem:Ejem:1- 1..10 consta de: 1,2,3,4,5,6,7,8,9,101- 1..10 consta de: 1,2,3,4,5,6,7,8,9,102- ‘F’ .. ‘I’ consta de: ‘F’, ‘G’, ‘H’, ‘I’2- ‘F’ .. ‘I’ consta de: ‘F’, ‘G’, ‘H’, ‘I’3- ‘a’ .. ‘z’ consta de: ‘a’ hasta ‘z’3- ‘a’ .. ‘z’ consta de: ‘a’ hasta ‘z’4- ‘0’ .. ‘9’ consta de: ‘0’ a ‘9’4- ‘0’ .. ‘9’ consta de: ‘0’ a ‘9’Se pueden crear variables cuyos valores se restrinjan a un Se pueden crear variables cuyos valores se restrinjan a un

subrango dado. Las declaraciones de tipo subrango se sitúan subrango dado. Las declaraciones de tipo subrango se sitúan entre las declaraciones de constantes y de variablesentre las declaraciones de constantes y de variables..

Formato:Formato:TypeType

Nombre = Limite Inferior .. Límite Superior;Nombre = Limite Inferior .. Límite Superior;

Tipos de Datos Subrango:Tipos de Datos Subrango:

Page 4: Clase IV Estructura de Datos IUTE - Mérida

Tipos de Datos Subrango:Tipos de Datos Subrango:

Ejem:Program Prueba;Const Pi = 3,141592;Type IntervaloEnteros = -100 ..100; LetrasMin = ‘a’..’z’;Var Grande : Integer; Reducido : IntervaloEnteros; X,Y : Real;

El tipo subrango es esencialmente utilizado para dos fines:•Mejorar la legibilidad y la comprensión•Aumentar la fiabilidad de los programas

Page 5: Clase IV Estructura de Datos IUTE - Mérida

Ejem:Ejem:

TypeType

Dias = (Lunes, Martes, Miércoles, Jueves, Viernes, Dias = (Lunes, Martes, Miércoles, Jueves, Viernes, Sábado, Domingo):Sábado, Domingo):

FindeSemana = Sabado..Domingo;FindeSemana = Sabado..Domingo;

VarVar

Hoy :Dias;Hoy :Dias;

Fiesta : FindeSemana;Fiesta : FindeSemana;

Laborable : Lunes..Viernes;Laborable : Lunes..Viernes;

Cuando una variable no toma más que un pequeño número de Cuando una variable no toma más que un pequeño número de valores, se puede definir de tipo subrango. Sirven para definir valores, se puede definir de tipo subrango. Sirven para definir indicadores, variables de estados, en un programa. Pueden indicadores, variables de estados, en un programa. Pueden ser utilizados como índices de Arrays. ser utilizados como índices de Arrays.

Tipos de Datos Subrango:Tipos de Datos Subrango:

Page 6: Clase IV Estructura de Datos IUTE - Mérida

Un tipo enumerado se compone de un conjunto de valores referenciados por identificadores. Estos valores constituyen una lista de identificadores de constantes que el programador debe indicar en la parte del programa reservada a las declaraciones.

Eligiendo adecuadamente nombres significativos para los identificadores, se pueden hacer programas más fáciles de leer.Ejem:Type Vehículos = (moto, automóvil, autobús, tren); Frutas = (manzanas, peras, uvas, ciruelas, melón); Lenguajes = (Basic, Pascal, Visual, Java);

Ejem:Var Clase : Vehículo; Postre : Frutas; Lengua: Lenguajes;Formato:Type Nombre = (constante1, constante2, ... constanteN);

Tipo Enumerados:

Page 7: Clase IV Estructura de Datos IUTE - Mérida

Tipo Enumerados:Características:Un tipo de dato enumerado es un tipo ordinal cuyo orden se indica por la

disposición de los valores en la definición.El número de orden de cada elemento comienza en 0 para el primer elemento.

Aplicaciones de tipo Enumerado:Un uso muy frecuente de los tipos enumerados es en sentencias Case para

seleccionar alternativas múltiples.Ejem:Type Automóvil = (Ford, Bmw, Fiat, Alfa, Renault);Var Marca: Automovil;. . .Case Marca of Ford : Descuento := 0,20; Bmw : Descuento := 0,15; Fiat, Alfa: Descuento :=0,30Else Descuento := 0,10;End;

Page 8: Clase IV Estructura de Datos IUTE - Mérida

Los tipos enumerados pueden ser índices (subíndices) de arrays.Los tipos enumerados pueden ser índices (subíndices) de arrays.Ejemplo:Ejemplo:TypeType

Arcoiris = (Rojo, Naranja, Amarillo, Verde, Azul, Morado, Violeta);Arcoiris = (Rojo, Naranja, Amarillo, Verde, Azul, Morado, Violeta);

VarVar Color1, Color2 : Arcoiris;Color1, Color2 : Arcoiris; Color1:= Amarillo;Color1:= Amarillo; Color2:= Morado;Color2:= Morado; . . .. . . LongitudOnda : Array [Rojo .. Violeta] of real;LongitudOnda : Array [Rojo .. Violeta] of real; Frecuencia : Array [Rojo .. Violeta] of real;Frecuencia : Array [Rojo .. Violeta] of real; Color : Arcoiris;Color : Arcoiris;

. . .. . . LongitudOnda [Rojo] := 6.2 E –7;LongitudOnda [Rojo] := 6.2 E –7; LongitudOnda [Naranja] := 5.9E-7;LongitudOnda [Naranja] := 5.9E-7;

Tipo Enumerados:

Page 9: Clase IV Estructura de Datos IUTE - Mérida

Procedimientos de visualización de datos tipo enumerado:Procedimientos de visualización de datos tipo enumerado:

Ejemplo:Ejemplo:Dadas las declaraciones:Dadas las declaraciones:TypeType

Arcoiris = (Rojo, Verde, Azul, Marrón, Blanco, Gris, Negro);Arcoiris = (Rojo, Verde, Azul, Marrón, Blanco, Gris, Negro);VarVar

Color: Arcoiris;Color: Arcoiris;Se puede crear un procedimiento EscribirColor, de modo que Se puede crear un procedimiento EscribirColor, de modo que

cuando se le invoque por el nombre y con un determinado color cuando se le invoque por el nombre y con un determinado color como argumento se visualice dicho color. La sentenciacomo argumento se visualice dicho color. La sentencia

EscribirColor (Argumento)EscribirColor (Argumento)Visualiza el nombre del color que figura en el argumento.Visualiza el nombre del color que figura en el argumento.

Tipo Enumerados:

Page 10: Clase IV Estructura de Datos IUTE - Mérida

El procedimiento es el siguiente:El procedimiento es el siguiente: Procedure EscribirColor (Valor: Arcoiris);Procedure EscribirColor (Valor: Arcoiris);

BegínBegínCase Valor ofCase Valor of

Rojo : Writeln (‘Rojo’);Rojo : Writeln (‘Rojo’);Verde : Writeln (‘Verde’);Verde : Writeln (‘Verde’);Azul : Writeln (‘Azul’);Azul : Writeln (‘Azul’);Marrón : Writeln (‘Marron’);Marrón : Writeln (‘Marron’);Blanco : Writeln (‘Blanco’);Blanco : Writeln (‘Blanco’);Gris : Writeln (‘Gris’);Gris : Writeln (‘Gris’);Negro : Writeln (‘Negro’);Negro : Writeln (‘Negro’);

End;End;End;End;Si en el programa principal se invoca a Si en el programa principal se invoca a

EscribirColor (Verde);EscribirColor (Verde);Se visualizará ‘Verde’ Se visualizará ‘Verde’

Tipo Enumerados:

Page 11: Clase IV Estructura de Datos IUTE - Mérida

Lectura y Escritura de Tipos Enumerados:Lectura y Escritura de Tipos Enumerados: Para su lectura y escritura, los tipos enumerados están sometidos Para su lectura y escritura, los tipos enumerados están sometidos

a ciertas restricciones:a ciertas restricciones:1. Los procedimientos de entrada / salida no pueden leer o 1. Los procedimientos de entrada / salida no pueden leer o escribir datos de tipo enumerado.escribir datos de tipo enumerado.Ejem: Ejem: Write (jueves); Write (jueves); producirá un errorproducirá un error

El error que se visualiza es:El error que se visualiza es:Error 64: Cannot Read or Write variables of this typeError 64: Cannot Read or Write variables of this type2. Un valor no puede figurar en dos listas diferentes, es decir, 2. Un valor no puede figurar en dos listas diferentes, es decir, en dos tipos enumerados diferentes.en dos tipos enumerados diferentes.

Ejem:Ejem:TypeType

Aparatos = (tv, radio, cassette, proyector);Aparatos = (tv, radio, cassette, proyector);Electronica = ( diodo, condenzador, transistor, Electronica = ( diodo, condenzador, transistor,

resistencia, integrada);resistencia, integrada);

Page 12: Clase IV Estructura de Datos IUTE - Mérida

Salida de valores de tipo enumerado:Si se desea sacar un valor de tipo enumerado, se debe utilizar la sentencia

case. Ejem:Type DiasSemana = (Lunes, Martes, Miércoles, Jueves, Viernes, Sábado,

Domingo); Laborables = Lunes .. Viernes; FinSemana = Sabado .. Domingo;Var Dia : DiasSemana;Para obtener el valor de la variable de salida Día se utiliza la sentencia case.Case Dia of

Lunes : Write (‘Lunes’);Martes : Write ( ‘ Martes’);Miércoles : Write (‘Miercoles’);Jueves : Write (‘Jueves’);Viernes : Write (‘Viernes’)

ElseWrite (‘Fin de Semana’);

End; {case}

Lectura y Escritura de Tipos Enumerados:Lectura y Escritura de Tipos Enumerados: