概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C アルゴリズム演習1
2006年07月27日 (木) | 編集 |
プログラムを作ること自体はいろいろと関数とか書式、記述の仕方とか覚えれば出来るようになるそうなのだが、実際にまともなの作ろうと思ったら与えられた命題をどういう手順で行うかとかいったアルゴリズムをどうにかしなくてはいけないらしい。

楽器の扱い方を覚えれば音を出すこと自体は出来るようになるかもしれないが、作曲するには作曲家としてのスキルそのものが必要になる、みたいなものだな。

ちょっと違うか。


ま、とにかく書式、関数、記述の仕方を覚えるだけじゃ実用的なのは書けないから、アルゴリズムってのを理解出来るように演習しようってのが今回の目的だ。
第1回のアルゴリズム演習は直角三角形について。

勝利条件:
「直角三角形が成立する3辺の長さの組み合わせを表示するプログラムを組む」


直角三角形と言えばひとつの角が90°(直角)で形成されている三角形であり、最長である斜辺の2乗が残り2つの辺の2乗の和に等しいという3平方の定理が成立する三角形である。

triangle.jpg
こんなの

a2=b2+c2が成り立つ。

なので、a、b、c、片っ端から値を試して、a2、b2、c2を計算し、a2=b2+c2を満たすときだけそれを表示するようにすればよいということになる。

ループ部分でいうとこんな感じか。

ひたすらaを試すループ
 ひたすらbを試すループ
  ひたすらcを試すループ
   もしa2=b2+c2が成立するなら
    そのときのa、b、cの値を表示する


んじゃま、最初から書いてみよう。

まず、延々と組み合わせを表示されても困るのでaの限界値を入力することにする。nでいいやな。a、b、cも当然表示、計算の為に使うのでこれらも宣言する必要がある。

triangle_test.jpg
宣言してnも入力

次に、ループ部分を記述する。

triangle_test2.jpg

後はループを閉じて終わり。

triangle_test3.jpg

ってこれだけッ?!
まあ単純明快な分には誰も困らないが…

とにかく、実際に動かしてみよう。

triangle_test4.jpg


またかよ禁止。
数学で言うところのイコールは演算子的には==と記述しないとあかんらしい。

triangle_test6.jpg
修正して実行

今度はOK。


折角なのでいろいろと弄くってみた。


組み合わせの数を表示してみる
triangle_test7.jpgtriangle_test8.jpg


重複している数値の組み合わせを省いてみる
triangle_test9.jpgtriangle_test10.jpg

ううむ面白い。
だがサムネイルで見るとプログラムの結果よりもコードそのものの方が対称的で美しい罠。

誰も困らんけど。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。