Introducción

En Delphi/Object Pascal, los tipos enumerados y los subrangos son herramientas poderosas que permiten definir conjuntos específicos de valores y restringir el rango de valores que una variable puede tomar. Estos tipos mejoran la legibilidad del código y ayudan a prevenir errores.

Tipos Enumerados

Definición

Un tipo enumerado es un conjunto de valores constantes con nombre. Cada valor en un tipo enumerado es una constante que representa un valor único.

Sintaxis

type
  TDay = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Ejemplo Práctico

program EnumeratedTypesExample;

type
  TDay = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

var
  Today: TDay;

begin
  Today := Wednesday;
  if Today = Wednesday then
    WriteLn('It''s the middle of the week!');
end.

Explicación

  • Definición del Tipo: TDay es un tipo enumerado que contiene los días de la semana.
  • Declaración de Variable: Today es una variable del tipo TDay.
  • Asignación y Comparación: Se asigna Wednesday a Today y se compara con Wednesday para imprimir un mensaje.

Ventajas

  • Legibilidad: Los nombres de los valores son descriptivos.
  • Seguridad: Solo se pueden asignar valores definidos en el tipo enumerado.

Subrangos

Definición

Un subrango es un tipo que restringe el rango de valores que una variable puede tomar. Se define a partir de un tipo ordinal (como Integer, Char, o un tipo enumerado).

Sintaxis

type
  TAge = 0..120;

Ejemplo Práctico

program SubrangeTypesExample;

type
  TAge = 0..120;

var
  Age: TAge;

begin
  Age := 25;
  WriteLn('Age is: ', Age);
  
  // Intentar asignar un valor fuera del rango causará un error en tiempo de compilación
  // Age := 130; // Error: valor fuera del rango permitido
end.

Explicación

  • Definición del Tipo: TAge es un subrango que permite valores entre 0 y 120.
  • Declaración de Variable: Age es una variable del tipo TAge.
  • Asignación y Validación: Se asigna 25 a Age, que es un valor válido. Intentar asignar 130 causaría un error de compilación.

Ventajas

  • Validación Automática: El compilador verifica que los valores asignados estén dentro del rango permitido.
  • Claridad: Define claramente los límites de los valores aceptables.

Ejercicios Prácticos

Ejercicio 1: Definir y Usar un Tipo Enumerado

Instrucciones: Define un tipo enumerado TSeason con los valores Spring, Summer, Autumn, y Winter. Declara una variable de este tipo y asigna Summer. Imprime un mensaje dependiendo del valor de la variable.

Solución:

program SeasonExample;

type
  TSeason = (Spring, Summer, Autumn, Winter);

var
  CurrentSeason: TSeason;

begin
  CurrentSeason := Summer;
  case CurrentSeason of
    Spring: WriteLn('It''s springtime!');
    Summer: WriteLn('It''s summer!');
    Autumn: WriteLn('It''s autumn!');
    Winter: WriteLn('It''s winter!');
  end;
end.

Ejercicio 2: Definir y Usar un Subrango

Instrucciones: Define un subrango TGrade que permita valores del 1 al 10. Declara una variable de este tipo y asigna un valor dentro del rango. Intenta asignar un valor fuera del rango y observa el error.

Solución:

program GradeExample;

type
  TGrade = 1..10;

var
  Grade: TGrade;

begin
  Grade := 8;
  WriteLn('Grade is: ', Grade);
  
  // Intentar asignar un valor fuera del rango causará un error en tiempo de compilación
  // Grade := 11; // Error: valor fuera del rango permitido
end.

Conclusión

En esta sección, hemos aprendido sobre los tipos enumerados y los subrangos en Delphi/Object Pascal. Los tipos enumerados permiten definir conjuntos específicos de valores con nombres descriptivos, mejorando la legibilidad y seguridad del código. Los subrangos restringen el rango de valores que una variable puede tomar, proporcionando validación automática y claridad. Estos conceptos son fundamentales para escribir código robusto y fácil de mantener.

En el próximo tema, exploraremos el manejo de archivos en Delphi, lo que nos permitirá leer y escribir datos en archivos, una habilidad esencial para muchas aplicaciones.

Curso de Programación en Delphi/Object Pascal

Módulo 1: Introducción a Delphi/Object Pascal

Módulo 2: Estructuras de Control y Procedimientos

Módulo 3: Trabajando con Datos

Módulo 4: Programación Orientada a Objetos

Módulo 5: Características Avanzadas de Delphi

Módulo 6: Desarrollo de GUI con VCL y FMX

Módulo 7: Desarrollo Web y Móvil

Módulo 8: Mejores Prácticas y Patrones de Diseño

Módulo 9: Proyecto Final

© Copyright 2024. Todos los derechos reservados