Ада: проверь, нет ли в результате деления десятичных чисел - PullRequest
1 голос
/ 05 октября 2019

Я пишу свою первую программу ada, которая включает условие, которое проверяет, не имеет ли значение, деленное на определенное число, десятичную часть:

ПРИМЕР:

10 / 3 = 3.3333334 >> Wrong
12 / 2 = 6         >> Okay
45 / 5 = 9         >> Okay
...

Но я могуне могу найти никакой функции для этого ... это мой код:

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

procedure main is
   ...
   testing : Natural := 0 ;
   ...

begin
   ...
         if testing/i = ??? then -- if testing/i haven't decimal part --
         ...
         end if ;
...
end main ;

1 Ответ

2 голосов
/ 05 октября 2019

Это может работать:

main.adb

with Ada.Text_IO; 

procedure Main is

   procedure Test_Remainder (X, Y : Integer) is
      use Ada.Text_IO;
   begin

      --  Optional: add some test for Y being non-zero here...

      Put (X'Image & " / " & Y'Image & "  ==>  ");       

      if (X rem Y = 0) then
         Put_Line ("Okay");
      else
         Put_Line ("Wrong");
      end if;

   end Test_Remainder;

begin   
   Test_Remainder (10, 3);
   Test_Remainder (12, 2);
   Test_Remainder (45, 5);
end Main;

выход

 10 /  3  ==>  Wrong
 12 /  2  ==>  Okay
 45 /  5  ==>  Okay

Примечание. Информацию о разнице между mod и rem см., Например, Wikipedia .

.
...