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 .. 10especifica el rang de valors queIprendrà.- El codi dins del bucle s'executarà 10 vegades, imprimint els valors de
Ide 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
Isigui menor o igual a 10. - A cada iteració,
Is'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ó,
Is'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
