
/*
	KAB-studio.h
		　ＫＡＢ−ｓｔｕｄｉｏで先週更新した内容
		が格納されたヘッダーファイルです（笑）。

	(C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
		http://www.kab-studio.com/
		info@kab-studio.com

	送信日： 2000/05/29(Mon) No.059
	配信数： 3720（ Mag2 + Pubzine ）
＊	発行元： まぐまぐ( URL: http://www.mag2.com/  ID: 0000012198 )
＊	発行元： Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/


/*              ２０００年５月２９日（月）の更新                  */
http://www.kab-studio.com/Info/News/

・更新なし。 
　はい、今回も更新なしです（泣）。こりゃ夏休みに入るまでダメかもしん
ない……。ちなみに夏休みは７月末から。かなり先……。


/*                        チョー普通な日記                        */
http://www.kab-studio.com/nikki2/

2000/05/21 (Sun)
　今日はテレビのことが半分（爆）。相変わらずですなー。

2000/05/22 (Mon)
　東京リスマチックの会社説明会兼選考会。デザイン系って魅力あるなー。
もともとそっち系の人だし、自分。でもテストが（泣）。

2000/05/23 (Tue)
　火曜はゼミの日。 gnutella のニュースは実はガセネタだったってホント？
そしてアシックスの革靴。いい……でも高い（泣）。

2000/05/24 (Wed)
　テレビのこと中心。のんびりいこかー。そして革靴ネタが盛り上がりまく
り。けっこーみんな、靴のこと考えてるのね。

2000/05/25 (Thu)
　臨時のお休み。ってことで家でのんびり（爆）。

2000/05/26 (Fri)
　金曜もゼミの日。暑いの嫌い〜（泣）。そして、これから始まる世紀の一
戦に想いをはせる……。

2000/05/27 (Sat)
　ヒクソンＶＳ船木！！　ヒクソン、その底の深さを見せつけての勝利。
開始１２分間を徹底検証する！！


/*                         鏑矢の憂鬱                             */
http://www.kab-studio.com/Programing/KabuU/

2000/05/21 (Sun)
お便り
CreateProcess() したアプリを終了したい
PROCESS_INFORMATION::dwProcessId にプロセス ID が入っている
しらみつぶしの方法
EnumWindows() 
GetWindowTreadProcessID() 
Knowledge Base J041632 

2000/05/22 (Mon)
情報理論の授業

2000/05/23 (Tue)
情報処理論の授業
データベース
アルゴリズムの組み方について教えて欲しい
アルゴリズムは苦手分野

2000/05/24 (Wed)
信号処理論の授業
Z 平面としてではなく rExp(f) の正弦波と考えた方がいいかも
これまでのフーリエ変換などは「信号」に対して
デジタル信号処理は「変換処理するシステム」に対して
実際にはインパルス応答に対して
Z^-n と Z^-1 も結局正弦波を表している
Z 変換の総和は「信号と正弦波を掛けた面積を求めてる」
最初のイメージが保てるかが大事
お便り
CSV 形式のファイルを読み込んでリストボックスに表示する方法は？
まず「ファイルからデータを取り込む」
次に「リストボックスにデータを入れる」
配列の作り方
サンプルコード
違う方法もある
ファイルを開いて読み込む
クラスウィザードを使ってリストボックスを CListBox 変数に結びつける
InsertString() メンバ関数を呼んで追加する
ひとつずつクリアしていくことが大事

2000/05/25 (Thu)
信号処理
Z は r( cos(f) + jsin(f) ) で考えないと計算が合わない
三角関数の公式を暗算でできるようにならないときつい
求まるのは係数
この係数を「 cos(wt) + jsin(wt) 」に掛けることで
ある振幅・位相・周波数の正弦波が出てくる
「変換」は面積を求めもる
「逆変換」は各周波数のを足し合わせるもの
プログラミングに生かしたい
JPEG や MPEG
符号化の部分が難しい

2000/05/26 (Fri)
おとといのリストボックスのを #pragma twice でするかも

2000/05/27 (Sat)
#pragma twice １話完成
ローカル変数について
今回もメモリウィンドウを使用
次は参照などについて
そのあとリストボックスのをする予定

/*             プログラミング辞書・今週の追加単語                 */
http://www.kab-studio.com/Programing/Dictionary/
（６月一杯まで更新を休止します、御了承ください）


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『ねー、 STL ってなに？』
「火美ちゃんはまだ知らなくていいよ」
『えー？　知りたい知りたい知りたいぃ』
　知りたいあなたは購読登録。
http://www.kab-studio.com/Programing/STLiostream/
_______________________________________________________________[KCM]


/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

　Version 4.09
定数を使おう！

「これまで見てきたのは〈変数〉でした。だから……」

