Sponsored Link
 
>>  Main > Programing > Primary > 0002

D言語入門 第02章 - 計算

#01 - 四則演算

今回は…

今回はプログラムで四則演算(+、-、×、÷)をしてみて、その結果を出力してみようと思います。
出力は、前回同様 writef(数値) を使っていきます。
D言語での演算子(+とかの記号のこと)の対応は今回のミソのとおりです。(プログラム内では全角文字の+や-、×や÷と書いてはいけないのです)

今回のミソ

  • 計算に使う+や-の記号のことを、演算子と言う。
  • 普通の演算子とD言語の演算子の対応は以下のとおり。
    • 加算(+) … +
    • 減算(-) … -
    • 乗算(×) … *
    • 除算(÷) … /
  • 演算の優先順位は常識どおり。
  • ( ) (括弧)も使える。
  • [ ] (大括弧)や { } (中括弧) は、計算の優先順位のためには使うことができない。

サンプルコード

// おまじない
import std.stdio;

// おまじない
int main(char[][] args)
{
    
    // これは前回やった文字列の出力(Hello, world!)と同じです。
    writef("2 + 3 = ");
    // ここで、2+3をやった結果を出力します。
    // ポイントは、文字列のように " " で囲まないで、
    // 直接 2 + 3 のように書くことです。
    // つまり、計算結果は数値と同じと言うことです。
    writefln( 2 + 3 );
    
    // 同様に引き算や掛け算、割り算もやってみます。
    
    // 引き算
    writef("3 - 2 = ");
    writefln( 3 - 2 );
    
    // 掛け算
    writef("2 * 4 = ");
    writefln( 2 * 4 );
    
    // 割り算
    writef("6 / 3 = ");
    writefln( 6 / 3 );
    
    // 演算の優先順位は常識と変わりません。
    // 掛け算のほうが足し算より先に行われます。
    writef("3 + 5 * 3 = ");
    writefln( 3+ 5 * 3);
    
    // 括弧を使うこともできます。
    writef("( 3 + 5 ) * ( 8 - 4 / 2 + 1) = ");
    writefln( ( 3 + 5 ) * ( 8 - 4 / 2 + 1) );
    // ただし、 {} や [] はプログラムの中では別の意味を持ってしまうため、
    // 使うことはできません。
    
    // おまじない
    return 0;
}

実行結果

2 + 3 = 5
3 - 2 = 1
2 * 4 = 8
6 / 3 = 2
3 + 5 * 3 = 18
( 3 + 5 ) * ( 8 - 4 / 2 + 1) = 56

まとめ

さて、そんなわけで、こんな感じで計算をすることができます。
次は、割り算したあまりを出す方法を説明しますよ。
お次へどうぞー

#02 - 余剰と実数の計算

今回は…

前のプログラムでは、四則演算をしましたが、D言語だとほかに余剰というものを計算することができます。
余剰というのは、割り算をしたときのあまりで、たとえば10÷7なら3があまりになります。
これを計算する方法があったりします。
ほかにも、5÷2をしたとき、前回の方法では、2と出てしまいます。これはおかしいですね。
これは、「整数」で計算した答えが、「整数」でしか出せないためです。
これを解決するには、「実数」で計算して、答えを「実数」で出すようにすることです。

今回のミソ

  • 余剰の演算子は、 "%"
  • 整数の後に、.0をつけると、実数として判断される。
  • 実数で計算すると、実数で計算結果が出てくる。

サンプルコード

// おまじない
import std.stdio;

// おまじない
int main(char[][] args)
{
    // 余剰計算には、 % の記号をつかう。
    writefln( 10 % 7 );
    
    // 実数での計算してほしいときには、5.0などとして、実数で計算してもらう。
    writefln( 5.0 / 2 );
    
    // おまじない
    return 0;
}

実行結果

3
2.5

まとめ

これで、いろいろと計算することができるようになりました。
しかし、D言語ができる計算は、当然これだけではありません。
次は、「文字列」を計算してみます。
さあ、早速お次へどうぞー

#03 - 文字列の連結

今回は…

D言語で計算することができるのは数値だけではありません。 たとえば、文字列を計算することができます。ここでは、文字列をくっつけるお話をします。

今回のミソ

  • 文字列を結合する演算子は ~ (チルダ)

サンプルコード

// おまじない
import std.stdio;

// おまじない
int main(char[][] args)
{
    // 文字の連結は ~ (チルダ) で行う。
    writefln("この文字列と" ~ "この文字列を連結します。");

    // 書式なんかも文字列だから、連結できる。
    writefln("書式も%s" ~ "連結%s" , "こういう風に", "できる");
    
    // おまじない
    return 0;
}

実行結果

この文字列とこの文字列を連結します。
書式もこういう風に連結できる。

まとめ

というわけで、今回は文字列を連結させることができるよっていうお話でした。
もっとも、D言語では、文字列は「文字の配列」という扱いなので、配列の連結といったほうが正しいのでしょうが…
配列についてはもっと後のほうの講義ですので、今は文字列の連結という感じで覚えておくといいと思います。
お次へどうぞー

#summary - まとめ

第03章のミソ

  • 計算に使う+や-の記号のことを、演算子と言う。
  • 普通の演算子とD言語の演算子の対応は以下のとおり。
    • 加算(+) … +
    • 減算(-) … -
    • 乗算(×) … *
    • 除算(÷) … /
  • 演算の優先順位は常識どおり。
  • ( ) (括弧)も使える。
  • [ ] (大括弧)や { } (中括弧) は、計算の優先順位のためには使うことができない。
  • 余剰の演算子は、 "%"
  • 整数の後に、.0をつけると、実数として判断される。
  • 実数で計算すると、実数で計算結果が出てくる。
  • 文字列を結合する演算子は ~ (チルダ)

宿題

一辺5の正方形の、面積と周の長さを、D言語のプログラムを使って求めてください
出力結果は次のようになりますね。
面積 : 25
周の長さ : 20

コメント

さてさて、できましたかな~?
数値の計算ができると、D言語を電卓のような感覚で使うことができるようになりますよ。
もちろん、D言語を電卓の変わりに使っても発展性もくそもないのですが…
でも、cos関数とかsin関数、ほかには乱数とかも使えるようになると多少話は変わってくるかも?
その辺は関数のあたりですかねぇ…
まぁ、とりあえず次回は「変数」です。
数学で馴染み深い変数ですが、プログラムではどうなっていうるのか、そこらへんを取り上げてみます。

ページトップ / 目次 / 次へ
Copyright©SHOO All rights reserved. / LastModified : 2007/12/12(水)[06:10:43]