Está en la página 1de 4

28/09/2002 19:29 28/09/2002 19:29 28/09/2002 19:29

Tema 7 Tipos de estructuras de datos


Estructura de datos
Formacin (array) Primero ltimo
Estructuras de datos: Datos homogneos


Matrices y Registros Orden por posicin


Javier Miranda, Francisco Guerra Conjunto de datos relacionados Cadena de caracteres (string)
jmiranda@iuma.ulpgc.es Especilizacin de formacin


''En un lugar de
fguerra@iuma.ulpgc.es la mancha ...''

E.T.S.I. Telecomunicacin Registro (record)


Universidad de Las Palmas de Gran Canaria Datos heterogneos


28/09/2002 19:29 28/09/2002 19:29 28/09/2002 19:29

Formacin unidimensional Recorrido de un vector Vectores en Ada


(vector) Tipo vector:


procedure Ejemplo is type T_Colores is (Blanco, Negro, Amarillo, Rojo);
Slo exite un ndice asociado a la posicin.


Vector: array (Integer range 2..6) of Natural;


type T_Vector_100 is array (1 .. 100) of Integer;
A(2) A(3) A(4) A(5) A(6) begin
type T_Vector_Irrestringido is
for I in 2..6 loop
El tipo del ndice debe ser enumerable. array (Colores range <>) of Integer;


...
Vector(I) := 0; Variables tipo vector:
Cada elemento se puede procesar como una




... A: array (Negro .. Rojo) of Integer;


variable independiente. A(3) Valor end loop; B: array (T_Colores) of Integer;
end Ejemplo;
En Ada sera: C: array (T_Colores range Negro .. Rojo) of Integer;


D: T_Vector_100;
A: array (Integer range 2..6) of Tipo_Elemento; E: T_Vector_Irrestrindo (Blanco .. Amarillo);
28/09/2002 19:29 28/09/2002 19:29 28/09/2002 19:29

Atributos de los vectores Atributos de los vectores Operaciones con vectores


Limite inferior: A'First = Blanco Permiten procesar vectores genricos type T_Vector is array (Integer range <>) of Float;
Vector_1: T_Vector (1 .. 5);
Vector_2: T_Vector (2 .. 6) := (others => 0.0);
Limite superior: A'Last = Rojo for I in A'First .. A'Last
for I in A'Range loop
loop Asignacin


...
...
A (I) := Valor;
A (I) := Valor; Vector_1 (2) := 3.0;
Rango: A'Range = A'First .. A'Last ...
...
end loop; Vector_1 (5) := Vector_2 (6);
end loop;
Vector_1 := Vector_2;
Longitud: A'Length = 4 Vector_2 := (1.0, 2.0, others => 3.0);

28/09/2002 19:29 28/09/2002 19:29 28/09/2002 19:29

Operaciones con vectores Operaciones con vectores Cadena de caracteres (string)


type T_Vector is array (Integer range <>) of Float; Interfaz hombre-ordenador:


type T_Vector is array (Integer range <>) of Float;
Vector_1: T_Vector (1 .. 5); Vector_1: T_Vector (1 .. 5);
Los programas sacan por pantalla mensajes para


Vector_2: T_Vector (2 .. 6) := (others => 0.0); Vector_2: T_Vector (2 .. 6) := (others => 0.0);
Entregar un resultado


Pedir informacin,


Concatenar (&)


Asignacin Asignacin


...


Vector_2 := Vector_1 (5) & Vector_1 (1..4);
Vector_1 (2 .. 4) := Vector_2 (2 .. 3) & 0.0; Las personas introducen datos que permiten:


Porcin Porcin Solucionar un problema





Vector_1 (1 .. 3) := Vector_2 (3 .. 5); Lgicos (and, or, xor, not)




Almacenar informacin,


Vector_2 (2 .. 6) := Vector_1 (1 .. 5); Elementos de tipo lgico.
...


Vector_2 (3 .. 4) := (1.0, 3.0); Operadores


Muchos lenguajes de programacin definen un


Vector_1 (2 .. 5) := (others => 2.0); Igualdad (=) y desigualdad (/=)


tipo especial para almacenar ristras de caracteres


Vectores del mismo tipo.
28/09/2002 19:29 28/09/2002 19:29 28/09/2002 19:29
Recorrido de una matriz
Cadenas de caracteres en Ada Formacin bidimensional
procedure Ejemplo is
No existe un tipo especial. matriz A: array (Integer range 1 .. 3,
Existen dos ndices asociados Integer range 2 .. 4) of Positive;


type String is array (Positive range <>) of Character; begin
a cada elemento.
A(1,2) A(1,3) A(1,4) for I in 1 .. 3 loop
A(2,2) A(2,3) A(2,4) ...
Se pueden utilizar todas las operaciones A(3,2) A(3,3) A(3,4) for J in 2 .. 4 loop
de los vectores. En Ada sera:


...
A: array (Integer range 1 .. 3, A (I , J) := Valor;
Saludo : String(1..4) := ( 'H', 'O', 'L', 'A' ); Integer range 2 .. 4) of T_Elemento; ...
Nombre : String(1..4) := "JUAN"; end loop;
Vector de vectores


Saludo_Nombre: String(1..9) := Saludo & ' ' & Nombre; ...
type T_Vector is array (Integer range 1 .. 3) of T_Elemento;
Vector: array (Integer range 2 .. 4) of T_Vector; end loop;
end Ejemplo;

28/09/2002 19:29 28/09/2002 19:29 28/09/2002 19:29

Atributos de las matrices Formacin multidimensional Registro (record)


Existen mltiples ndices asociados a cada Agrupacin de declaraciones que se pueden



Limite inferior: A'First (1) = 1


A'First (2) = 2 elemento. manejar como un todo.


"Pepe" Nombre
Limite superior: A'Last (1) = 3


Persona 1.82 Altura


A'Last (2) = 4 En Ada sera:


23 Peso

Rango: A'Range (1) = A'First (1) .. A'Last (1) A: array (Integer range 1 .. 5,


En Ada sera:


Integer range 2 .. 7, type Persona is
record
Integer range 1 .. 5,
Nombre: String(1..20);
...
Longitud: A'Length (2) = 3 Altura : Float;


Integer range 5 .. 9) of T_Elemento; Edad : Positive;


end record;
28/09/2002 19:29 28/09/2002 19:29 28/09/2002 19:29

Registros en Ada Registros en Ada Registros en Ada


Valores por omisin Valores por omisin Valores por omisin


Registro con


type T_Persona is type Tipo_Sexo is (Hombre, Mujer);
Registro con


record type Persona (Sexo: Tipo_Sexo) is variantes type Persona is tagged
variantes record
Nombre: String (1 .. 20) := (others => '-'); record
Programacin


Altura : Float := 0.0; Nombre: String(1..20); Nombre: String(1..20);
Edad : Positive := 0; case Sexo is orientada a objetos end record;
when Hombre =>
end record;
Barbudo: Boolean := False;
when Mujer => type hombre is new Persona type Mujer is new Persona
Trenzas: Natural:= 0; with record with record
end case; Barbudo: Boolean ; Trenzas: Natural;
end record; end record; end record;

28/09/2002 19:29

Resumen
First Last
Formacin (array)


Datos homogneos


Orden por posicin




Range

Cadena de caracteres (string)




Especilizacin de formacin


''En un lugar de
la mancha ...''

Registro (record)


Datos heterogneos


También podría gustarte