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

    KAB-studio.h


    (C)KAB-studio 1999 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

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

////////////////////////////////////////////////////////////////////
/*                ２００３年１０月６日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはー１話追加
　三人合体ホットハーブに１話追加。やっぱりもみは……。
[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/index.html

・１０月表紙壁紙……は遅れます（汗）
　表紙壁紙は来週になります。ごめんなさい。


////////////////////////////////////////////////////////////////////
/*                        ちょお普通な日記                        */
http://www.kab-studio.biz/nikki2/index.html

2003/09/28 (Sun)
　部屋の片付け。テープの山。築地母は描くの難しい。 SEED 最終回……。
Ｎスペ、アウトソーシングとマイスター。そして英国式マッサージ。

2003/09/29 (Mon)
　疲れた。ほとはー外伝２のバジル。そろそろ描き始めないと。真月譚月姫
prologue いい感じだ……。そしてこりとテープ。そして何が？

2003/09/30 (Tue)
　検収の日。９月あっという間……。スーパーサブが向いてます。横浜で
色々購入。マルチディスプレイ。液晶ディスプレイのアーム。そして昨日の
バジル萌え。そして萌え萌え。

2003/10/01 (Wed)
　今日から別プロジェクト。今日の一枚はバジルと稀法石。西武の監督。第
４クール開始……。そして液晶の質。そして打鍵数。

2003/10/02 (Thu)
　Oracle9i と WebLogic 。 LAST EXSILE 最終回とか。１０月は忙しい気
味。

2003/10/03 (Fri)
　WebLogic が 400MByte もメモリを。かぶろぐ。ストレスで食べる。新番
組クロ高いい感じ。徹夜でほとはーとか。ほとはー外伝２描かないと。

2003/10/04 (Sat)
　朝５時までかぶヘッダーの準備とか。午後からお仕事。テレビはすてプリ
がかなりいい感じ。新番組は……。


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

■　第九章　四人　−２−

　呆然としてはいたが、このようなことはもう何度となく体験していた。隠
れている能力を引き出す力。鷹人との修練でこの体験を経る度に、技術が向
上している。
「だが」
　雅樹は剣を構え直す。
「今は、稽古の時間じゃないだろう」
　鷹人の表情が引き締まる。
「気が変わった。正直、もっと腕が立っていれば、あるいはと思っていたん
だが……」
「……！？」
　鷹人が滑るように進んでくる。肩で目付をしていた雅樹はすぐ反応できな
い。そして、恐怖で反射的に振り降ろした刀は空を切り、音もなく鷹人が脇
に回る。
「ちっ」
　返す刀で胴を薙ぎに行く。鷹人は刀を振り降ろして受けに行く。
「うぉおおおっ！」
　渾身の力を振り絞って剣を斬り上げる。完全に踏み込み、両足が大地に突
き刺さり、体を伸ばす力を使っての一撃は、素に近い立ち姿で、しかも回り
込んだばかりの鷹人に止められるはずがない。ここで押し上げて体制を立て
直す。
　ギッ。
　手首に衝撃が疾る。微動だにしていない鷹人とその刀は、まるで鋼鉄の柱
のように硬く、それを叩いた雅樹の手首に全ての力が集中した。人のそれの
２倍はあるかという太さでも、自分の力と相手の力の全てを受け入れること
はできなかった。
　痺れて、手を離し、刀が地面に刺さる。
　咄嗟に後ろへと下がり距離を取る。
　はずだったが、それ以上の距離を瞬時に踏み込んで、鷹人の切っ先が雅樹
の額に触れようとしていた。
「……」
「……つまり、こういうことだ」
　鷹人はため息をひとつついて、刀を鞘にしまった。
「……まさか、ここまで差がついていたとはなぁ……なんだ、今の」
「楠家に伝わるものだから、これは教えられないな」
「じゃあ俺は絶対鷹人に勝てねぇってことか？」
「もうろくして忘れたら勝てるかもな」
　はは、とふたりは笑った。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『セキュアドって、去年受けて落ちたのだよね』
「そう、国家試験のひとつ」
『プログラミングと関係ある？』
「ないよ。サーバーとかネットワークとかが関係あるかな」
『よくわかんない、それ……』
「まぁプロバイダのお仕事とかそういうの」
『ますます関係ないね……あたしは受けなくていいんだよね』
「他に受けた方がいい試験があるけど」
『げ』
「ソフトウェア開発とかアプリケーションとか」
『……難しい？』
「もうちょっと勉強しなきゃ、ね    」
『う〜』
http://www.kab-studio.biz/
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 12.03
パソコンは計算機