void Variable()
{
	int i = 0;
	TRACE( "%d\n", i );	// 0
	i = 100;
	TRACE( "%d\n", i );	// 100
}

「と、 i の中身は変えることができます」
『当たり前じゃない』
「でも、場合によっては〈変えたくない〉ってこともない？」
『……年齢が変数なら変えたくないなー』
「そーゆーことじゃなくって」
『んー、たとえば〈自分の電話番号〉とかはそうそう変わんないかな』
「そうそう。あとフラグに使うものも変わらない方がいいかな」
『途中で変わっちゃって永遠にクリアできないとかはヤダなー』
「変数に入れておくと、いつの間にか変えちゃうかもしんない」
『電話番号とかって間違えて教えちゃわないかヒヤヒヤしたりするのよねー。
でも結局は気を付ければいいんじゃないの？』
「看護婦さんは言いました。ちゃんと気を付けました！　点滴のはずだった
んです！　って……」
『う”、またそれね……まー確かに〈気を付ける〉のには限界あるよね』
「そこで出てくるのが〈定数〉。これはほいほい変えることができないから
安心」
『変えようとするとどうなるの？』
「ビルドするときにエラーが出るから」
『アプリができないんだ。それなら安心ね』
「さて、まずは〈整数リテラル〉から」
『せーすーりてらる？』
「まぁ〈リテラル〉って〈定数〉って意味だからそのまんまなんだけど、そ
れは置いといて、プログラムのこういうものを整数リテラルって呼びます」

	i = 
		100	// これ！
	;

『？？』
「つまりプログラム上の数字のことを整数リテラルっていうの」
『あ、なるほど！　ってゆーか、なんか変な呼び方して難しくしてない？』
「まー普通使わない言葉だけどね。 MSDN とかには頻繁に出てくるからとり
あえず知っておいて」
『はーい』
「で、いきなりだけど、こういうふうに整数リテラルを直に書くのは御法度
です！」
『ええっ！　ってゆーか、しちゃいけないことを教えてたの？』
「いや、絶対にしちゃいけないわけじゃないけどね。こういう小さなテスト
アプリなら問題なし」
『なーんだ』
「でも大きなプログラムだと問題あり。たとえば〈成功のフラグ〉を 1 に
して、それをプログラムに書いちゃったとします」
『書いちゃったとする、と？』
「あとでそのフラグを 2 にしたいときに困っちゃうでしょ」
『そう？　検索して変換すればいいんじゃない？』
「他の用途で 1 って数字使ってたら？　そしたら検索して〈それがそのフ
ラグに使うための 1 か〉って確認しなきゃいけないでしょ」
『あ、そういえば』
「だから 1 を FLAG_OK みたいなのに置き換えてプログラムを作れるように
する、っていうのが〈定数〉の基本的な考え方」
『それってどゆこと？』
「 FLAG_OK って名前の変数を作って、そこに 1 を入れれば？」
『あ、なるほど！　あとで 2 にしたいときは、 FLAG_OK = 2 みたいにすれ
ば全然問題なし！　ってことなんだ』
「そう。で、 FLAG_OK が変数じゃなくて、変えられないようにすればいい
わけ」
『なるほど』
「その方法が実は結構あるから。ひとつずつ見ていくね」
『どれも一長一短あるんだよね』
「そゆこと。まずは #define から」

void Use_define()
{

#define DEF_FLAG_OK 1	// 定数。

	int i = DEF_FLAG_OK;
	TRACE( "%d\n", i );	// 1
}

『あれ？　#define ってどーっかで見たような……』
「ずーっと前に見たね。 #define は１番目のを２番目のに置き換えます」
『ってことは、 DEF_FLAG_OK が 1 に置き換わるんだ。これを 2 にしたい
ときは』

#define FLAG_OK 2

『ってすればいいんだよね』
「そういうこと。これが一番使われてる、定数を実現する方法かな」
『……でもさ、なんか変くない？　わざわざタブ打ってないし、 # から始
まってるし、しかもセミコロンで閉じてない！』
「その通り。 #define は〈プリプロセッサ〉ってもののひとつで、ちょっ
と特殊で難しいもの」
『う”、難しいんだ』
「だからちゃんとした説明は今度ってことで、今回は〈これが定数になる〉
ってことだけ憶えておいて」
『ま、置き換わるんだから難しくないよね。あーそうそう、これって定数な
んだから〈値を変えられない〉んだよね』
「……あのさー、 DEF_FLAG_OK = 2 ってして値を変えようとしたら、実際
にどうなる？」
『 1 に置き換わるんだから 1 = 2 、あーこりゃダメだね』
「そゆこと。さて、 #define は実際のところちょっと古い方法。今一般的
なのは const を使う方法かな」

