La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Seminario de Lenguajes A – Opción Ada

Presentaciones similares


Presentación del tema: "Seminario de Lenguajes A – Opción Ada"— Transcripción de la presentación:

1 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Enumerativos type boolean is (False, True); type Color is (Rojo, Amarillo, Azul, Naranja, Verde, Violeta); type Dias is (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo); D: Dias; Lunes < Martes < Miercoles < Jueves < Viernes < Sabado < Domingo for I in Rojo..Azul loop .... end loop; for I in Color loop package DiasIO is new Enumeration_IO(Dias); use DiasIO; Get(D); Put(D); Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 1

2 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Restricciones, rangos y subtipos I: integer; J: integer range ; K: integer range ; Habiles: Dias range Lunes..Viernes; Los subtipos son compatibles con su tipo base y con los otros subtipos del mismo tipo base I := J; -- Compatibles K := I; -- Compatibles -- CONSTRAINT_ERROR J := I; -- Compatibles J := K; -- Compatibles -- CONSTRAINT_ERROR I := K; -- Compatibles K := J; -- Compatibles -- CONSTRAINT_ERROR subtype Year is integer range ; subtype Habiles is Dias range Lunes..Viernes; subtype Primarios is Color range Rojo..Azul; for I in Habiles loop ... end loop; for I in Year loop Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 2

3 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Atributos de tipos discretos First Last Pos Succ Pred Val Image Value with Text_IO; use Text_IO; procedure Clase4_UserTypes is type Dias is (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo); D: Dias := Domingo; package DIO is new Enumeration_IO(Dias); package IIO is new Integer_IO(integer); use DIO, IIO; begin Put(Dias'First); LUNES Put(Dias'Last); DOMINGO Put(Dias'Pos(Lunes)); Put(Integer'Pos(0)); Put(Integer'Pos(-10)); Put(Integer'Pos(10)); Put(Dias'Succ(Lunes)); MARTES --Put(Dias'Succ(Domingo)); -- error en compilación --Put(Dias'Succ(D)); CONSTRAINT_ERROR Put(Dias'Pred(Domingo)); -- SABADO Put(Dias'Val(0)); LUNES Put(Dias'Image(Lunes)); -- LUNES (valor string) Put(Dias'Value("Lunes")); -- LUNES (valor enumerativo) end Clase4_UserTypes; Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 3

4 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Arrays Declaración type Dias is (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo); type Vector is array (1..5) of integer; Contadores: array (1..5) of integer; LetraMin: character := 'A'; type VectorDias is array (LetraMin..'Z') of Dias; type VectorBoolean is array (Dias) of boolean; VD: VectorDias; VB: VectorBoolean; Acceso a elementos Contadores(3) := 0; I := Contadores(4); VB(VD(LetraMin)) := VD('Z') > Lunes; Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 4

5 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Arrays Agregates Asignación a la estructura completa en una sola instrucción Contadores := (0, 0, 0, 0, 0); Contadores := (1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0); Contadores := (1|2|3|4|5 => 0); Contadores := (1..5 => 0); Contadores := (1|3 => 0, others => 10); Contadores := (others => 0); VB := (Sabado|Martes..Miercoles|Domingo => Contadores(2) = Contadores(5), Lunes => true, others => false); Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 5

6 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Arrays Compatibilidad A: array (1..5) of integer; B, C: array (1..5) of integer; A := (1, 2, 3, 4, 5); B := A; -- ilegal (tipos anónimos) C := A; -- ilegal (tipos anónimos) B := C; -- ilegal (tipos anónimos) Para que sean compatibles type Vector is array (1..5) of integer; D: Vector; E, F: Vector; D := (1, 2, 3, 4, 5); E := D; -- legal (tipos de igual nombre) F := D; -- legal (tipos de igual nombre) E := F; -- legal (tipos de igual nombre) Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 6

7 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Arrays multidimensionales procedure Clase4_ArrayMultidimensionales is type Matriz1 is array (1..10, 1..10) of integer; type Vector is array (1..10) of integer; type Matriz2 is array (1..10) of Vector; M1: Matriz1; M2: Matriz2; begin M1(1, 1) := 0; M2(1)(1) := 0; M2(1) := (1..10 => 1); M2(2) := (others => 2); M2 := ( => (others => 1), 2|4|6..9 => (others => 2), 3|5|10 => (others => 3)); M1 := ( => (others => 1), end Clase4_ArrayMultidimensionales; Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 7

8 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Arrays ilimitados type Vector is array (integer range <>) of integer; type Matriz is array (integer range <>, integer range <>) of integer; Las variables y constantes deben ser “siempre” limitadas V1: Vector(1..10); V2: Vector(10..15); V3: Vector(16..25); M1: Matriz(1..10, 1..10); subtype SubVector is Vector(1..10); subtype SubMatriz is Matriz(1..10, 1..10); SV: SubVector; SM: SubMatriz; Compatibilidad (nombre de tipo + cantidad de elementos) V1 := V2; -- incompatibles V1 := V3; V2 := V3; -- incompatibles SV := V1; SV := V2; -- incompatibles SV := V3; Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 8

9 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Atributos de los arrays Siendo A variable o constante de tipo array o un tipo array limitado: A'First(N) A'Last(N) A'Length(N) -- A'Last(N) - A'First(N) + 1 A‘Range(N) -- A'First(N)..A'Last(N) for I in A’Range(N) loop ... end loop; Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 9

10 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Registros procedure Clase4_Registros is type Fecha is record Dia: integer range 1..31; Mes: integer range 1..12; Ano: integer range ; end record; F: Fecha; M: integer; begin F.Dia := 20; M := F.Mes; F := (13, 4, 1980); F := (Dia => 13, Mes => 4, Ano => 1980); F := (Dia|Mes => 4, others => 1980); end Clase4_Registros; Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 10

11 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Registros. Valores de campos por default type Fecha is record Dia: integer range := 13; Mes: integer range := 4; Ano: integer range := 1980; end record; F: Fecha; -- F inicializado en (13, 4, 1980) Los valores de campos por default pueden ser expresiones Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 11

12 Seminario de Lenguajes A – Opción Ada
Tipos definidos por el usuario Registros. Los valores de campos por default pueden ser expresiones with Text_IO; use Text_IO; procedure Clase4_RegistrosDefault is N: integer := 4; type Rec is record Val1: integer := N; Val2: character; end record; X: Rec; package IIO is new Integer_IO(integer); use IIO; procedure Proc is Y: Rec; begin Put(Y.Val1); end Proc; Put(X.Val1); N := 6; Proc; end Clase4_RegistrosDefault; Imprime 4, 6, 4 Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 12

13 Tipos definidos por el usuario en Java
Seminario de Lenguajes A – Opción Ada Tipos definidos por el usuario en Java ______________________________________________________ enum Dias (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo); int[] anArray; // declare an array of integers anArray = new int[10]; // create an array of integers // assign a value to each array element and print for (int i = 0; i < anArray.length; i++) { anArray[i] = i; System.out.print(anArray[i] + " "); } System.out.println(); Seminario de Lenguajes A – Opción Ada – Raúl Champredonde 13


Descargar ppt "Seminario de Lenguajes A – Opción Ada"

Presentaciones similares


Anuncios Google