Els registres són una estructura de dades fonamental en ALGOL que permeten agrupar diferents tipus de dades sota un mateix nom. Això és especialment útil quan es treballa amb dades relacionades que tenen diferents tipus, com ara les dades d'un estudiant (nom, edat, nota, etc.).

Què és un Registre?

Un registre és una col·lecció de camps, on cada camp pot tenir un tipus de dada diferent. Els registres permeten agrupar aquestes dades de manera que es puguin manipular com una sola unitat.

Exemple de Registre

record Student:
    string name;
    integer age;
    real grade;
end;

En aquest exemple, hem definit un registre anomenat Student que conté tres camps: name (cadena de text), age (enter) i grade (real).

Definició de Registres

Per definir un registre en ALGOL, utilitzem la paraula clau record seguida del nom del registre i la llista de camps que el componen.

Sintaxi

record RecordName:
    Type1 Field1;
    Type2 Field2;
    ...
    TypeN FieldN;
end;

Exemple

record Book:
    string title;
    string author;
    integer year;
    real price;
end;

Aquest registre Book conté quatre camps: title, author, year i price.

Declaració de Variables de Tipus Registre

Un cop definit el registre, podem declarar variables d'aquest tipus de la mateixa manera que ho fem amb altres tipus de dades.

Exemple

record Book:
    string title;
    string author;
    integer year;
    real price;
end;

Book myBook;

En aquest exemple, hem declarat una variable myBook de tipus Book.

Accés als Camps del Registre

Per accedir als camps d'un registre, utilitzem l'operador de punt (.).

Exemple

myBook.title := "Introduction to ALGOL";
myBook.author := "John Doe";
myBook.year := 2023;
myBook.price := 29.99;

En aquest exemple, estem assignant valors als camps del registre myBook.

Exemple Complet

A continuació, es mostra un exemple complet que defineix un registre, declara una variable d'aquest tipus, assigna valors als seus camps i imprimeix aquests valors.

record Book:
    string title;
    string author;
    integer year;
    real price;
end;

Book myBook;

begin
    myBook.title := "Introduction to ALGOL";
    myBook.author := "John Doe";
    myBook.year := 2023;
    myBook.price := 29.99;

    print("Title: ", myBook.title);
    print("Author: ", myBook.author);
    print("Year: ", myBook.year);
    print("Price: ", myBook.price);
end;

Exercicis Pràctics

Exercici 1

Defineix un registre anomenat Car amb els següents camps: make (cadena de text), model (cadena de text), year (enter) i price (real). Declara una variable d'aquest tipus, assigna valors als seus camps i imprimeix aquests valors.

Solució

record Car:
    string make;
    string model;
    integer year;
    real price;
end;

Car myCar;

begin
    myCar.make := "Toyota";
    myCar.model := "Corolla";
    myCar.year := 2020;
    myCar.price := 20000.00;

    print("Make: ", myCar.make);
    print("Model: ", myCar.model);
    print("Year: ", myCar.year);
    print("Price: ", myCar.price);
end;

Exercici 2

Defineix un registre anomenat Person amb els següents camps: firstName (cadena de text), lastName (cadena de text), age (enter) i height (real). Declara una variable d'aquest tipus, assigna valors als seus camps i imprimeix aquests valors.

Solució

record Person:
    string firstName;
    string lastName;
    integer age;
    real height;
end;

Person myPerson;

begin
    myPerson.firstName := "Alice";
    myPerson.lastName := "Smith";
    myPerson.age := 30;
    myPerson.height := 1.75;

    print("First Name: ", myPerson.firstName);
    print("Last Name: ", myPerson.lastName);
    print("Age: ", myPerson.age);
    print("Height: ", myPerson.height);
end;

Conclusió

Els registres són una eina poderosa en ALGOL per agrupar diferents tipus de dades sota un mateix nom. Això facilita la manipulació de dades relacionades i millora la llegibilitat del codi. En aquesta secció, hem après a definir registres, declarar variables de tipus registre, accedir als seus camps i treballar amb exemples pràctics. Amb aquesta base, estàs preparat per utilitzar registres en els teus propis programes ALGOL.

© Copyright 2024. Tots els drets reservats