2010年8月31日火曜日

文化発表会まで2週間を切りました

文化祭発表会(通称:文発)まで2週間を切りましたー。
文発班の進度はどうでしょうかね?
明日部活動があるのでそこで聞こうと思います。
ふと上のカウンター(カウントダウンのやつ)見て気づいたんですが、1時間だけ多くないですかね?
ソース直さなきゃですね。
暑い日が続きますが、みなさんどうかお体に気をつけてください。

2010年8月21日土曜日

Skype会議

現在、長岡高専電算機部のプロコンの会議を開いています。
僕は非常に眠いのですが、頑張っています。

僕は去年非常に悔しい思いをしたので、今年の大会に強い思いがあります。
でも、今年僕は出場しません(諸事情で('A`)
長岡高専には優勝して欲しい。本気でそう思っています。

頑張れ!プロコン班(`・ω・´)

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にはならないでしょう.
実数型の変数は丸め誤差が必ず生じる事を念頭に置いてプログラミングするすることが必要です

2010年8月14日土曜日

3日間

私は11日の部活動で、プロコンで使う関数の作成を任せられました。
余談:下の画像は、11日の活動の様子です。人が少なかったです。
2010/8/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ヶ月を切ろうとしてハッとしました.

2010年8月10日火曜日

javascriptの話

今日は、Javascriptについて!
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...前者の勝ち
となります.
この方法を使うと,単純なプログラムではコードがとても短くなります.ただし,読みにくくなる可能性があるので,注意したほうがいいと思います.

2010年8月7日土曜日

夏休み活動予定

夏休みの活動予定が決定しました。
8/11,8/25,9/1,9/8,9/13,9/14です。
09:00から12:00 午前活動
12:00から13:00 お昼休み
13:00から16:00 午後活動

文化発表会や学園祭、プロコンまで時間がありません。
みなさん気を引き締めていきましょう。

明日のオープンキャンパスですが、電算機部は何もしません。
期待されている方ごめんなさい。

夏休み

夏休みが始まりました.
なんで、あの暑い中学校に通っていたんでしょうかね・・・

この長い休みを利用して、いろいろなことに挑戦してもらいたいです.
普段出来ないことや、時間が無くて投げていた事など...
ぜひスキルアップして貰いたいです(僕も含めて

それでは、夏休みを満喫しましょう!!

2010年8月2日月曜日

パソコン甲子園

パソコン甲子園申し込みました

初めての参加なので、よくわからないけど、頑張りたいです!