Control structures are fundamental in any programming language as they allow you to control the flow of execution in your programs. In Ada, control structures include conditional statements, case statements, and loops. This section will cover these control structures in detail, providing examples and exercises to help you understand their usage.
Conditional Statements
Conditional statements allow you to execute certain parts of your code based on specific conditions. Ada provides two main types of conditional statements: if statements and case statements.
If Statements
The if statement in Ada is used to execute a block of code if a specified condition is true. It can also include elsif and else parts to handle multiple conditions.
Syntax
if condition then -- statements to execute if condition is true elsif another_condition then -- statements to execute if another_condition is true else -- statements to execute if none of the above conditions are true end if;
Example
procedure Check_Number is
Number : Integer := 10;
begin
if Number > 0 then
Put_Line("Number is positive");
elsif Number < 0 then
Put_Line("Number is negative");
else
Put_Line("Number is zero");
end if;
end Check_Number;Case Statements
The case statement is used to select one of many possible blocks of code to execute. It is similar to the switch statement in other programming languages.
Syntax
case expression is
when value1 =>
-- statements to execute if expression equals value1
when value2 =>
-- statements to execute if expression equals value2
when others =>
-- statements to execute if expression does not match any of the above values
end case;Example
procedure Day_Of_Week is
Day : Integer := 3;
begin
case Day is
when 1 =>
Put_Line("Monday");
when 2 =>
Put_Line("Tuesday");
when 3 =>
Put_Line("Wednesday");
when 4 =>
Put_Line("Thursday");
when 5 =>
Put_Line("Friday");
when 6 =>
Put_Line("Saturday");
when 7 =>
Put_Line("Sunday");
when others =>
Put_Line("Invalid day");
end case;
end Day_Of_Week;Loops
Loops are used to execute a block of code repeatedly. Ada provides several types of loops: for loops, while loops, and loop statements.
For Loops
The for loop is used to iterate over a range of values.
Syntax
Example
procedure Print_Numbers is
begin
for I in 1 .. 5 loop
Put_Line(Integer'Image(I));
end loop;
end Print_Numbers;While Loops
The while loop executes a block of code as long as a specified condition is true.
Syntax
Example
procedure Count_Down is
Counter : Integer := 5;
begin
while Counter > 0 loop
Put_Line(Integer'Image(Counter));
Counter := Counter - 1;
end loop;
end Count_Down;Loop Statements
The loop statement is a general-purpose loop that can be controlled using exit statements.
Syntax
Example
procedure Infinite_Loop is
Counter : Integer := 0;
begin
loop
Put_Line("Counter: " & Integer'Image(Counter));
Counter := Counter + 1;
exit when Counter = 5;
end loop;
end Infinite_Loop;Practical Exercises
Exercise 1: Even or Odd
Write a procedure that checks if a given number is even or odd and prints the result.
Solution
procedure Even_Or_Odd is
Number : Integer := 4;
begin
if Number mod 2 = 0 then
Put_Line("Number is even");
else
Put_Line("Number is odd");
end if;
end Even_Or_Odd;Exercise 2: Grade Evaluation
Write a procedure that evaluates a student's grade based on a score and prints the corresponding grade (A, B, C, D, F).
Solution
procedure Grade_Evaluation is
Score : Integer := 85;
begin
case Score is
when 90 .. 100 =>
Put_Line("Grade: A");
when 80 .. 89 =>
Put_Line("Grade: B");
when 70 .. 79 =>
Put_Line("Grade: C");
when 60 .. 69 =>
Put_Line("Grade: D");
when others =>
Put_Line("Grade: F");
end case;
end Grade_Evaluation;Exercise 3: Sum of Numbers
Write a procedure that calculates the sum of numbers from 1 to 10 using a for loop and prints the result.
Solution
procedure Sum_Of_Numbers is
Sum : Integer := 0;
begin
for I in 1 .. 10 loop
Sum := Sum + I;
end loop;
Put_Line("Sum: " & Integer'Image(Sum));
end Sum_Of_Numbers;Conclusion
In this section, we covered the essential control structures in Ada, including conditional statements (if and case), and loops (for, while, and loop). Understanding these control structures is crucial for controlling the flow of your programs and making decisions based on conditions. Practice the provided exercises to reinforce your understanding and prepare for more advanced topics in Ada programming.
Ada Programming Course
Module 1: Introduction to Ada
Module 2: Basic Concepts
- Variables and Data Types
- Operators and Expressions
- Control Structures
- Loops in Ada
- Subprograms: Procedures and Functions
Module 3: Advanced Data Types
Module 4: Modular Programming
Module 5: Concurrency and Real-Time Programming
Module 6: Advanced Topics
Module 7: Best Practices and Optimization
- Code Style and Best Practices
- Debugging and Testing
- Performance Optimization
- Security Considerations
