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