////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


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

    送信日： 2001/06/04(Mon) No.110
    配信数： 3780 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                ２００１年６月４日（月）の更新                  */
http://www.kab-studio.com/

・６月表紙壁紙掲載！
毎月恒例、新しい表紙壁紙です。今月は梅雨の中の火美ちゃん。今回はいい
感じにできたかなー。ダウンロードは CG Gallery にて。
[ CG Gallery ]
http://www.kab-studio.com/CG/Gallery/


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

2001/05/27 (Sun)
　野菜スープを作ったらうまくいかなかった(汗)。野菜使いすぎ？　６月表
紙壁紙のラフを描いたりアニメ見たり。コメットさんラブラブモード突入。
日曜はやっぱいいねぇ。

2001/05/28 (Mon)
　Java 研修は awt ＋ JDBC 。 GUI からデータベースアクセス。でもそれ
より、クラス構造に悩んだり。あと６月表紙壁紙にちょっとだけ色塗り。
少しずつ少しずつ。

2001/05/29 (Tue)
　Java 研修は 3DCG 。三谷純氏のページを参考にして 3DCG の基本を勉
強。こういう数学っぽいのはやっぱ難しいね。午後はサーブレット＆ JDBC 
の合わせ技。ごはんはハンバーグのトマト煮簡易版。なかなかいい感じ。

2001/05/30 (Wed)
　 Java 研修は昨日の 3DCG の続き。どうやらアフィン変換とゆーものを使
うらしい。やっぱ難しいかも。 SOLPAC さんによる Java 研修は今日で終わ
り。超個人的には超いい感じ。あとテリヤキ作ったり DDHELP.exe を沈黙さ
せるのにやっきになったり。最後はフリーウェアのテスト期間について。

2001/05/31 (Thu)
　６月表紙壁紙完成！　例によって制作過程を詳述。今回は色がうまくいっ
たかも。研修はビジネスマナー研修。なんかかなり下手っぽい(汗)。この研
修場に来るのはこれが最後なんでちょっとラーメン屋にでも。結構当たり。

2001/06/01 (Fri)
　KSK 浦和拠点へ。色々な手続き用書類が面倒。ラーメン食べたら熊谷へ。
なんか時間がかなりかかって疲れてる……。帰りに新宿で飲み。ここでの話
はオフレコ〜。

2001/06/02 (Sat)
　カレー作りで作りすぎ。定期券の解約金計算方法を電話とネットを駆使し
てゲット。ちょっと嬉しかったり。あとノワールから含めてテレビ色々。そ
して勤務先の謎。まだ決まってないしー(泣)。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.com/Novel/Fuga/

■　第一章　予言と運命　−３−

　美咲は北口前で、古びた大きな鞄を置いた。実際の歳には見えない若々し
い顔は、引き締まった表情のおかげでいつもより見かけの年齢を上げてい
た。
「ったく、なんでこんな空気の悪い所に住めるのかしら」
　変に乾いた、のどが変になりそうな空気は、美咲には耐えられないもの
だった。
「かあさん！」
　遠くから歩いてくる奨に、美咲は自然と笑みがこぼれた。なんだかんだ
言っても、久しぶりに会う家族は、いい。
「奨、元気そうじゃない」
「うん」
「お父さんと舞は？」
「父さんは家にいるよ。舞は今学校」
「……じゃあなんであんたがここにいるの」
「え、えーっと……とりあえずタクシー乗ろうよ」
　笑顔を含んだため息を一つ、美咲はついた。
「どこまでですか？」
　その女性運転手の声にビックリするのを見て、奨はあきれる。
「相変わらずだね……」
「もう何年もほこらから出ていなかったもの。でも、変わらないでいて欲し
かった物は変わっていく、変わって欲しかった物は変わってない」
「でも、母さんは変わってない。前よかきれいになったんじゃないの？」
「おだてたって何も出ないわよ」
　流れ行く外の景色は、それなりに目新しい。でも、それほどでもなかっ
た。
「そうそう」
　自分の方を向いた美咲の顔を見て、奨はイヤな予感がした。
「奨ちゃんにお願いがあるの。言うこと聞いてくれたらお小遣いあげるか
ら」
　奨はただ苦笑いするしかなかった。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『梅雨ね』
「梅雨だね」
『……』
「……」
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

　Version 6.10
二項演算子

「今回は前回に引き続き、演算子について見ていきましょう」
『今回は二項演算子、ようするに右と左、ふたつ使う演算子だよね』
「そう、この演算子が一番多いかな。 MSDN の【2 項演算子】−【2 項演算
子】を見て」
『ホントだ、いっぱいあるね』
「多いからとっとと行きましょう。まず一番大事な = 」
『変数に値入れるのだね。だいにゅうって言うんだっけ』
「そう、代入。これは大丈夫だね。次は四則演算の + - * / % 」
『足す引く掛ける割る……最後のは？』
「割り算の余り。 5 % 3 なら」
『余り 2 ね。これ何に使うの？』
「実は色々使えるんだよね。たとえば for ループで」

