Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Curso de Ada - Atributos

Curso de Ada - Atributos

 ****- (10 opiniones)
GNU Free Documentation License Curso gratis de José Alfonso Malo Romero - 16 de Marzo de 2006
Temas Relacionados: Programación estructurada
23. Atributos
Los atributos son operaciones predefinidas que se pueden aplicar a tipos, objetos y otras entidades. Tienen la siguiente sintaxis:

Entidad'Atributo

o bien

Tipo'Atributo(Entidad) ||

Tabla de contenidos

[esconder] ~- 1 Atributos aplicables a tipos ~- 2 Atributos aplicables a objetos ~- 3 Ejemplos ~- 4 Manual de referencia de Ada ||

Atributos aplicables a tipos


Por ejemplo estos son algunos atributos aplicables a tipos:

  • Last: Integer'Last es el máximo valor que puede tomar una variable de un tipo discreto, sea entero o enumeración.

  • First: Tipo'First es el mínimo valor que puede tomar una variable de un tipo discreto, sea entero o enumeración.

  • Succ: TColor'Succ(ROJO) indica el siguiente valor a ROJO que toma el tipo TColor, si no existe, se eleva la excepción Constraint_Error.

  • Pred: TDía'Pred(VIERNES) indica el anterior valor a VIERNES que toma el tipo TDía, si no existe, se eleva la excepción Constraint_Error.

  • Pos: El atributo Pos indica la posición ocupada por un determinado valor en un tipo enumeración. Por ejemplo: TColor'Pos(ROJO). La primera posición se considera 0.

  • Val: El atributo Val indica el valor que ocupa una determinada posición en un tipo enumeración. Por ejemplo: COLOR'Val(1).

  • Size: mínimo espacio en bits en que se pueden almacenar objetos de este tipo. Técnicamente se define como lo que ocuparía un componente de un registro de este tipo cuando el registro está empaquetado (pragma Pack).

  • Truncation: El atributo Truncation se usa con la forma X'Truncation(Y), siendo X cualquier tipo flotante e Y una variable de ese tipo. Devuelve el valor truncado de Y a un valor entero.

  • Digits: El atributo Digits representa el número de decimales de la mantisa de un tipo flotante.

  • Ceiling: El atributo Ceiling se usa con la forma X'Ceiling(Y), siendo X cualquier tipo flotante e Y una variable de ese tipo. Devuelve el "techo" de Y, es decir el valor entero más pequeño que es mayor o igual que Y.

  • Rounding: El atributo Rounding se usa con la forma X'Rounding(Y), siendo X cualquier tipo flotante e Y una variable de ese tipo. Devuelve el valor de Y redondeado al entero más cercano. Si Y está exactamente entre dos valores enteros, toma el valor del mayor entero (p.e, Float'rounding(1.5)=2.0)

Atributos aplicables a objetos


Por ejemplo estos son algunos atributos aplicables a objetos:

  • Size: tamaño en bits de un objeto.
  • Valid: si tiene una representación válida para su tipo. Útil cuando se obtienen valores desde el «mundo exterior» mediante Unchecked_Conversion u otro mecanismo.
  • First, Last: aplicados a arrays dan el primer y el último índices del array.
  • Range: Vector'Range indica el rango que ocupa la variable Vector, es decir, equivale a Vector'First..Vector'Last. En el caso de más de una dimensión, el valor Matriz'Range(1) indica el rango de la primera dimensión.

Ejemplos


type Tipo_enumerado is (Enum1, Enum2, Enum3); for Tipo_enumerado'Size use 2; -- Para representar 3 unidades necesitamos 2 bits type Tipo_entero is range -1 .. 5; ... pragma Assert (Tipo_enumerado'Last = Enum3); -- Correcto pragma Assert (Tipo_entero'First = -1); -- Correcto pragma Assert (Tipo_entero'Last = 4); -- ¡¡Incorrecto!! pragma Assert (Tipo_enumerado'Pred( Enum2 ) = Enum1); -- Correcto pragma Assert (Tipo_enumerado'Succ( Enum2 ) = Enum3); -- Correcto type Tipo_flotante is digits 10 range 0.0..100.0; -- 10 cifras decimales en la mantisa Var_Flotante : Float := 1.5; Var_Flotante2 : Float := 1.9; Var_Flotante3 : Float := 1.0; Var_Flotante4 : Float := -1.8; Var_Flotante5 : Float := 1.1; ... pragma Assert (Float'Ceiling(var_Flotante) = 2.0); -- Correcto pragma Assert (Float'Ceiling(var_Flotante2) = 2.0); -- Correcto pragma Assert (Float'Ceiling(var_Flotante3) = 1.0); -- Correcto pragma Assert (Float'Ceiling(var_Flotante3) = 2.0); -- ¡¡Incorrecto!! pragma Assert (Float'Truncation(var_Flotante) = 1.0); -- Correcto pragma Assert (Float'Truncation(var_Flotante2) = 1.0); -- Correcto pragma Assert (Float'Truncation(var_Flotante3) = 1.0); -- Correcto pragma Assert (Float'Truncation(var_Flotante4) = -1.0); -- Correcto pragma Assert (Float'Rounding(var_Flotante5) = 1.0); -- Correcto pragma Assert (Float'Rounding(var_Flotante) = 2.0); -- Correcto A : Character := Character'Val (32) -- A toma el valor de espacio (valor 32 en la tabla ASCII) B : Character := ' '; -- B también toma el valor de espacio Resultado : Natural; ... if not Resultado'Valid then -- 'Resultado' está fuera del rango, con valor negativo Result := Natural'First; end if




