with Ada.Text_IO,Ada.Integer_Text_IO,Ada.Float_Text_IO;
use Ada.Text_IO,Ada.Integer_Text_IO,Ada.Float_Text_IO;
procedure UnaryOp is
type ARY_INT is array(1..6) of INTEGER;
Crowd, Group1, Group2 : ARY_INT;
function "+"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is
Temp_Array : ARY_INT;
begin
for Index in ARY_INT'RANGE loop
Temp_Array(Index) := In_Array1(Index) + In_Array2(Index);
end loop;
return Temp_Array;
end "+";
function "-"(In_Array1, In_Array2 : ARY_INT) return ARY_INT is
Temp_Array : ARY_INT;
begin
for Index in ARY_INT'RANGE loop
Temp_Array(Index) := In_Array1(Index) - In_Array2(Index);
end loop;
return Temp_Array;
end "-";
function "+"(In_Array : ARY_INT) return ARY_INT is
begin
return In_Array;
end "+";
function "-"(In_Array : ARY_INT) return ARY_INT is
Temp_Array : ARY_INT;
begin
for Index in ARY_INT'RANGE loop
Temp_Array(Index) := - In_Array(Index);
end loop;
return Temp_Array;
end "-";
begin
Group1 := (12, 17, -1, 3, -100, 5);
Group2 := (13, -2, 22, 1, 1242, -12);
for Index in Group1'RANGE loop
Put(Group1(Index), 6);
end loop;
New_Line;
for Index in Group2'RANGE loop
Put(Group2(Index), 6);
end loop;
New_Line;
Crowd := Group1 + Group2;
for Index in Crowd'RANGE loop
Put(Crowd(Index), 6);
end loop;
New_Line;
Crowd := Group1 - Group2;
for Index in Crowd'RANGE loop
Put(Crowd(Index), 6);
end loop;
New_Line;
Crowd := +Group1;
for Index in Crowd'RANGE loop
Put(Crowd(Index), 6);
end loop;
New_Line;
Crowd := -Group1;
for Index in Crowd'RANGE loop
Put(Crowd(Index), 6);
end loop;
New_Line;
Crowd := (Group1 + Group2) - (-Group1 + Group2);
for Index in Group1'RANGE loop
Put(Crowd(Index), 6);
end loop;
New_Line;
for Index in Group2'RANGE loop
Put(Crowd(Index), 6);
end loop;
New_Line;
end UnaryOp;
096.Ada中的加减法的重载操作
最新推荐文章于 2025-06-12 10:39:01 发布
本文展示了一个使用Ada语言进行数组运算的示例,包括数组的加法、减法以及一元运算。通过定义数组类型和操作符重载,演示了如何在Ada中实现基本的数学运算。
1118

被折叠的 条评论
为什么被折叠?



