En aquest tema, explorarem els conceptes d'abast (scope) i durada (lifetime) de les variables en Delphi/Object Pascal. Aquests conceptes són fonamentals per entendre com i quan les variables són accessibles i quina és la seva vida útil dins d'un programa.

Conceptes Clau

Abast de les Variables

L'abast d'una variable determina la part del codi on la variable és accessible. En Delphi/Object Pascal, l'abast de les variables es pot classificar en:

  1. Variables Globals:

    • Declarades fora de qualsevol procediment o funció.
    • Són accessibles des de qualsevol part del codi després de la seva declaració.
  2. Variables Locals:

    • Declarades dins d'un procediment o funció.
    • Només són accessibles dins del procediment o funció on han estat declarades.
  3. Variables de Mòdul:

    • Declarades a la secció implementation d'una unitat.
    • Són accessibles només dins de la mateixa unitat.

Durada de les Variables

La durada d'una variable es refereix al temps durant el qual la variable existeix en memòria. En Delphi/Object Pascal, la durada de les variables es pot classificar en:

  1. Variables Estàtiques:

    • Variables globals i de mòdul.
    • Existeixen durant tota l'execució del programa.
  2. Variables Dinàmiques:

    • Variables locals.
    • Existeixen només durant l'execució del procediment o funció on han estat declarades.

Exemples Pràctics

Variables Globals

program GlobalVariablesExample;

var
  GlobalVar: Integer; // Variable global

procedure DisplayGlobalVar;
begin
  Writeln('GlobalVar: ', GlobalVar);
end;

begin
  GlobalVar := 10;
  DisplayGlobalVar; // Output: GlobalVar: 10
end.

Variables Locals

program LocalVariablesExample;

procedure DisplayLocalVar;
var
  LocalVar: Integer; // Variable local
begin
  LocalVar := 5;
  Writeln('LocalVar: ', LocalVar);
end;

begin
  // LocalVar no és accessible aquí
  DisplayLocalVar; // Output: LocalVar: 5
end.

Variables de Mòdul

unit ModuleVariablesExample;

interface

procedure DisplayModuleVar;

implementation

var
  ModuleVar: Integer; // Variable de mòdul

procedure DisplayModuleVar;
begin
  ModuleVar := 20;
  Writeln('ModuleVar: ', ModuleVar);
end;

end.

Variables Dinàmiques

program DynamicVariablesExample;

procedure DisplayDynamicVar;
var
  DynamicVar: Integer; // Variable dinàmica
begin
  DynamicVar := 15;
  Writeln('DynamicVar: ', DynamicVar);
end;

begin
  DisplayDynamicVar; // Output: DynamicVar: 15
  // DynamicVar ja no és accessible aquí
end.

Exercicis Pràctics

Exercici 1: Variables Globals i Locals

  1. Declara una variable global GlobalCounter i una variable local LocalCounter dins d'un procediment.
  2. Incrementa ambdues variables dins del procediment i mostra els seus valors.
program Exercise1;

var
  GlobalCounter: Integer; // Variable global

procedure IncrementCounters;
var
  LocalCounter: Integer; // Variable local
begin
  GlobalCounter := GlobalCounter + 1;
  LocalCounter := LocalCounter + 1;
  Writeln('GlobalCounter: ', GlobalCounter);
  Writeln('LocalCounter: ', LocalCounter);
end;

begin
  GlobalCounter := 0;
  IncrementCounters; // Output: GlobalCounter: 1, LocalCounter: 1
  IncrementCounters; // Output: GlobalCounter: 2, LocalCounter: 1
end.

Exercici 2: Variables de Mòdul

  1. Crea una unitat amb una variable de mòdul ModuleCounter.
  2. Implementa un procediment que incrementi i mostri el valor de ModuleCounter.
unit Exercise2Module;

interface

procedure IncrementModuleCounter;

implementation

var
  ModuleCounter: Integer; // Variable de mòdul

procedure IncrementModuleCounter;
begin
  ModuleCounter := ModuleCounter + 1;
  Writeln('ModuleCounter: ', ModuleCounter);
end;

end.
program Exercise2;

uses
  Exercise2Module;

begin
  IncrementModuleCounter; // Output: ModuleCounter: 1
  IncrementModuleCounter; // Output: ModuleCounter: 2
end.

Resum

En aquest tema, hem après sobre l'abast i la durada de les variables en Delphi/Object Pascal. Hem vist com les variables globals, locals i de mòdul tenen diferents àmbits d'accés i durades de vida. També hem practicat aquests conceptes amb exemples pràctics i exercicis.

Aquests conceptes són essencials per escriure codi clar i mantenible, i per evitar errors comuns com l'ús de variables no inicialitzades o la modificació inesperada de variables globals.

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