Manual de referencia de Ada


Tabla de contenidos
  1. 1 - Introducción
  2. 2 - Historia
  3. 3 - Manual de referencia
  4. 4 - Instalación
  5. 5 - Hola Mundo
  6. 6 - Elementos del lenguaje
  7. 7 - Tipos
  8. 8 - Enteros
  9. 9 - Enumeraciones
  10. 10 - Coma flotante
  11. 11 - Coma fija
  12. 12 - Arrays
  13. 13 - Strings
  14. 14 - Registros
  15. 15 - Registros discriminados
  16. 16 - Registros variantes
  17. 17 - Punteros a objetos
  18. 18 - Punteros a subprogramas
  19. 19 - Tipos derivados
  20. 20 - Tipos etiquetados (orientación a objetos)
  21. 21 - Subtipos
  22. 22 - Objetos (variables y constantes)
  23. 23 - Atributos
  24. 24 - Expresiones
  25. 25 - Operadores
  26. 26 - Sentencias y estructuras de control
  27. 27 - Subprogramas
  28. 28 - Sobrecarga
  29. 29 - Entrada/salida
  30. 30 - Pragmas
  31. 31 - Interfaz con otros lenguajes
  32. 32 - Diseño y programación de sistemas grandes
  33. 33 - Paquetes
  34. 34 - Clausula use
  35. 35 - Clausula with
  36. 36 - Paquete Standard
  1. 37 - Declaraciones
  2. 38 - Ámbito
  3. 39 - Visibilidad
  4. 40 - Renombrado
  5. 41 - La biblioteca Ada (unidades y subunidades)
  6. 42 - Unidades de biblioteca
  7. 43 - Unidades hijas
  8. 44 - Subunidades
  9. 45 - Compilación separada y dependiente
  10. 46 - Tipos abstractos de datos
  11. 47 - Tipos limitados
  12. 48 - Unidades genéricas
  13. 49 - Excepciones
  14. 50 - Paquete Ada.Exceptions
  15. 51 - Concurrencia
  16. 52 - Tareas
  17. 53 - Sincronización de tareas mediante puntos de entrada o citas (entry)
  18. 54 - Aceptación de citas (accept)
  19. 55 - Selección de citas (select)
  20. 56 - Llamadas a punto de entrada complejas
  21. 57 - Tareas dinamicas: creación dinamica de tareas (tipos t
  22. 58 - Dependencia de tareas
  23. 59 - Ejemplos de tareas
  24. 60 - Programación distribuida con GLADE
  25. 61 - Novedades de Ada 2005
  26. 62 - Unidades predefinidas
  27. 63 - Paquete Ada.Strings.Fixed
  28. 64 - Paquete Ada.Strings.Unbounded
  29. 65 - Paquete Ada.Text_IO
  30. 66 - Paquete Ada.Text_IO.Editing
  31. 67 - Paquete Ada.Float_Text_IO
  32. 68 - Paquete Ada.Sequential_IO
  33. 69 - Paquete Ada.Command_Line
  34. 70 - Paquete Interfaces
  35. 71 - Recursos en la Web
Autor y licencia de 'Curso de Ada - Atributos'
José Alfonso Malo Romero Extraído de: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Ada_/_Introducci%C3%B3n GNU Free Documentation License
El contenido está disponible bajo los términos de GNU Free Documentation License
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Curso de Ada - Atributos'

Excelente curso de iniciación a la astronomía para aquellos que quieran aprender sobre esta apasionante... Más »
Este es un curso tremendamente completo, guiado y con ejemplos y prácticas pensadas para convertirlo... Más »
La idea de este curso surgió de varias conversaciones entre amig@s de la cuadrilla y... Más »
Este tutorial presenta los conceptos básicos de líneas de transmisión (Transmission lines), así como una... Más »
Publicidad, término utilizado para referirse a cualquier anuncio destinado al público y cuyo objetivo es... Más »
Gente Wiki
Jessica Navarro
Soy de venezuela tengo 25 años, soltera, soy bioanalista, actualmente estoy realizando un postgrado en microbiologia, he realizado una serie...
Analisis y diagnóstico, Técnicos de laboratorio,...
Douglas Gonzalez
Soy comunicador social, y psicologo, aunque unicamente ejerzo el periodismo, sin embargo, siempre he estado vinculado de una u otra...
Juan S. Cisterna Araneda
Jefe de Operaciones, Instructor Especialista en Montaña, Especialista en Rescates.
Actividades lúdicas, Esquí,...
Max
Bachiller en ingeniería de computación y sistemas, con experiencia en soporte de software y hardware de sistemas contables y de...
Mariela
Soy licenciada en bibliotecología y ciencias de la información. Trabajo en un centro de información especializado en turismo. Mi trabajo...
Adriana Romero
Soy odontologa egresada de la f. U. S. M. En el 2005, el 1 de febrero regrese de mi...
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?