「今回から数回、かなーり難しい〈実数〉っていうものについて見ていきま
す」
『じっすー？』
「簡単に言うと小数点を含む数値のこと。 int は整数値だから小数点は含
まないでしょ」
『つまり小数点を使うときには int じゃダメだから、なんか使わなきゃい
けないってことね』
「そういうこと。で、まずは小数点を表示する方法から。 TRACE() とかの 
printf() 系は、 %f で実数を出力できます」

void OutputFloatingDigit()
{
    TRACE( "%f\n", 1.0 );
    // 1.000000
}

『お、簡単に出た』
「ところが、たったこれだけのことに、とっても複雑な問題がいっぱい存在
します」
『げげ』
「まずはこれ」

void OutputFloatingDigit_Bad()
{
    TRACE( "%f\n", 1 );
    // 0.000000
}

『……え、マジ……？』
「まじです」
『だって、 1 と 1.0 って同じでしょ！？』
「コンピューターの世界では違うって事」
『げ』
「 1 を１６進数で表すと？」
『んー、 0x01 みたいな？』
「そうだね。で、実数の 1.0 を１６進数で表すと、ぜんっぜん違うものに
なります」
『なんで？』
「小数点も含めなきゃいけないから」
『あー……って、整数のとこは互換とかそーゆーのないの？』
「ありません。つまり、整数と実数とでは、ビット単位での表現方法が全く
違うです」
『なにそれー』
「 TRACE() は %f を見て〈実数がある〉ってみなしたから」
『実数のビットを見る感覚で整数値を見ちゃった、と』
「そういうこと」
『……ねー、これからその数回ってゆーの、休んでいい？』
「意味ないし」
『う”……』
「今言った〈実数のビットでの表現方法〉は後にとっておいて、次に、小数
点の話」
『小数点？』
「 %f の % と f の間に、 .数字ってすると、小数点の表示桁数を変えられ
るんです。たとえば２０桁表示するんなら」

void OutputFloatingDigit20()
{
    TRACE( "%.20f\n", 1.0 );
    // 1.00000000000000000000
}

「ってなるし、１桁しか表示しないなら」

void OutputFloatingDigit1()
{
    TRACE( "%.1f\n", 1.0 );
    // 1.0
}

「ってなります」
『 . の後に桁数ね』
「これはちゃんと四捨五入してくれます」

void OutputFloatingDigitRound()
{
    TRACE( "%.1f\n", 0.04 );
    TRACE( "%.1f\n", 0.05 );
    // 0.0
    // 0.1
}

『おー、ちょっと便利』
「で、なんでこういう機能が付いているかというと、そもそも実数には誤差
がある、っていうのがあるんです」
『げ、 Version 12.01 ( No.224 ) でやったのだ』
「そう」

void Double01()
{
    TRACE( "%.20f\n", 0.1 );
    // 0.10000000000000001000
}

『やっぱ変なとこに 1 が入ってる……』
「さっき言ったように、実数のビットでの表し方は整数と違ってて、その表
し方が原因で、こういう誤差が普通に起きるんです」
『それってこまんなくない？』
「困るよ。特にお金の計算とか」
『お金？』
「こういう誤差が積もり積もるとすごい額になっちゃうから」
『そういえば……』
「だから、そういうときにはちょっと違う方法で実数の計算をするんだけ
ど、それはまた今度ってことで。あと、特に困らない場合もあるし」
『困らない場合？』
「物理計算とか」
『ぶつり……けいさん？』
「実験とかで、物が落ちたり跳ねたりを計測して、その計算をするとかそう
いう計算の場合」
『なんでそんときには困んないの？　それだって困るでしょ』
「元々、そういう計算には誤差がつきものだから。定規で、本当に正確に１
ミリを計るってできないでしょ」
『ん……確かに、定規の目盛りもあるから、本当に正確にって無理だね』
「だから、科学的な計算では常に誤差が生じるから、その辺を踏まえて計算
するのが普通」
『だから double の誤差も問題ない、と』
「ま、計算するときには考慮する必要があるけど、それは普通の誤差と同じ
ようにってことだから」
『その気を付けることって？』
「今回はパス。計算方法自体はプログラムに関係なく普通の計算で使うもの
だから、そういうのを勉強したときに教わると思うよ」
『そういうのを勉強するとき？』
「大学の実験とか」
『大学、ねぇ……』
「そういう特別な状況でもない限り、こういう計算はしないから。ただ重要
なのは、コンピューターの最初の目的は、こういう計算だったってこと」
『こういう、って、科学的な計算ってこと？』
「そう。コンピューター自体【計算機】って呼ばれてたし。だから、そうい
う計算まわりの機能は初めから備わってる、ってところかな。たとえば」

