2つの数の最大値,最小値を求めようとしたときどうしますか?
例えば,2つの数値をx,yとおいたときにif文または,三項演算子で求めることが出来ますが,どちらとも演算子(大なり,小なり)を間違えると重大なバグに繋がるでしょう.関数にすると,場合によりますが,余計にプログラムのサイズが大きくなったり,実行速度が遅くなります.
そこで便利なのがマクロです.defineです!
#define MAX2(x,y) ((x) > (y) ? (x) : (y))
#define MIN2(x,y) ((x) < (y) ? (x) : (y))
これなら何を得ようとしているのか分かりやすく,実行速度も変わらないので便利です.
余談
夏休み始まって1週間が過ぎようとしているのに,全く課題に手をつけていません.(勉強はしているけど課題はやってない)
らいかさんのスクリプトを見て面白いなーと思ったら,文発までそろそろ1ヶ月を切ろうとしてハッとしました.
2010年8月10日火曜日
javascriptの話
今日は、Javascriptについて!
Javascriptは、非常に簡単に始められる言語のひとつです。メモ帳とインターネットブラウザがあれば(インターネットに接続していなくても)始められます。
簡単なライブラリ(実質10時間程度で作成可)を作りました。
サンプルは左側のエリアにあります!
Javascriptは、非常に簡単に始められる言語のひとつです。メモ帳とインターネットブラウザがあれば(インターネットに接続していなくても)始められます。
簡単なライブラリ(実質10時間程度で作成可)を作りました。
サンプルは左側のエリアにあります!
2010年8月8日日曜日
三すくみ
"三すくみ"とは、ジャンケンのようにAはBに勝ち、BはCに勝ち、CはAに勝つというような、互いに得意な相手と苦手な相手を1つずつ持っているという関係です.
この問題をプログラムで実現するときに、すべてを場合分けするとコードが長くなります.
そこで、Aを1、Bを2、Cを3とし、前者の選択をx,後者の選択をyとすると
(x-y+3)%3
の答えが
0...引き分け
1...後者の勝ち
2...前者の勝ち
となります.
この方法を使うと,単純なプログラムではコードがとても短くなります.ただし,読みにくくなる可能性があるので,注意したほうがいいと思います.
この問題をプログラムで実現するときに、すべてを場合分けするとコードが長くなります.
そこで、Aを1、Bを2、Cを3とし、前者の選択をx,後者の選択をyとすると
(x-y+3)%3
の答えが
0...引き分け
1...後者の勝ち
2...前者の勝ち
となります.
この方法を使うと,単純なプログラムではコードがとても短くなります.ただし,読みにくくなる可能性があるので,注意したほうがいいと思います.
2010年8月7日土曜日
登録:
投稿 (Atom)