Tipos de datos

Anuncio
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
Descargar