てきとう

てきとう

九九の続き

漢数字が〇..九だけでもできるようなので書き直し。

with Ada.Wide_Text_Io, Ada.Strings;
use  Ada.Wide_Text_Io;
procedure Kuku is
   type 漢数字 is (,,,,,,,,,);
   要素数:constant:=(漢数字'Pos(漢数字'Last)-
                       漢数字'Pos(漢数字'First)-漢数字'Pos(漢数字'First)+
                       漢数字'Pos(漢数字'Succ(漢数字'First)));
begin
   forin..loop
      forin..loop
         declare:Integer:=漢数字'Pos()*漢数字'Pos();
            十の位:漢数字:=漢数字'Val(/要素数);
            一の位:漢数字:=漢数字'Val(rem 要素数);
         begin
            if 十の位/=then
               Put(漢数字'Wide_Image(十の位));
            else
               Put(Ada.Strings.Wide_Space&Ada.Strings.Wide_Space);
            end if;
            Put(漢数字'Wide_Image(一の位));
            Put(Ada.Strings.Wide_Space&Ada.Strings.Wide_Space);
         end;
      end loop;
      New_Line;
   end loop;
end Kuku;

この場合のようにT'Base=Tであれば、T'Pos(T'First) は常に0だし T'Pos(T'Succ(T'First))) は常に1なんで、長々と書く意味は無いんですけどね。