void CDebugDlg::OnButton1() 
{
    for( int iF1 = 1; iF1 <= 30; iF1++ )
    {
        if( ( iF1 % 5 ) == 0 )
        {
            TRACE( "%d ", iF1 );
        }
    }
    // 5 10 15 20 25 30 
}

『おー、５回ずつ、ってこうすればいいんだ』
「他にもあるけど、それはまたおいおい。で、こういった四則演算に代入の
機能が付いたのが、 *= += -= /= %= 」
『そうそう、 + とかの結果は変数に描き込まれないからわざわざ = で代入
しなきゃいけない。それをしなくていいのが += とかだよね』
「そう、 A += B は A = A + B と同じ。ここでちょっと一息」
『ふぅ』
「さて、ここで昔を思い出して。四則演算教えた Ver 2.4 ( No.015 ) で、
優先順位っていうのについて教えたでしょ」
『 * や / の方が + や - よりも先に計算される、ってヤツでしょ』
「その辺、も少ししっかり教えとくね。 MSDN の【結合規則】−【優先順位
と評価順序】ってページ表示して」
『ん、演算子の表がある』
「この表の中で、上の方が優先順位が高くて、下の方が低くなってます」
『 + とかは上から２番目、 = や += なんかは下から２番目』
「この優先順位があるから、 A = A + B は A + B が先に計算されるんで
す」
『あ、そっか、もし + よりも = の方が高かったら、 A = A が先になっ
て、そのあと + なんだ』
「そゆこと。ただ、 ( ) で囲んだらそっちが先に実行されるからね」
『ってことは、 ( A = A ) + B ってしたら今言ったようなことになっちゃ
うってことね〜』
「優先順位は、式の意味そのものに関わってくるから大事。もうひとつ、
結合規則っていうのがあるんだけど」
『左から右、右から左って書いてあるね』
「これは、右と左、どっちのオペランドが先に処理されるか。たとえば」

int FuncL()
{
    TRACE( "FuncL\n" );
    return 0;
}

int FuncR()
{
    TRACE( "FuncR\n" );
    return 0;
}

void CDebugDlg::OnButton1() 
{
    int i = FuncL() - FuncR();
    // FuncL
    // FuncR
}

『あー、 + は〈右から左〉って書いてあるから FuncR() が先に実行されて
ねーっ！！　なんで？』
「同じページの真ん中へんに書いてあるけど、基本的にこれは不定。開発環
境によってまちまちなんだよねー」
『……じゃーどうすればいいの？』
「 ( ) とか使って、そういうの関係なく順番を決めてけばいいだけ。だか
ら結合規則は忘れていーよ」
『なんかてきとー』
「ってゆーか、優先順位も忘れていいんだけどね」
『え、そうなの？』
「そ。それはまた今度。次はビット操作、 & | ^ << >> 」
『これは全部知ってる』
「 Ver 4.05 ( No.055 ) とかでやったね」
『あ、嘘、 ^ って知らない』
「そういえば」
『ビット操作するのだよね。なんか ~ に似てるけど』
「違うのだからね。 ^ は〈排他的 OR 〉って言って、……えっと、 & と |
の機能を言ってみて」
『 & は両方とも 1 のとき 1 、 | はどっちかが 1 のとき 1 になる、ね』
「 ^ は 1 と 0 、または 0 と 1 、つまりビットが違う時に 1 。 1 と  1 
か 0 と 0 、つまりビットが同じ時は 0 」
『？』
「つまり」

void CDebugDlg::OnButton1() 
{
    TRACE( "%X\n", 0x05 ^ 0x03 ); // 6
    //   0101 
    // ^ 0011 は 
    //   0110 に。
}

