Introducción

En este tema, exploraremos dos estructuras de datos fundamentales en Delphi/Object Pascal: los registros y los conjuntos. Estas estructuras permiten organizar y manipular datos de manera eficiente y son esenciales para escribir programas robustos y bien estructurados.

Registros

¿Qué es un Registro?

Un registro es una estructura de datos que agrupa diferentes tipos de datos bajo un mismo nombre. Cada elemento dentro de un registro se llama campo, y cada campo puede ser de un tipo de dato diferente.

Declaración de Registros

Para declarar un registro en Delphi, utilizamos la palabra clave record. Aquí tienes un ejemplo básico:

type
  TPersona = record
    Nombre: string;
    Edad: Integer;
    Altura: Double;
  end;

En este ejemplo, TPersona es un tipo de registro que contiene tres campos: Nombre, Edad y Altura.

Uso de Registros

Para utilizar un registro, primero debemos declararlo y luego podemos acceder a sus campos utilizando el operador punto (.).

var
  Persona: TPersona;
begin
  Persona.Nombre := 'Juan';
  Persona.Edad := 30;
  Persona.Altura := 1.75;

  WriteLn('Nombre: ', Persona.Nombre);
  WriteLn('Edad: ', Persona.Edad);
  WriteLn('Altura: ', Persona.Altura:0:2);
end;

Ejercicio Práctico

Ejercicio 1: Declara un registro llamado TCoche que contenga los campos Marca (string), Modelo (string) y Año (Integer). Luego, crea una variable de tipo TCoche, asigna valores a sus campos y muestra estos valores en la consola.

Solución:

type
  TCoche = record
    Marca: string;
    Modelo: string;
    Año: Integer;
  end;

var
  Coche: TCoche;
begin
  Coche.Marca := 'Toyota';
  Coche.Modelo := 'Corolla';
  Coche.Año := 2020;

  WriteLn('Marca: ', Coche.Marca);
  WriteLn('Modelo: ', Coche.Modelo);
  WriteLn('Año: ', Coche.Año);
end;

Conjuntos

¿Qué es un Conjunto?

Un conjunto es una colección de valores del mismo tipo. En Delphi, los conjuntos se utilizan principalmente para trabajar con tipos enumerados y subrangos.

Declaración de Conjuntos

Para declarar un conjunto, utilizamos la palabra clave set of. Aquí tienes un ejemplo básico:

type
  TDiasSemana = (Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo);
  TConjuntoDias = set of TDiasSemana;

En este ejemplo, TDiasSemana es un tipo enumerado que representa los días de la semana, y TConjuntoDias es un conjunto de estos días.

Uso de Conjuntos

Para utilizar un conjunto, primero debemos declararlo y luego podemos añadir o eliminar elementos utilizando los operadores de conjuntos.

var
  DiasLaborales: TConjuntoDias;
begin
  DiasLaborales := [Lunes, Martes, Miercoles, Jueves, Viernes];

  if Sabado in DiasLaborales then
    WriteLn('El sábado es un día laboral.')
  else
    WriteLn('El sábado no es un día laboral.');
end;

Operaciones con Conjuntos

Las operaciones comunes con conjuntos incluyen la unión, intersección y diferencia.

  • Unión: A + B
  • Intersección: A * B
  • Diferencia: A - B
var
  DiasFinDeSemana, DiasLaborales, TodosLosDias: TConjuntoDias;
begin
  DiasLaborales := [Lunes, Martes, Miercoles, Jueves, Viernes];
  DiasFinDeSemana := [Sabado, Domingo];

  TodosLosDias := DiasLaborales + DiasFinDeSemana; // Unión
  WriteLn('Todos los días: ', TodosLosDias);

  TodosLosDias := DiasLaborales * DiasFinDeSemana; // Intersección
  WriteLn('Días comunes: ', TodosLosDias);

  TodosLosDias := DiasLaborales - DiasFinDeSemana; // Diferencia
  WriteLn('Días laborales sin fin de semana: ', TodosLosDias);
end;

Ejercicio Práctico

Ejercicio 2: Declara un conjunto llamado TConjuntoVocales que contenga las vocales a, e, i, o, u. Luego, crea una variable de tipo TConjuntoVocales, añade las vocales a, e, i y muestra si la vocal o está en el conjunto.

Solución:

type
  TVocales = (a, e, i, o, u);
  TConjuntoVocales = set of TVocales;

var
  Vocales: TConjuntoVocales;
begin
  Vocales := [a, e, i];

  if o in Vocales then
    WriteLn('La vocal "o" está en el conjunto.')
  else
    WriteLn('La vocal "o" no está en el conjunto.');
end;

Conclusión

En esta sección, hemos aprendido sobre los registros y conjuntos en Delphi/Object Pascal. Los registros nos permiten agrupar diferentes tipos de datos bajo un mismo nombre, mientras que los conjuntos nos permiten trabajar con colecciones de valores del mismo tipo. Ambos son herramientas poderosas que nos ayudan a organizar y manipular datos de manera eficiente.

En el próximo tema, exploraremos los tipos enumerados y subrangos, que son fundamentales para definir conjuntos y trabajar con datos de manera más estructurada.

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