Professional Documents
Culture Documents
Clase 4
Programacin I
Indice de Temas
Qu son los tipos de datos definidos por el usuario?
Tipo de dato Enumerativo. Operaciones. Ejemplos.
Clase 4
Programacin I
Clase 4
Programacin I
Un conjunto de valores o estados posibles. Un conjunto de operaciones permitidas. Una representacin interna
Esta definicin nos indica que podemos requerir la representacin de elementos NO de tipo estndar que se asocien con el fenmeno real a tratar.
Clase 4 Programacin I 4
1. Las notas de exmenes de una materia (valores enteros entre 0 y 10) 2. Los das hbiles de la semana (lunes, martes, mircoles, jueves y viernes.) 3. Un libro puede pensarse (abstraerse) como captulos con pginas, cada una de ellas con lneas, cada lnea con palabras y cada palabra con letras. 4. Los colores (rojo, azul, amarillo, verde, naranja, violeta) 5. Los palos de la baraja espaola (espada, basto, copa, oro).
Sobre estos ejemplos de clases de datos no estndar pueden pensarse operaciones permitidas que sean especficas de cada caso.
Clase 4
Programacin I
Notas de exmenes.
Das de la semana.
Buscar el da hbil siguiente a uno determinado. Indicar cual es el da hbil ms prximo a un da particular.
Clase 4
Programacin I
Los colores.
La baraja espaola.
Clase 4
Programacin I
Aumento de la riqueza expresiva del lenguaje, con mejores posibilidades de abstraccin de datos.
Mayor seguridad respecto de las operaciones que se realizan sobre cada clase de datos. Lmites preestablecidos sobre los valores posibles que pueden tomar las variables que corresponden al tipo de dato.
Clase 4
Programacin I
Un tipo de dato definido por el usuario es aquel que no existe en la definicin del lenguaje, y el programador es el encargado de su especificacin.
Clase 4
Programacin I
Puede ser un tipo estndar o alguno de los tipos de datos definidos por el usuario.
Clase 4
Programacin I
10
Esquema general del programa (que usa tipos definidos por el usuario)
Program ejemplo;
Clase 4
Programacin I
11
Documentacin: se pueden usar como identificador de los tipos, nombres autoexplicativos, facilitando de esta manera el entendimiento y lectura del programa. Seguridad: se reducen los errores por uso de operaciones inadecuadas del dato a manejar, y se pueden obtener programas ms confiables.
Clase 4 Programacin I 12
Ahora vamos a comenzar a trabajar con dos tipos de datos simples y definidos por el usuario.
Simples
Compuestos
Enumerativo Subrango
13
Tipos de Datos Definidos por el usuario ENUMERATIVO Algunos ejemplos de objetos del mundo real que podran definirse utilizando este tipo de dato.
Nombre de los meses del ao Nombre de los das de la semana Nombre de los colores Estado civil de las personas Nombre de las verduras que se expenden en un negocio, etc.
Clase 4
Programacin I
14
Clase 4
Programacin I
16
Clase 4
Programacin I
17
Operaciones?
18
Clase 4
En un case
Clase 4
Programacin I
19
Clase 4
Programacin I
20
PRED: devuelve el valor anterior del enumerativo correspondiente: PRED ( banana ) pera
Succ (sanda)???
21
Clase 4
Programacin I
22
Promueven cdigo autodocumentado. Ayudan a la legibilidad y mantenimiento de los programas. Permiten crear tipos de datos a medida de las especificaciones del problema en cuestin. Sin embargo, es restrictivo su uso debido a que no se puede realizar sobre ellas operaciones de entrada/salida
Clase 4 Programacin I 23
var
Clase 4
Programacin I
24
Usando Enumerativos
Type Meses = ( enero, febrero, marzo, abril, mayo, junio, julio, agosto, setiembre, octubre, noviembre, diciembre );
Dias_Sem = ( lunes, martes, miercoles, jueves, viernes, sbado, domingo );
var Ao, dia : integer; Mes : Meses; D_Sem : Dias_Sem; begin Ao := 2008; Mes := mayo; Dia := 7; D_Sem := miercoles; .. end.
Clase 4 Programacin I 25
Clase 4
Programacin I
26
Cmo se declara?
Clase 4
Programacin I
27
Clase 4
Clase 4
Programacin I
29
Facilita el chequeo de posibles errores, pues permite que el lenguaje verifique si los valores asignados se encuentran dentro del rango establecido. Ayuda al mantenimiento del programa.
Ejercicio: Plantee una declaracin de tres datos que puedan utilizarse para definir una fecha (da, mes, ao)
Clase 4
Programacin I
31
Clase 4
Programacin I
32
Jueves
Viernes
8
4 Jueves
8
7 ???
8
10 Viernes
8
7 Martes
Clase 4
Programacin I
33
Clase 4
Programacin I
34
Program uno; Type notas = 1..10; dias = (lunes, martes miercoles, jueves, viernes); Var max: notas; diaMax: dias; notaAl: notas; i: integer; d: dias;
Clase 4
Begin for i:= 1 to 100 do begin max:= 1; for d:= lunes to viernes do begin read (notaAl); if (notaAl >= max) then begin diaMax:= d; max:= notaAl; end; end; write (Para el alumno, i, la nota maxima fue) case diaMax of lunes : write (el dia lunes); martes: write (el dia martes); //los das que faltan end case; end; //end del for i end.
Programacin I
35
Desde el punto de vista informtico un tipo conjunto representar una coleccin de datos simples ordinales, sin elementos repetidos y sin ningn orden interno.
Simples
Compuestos
La cantidad de elementos que contiene el conjunto puede estar limitada por la implementacin en cada lenguaje o sistema operativo.
Clase 4
Conjunto
Enumerativo Subrango
Programacin I
36
Por un problema de implementacin en Pascal estndar el nmero mximo de elementos de un conjunto es 255.
Por qu es un tipo de dato COMPUESTO? Se reserva una cantidad fija de memoria?
Clase 4
Programacin I
37
Clase 4
Programacin I
38
Qu Operaciones permite?
Clase 4
Programacin I
39
{conjunto vacio}
Clase 4
Programacin I
40
Clase 4
Programacin I
41
Begin ..... conjLetras := [a , b] + [j , k]; conjLetras2 := [a] + [l , m]; conjLetras3 := conjLetras * conjLetras2; .... End;
Clase 4
Programacin I
42
Begin .... conjLetras := [a , b , c]; conjLetras2 := [b , d , e]; conjLetras3 := conjLetras - conjLetras2; .... End;
Clase 4
Programacin I
43
Clase 4
Programacin I
44
Clase 4
Programacin I
45
46
Inicializar variables Mientras ( no lea el . ) Inicializar variables para una palabra Mientras (no termina la palabra) analizo si es vocal Analizo si la palabra tiene 4 o mas vocales Informar Fin
Programacin I 48
Inicializar variables Mientras ( no lea el . ) Inicializar variables para una palabra Mientras (no termina la palabra) analizo si es vocal Analizo si la palabra tiene 4 o mas vocales informar Fin
Read (letra);
while (letra = ) do read (letra); while (letra <> .) do Begin total := total + 1; cant:=0; while (letra <> .) and (letra<> ) do begin if (letra in vocales) then cant:= cant+1; read (letra); end; if (cant >= 4) then pal:= pal+1; while (letra = ) do read (letra); end; Writeln (`Cantidad de palabras:, total); Writeln (`Cantidad de palabras con al menos 4 vocales:, pal); End.
Clase 4
Programacin I
49
En la mayora de los lenguajes existe un tipo estndar o definible por el usuario que es la cadena de caracteres llamado string. Vimos que un carcter es una letra, nmero smbolo.
Cuando se trabaja con el tipo de dato string, se tienen k caracteres tratados como una sola variable (donde k es la longitud del string).
Clase 4 Programacin I 51
Clase 4
Programacin I
52
Longitud es el nmero mximo de cantidad de caracteres que puede contener el dato. En PASCAL cuando no se especifica la longitud ese identificador podr contener como mximo 255 caracteres.
Type hilera hilera2 fecha da Var = string [10]; = string [25]; = string [8]; = string [2]; : : : : hilera; hilera2; string [14]; fecha;
Programacin I 53
Clase 4
Clase 4
Programacin I
54
Clase 4
Programacin I
56