Ada has procedures and functions.
Functions return a result so that the result can be used in an expression.
result := functioncall(value1 => X value2 => Y) + 45;
Ada.Text_IO.put(...);
Procedures have three modes for paramters:
PROCEDURE Order(x: IN OUT Float; Y: IN OUT Float);
Order (X=>Num1, Y=>Num2);
functionCall(&num1);
with Ada.Text_IO;
with Ada.Integer_Text_IO;
use Ada.Integer_Text_IO;
PROCEDURE mainprocedure IS
num1, num2 : Integer;
PROCEDURE inside(X: IN OUT Integer; Y: IN OUT Integer) IS
temp : Integer;
begin
put(X);
Ada.Text_IO.New_Line;
put(Y);
Ada.Text_IO.New_Line;
temp := X;
X := Y;
Y := temp;
end inside;
begin
num1 := 56;
num2 := 299;
Ada.Text_IO.put("Num1 before procedure call: ");
put(num1);
Ada.Text_IO.New_Line;
Ada.Text_IO.put("Num2 before procedure call: ");
put(num2);
Ada.Text_IO.New_Line;
inside(X => num1, Y => num2);
Ada.Text_IO.put("Num1 after procedure call: ");
put(num1);
Ada.Text_IO.New_Line;
Ada.Text_IO.put("Num2 after procedure call: ");
put(num2);
Ada.Text_IO.New_Line;
end mainprocedure;