Els registres en Ada són estructures de dades que permeten agrupar diferents tipus de dades sota un mateix nom. Són similars a les estructures (structs) en altres llenguatges de programació com C o C++. Els registres són molt útils per organitzar dades relacionades i facilitar la seva manipulació.
Continguts
Definició de Registres
Un registre és una col·lecció de camps, on cada camp pot ser de diferent tipus. La sintaxi per definir un registre és la següent:
Declaració de Registres
Per declarar un registre, primer hem de definir el tipus de registre i després podem declarar variables d'aquest tipus. Aquí teniu un exemple:
type Persona is record Nom : String(1..50); Edat : Integer; Alçada : Float; end record; -- Declaració d'una variable del tipus Persona variable_persona : Persona;
Accés als Camps del Registre
Per accedir als camps d'un registre, utilitzem el nom de la variable seguit d'un punt i el nom del camp:
Inicialització de Registres
Podem inicialitzar un registre en el moment de la seva declaració utilitzant una llista d'assignació:
Exemple Pràctic
A continuació, es mostra un exemple complet que defineix un registre, declara una variable d'aquest tipus, inicialitza els seus camps i imprimeix els valors dels camps:
with Ada.Text_IO; use Ada.Text_IO; procedure Exemple_Registres is -- Definició del registre type Persona is record Nom : String(1..50); Edat : Integer; Alçada : Float; end record; -- Declaració i inicialització de la variable del tipus Persona variable_persona : Persona := (Nom => "Joan", Edat => 30, Alçada => 1.75); begin -- Accés i modificació dels camps del registre variable_persona.Nom := "Maria"; variable_persona.Edat := 25; variable_persona.Alçada := 1.65; -- Impressió dels valors dels camps del registre Put_Line("Nom: " & variable_persona.Nom); Put_Line("Edat: " & Integer'Image(variable_persona.Edat)); Put_Line("Alçada: " & Float'Image(variable_persona.Alçada)); end Exemple_Registres;
Exercicis Pràctics
Exercici 1
Defineix un registre anomenat Cotxe
amb els següents camps: Marca
(String), Model
(String), Any
(Integer) i Preu
(Float). Declara una variable d'aquest tipus, inicialitza els seus camps i imprimeix els valors.
Exercici 2
Crea un programa que defineixi un registre anomenat Llibre
amb els camps Títol
(String), Autor
(String), ISBN
(String) i Preu
(Float). Declara una variable d'aquest tipus, inicialitza els seus camps amb valors introduïts per l'usuari i imprimeix els valors.
Solucions
Solució Exercici 1
with Ada.Text_IO; use Ada.Text_IO; procedure Exercici1 is -- Definició del registre type Cotxe is record Marca : String(1..50); Model : String(1..50); Any : Integer; Preu : Float; end record; -- Declaració i inicialització de la variable del tipus Cotxe variable_cotxe : Cotxe := (Marca => "Toyota", Model => "Corolla", Any => 2020, Preu => 20000.0); begin -- Impressió dels valors dels camps del registre Put_Line("Marca: " & variable_cotxe.Marca); Put_Line("Model: " & variable_cotxe.Model); Put_Line("Any: " & Integer'Image(variable_cotxe.Any)); Put_Line("Preu: " & Float'Image(variable_cotxe.Preu)); end Exercici1;
Solució Exercici 2
with Ada.Text_IO; use Ada.Text_IO; procedure Exercici2 is -- Definició del registre type Llibre is record Títol : String(1..100); Autor : String(1..100); ISBN : String(1..20); Preu : Float; end record; -- Declaració de la variable del tipus Llibre variable_llibre : Llibre; begin -- Lectura dels valors dels camps del registre des de l'usuari Put("Introdueix el títol del llibre: "); Get_Line(variable_llibre.Títol); Put("Introdueix l'autor del llibre: "); Get_Line(variable_llibre.Autor); Put("Introdueix l'ISBN del llibre: "); Get_Line(variable_llibre.ISBN); Put("Introdueix el preu del llibre: "); Get(variable_llibre.Preu); -- Impressió dels valors dels camps del registre Put_Line("Títol: " & variable_llibre.Títol); Put_Line("Autor: " & variable_llibre.Autor); Put_Line("ISBN: " & variable_llibre.ISBN); Put_Line("Preu: " & Float'Image(variable_llibre.Preu)); end Exercici2;
Conclusió
Els registres són una eina poderosa en Ada per agrupar dades relacionades sota una mateixa estructura. Hem après a definir registres, declarar variables d'aquest tipus, accedir als seus camps i inicialitzar-los. Els exercicis pràctics proporcionats ajuden a consolidar aquests conceptes i a veure com s'apliquen en situacions reals.
Curs de Programació en Ada
Mòdul 1: Introducció a Ada
Mòdul 2: Conceptes Bàsics
- Variables i Tipus de Dades
- Operadors i Expressions
- Estructures de Control
- Bucles en Ada
- Subprogrames: Procediments i Funcions
Mòdul 3: Tipus de Dades Avançats
Mòdul 4: Programació Modular
Mòdul 5: Concurrència i Programació en Temps Real
Mòdul 6: Temes Avançats
Mòdul 7: Millors Pràctiques i Optimització
- Estil de Codi i Millors Pràctiques
- Depuració i Proves
- Optimització del Rendiment
- Consideracions de Seguretat