無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

Adaをつつく3ー演算。エイダおばさんは数字に強い。

今回はAdaの演算機能をつついていくピヨ♪じゃあ、早速サンプルを召し上がれ♪

with Ada.Text_Io; use Ada.Text_Io;
with Ada.Integer_Text_IO;
procedure Operators is

X : Integer := 0;
Y : Integer := 0;

begin

  --足し算
  Put( "2 + 2 = " );
  Ada.Integer_Text_IO.Put( ( 2 + 2 ), Width => 1 );
  New_Line;
  
  --引き算
  Put( "2 - 2 = " );
  Ada.Integer_Text_IO.Put( ( 2 - 2 ), Width => 1 );
  New_Line;
  
  --掛け算
  Put( "2 * 2 = " );
  Ada.Integer_Text_IO.Put( ( 2 * 2 ), Width => 1 );
  New_Line;
  
  --割り算
  Put( "40 / 2 = " );
  Ada.Integer_Text_IO.Put( ( 4_0 / 2 ), Width => 1 );
  New_Line;
  
  --べき乗
  Put( "2 ** 3 = " );
  Ada.Integer_Text_IO.Put( ( 2 ** 3 ), Width => 1 );
  New_Line;
  
  --剰余(remainder)
  X := 11;
  Y := -5;
  Put( "11 rem -5 = " );
  Ada.Integer_Text_IO.Put( ( X rem Y ), Width => 1 );
  New_Line;

  --剰法(modulo)
  Put( "11 mod -5 = " );
  Ada.Integer_Text_IO.Put( ( X mod Y ), Width => 1 );
  New_Line;

end Operators;


よしgnatmakeっと・・・どう?Adaは色々な演算があるピヨね♪
特に、剰余と除法の結果の違いに吃驚したと思う。

11 mod -5 = -4

この計算法普通の人は馴染みないよね。この計算結果の理由を厳密に説明すると長くなるから、例えで説明するピヨッ。modの場合は割り切るために必要な数と考えるといいピヨ。符号については割る数と同じと考えておけばいいピヨ♪例えば、11 mod -5 の場合、2ではあまるから3で割り切るには足りない数値は・・・って風に考えるんだ。これは厳密な数学の考え方ではなけど、この記事は数学の記事じゃないから我慢してね♪
なお、どっちも正数の場合はtemとmodの演算結果は変らないピヨ。注意してね♪
あと、数値の表現法に気付いたかな?Adaでは数値にアンダーバーを使用できるピヨ。1_024とかにすると見やすくなって良いと思うピヨ。これ結構良いよね♪他の言語にも取り入れて欲しい機能ピヨ♪
別窓 | Ada | コメント:0 | トラックバック:0 | ∧top | under∨
<<ネタつつき8−プログラマーを採用する際に重視すべき10の資質。 | 無差別に技術をついばむ鳥 | IronPythonをつつく0ーインストール。やっぱり環境変数。>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |