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:

  1. Bucle for
  2. Bucle while
  3. 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:

for Variable in Inici .. Final loop
    -- Codi a executar
end loop;

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 que I 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:

while Condició loop
    -- Codi a executar
end loop;

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:

loop
    -- Codi a executar
    exit when Condició;
end loop;

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.

© Copyright 2024. Tots els drets reservats