500 likes | 634 Vues
Universidad Nacional de Luján Licenciatura en Sistemas de Información Departamento de Ciencias Básicas. Programación I. Prof. Adjunto: Lic. Jorge O. Scucimarri. Tipo de Datos. El universo de valores con los que un programa trabaja, está dividido en colecciones organizadas llamadas tipos.
E N D
Universidad Nacional de Luján Licenciatura en Sistemas de Información Departamento de Ciencias Básicas Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Programación I - Tipo de Datos
Tipo de Datos El universo de valores con los que un programa trabaja, está dividido en colecciones organizadas llamadas tipos. Programación I - Tipo de Datos
Los tipos de datos se caracterizan por: • Un rango de valores posibles (dominio). • Un conjunto de operaciones realizables sobre ese tipo. • Su representación interna. Programación I - Tipo de Datos
La declaración de tipos de datos presenta las siguientes ventajas: • Mejores posibilidades de abstracción. • Límites preestablecidos sobre el dominio de cada variable asociada a un elemento del mundo real. • Detectar errores de operaciones. • Determinar cómo ejecutar las operaciones. Programación I - Tipo de Datos
Tipo de Datos Datos Estáticos Datos Dinámicos Tipos Simples Tipos Cadena (arrays) Tipos Estructurados Tipos Procedimiento (procesos) • Ordinales • Integer • Boolean • Char • Enumerado • Subrango • No Ordinales • Reales Array Registro Conjunto Archivo Tipos Puntero Programación I - Tipo de Datos
Tipo Simple Tipo Ordinal Tipo Real integer Predefinidos char boolean Tipo Ordinal Definidos por el Usuario enumerados subrango Los tipos simples definen conjuntos de valores ordenados.
Tipo Simple Tipo Ordinal Se dice ordenado discretamente si para todos los elementos que son parte del tipo, salvo el primero y el ultimo, existe un elemento anterior y otro posterior. integer Predefinidos char boolean Tipo Ordinal
Tipo Simple Tipo Ordinal integer Predefinidos Numéricos Tipo Ordinal
Tipo Numérico Entero Programación I - Tipo de Datos
Tipo Simple Tipo Ordinal integer Predefinidos char boolean Tipo Ordinal
Tipo Simple Tipo Ordinal Predefinidos Lógicos boolean Tipo Ordinal
Tipo Lógico o booleano Es un dato cuyo dominio está formado por dos valores posibles: Verdadero (true) Falso (false) Programación I - Tipo de Datos
Tipo Simple Tipo Ordinal integer Predefinidos char boolean Tipo Ordinal
Tipo Simple Tipo Ordinal Predefinidos Caracter char Tipo Ordinal
Tipo Carácter (char) • Es un dato cuyo dominio está formado por el conjunto de valores comprendido en el código ASCII, el cual permite establecer un orden de precedencia entre los mismos. • Letras minúsculas: ‘a’, ‘b’, ..., ‘z’ • Letras mayúsculas: ‘A’, ‘B’, ..., ‘Z’ • Dígitos: ‘0’, ‘1’, ..., ‘9’ • Caracteres especiales: ‘!’, ‘@’, ... Programación I - Tipo de Datos
Tipo Carácter (char) Funciones sobre el tipo de dato carácter Programación I - Tipo de Datos
Tipo Ordenados Discretamente Funciones Programación I - Tipo de Datos
Tipo Ordenados Discretamente • Ejemplos: • Pred(‘H’) = ‘G’ • Succ(2) = 3 • Succ(false) = true • Pred(110) = 109 • Succ(’Z’) = ‘a’ Programación I - Tipo de Datos
Tipo Ordenados Discretamente • Para los enteros: • Succ(x) es x + 1 • Pred(x) es x - 1 • Ord(x) es x • Para los booleanos: • Ord(false) es 0 • Ord(true) es 1 Programación I - Tipo de Datos
Tipo Simple Tipo Real Programación I - Tipo de Datos
Tipo Numérico Real Programación I - Tipo de Datos
Notación científica o de coma flotante Sea el número 0.0000000000356798 su representación utilizando notación científica es: 3.56798 x 10-11 y su representación en una computadora: 0.356798 -10 mantisa exponente Programación I - Tipo de Datos
Notación científica o de coma flotante Sea el número 89412950000000000 su representación en una calculadora es: 8.941295 x 1016 y su representación en una computadora: .8941295 17 mantisa exponente Programación I - Tipo de Datos
Operaciones básicas Programación I - Tipo de Datos
Tipo de DatosDefinidos por el Usuario Programación I - Tipo de Datos
Tipo Simple Tipo Ordinal Tipo Ordinal Definidos por el Usuario enumerados subrango
Tipo Simple Tipo Ordinal Tipo Ordinal Definidos por el Usuario enumerados
Tipo Enumerado Formato: type nombre_tipo_enum = (valor_1, valor_2, ..., valor_n) Ejemplos: type colores = (rojo, azul, verde, blanco, negro); dias_semana = (domingo, lunes, martes, míercoles, jueves, sabado, domingo); var color : colores; dia : dias_semana; Programación I - Tipo de Datos
Tipo Enumerado Los identificadores que detallan los valores posibles del tipo son constantes simbólicas. Estos identificadores deben ser distintos de los que están detallados en la misma sección. Por esta razón no pueden ser, por ejemplo, caracteres. Ejemplos no válidos: type ciudad_1 = (LaPlata, Cordoba, Rosario) ciudad_2 = (Salta, Cordoba, Jujuy) letras = (‘a’, ‘b’, ‘c’); Programación I - Tipo de Datos
Tipo Enumerado Operaciones sobre datos enumerativos type colores = (azul, blanco, negro, verde); var color : colores Son válidas las sgtes. operaciones: color := azul; If (color = blanco) or (color = negro) then ... For color := azul to verde do... No son válidas operaciones tales como: read(color); write(color); Programación I - Tipo de Datos
Tipo Enumerado Las funciones predefinidas sobre datos enumerativos son las mismas que se describen para los datos de tipo ordinal. Programación I - Tipo de Datos
Tipo Simple Tipo Ordinal Tipo Ordinal Definidos por el Usuario enumerados subrango
Tipo Simple Tipo Ordinal Tipo Ordinal Definidos por el Usuario subrango
Tipo Subrango type nombre = (límite inferior.. límite superior) Ejemplos: type IntervaloEnteros = -100..100; LetrasMin = ‘a’..’z’; var Reducido : IntervaloEnteros; Letras : LetrasMin; Programación I - Tipo de Datos
Tipo Subrango Un tipo de dato subrango es un tipo ordinal que consiste en una secuencia sucesiva contigua de valores de algún tipo ordinal (llamado tipo base del subrango). Las operaciones y las funciones predefinidas que se pueden realizar sobre un tipo de dato subrango son las mismas que las de su tipo base. Programación I - Tipo de Datos
Tipo de Datos Datos Estáticos Datos Dinámicos Tipos Simples Tipos Cadena (arrays) Tipos Estructurados Tipos Procedimiento (procesos) • Ordinales • Integer • Boolean • Char • Enumerado • Subrango • No Ordinales • Reales Array Registro Conjunto Archivo Tipos Puntero Programación I - Tipo de Datos
Tipo de Datos Datos Estáticos Tipos Simples Tipo Cadena • Ordinales • Integer • Boolean • Char • Enumerado • Subrango • No Ordinales • Reales Programación I - Tipo de Datos
Tipo String (cadena) Una cadena de caracteres (string) es una serie de caracteres cuya longitud puede variar de 0 a 255 caracteres. El tipo de dato string permite almacenar información de texto. • Ejemplo: • var • Mensaje : string; Programación I - Tipo de Datos
Tipo String • Operaciones entre cadenas: • Asignación • Comparación • Concatenación Programación I - Tipo de Datos
Tipo String Algunas funciones aplicables a cadenas: Concat (S1, S2, ..., Sn) {retorna un string} Length (S) {retorna un integer} Copy (S, Posición, Cantidad) {retorna un string} Programación I - Tipo de Datos
Tipo de Datos Datos Estáticos Datos Dinámicos Tipos Simples Tipos Cadena (arrays) Tipos Estructurados Tipos Procedimiento (procesos) • Ordinales • Integer • Boolean • Char • Enumerado • Subrango • No Ordinales • Reales Array Registro Conjunto Archivo Tipos Puntero Programación I - Tipo de Datos
Tipo de Datos Datos Estáticos Tipos Simples Tipos Cadena (arrays) Tipos Estructurados • Ordinales • Integer • Boolean • Char • Enumerado • Subrango • No Ordinales • Reales Array Registro Conjunto Archivo Programación I - Tipo de Datos
Tipo Conjunto Colección homogénea de elementos, sin repetición, sin relación de orden entre ellos e ilimitada. Desde el punto de vista informático, es una colección de datos simples, todos del mismo tipo. (En Pascal, el número máximo de elementos está acotado a 255) Programación I - Tipo de Datos
Tipo Conjunto Un conjunto se declara de la forma: type conjunto = set of tipo_ordinal donde tipo ordinal es el tipo al cual pertenecen los elementos del conjunto y al que se lo denomina tipo base. Programación I - Tipo de Datos
Tipo Conjunto Una vez definido el tipo conjunto, podemos definir una variable conjunto: var nombre_variable : conjunto También es posible declarar directamente una variable como un conjunto sin una declaración previa de tipo: var nombre_variable : set of tipo_ordinal Programación I - Tipo de Datos
Tipo Conjunto Ejemplos: type dias = (domingo, lunes, martes, miercoles, jueves, viernes, sabado); Uno_al_100 = 1..100; Letras = set of char; Algunos_dias = set of dias; Algunos_numeros = set of uno_al_100; Programación I - Tipo de Datos
Tipo Conjunto Construcción de un conjunto Program define_conjuntos; var letras : set of char; begin letras := [‘a’, ‘b’, ‘c’, ‘x’, ‘z’]; ... end. Programación I - Tipo de Datos
Tipo Conjunto Operaciones sobre datos tipo conjunto Programación I - Tipo de Datos
Tipo Conjunto Ejemplos type conjunto = set of char; var conj_1, conj_2, conj_3 : conjunto; conj_1 := []; {conjunto vacío} conj_2 := [‘a’]; conj_1 := [‘a’, ‘c’, ‘f’]; conj_3 := conj_1 * conj_2 Programación I - Tipo de Datos
Tipo Conjunto Operadores relacionales válidos: <> <= >= = Si A y B son variables del mismo tipo conjunto: A<>B retorna true si los conjuntos son distintos A<=B retorna true si A está incluido en B A>=B retorna true si B está incluido en A A = B retorna true si A y B son iguales. Programación I - Tipo de Datos