void Use_const()
{
	const int FLAG_OK = 1;	// 定数。

	int i = FLAG_OK;
	TRACE( "%d\n", i );	// 1
}

『 const って unsigned とかと同じふーに付いてるね』
「 unsigned int が〈符号なしの int 〉って意味だったのと同じように、 
const int は〈変えられない int 〉って意味になります」
『つまり int の形容詞よね。あ、 const が〈変えられない〉ってことは、
こーすれば変数が変えられなくなるんだ！』
「そういうこと。こっちの方が、変数と変わらずに使えるからよく使われて
るから」
『でも変えられないんでしょ？ FLAG_CK = 2 とかしたら？』
「訊く前に試してみましょう」
『あ、そうだよね……』

error C2166: 左辺値は const オブジェクトに指定されています。

「〈オブジェクト〉はそのまま〈変数〉って読み替えちゃっていいかな」
『ってことは const だからダメってことなんだ。そのままねー』
「こうやってビルドするときにチェックしてくれるから安心、ってこと」
『……そーいえば、変数って最初に数字入れなくても作れたよね……』

	const int FLAG_OK_2;

『ってしたら……あ、またエラーだ』

error C2734: 'FLAG_OK_2' : const として宣言されていますが、
　初期化されていません。

『あ、これもちゃんとチェックしてくれるんだ！』
「これも安心な部分だね。さて、 const 整数値も定数としてよく使われて
いるんだけど、最近使われ始めているのが enum 」
『いーなむ？』
「って僕は読んでるけど、実際の発音はちょっと違うかな。これ enumerate
って単語の略だし」
『ふーん』
「ま、それはおいといて使い方」

// enum を使った定数。
enum enum_Flags
{
	E_FLAG_OK = 1,
	E_FLAG_NO = 0
};

// その使用例。
void Use_enum_Flags()
{
	enum_Flags eFlag = E_FLAG_OK;
	TRACE( "%d\n", eFlag );	// 1
	int i = E_FLAG_OK;
	TRACE( "%d\n", i );	// 1
}

『関数の前にあるのが enum っての？』
「そう。 enum enum_Flags ってすると、 enum_Flags って型を作ることが
できます」
『へー、なんかクラスみたい』
「ってほどのものじゃないけどね」
『関数の中でその enum_Flags 型の変数作ってるね。そこに……さっきのの
中の E_FLAG_OK を入れてるね』
「 enum の中で」

	E_FLAG_OK = 1 

「って感じに書くと、これが」

	const int E_FLAG_OK = 1;

「みたいな定数と同じ意味になります」
『ほーなるほど。定数だから、 int 型の変数にも入れられるんだ。……っ
てさ、これって意味なくない？』
「 enum_Flags 型の変数を作れるってとこがミソ」
『この例見ると、整数と同じふうに使えてるよね』
「ところが実は、 enum_Flags 型の変数には E_FLAG_OK と E_FLAG_NO しか
入らないんです」
『へ？』
「つまり」

	eFlag = 1;

「はエラーになるってこと」
『ほー、つまり int 型とかとは違うってことね』
「これはビットフラグにすごく便利。フラグに使いたくない値は絶対に入ら
ないからね」
『フラグに使うものだけを enum の中で作っちゃえばいいんだ』
「そういうこと」
『まとめると、定数を使う方法は、 #define に const に enum 、だよね。
使い分けは？』
「 #define は古い方法だから使わない。フラグは enum 、それ以外は const
が一番かな」
『はーい』

/*
	Preview Next Story!
*/
『つまりさ、間違えてもエラーが出るっていうのがいいんだよね』
「そういうこと。でも火美ちゃんそーゆーの嫌いそう」
『う”っ、そう？』
「自由度高くないとなんかイヤそうだなーとか」
『うん、だって面倒でしょー、 int でいーじゃん』
「間違えちゃうかもよー、失敗するかもよー」
『というわけで次回』
＜ Version 4.10 アドレスとポインタ ＞
「につづく！」
『あ、あたしは間違えないもーん』
「毎日枕元でささやいてあげようか、あっ、しまった、やばー、とか」
『よけー間違えちゃうよぉ』


/*                       金菜さんの憂鬱                           */
http://www.kab-studio.com/Programing/KanaU/
（現在休止中です、御了承ください）


/*              ２０００年６月５日（月）の更新予定                */
http://www.kab-studio.com/Info/News/

・表紙を６月バージョンに！ 
　毎月恒例、新しい表紙を掲載する予定です……ううっ（涙）、間に合わな
くても怒んないでね（泣）。


/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・プログラミングに関する質問は[鏑矢の憂鬱]にお送りください。
http://www.kab-studio.com/Programing/KabuU/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198
http://www.kab-studio.com/Freeware/

/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/


/*                      See you next week!!                      */