『違うとき 1 、同じとき 0 、だからこうなるんだ』
「実は、これを使うと前回紹介した ~ を使う〈ビットフラグを取り除く方
法〉が実現できるんです」
『え、こっちでも？』
「上の例で見てみて。 0x03 で 0 になってるビットは、 0x05 のときのま
まになってるでしょ」
『そだね。ってことは、変えたくないビットは 0 にしとけばいいんだ』
「で、変えたいビットは 1 にすればいいわけ。そのビットが 1 なら 0 に
なるから」
『そうすればビットフラグを取り除けるってわけね。あれ？　でもこれ、
ビットが 0 だったら 1 になっちゃうね』
「そだね。前回の ~ 使ったのはそういうことないから、そういう意味じゃ
~ の方を使った方がいいかも」
『演算子の使い道って、結構少ないのね……』
「さて、これらのビット操作系も、四則演算のときみたく代入バージョンの
&= |= ^= <<= >>= があったりします」
『あ、前回の ~ は & も使わなきゃいけなかったけど、今回のなら ~= ひと
つでできるね』 
「そーゆー、横着優先で考えちゃダメ」
『うー』
「んじゃ次、 if の中とかで使う比較系。 == != < <= > >= 」
『だいぶ前だけど、全部やったよね』
「 Ver 2.6 ( No.017 ) 、ほんとにだいぶ前だね……。で、この比較系と一
緒によく使われるのが && と || 」
『あれ？　これってまだちゃんと教わってないかも』
「じゃ、ここでしっかり教えときましょう。まずは & と | のちゃんとした
呼び方から。このふたつは〈ビット AND 〉と〈ビット OR 〉って言います」
『ビットエンドとビットオア、ね』
「 AND は〈〜と〜〉、つまり両方ともって意味」
『 & は両方とも 1 のとき 1 、それが〈両方とも〉ってことね』
「 OR は〈〜か〜〉、つまりどっちかって意味」
『 | はどっちかが 1 のとき 1 、ね』
「で、このふたつは各ビットについてのだったけど、 && は || は整数値全
体に対して使います。名付けて〈論理 AND 〉と〈論理 OR 〉」
『ろんりエンドとろんりオアね。整数値全体ってどういうこと？』
「その名の通り。整数として、両方とも 0 以外の時、 0 以外になるのが
&& 演算子」

    TRACE
        ( "%d, %d, %d, %d\n"
        ,  0 && 0, 0 && 1, 1 && 0, 1 && 1 );
    // 0, 0, 0, 1

『あーそっか、普通に数字で判断するんだ。で、 1 と 1 の時だけ 1 ね』
「別に 1 って決まってないからね」
『 0 以外、ってヤツ？』
「そ。〈 0 以外〉が 1 とは決まってなくて、 開発環境の中には -1 だっ
たりするのもあるからね。 VC は 1 ってだけのこと」
『っつーか〈 0 以外〉って言葉自体分かりにくいし』
「ま、 if や while が〈 0 以外の時に実行される〉んだから、 0 以外は
〈当たり〉とか置き換えちゃえばいいでしょ」
『当たり、ね。あとさ、この 1 とか 0 って、変数にもできるんだよね』
「もちろん。まー、実際にはこういう使い方はあんましないかも。普通の使
い方の前に、 || の例も見といて」

    TRACE
        ( "%d, %d, %d, %d\n"
        ,  0 || 0, 0 || 1, 1 || 0, 1 || 1 );
    // 0, 1, 1, 1

『 || はどっちかが 1 なら 1 ね。この辺は & や |  と同じだから分かり
やすいかも』
「で、これは if の中で使います。

    int i = 5;
    if( ( 0 <= i ) && ( i <= 10 ) )
    {
        TRACE( "Hit!!\n" );
    }
    // Hit!!

『えーっと、左っかわの 0 <= i は、 i が 0 以上なら当たり、右っかわの 
i <= 10 は、 i が 10 以下なら当たり。で、 && は両方とも当たりなら当
たり。ん？　よーするに i が 0 以上で 10 以下ならいいってこと？』
「そゆこと。逆に考えると〈 i が 0 から 10 の間か〉を if で調べたいと
きにはこうすればいいってこと」
『例の〈使い道から〉ってのね。 || の方は？』
「たとえばこれの逆、 0 未満か 10 より大きいとき、とか」

    int i = 15;
    if( ( i < 0 ) || ( 10 < i ) )
    {
        TRACE( "Hit!!\n" );
    }
    // Hit!!

『そっか、これは && じゃダメなんだ。 0 未満で 10 より大きい、なんて
あり得ないもんね』
「他にもいっぱい使い道があるんだけど、それはまたおいおい、ね」
『で、他の演算子は？』
「それは次回に続く！」

/*
    Preview Next Story!
*/
『結局、使い道知らないとどうしようもない？』
「演算子は自由度の高い道具だから、使い方を知らないとね」
『機能そのものは簡単なのに』
「そういうのをどれだけ知ってるか、もスキルのうちかも」
『ふ〜ん』
「というわけで次回」
＜ Version 6.11 三項演算子 ＞
『につづく！』
「演算子だけ教える、って今までしてこなかったのはそういう理由」
『ホントかな〜』


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

・KAB-studio.h 縮刷版更新。
　 KAB-studio.h が１１０号に達したので圧縮ファイルにまとめます。まと
めて読みたい、 grep で探したいあなたに。


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

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




