Els bucles són una part fonamental de qualsevol llenguatge de programació, ja que permeten repetir un bloc de codi diverses vegades. Ada proporciona diverses estructures de bucle que permeten als programadors controlar el flux de l'execució de manera eficient i clara.
Tipus de Bucles en Ada
Ada ofereix tres tipus principals de bucles:
- Bucle
for
- Bucle
while
- Bucle
loop
Bucle for
El bucle for
s'utilitza per repetir un bloc de codi un nombre determinat de vegades. La sintaxi és la següent:
Exemple:
with Ada.Text_IO; use Ada.Text_IO; procedure For_Loop_Example is begin for I in 1 .. 10 loop Put_Line("El valor de I és: " & Integer'Image(I)); end loop; end For_Loop_Example;
Explicació:
I
és la variable de control del bucle.1 .. 10
especifica el rang de valors queI
prendrà.- El codi dins del bucle s'executarà 10 vegades, imprimint els valors de
I
de l'1 al 10.
Bucle while
El bucle while
s'utilitza per repetir un bloc de codi mentre una condició sigui certa. La sintaxi és la següent:
Exemple:
with Ada.Text_IO; use Ada.Text_IO; procedure While_Loop_Example is I : Integer := 1; begin while I <= 10 loop Put_Line("El valor de I és: " & Integer'Image(I)); I := I + 1; end loop; end While_Loop_Example;
Explicació:
I
és inicialitzada a 1.- El bucle s'executa mentre
I
sigui menor o igual a 10. - A cada iteració,
I
s'incrementa en 1.
Bucle loop
El bucle loop
és un bucle indefinit que s'executa fins que es troba una instrucció de sortida (exit
). La sintaxi és la següent:
Exemple:
with Ada.Text_IO; use Ada.Text_IO; procedure Loop_Example is I : Integer := 1; begin loop Put_Line("El valor de I és: " & Integer'Image(I)); I := I + 1; exit when I > 10; end loop; end Loop_Example;
Explicació:
I
és inicialitzada a 1.- El bucle s'executa indefinidament fins que
I
és major que 10. - A cada iteració,
I
s'incrementa en 1.
Exercicis Pràctics
Exercici 1: Bucle for
Escriu un programa que imprimeixi els nombres parells de l'1 al 20 utilitzant un bucle for
.
Solució:
with Ada.Text_IO; use Ada.Text_IO; procedure Even_Numbers_For_Loop is begin for I in 1 .. 20 loop if I mod 2 = 0 then Put_Line(Integer'Image(I)); end if; end loop; end Even_Numbers_For_Loop;
Exercici 2: Bucle while
Escriu un programa que sumi els nombres de l'1 al 100 utilitzant un bucle while
i imprimeixi el resultat.
Solució:
with Ada.Text_IO; use Ada.Text_IO; procedure Sum_While_Loop is I : Integer := 1; Sum : Integer := 0; begin while I <= 100 loop Sum := Sum + I; I := I + 1; end loop; Put_Line("La suma dels nombres de l'1 al 100 és: " & Integer'Image(Sum)); end Sum_While_Loop;
Exercici 3: Bucle loop
Escriu un programa que llegeixi nombres de l'usuari fins que l'usuari introdueixi un nombre negatiu, i després imprimeixi la suma de tots els nombres introduïts.
Solució:
with Ada.Text_IO; use Ada.Text_IO; procedure Sum_Until_Negative is Number : Integer; Sum : Integer := 0; begin loop Put("Introdueix un nombre (nombre negatiu per acabar): "); Get(Number); exit when Number < 0; Sum := Sum + Number; end loop; Put_Line("La suma dels nombres introduïts és: " & Integer'Image(Sum)); end Sum_Until_Negative;
Conclusió
Els bucles són una eina poderosa en Ada que permeten repetir blocs de codi de manera controlada. Hem vist com utilitzar els bucles for
, while
i loop
per a diferents situacions. Practicar amb aquests exemples i exercicis t'ajudarà a comprendre millor com funcionen els bucles i com utilitzar-los de manera efectiva en els teus programes.
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