En este tema, aprenderemos sobre los diferentes tipos de bucles disponibles en Ada y cómo utilizarlos para controlar el flujo de ejecución de nuestros programas. Los bucles son estructuras de control que permiten repetir un bloque de código varias veces, lo cual es fundamental para tareas repetitivas y procesamiento de datos.

Tipos de Bucles en Ada

Ada proporciona varios tipos de bucles para diferentes necesidades:

  1. Bucle for: Se utiliza cuando se conoce de antemano el número de iteraciones.
  2. Bucle while: Se utiliza cuando la condición de terminación se evalúa antes de cada iteración.
  3. Bucle loop: Un bucle genérico que puede ser controlado mediante condiciones internas y sentencias de salida.

Bucle for

El bucle for en Ada se utiliza para iterar sobre un rango de valores. La sintaxis básica es la siguiente:

for Variable in Inicio .. Fin loop
   -- Bloque de código a repetir
end loop;

Ejemplo:

with Ada.Text_IO; use Ada.Text_IO;

procedure For_Loop_Example is
begin
   for I in 1 .. 10 loop
      Put_Line("Iteración: " & Integer'Image(I));
   end loop;
end For_Loop_Example;

Explicación:

  • for I in 1 .. 10 loop: El bucle se ejecuta desde 1 hasta 10.
  • Put_Line("Iteración: " & Integer'Image(I)): Imprime el número de iteración.

Bucle while

El bucle while se utiliza cuando la condición de terminación se evalúa antes de cada iteración. La sintaxis básica es:

while Condición loop
   -- Bloque de código a repetir
end loop;

Ejemplo:

with Ada.Text_IO; use Ada.Text_IO;

procedure While_Loop_Example is
   I : Integer := 1;
begin
   while I <= 10 loop
      Put_Line("Iteración: " & Integer'Image(I));
      I := I + 1;
   end loop;
end While_Loop_Example;

Explicación:

  • while I <= 10 loop: El bucle se ejecuta mientras I sea menor o igual a 10.
  • I := I + 1: Incrementa I en cada iteración.

Bucle loop

El bucle loop es un bucle genérico que puede ser controlado mediante condiciones internas y sentencias de salida (exit). La sintaxis básica es:

loop
   -- Bloque de código a repetir
   exit when Condición;
end loop;

Ejemplo:

with Ada.Text_IO; use Ada.Text_IO;

procedure Loop_Example is
   I : Integer := 1;
begin
   loop
      Put_Line("Iteración: " & Integer'Image(I));
      I := I + 1;
      exit when I > 10;
   end loop;
end Loop_Example;

Explicación:

  • loop: Inicia un bucle genérico.
  • exit when I > 10: Sale del bucle cuando I es mayor que 10.

Ejercicios Prácticos

Ejercicio 1: Bucle for

Escribe un programa que imprima los números del 1 al 20 utilizando un bucle for.

Solución:

with Ada.Text_IO; use Ada.Text_IO;

procedure For_Loop_Exercise is
begin
   for I in 1 .. 20 loop
      Put_Line(Integer'Image(I));
   end loop;
end For_Loop_Exercise;

Ejercicio 2: Bucle while

Escribe un programa que imprima los números del 1 al 20 utilizando un bucle while.

Solución:

with Ada.Text_IO; use Ada.Text_IO;

procedure While_Loop_Exercise is
   I : Integer := 1;
begin
   while I <= 20 loop
      Put_Line(Integer'Image(I));
      I := I + 1;
   end loop;
end While_Loop_Exercise;

Ejercicio 3: Bucle loop

Escribe un programa que imprima los números del 1 al 20 utilizando un bucle loop.

Solución:

with Ada.Text_IO; use Ada.Text_IO;

procedure Loop_Exercise is
   I : Integer := 1;
begin
   loop
      Put_Line(Integer'Image(I));
      I := I + 1;
      exit when I > 20;
   end loop;
end Loop_Exercise;

Resumen

En esta sección, hemos aprendido sobre los diferentes tipos de bucles en Ada: for, while y loop. Cada tipo de bucle tiene su propia sintaxis y casos de uso específicos. Los bucles son esenciales para realizar tareas repetitivas y manejar grandes cantidades de datos de manera eficiente. Asegúrate de practicar con los ejercicios proporcionados para consolidar tu comprensión de estos conceptos.

En el próximo tema, exploraremos los subprogramas en Ada, incluyendo procedimientos y funciones, que nos permitirán modularizar y organizar mejor nuestro código.

© Copyright 2024. Todos los derechos reservados