En aquest tema, aprendrem sobre els subprogrames en Ada, que inclouen procediments i funcions. Els subprogrames són blocs de codi reutilitzables que permeten estructurar millor els programes, millorar la llegibilitat i facilitar el manteniment.
Continguts
- Introducció als Subprogrames
- Procediments
- Funcions
- Paràmetres en Subprogrames
- Exemples Pràctics
- Exercicis Pràctics
- Introducció als Subprogrames
Els subprogrames en Ada es divideixen en dues categories principals:
- Procediments: No retornen cap valor.
- Funcions: Retornen un valor.
Els subprogrames permeten modularitzar el codi, fent-lo més fàcil de llegir i mantenir.
- Procediments
Definició de Procediment
Un procediment és un subprograma que realitza una sèrie d'operacions però no retorna cap valor. La seva sintaxi és la següent:
Exemple de Procediment
Crida a un Procediment
Per cridar un procediment, simplement escrivim el seu nom seguit dels parèntesis:
- Funcions
Definició de Funció
Una funció és un subprograma que retorna un valor. La seva sintaxi és la següent:
function Nom_Funcio (Paràmetres) return Tipus_Retorn is
begin
-- Cos de la funció
return Valor;
end Nom_Funcio;Exemple de Funció
Crida a una Funció
Per cridar una funció, ho fem dins d'una expressió:
- Paràmetres en Subprogrames
Els subprogrames poden tenir paràmetres d'entrada, sortida o entrada/sortida. Els modes de paràmetres són:
- in: Paràmetre d'entrada (per defecte).
- out: Paràmetre de sortida.
- in out: Paràmetre d'entrada/sortida.
Exemple amb Paràmetres
Crida amb Paràmetres
declare
Valor : Integer := 10;
begin
Incrementar(Valor);
Put_Line(Integer'Image(Valor)); -- Mostra 11
end;
- Exemples Pràctics
Procediment amb Paràmetres
procedure Mostrar_Salutacio (Nom : String) is
begin
Put_Line("Hola, " & Nom & "!");
end Mostrar_Salutacio;
begin
Mostrar_Salutacio("Ada");
end;Funció amb Paràmetres
function Multiplicar (A, B : Integer) return Integer is
begin
return A * B;
end Multiplicar;
declare
Resultat : Integer;
begin
Resultat := Multiplicar(4, 5);
Put_Line(Integer'Image(Resultat)); -- Mostra 20
end;
- Exercicis Pràctics
Exercici 1: Procediment de Benvinguda
Escriu un procediment que mostri un missatge de benvinguda personalitzat.
procedure Benvinguda (Nom : String) is
begin
Put_Line("Benvingut/da, " & Nom & "!");
end Benvinguda;
begin
Benvinguda("Joan");
end;Exercici 2: Funció de Factorial
Escriu una funció que calculi el factorial d'un nombre enter.
function Factorial (N : Integer) return Integer is
begin
if N = 0 then
return 1;
else
return N * Factorial(N - 1);
end if;
end Factorial;
declare
Resultat : Integer;
begin
Resultat := Factorial(5);
Put_Line(Integer'Image(Resultat)); -- Mostra 120
end;Solucions
Solució Exercici 1
procedure Benvinguda (Nom : String) is
begin
Put_Line("Benvingut/da, " & Nom & "!");
end Benvinguda;
begin
Benvinguda("Joan");
end;Solució Exercici 2
function Factorial (N : Integer) return Integer is
begin
if N = 0 then
return 1;
else
return N * Factorial(N - 1);
end if;
end Factorial;
declare
Resultat : Integer;
begin
Resultat := Factorial(5);
Put_Line(Integer'Image(Resultat)); -- Mostra 120
end;Conclusió
En aquesta secció, hem après sobre els subprogrames en Ada, incloent procediments i funcions. Hem vist com definir-los, cridar-los i passar-hi paràmetres. Els subprogrames són una eina poderosa per modularitzar el codi i fer-lo més llegible i mantenible. En el proper mòdul, explorarem els tipus de dades avançats com arrays, registres i enumeracions.
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
