Lección 1. Programación. Curso 2006-2007 Tipos de datos J. A. Bañares, Pedro J. Álvarez, S. Velilla http://diis.unizar.es/ Departamento de Informática e Ingeniería de Sistemas 2 Tipos de datos, constantes y variables 2.1 Concepto de tipo de dato. Clasificación de tipos 2.2 Tipos de datos escalares 2.3 Dato constante 2.4 Dato variable Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 2 concepto de tipo de dato todo algoritmo procesador entorno con los objetos a manejar (datos) acciones a realizar abstracción de la realidad propiedades de todo dato tiene un valor concreto (estado) está representado de un modo concreto algorítmicamente (notación sintáctica) internamente (codificación) pueden aplicársele unas acciones concretas ámbito un conjunto de propiedades comunes determina un tipo de dato Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 3 concepto de tipo de dato para todo dato usado debe estar perfectamente especificado su tipo 9 9 ventajas: implícitamente (tipos predefinidos) explícitamente (declaración del tipo) 9 9 ò > legibilidad (y documentación) > facilidad diseño correcto (detección de errores) En los lenguajes fuertemente tipados se exige la declaración previa de los datos que se van a utilizar en el algoritmo Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 4 concepto de tipo de dato dominio de valores representación habitual (interna y algorítmica) conjunto de operadores asociado nombre para identificarlo especificación tipo de dato Ejemplo, tipo de dato Entero Ä Dominio de valores:[-32.768…0…32767] Ä Representación • Interna 2 bytes, representación en binario en complemento a 2. 0000 0000 • Externa:<entero>::=[+|-]<digito>{<digito>} Ä Conjunto de operadores: +,*, DIV, MOD, SQR Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 5 tipos de datos escalares dominio de valores finito relación de orden total entre sus valores operadores relacionales (infijos) = < ≤ ≠ > ≥ cierto o falso el resultado es un valor booleano pred(v)≡ devuelve el valor predecesor de v además, en tipos con dominio enumerable: succ(v)≡ devuelve el valor sucesor de v ord(v) ≡ devuelve el nº de orden de v Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 6 clasificación de los tipos de datos simples predefinidos booleano entero enumerables carácter real escalares definido por enumeración definido como subrango puntero o referencia Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 7 clasificación de los tipos de datos estructurados cadena definido mediante agregación (registro) definido mediante indexación (tabla o vector) definido como secuencia (fichero secuencial) definido como conjunto además están los tipos dinámicas de datos salvo los predefinidos declaración obligatoria de todos los DATOS y TIPOS de DATOS Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 8 datos constantes su valor no puede ser modificado por el algoritmo tipo de dato valor ámbito nombre atributos implícito (sintaxis) explícito > legibilidad, modificabilidad y reusabilidad invariantes Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 9 datos variables su valor puede ser modificado por el algoritmo atributos tipo de dato nombre ámbito valor explícito (declaración obligatoria) invariantes atributo variable operador asignación := el valor de una variable sólo declarada es indeterminado Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 10 Ejemplo programa PASCAL Program miPrimerProgram(input,output); const {datos constantes} congelacion = 0; ebullición = 100; var De nes o i c clara {datos variables} temp: integer; Begin {Sentencias ejecutables} Write(‘El agua congela a’, congelacion); Write(‘e hierve a ‘, ebullicion, ‘grados’); Temp:=(congelacion + ebullicion) DIV 2; Write(‘El punto medio es’, temp, ‘grados’) End. Programación. Primero de Ingeniera de Telecomunicaciones Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) Se as i c n nte 11