En aquest tema, explorarem dos tipus de dades importants en Delphi/Object Pascal: els registres i els conjunts. Aquests tipus de dades ens permeten organitzar i gestionar la informació de manera eficient i estructurada.

Registres

Els registres (records) són estructures de dades que permeten agrupar diferents tipus de dades sota un mateix nom. Cada element dins d'un registre es coneix com a camp, i cada camp pot tenir un tipus de dada diferent.

Definició de Registres

Per definir un registre, utilitzem la paraula clau record. Aquí teniu un exemple bàsic:

type
  TPersona = record
    Nom: string;
    Edat: Integer;
    CorreuElectronic: string;
  end;

En aquest exemple, hem definit un registre anomenat TPersona amb tres camps: Nom, Edat i CorreuElectronic.

Ús de Registres

Per utilitzar un registre, primer hem de declarar una variable del tipus de registre i després podem accedir als seus camps:

var
  Persona: TPersona;
begin
  Persona.Nom := 'Joan';
  Persona.Edat := 30;
  Persona.CorreuElectronic := '[email protected]';

  WriteLn('Nom: ', Persona.Nom);
  WriteLn('Edat: ', Persona.Edat);
  WriteLn('Correu Electrònic: ', Persona.CorreuElectronic);
end;

Exercici Pràctic

Exercici 1: Defineix un registre anomenat TProducte amb els camps Nom, Preu i Quantitat. Després, crea una variable d'aquest tipus, assigna valors als seus camps i mostra'ls per pantalla.

Solució:

type
  TProducte = record
    Nom: string;
    Preu: Double;
    Quantitat: Integer;
  end;

var
  Producte: TProducte;
begin
  Producte.Nom := 'Ordinador Portàtil';
  Producte.Preu := 999.99;
  Producte.Quantitat := 5;

  WriteLn('Nom: ', Producte.Nom);
  WriteLn('Preu: ', Producte.Preu:0:2);
  WriteLn('Quantitat: ', Producte.Quantitat);
end;

Conjunts

Els conjunts (sets) són col·leccions d'elements del mateix tipus que permeten realitzar operacions conjuntes com la unió, la intersecció i la diferència.

Definició de Conjunts

Per definir un conjunt, utilitzem la paraula clau set of. Aquí teniu un exemple bàsic:

type
  TDiesSetmana = (Dilluns, Dimarts, Dimecres, Dijous, Divendres, Dissabte, Diumenge);
  TSetDies = set of TDiesSetmana;

En aquest exemple, hem definit un tipus enumerat TDiesSetmana i un conjunt TSetDies que pot contenir qualsevol combinació dels dies de la setmana.

Ús de Conjunts

Per utilitzar un conjunt, primer hem de declarar una variable del tipus de conjunt i després podem afegir o eliminar elements:

var
  DiesLaborables: TSetDies;
begin
  DiesLaborables := [Dilluns, Dimarts, Dimecres, Dijous, Divendres];

  if Dilluns in DiesLaborables then
    WriteLn('Dilluns és un dia laborable.');

  Exclude(DiesLaborables, Divendres);

  if not (Divendres in DiesLaborables) then
    WriteLn('Divendres ja no és un dia laborable.');
end;

Operacions amb Conjunts

Els conjunts permeten realitzar diverses operacions:

  • Unió: A := A + B;
  • Intersecció: A := A * B;
  • Diferència: A := A - B;

Exercici Pràctic

Exercici 2: Defineix un conjunt anomenat TSetColors que contingui els colors Vermell, Verd, Blau i Groc. Després, crea una variable d'aquest tipus, afegeix alguns colors i mostra'ls per pantalla.

Solució:

type
  TColors = (Vermell, Verd, Blau, Groc);
  TSetColors = set of TColors;

var
  Colors: TSetColors;
begin
  Colors := [Vermell, Blau];

  if Vermell in Colors then
    WriteLn('Vermell està en el conjunt.');

  Include(Colors, Verd);

  if Verd in Colors then
    WriteLn('Verd està en el conjunt.');

  Exclude(Colors, Blau);

  if not (Blau in Colors) then
    WriteLn('Blau ja no està en el conjunt.');
end;

Conclusió

En aquesta secció, hem après a treballar amb registres i conjunts en Delphi/Object Pascal. Els registres ens permeten agrupar diferents tipus de dades sota un mateix nom, mentre que els conjunts ens permeten gestionar col·leccions d'elements del mateix tipus i realitzar operacions conjuntes. Aquests conceptes són fonamentals per organitzar i gestionar la informació de manera eficient en els nostres programes.

Curs de Programació Delphi/Object Pascal

Mòdul 1: Introducció a Delphi/Object Pascal

Mòdul 2: Estructures de Control i Procediments

Mòdul 3: Treballant amb Dades

Mòdul 4: Programació Orientada a Objectes

Mòdul 5: Funcions Avançades de Delphi

Mòdul 6: Desenvolupament d'Interfícies Gràfiques amb VCL i FMX

Mòdul 7: Desenvolupament Web i Mòbil

Mòdul 8: Millors Pràctiques i Patrons de Disseny

Mòdul 9: Projecte Final

© Copyright 2024. Tots els drets reservats