Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contents
1 Tipos en Pascal 2
1.1 Clasificacin de tipos . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Tipos estructurados . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Tipo Registro 2
2.1 Definicin de un registro . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Acceso a campos de registros . . . . . . . . . . . . . . . . . . . . 3
4 Registros variantes 5
4.1 Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.3 Ejemplo (cont) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.4 Ejemplo. Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.5 Creando una figura . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.6 Asignacin del campo discriminante . . . . . . . . . . . . . . . . 7
1
4.7 rea de una figura . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.8 Comparacin de posicin . . . . . . . . . . . . . . . . . . . . . . 8
1 Tipos en Pascal
2 Tipo Registro
2
2.2 Ejemplo
Los nmeros racionales pueden representarse as:
type
TSigno = (mas,menos);
natural = 0..MaxInt;
positivo = 1..MaxInt;
racional = record
signo : TSigno;
numerador : natural;
denominador : positivo;
end;
var q : racional;
...
q.signo:= mas;
q.numerador:= 4;
WriteLn(q.denominador);
...
3.1 Definicin
Otra posible representacin de conjuntos es la siguiente:
Type
Conjunto = record
elems : array [1..N] of T0;
tope : 0..N
end;
donde ahora T0 no necesita ser un tipo escalar. Solo se requiere que los valores
de tipo T0 sean comparables por igualdad.
3
3.2 Cmo funciona
El array elems almacena los elementos del conjunto.
Los elementos se almacenan en las celdas 1 a tope
type
Conj = record
elems : array [1..N] of T;
tope : 0..N
end;
4
i := 1;
{ evaluacion por circuito corto }
while (i <= S.tope) and (S.elems[i] <> e) do
i : = i + 1;
4 Registros variantes
4.1 Motivacin
4.2 Ejemplo
Categoras:
Estudiante:
Ao de Ingreso
5
Cantidad de materias
Docente
Carga horaria
Grado
Egresado
Ao de egreso
Ttulo
Cdula.
Credencial cvica.
6
figura = record
color: RGBColor;
case clase: TipoFigura of
circulo : (
radio: real;
centro: punto
);
cuadrado: (
lado: real;
verticeSupIzq: punto
);
rectangulo: (
base,altura: real;
verticeInfIzq: punto
);
end;
(* creacin de un rectngulo *)
r.color.red:= 10;
r.color.green:= 121;
r.color.blue:= 203;
r.clase:= rectangulo;
r.base:= 12.4;
r.altura:= 345.90;
r.verticeInfIzq.x:= 0.9;
r.verticeInfIzq.y:= 19.78;
Si asignamos:
r.clase:= rectangulo;
figura = record
color: RGBColor;
base,altura: real;
verticeInfIzq: punto
end;
7
function areaFigura(fig : Figura): real;
begin
with fig do begin
case fig.clase of
circulo : areaFigura := PI * sqr(radio);
rectangulo : areaFigura:= base * altura;
cuadrado : areaFigura:= sqr(lado);
end; { case }
end; { with }
end; {areaFigura}