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:
- Operadors Aritmètics
- Operadors de Relació
- Operadors Lògics
- Operadors de Concatencació
- 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.
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