En aquest tema, explorarem els operadors i les expressions en Ada. Els operadors són símbols que indiquen a l'ordinador que realitzi operacions específiques sobre una o més variables. Les expressions són combinacions de variables, constants i operadors que es poden avaluar per produir un valor.

Tipus d'Operadors

Ada proporciona diversos tipus d'operadors que es poden classificar en les següents categories:

  1. Operadors Aritmètics
  2. Operadors de Relació
  3. Operadors Lògics
  4. Operadors de Concatencació
  5. Operadors d'Atribució

Operadors Aritmètics

Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques. Aquests són:

Operador Descripció Exemple
+ Suma A + B
- Resta A - B
* Multiplicació A * B
/ Divisió A / B
mod Mòdul (residu) A mod B
** Exponenciació A ** B

Exemple de Codi

with Ada.Text_IO; use Ada.Text_IO;

procedure Arithmetic_Operators is
   A : Integer := 10;
   B : Integer := 3;
   Sum : Integer;
   Difference : Integer;
   Product : Integer;
   Quotient : Float;
   Remainder : Integer;
   Power : Float;
begin
   Sum := A + B;
   Difference := A - B;
   Product := A * B;
   Quotient := Float(A) / Float(B);
   Remainder := A mod B;
   Power := Float(A) ** Float(B);

   Put_Line("Sum: " & Integer'Image(Sum));
   Put_Line("Difference: " & Integer'Image(Difference));
   Put_Line("Product: " & Integer'Image(Product));
   Put_Line("Quotient: " & Float'Image(Quotient));
   Put_Line("Remainder: " & Integer'Image(Remainder));
   Put_Line("Power: " & Float'Image(Power));
end Arithmetic_Operators;

Operadors de Relació

Els operadors de relació s'utilitzen per comparar dos valors. Aquests són:

Operador Descripció Exemple
= Igual a A = B
/= Diferent de A /= B
< Menor que A < B
<= Menor o igual que A <= B
> Major que A > B
>= Major o igual que A >= B

Exemple de Codi

with Ada.Text_IO; use Ada.Text_IO;

procedure Relational_Operators is
   A : Integer := 10;
   B : Integer := 3;
begin
   if A = B then
      Put_Line("A is equal to B");
   elsif A /= B then
      Put_Line("A is not equal to B");
   end if;

   if A < B then
      Put_Line("A is less than B");
   elsif A > B then
      Put_Line("A is greater than B");
   end if;

   if A <= B then
      Put_Line("A is less than or equal to B");
   elsif A >= B then
      Put_Line("A is greater than or equal to B");
   end if;
end Relational_Operators;

Operadors Lògics

Els operadors lògics s'utilitzen per combinar expressions booleanes. Aquests són:

Operador Descripció Exemple
and I lògic A and B
or O lògic A or B
not Negació lògica not A

Exemple de Codi

with Ada.Text_IO; use Ada.Text_IO;

procedure Logical_Operators is
   A : Boolean := True;
   B : Boolean := False;
begin
   if A and B then
      Put_Line("A and B is True");
   else
      Put_Line("A and B is False");
   end if;

   if A or B then
      Put_Line("A or B is True");
   else
      Put_Line("A or B is False");
   end if;

   if not A then
      Put_Line("not A is True");
   else
      Put_Line("not A is False");
   end if;
end Logical_Operators;

Operadors de Concatencació

Els operadors de concatenació s'utilitzen per unir cadenes de text. Aquests són:

Operador Descripció Exemple
& Concatenació "Hello" & " World"

Exemple de Codi

with Ada.Text_IO; use Ada.Text_IO;

procedure Concatenation_Operators is
   Str1 : String := "Hello";
   Str2 : String := " World";
   Result : String;
begin
   Result := Str1 & Str2;
   Put_Line(Result);
end Concatenation_Operators;

Operadors d'Atribució

Els operadors d'atribució s'utilitzen per assignar valors a les variables. Aquests són:

Operador Descripció Exemple
:= Atribució A := B

Exemple de Codi

with Ada.Text_IO; use Ada.Text_IO;

procedure Assignment_Operators is
   A : Integer;
   B : Integer := 10;
begin
   A := B;
   Put_Line("A: " & Integer'Image(A));
end Assignment_Operators;

Exercicis Pràctics

Exercici 1: Operacions Aritmètiques

Escriu un programa que demani a l'usuari dos números enters i mostri la suma, resta, producte, quocient, residu i potència dels dos números.

Solució

with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure Arithmetic_Exercise is
   A : Integer;
   B : Integer;
   Sum : Integer;
   Difference : Integer;
   Product : Integer;
   Quotient : Float;
   Remainder : Integer;
   Power : Float;
begin
   Put("Enter first number: ");
   Get(A);
   Put("Enter second number: ");
   Get(B);

   Sum := A + B;
   Difference := A - B;
   Product := A * B;
   Quotient := Float(A) / Float(B);
   Remainder := A mod B;
   Power := Float(A) ** Float(B);

   Put_Line("Sum: " & Integer'Image(Sum));
   Put_Line("Difference: " & Integer'Image(Difference));
   Put_Line("Product: " & Integer'Image(Product));
   Put_Line("Quotient: " & Float'Image(Quotient));
   Put_Line("Remainder: " & Integer'Image(Remainder));
   Put_Line("Power: " & Float'Image(Power));
end Arithmetic_Exercise;

Exercici 2: Comparació de Nombres

Escriu un programa que demani a l'usuari dos números enters i mostri si el primer número és igual, diferent, menor, menor o igual, major o major o igual que el segon número.

Solució

with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure Comparison_Exercise is
   A : Integer;
   B : Integer;
begin
   Put("Enter first number: ");
   Get(A);
   Put("Enter second number: ");
   Get(B);

   if A = B then
      Put_Line("A is equal to B");
   elsif A /= B then
      Put_Line("A is not equal to B");
   end if;

   if A < B then
      Put_Line("A is less than B");
   elsif A > B then
      Put_Line("A is greater than B");
   end if;

   if A <= B then
      Put_Line("A is less than or equal to B");
   elsif A >= B then
      Put_Line("A is greater than or equal to B");
   end if;
end Comparison_Exercise;

Resum

En aquesta secció, hem après sobre els diferents tipus d'operadors en Ada, incloent-hi els operadors aritmètics, de relació, lògics, de concatenació i d'atribució. També hem vist exemples pràctics de com utilitzar aquests operadors en programes Ada. Els exercicis pràctics proporcionats ajuden a reforçar els conceptes apresos i a aplicar-los en situacions reals. En la propera secció, explorarem les estructures de control en Ada.

© Copyright 2024. Tots els drets reservats