文化祭発表会(通称:文発)まで2週間を切りましたー。
文発班の進度はどうでしょうかね?
明日部活動があるのでそこで聞こうと思います。
ふと上のカウンター(カウントダウンのやつ)見て気づいたんですが、1時間だけ多くないですかね?
ソース直さなきゃですね。
暑い日が続きますが、みなさんどうかお体に気をつけてください。
2010年8月31日火曜日
2010年8月21日土曜日
2010年8月15日日曜日
丸め誤差
進数変換を勉強した人はわかると思いますが,二進数では1/(2^n)以外の小数は有限の桁数で表現することができません.
例)
0.5・・・(0.1)2
0.25・・・(0.01)2
表現出来ないからと言って,無視する訳にもいかないので,一定の有限な桁数の浮動小数点実数を表現しています.このとき適当な桁数にすることを丸めると言い,このとき生じる誤差を丸め誤差と言います.
float sum = 0.0;
for(int i=0;i<10;i++) {
sum += 0.1;
}
このようなコードではsumは1.0にはならないでしょう.
実数型の変数は丸め誤差が必ず生じる事を念頭に置いてプログラミングするすることが必要です
例)
0.5・・・(0.1)2
0.25・・・(0.01)2
表現出来ないからと言って,無視する訳にもいかないので,一定の有限な桁数の浮動小数点実数を表現しています.このとき適当な桁数にすることを丸めると言い,このとき生じる誤差を丸め誤差と言います.
float sum = 0.0;
for(int i=0;i<10;i++) {
sum += 0.1;
}
このようなコードではsumは1.0にはならないでしょう.
実数型の変数は丸め誤差が必ず生じる事を念頭に置いてプログラミングするすることが必要です
2010年8月14日土曜日
3日間
私は11日の部活動で、プロコンで使う関数の作成を任せられました。
余談:下の画像は、11日の活動の様子です。人が少なかったです。
今日はプログラムについてでーす。
どのプログラムも関数の集まりで作られています。
プログラムでいう関数は、人でいう体のパーツにあたります。
足と手では、役割が違うように関数もそれぞれでできることは異なります。
大きなプログラムを作成するとなると、作るプログラムを関数ごと(役割ごと)に分ける作業が初めになります。
分けると、それぞれの関数の作る担当者を決めます。
担当者は早速プログラムをせっせと作ります。
関数はそれぞれひとつひとつが、正常動作しなければいけません!(重要
担当となった人は、関数ごとに正常動作をするか念密に確認します。
この確認作業のことをデバッグといいます。
一般に、プログラムの作成初めからデバッグまではあまり時間はかかりません。
実はデバッグに一番時間を割きます。
プログラムを作るのは、非常に大変なことですが、最終的にできあがるとうれしいものです。
デバッグでめげずに作り通しましょう。
そんなこんなで僕が担当した関数は、xmlファイル中のタグの抽出でした。
分かる人は分かると思います。
この関数を作るのに3日ほどかかりました。
もちろん、休憩や睡眠などを挟んでですが。
1日目でプログラムの中枢は完成していましたが、少しだけバグが残りました。
ここからデバッグです。
デバッグは驚くほどおもしろくありません(・´з`・)
2日目で大きなバグは取れ\(^o^)/オワタとなりましたが、小さいバグが見つかりました('A`)
3日目で(つまり今日ですが)8時間ほど苦悩したあげくバグが取れました(*´∀`*)
デバッグは地獄です。一度書いた80行のソースを消すこともあります。
無計画にキーボードを打ち始めるのはやめましょう。地獄を見ます( ゚д゚ )
追伸:デバッグに詰まったときは、一度プリンタでソースコードを印刷して見直す方法があります。
案外画面上で気づかないことに気づきます。今回私はそれに救われましたヾ(。・ω・。)ノ゙
余談:下の画像は、11日の活動の様子です。人が少なかったです。
今日はプログラムについてでーす。
どのプログラムも関数の集まりで作られています。
プログラムでいう関数は、人でいう体のパーツにあたります。
足と手では、役割が違うように関数もそれぞれでできることは異なります。
大きなプログラムを作成するとなると、作るプログラムを関数ごと(役割ごと)に分ける作業が初めになります。
分けると、それぞれの関数の作る担当者を決めます。
担当者は早速プログラムをせっせと作ります。
関数はそれぞれひとつひとつが、正常動作しなければいけません!(重要
担当となった人は、関数ごとに正常動作をするか念密に確認します。
この確認作業のことをデバッグといいます。
一般に、プログラムの作成初めからデバッグまではあまり時間はかかりません。
実はデバッグに一番時間を割きます。
プログラムを作るのは、非常に大変なことですが、最終的にできあがるとうれしいものです。
デバッグでめげずに作り通しましょう。
そんなこんなで僕が担当した関数は、xmlファイル中のタグの抽出でした。
分かる人は分かると思います。
この関数を作るのに3日ほどかかりました。
もちろん、休憩や睡眠などを挟んでですが。
1日目でプログラムの中枢は完成していましたが、少しだけバグが残りました。
ここからデバッグです。
デバッグは驚くほどおもしろくありません(・´з`・)
2日目で大きなバグは取れ\(^o^)/オワタとなりましたが、小さいバグが見つかりました('A`)
3日目で(つまり今日ですが)8時間ほど苦悩したあげくバグが取れました(*´∀`*)
デバッグは地獄です。一度書いた80行のソースを消すこともあります。
無計画にキーボードを打ち始めるのはやめましょう。地獄を見ます( ゚д゚ )
追伸:デバッグに詰まったときは、一度プリンタでソースコードを印刷して見直す方法があります。
案外画面上で気づかないことに気づきます。今回私はそれに救われましたヾ(。・ω・。)ノ゙
2010年8月12日木曜日
最大値・最小値
2つの数の最大値,最小値を求めようとしたときどうしますか?
例えば,2つの数値をx,yとおいたときにif文または,三項演算子で求めることが出来ますが,どちらとも演算子(大なり,小なり)を間違えると重大なバグに繋がるでしょう.関数にすると,場合によりますが,余計にプログラムのサイズが大きくなったり,実行速度が遅くなります.
そこで便利なのがマクロです.defineです!
#define MAX2(x,y) ((x) > (y) ? (x) : (y))
#define MIN2(x,y) ((x) < (y) ? (x) : (y))
これなら何を得ようとしているのか分かりやすく,実行速度も変わらないので便利です.
余談
夏休み始まって1週間が過ぎようとしているのに,全く課題に手をつけていません.(勉強はしているけど課題はやってない)
らいかさんのスクリプトを見て面白いなーと思ったら,文発までそろそろ1ヶ月を切ろうとしてハッとしました.
例えば,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)