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
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
Exemple
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
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.
Curs de Programació en ALGOL
Mòdul 1: Introducció a ALGOL
Mòdul 2: Sintaxi i Estructura Bàsica
- Estructura del Programa ALGOL
- Variables i Tipus de Dades
- Entrada i Sortida Bàsica
- Operadors i Expressions
Mòdul 3: Estructures de Control
Mòdul 4: Funcions i Procediments
- Definició de Funcions
- Paràmetres de Funció i Valors de Retorn
- Funcions Recursives
- Procediments en ALGOL
Mòdul 5: Estructures de Dades
Mòdul 6: Temes Avançats
Mòdul 7: Aplicacions Pràctiques
- Mètodes Numèrics
- Implementació d'Algorismes
- Construcció d'un Compilador Simple
- Estudis de Cas i Projectes