void IntToDouble()
{
    int i = 100;
    double d = i;
    TRACE( "%f\n", d );
    // 100.000000
}

『 int に入れて、それを double に入れてる』
「 double は実数を入れる変数。つまり、 int から double へは自動的に
変換ができるってこと」
『それってすごいの？』
「だって、整数と実数はビット的には全然違うんだから」
『そっか、ただ入れるんじゃなくて、その変換をして入れてるってことなん
だ』
「そういう機能は初めから備わってるってこと。文字列との変換はランタイ
ムが必要なのに」
『その辺が、計算機って理由なのね』
「もうひとつ計算機らしいところをあげると、 E 表記っていうのもありま
す」
『いー？』

void OutputDoubleE()
{
    TRACE( "%E\n", 0.1 );
    // 1.000000E-001
}

『むむむ？　なんか変な書き方だ』
「 E-001 っていうのは、 10 の -1 乗って意味。 E が〈 10 の何乗か〉
って意味で、 -001 が -1 」
『 10 の -1 乗……』
「は１０分の１だから 0.1 。これを、 E の左側に掛けたのが正しい値」
『 1.0 に 0.1 だから、 0.1 ……なんかめんどい』
「これは科学的な書き方だから、なじみがないと思うけど、実は実数のビッ
トでの表現方法を考える時に重要なことだから、ちょっと憶えておいて」
『一応憶えとく』
「最後にもうひとつ、これは科学的なのとは関係ないもの」
『ほっ……』
「整数値の割り算をするときに気を付けなきゃいけないことがあります。そ
れは、整数値どうしの割り算は整数値になっちゃうってこと」
『？』

void OutputIntDivide_Bad()
{
    double d = 1 / 2;
    TRACE( "%f\n", d );
    // 0.000000
}

『げ、 0 だ』
「 1 も 2 も整数値だから、 1 / 2 の答は 0.5 なんだけどこれが整数値に
変換されちゃうから 0 になっちゃうんです」
『げ、しかも切り捨てだし』
「キャストは基本的に切り捨てだから。これを避ける場合には、どっちかを
実数にします」

void OutputIntDivide_Good()
{
    double d = 1 / 2.0;
    TRACE( "%f\n", d );
    // 0.500000
}

『お、 2.0 にしただけでできた』
「 同じく 1.0 でもいいから。というわけで、実数はむつかしいことがいっ
ぱいあります」
『で、まだまだ出てくると』
「そういうこと」

/*
    Preview Next Story!
*/
『なんっか、ホントにかなりややこしいんだけど……』
「僕もそう思う」
『水希ちゃんも？』
「普通のプログラムって、実数ってあまり使わないから」
『たいがい整数で間に合っちゃうんだ』
「僕自身あまり慣れてないから」
『プロでも難しいわけねー』
「というわけで次回」
＜ Version 12.04 浮動小数点型 ＞
『につづく！』
「でもひととおりは理解してもらうからね」
『意味あるの？』
「こういう勉強は、必ずあとで役に立つから」


////////////////////////////////////////////////////////////////////
/*                ２００３年１０月１３日（月）の更新              */
http://www.kab-studio.biz/index.html

・ほとはー１話追加予定
　三人合体ホットハーブに１話追加予定。ほとはーだけはちゃんと続けま
す。

・１０月表紙壁紙の予定
　１週遅れですが新表紙壁紙を掲載予定。たぶん。この週を逃すときっと今
月はなし（汗）。


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

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/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.biz/Freeware/index.html#MailMagazine


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

    (C)KAB-studio 1999 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

