メルマガ:あゆしゃのC言語プログラミング
タイトル:あゆしゃのC言語プログラミング(Vol.501) 第10回テスト 回答  2004/09/22


/*========================================================*/
    <<<あゆしゃのC言語プログラミング>>>
/*========================================================*/
 第501回 第10回テスト 回答
 発行    2004年9月22日(水曜日)
 発行数   約2700

{magclick}
/*========================================================*/
 はじめに ( 決り文句 )
/*========================================================*/
・このメールマガジンは、主にまぐまぐさんから発行しています。
・ジャンルは、マルチメディアのプログラム、C言語です。
・横60文字で作成し、インデントは大抵半角スペース4つです。
・ここで扱うプログラムは、C言語と半光年以内のものです。
・登録解除は、メルマガのホームページでお願いします。
・過去ログはバックナンバー(下欄参照)を活用して下さい。
・内容は私が感じたもので、最新の技術も、へたれもあります。
・わかりやすさを優先させる為、たまに嘘があるかもしれません。
・セキュリティ突破のため、暗号化された単語があります。

/*========================================================*/
 ご挨拶
/*========================================================*/

 こんにちは。あゆしゃです。

 先日、ベクターさんよりデスクトップショットのレビュー依頼が
通知されました。

 土曜日に公開予定です。今から楽しみです。

{magclick}
/*========================================================*/
 今回のお題  << 第10回テスト 回答 >>
/*========================================================*/

第1問 日本語の第1バイトであることを判定する標準関数は?

1. _ismbblead
2. _ismbbtrail
3. __ismbblead
4. __ismbbtrail


 1番ですね。
 アンダーバーは1個です。

 第1バイトだから「リード(前を行く)」のほうです。

 第2バイトだったら「とれいる(後に続く)」のほうでした。



第2問 実行プログラムのフルパスを取得する標準関数は?

1. GetMudulePath
2. GetMuduleName
3. GetProgramPath
4. GetProgramName


 正解は・・・、ないですね、すいません。ごめんなさい。

 正解は、GetModuleFileName です。削りすぎました。。

// 実行ファイルのパスを取得する
CString CPath::GetModulePath()
{
    char buff[ MAX_PATH + 1 ];
    memset( buff, 0, sizeof( buff ) );
    GetModuleFileName( NULL, buff, sizeof( buff ) - 1 );
    return buff;
}

 こういう感じで使います。

 混乱をばら撒いて、ご迷惑をおかけしました。



第3問 ホームページのアクセス解析で使っていない手法は?

1.平均値
2.中央値
3.分散値
4.最小値


 3番の分散値を使っていません。

 平均値というのは、全体を足して個数で割ったものです。

int sum = 0;
for( int i = 0; i < num; i++ ) sum += data[ i ];
return sum / num;

 こんな感じですね。

 中央値というのは、全体をソートしたときに真ん中に来る数字
のことです。

sort_data( data, num ); // ソートするものと思ってください。
return data[ num / 2 ];

 こんな感じですね。

 分散値というのは、各値から平均値を引いて二乗したものの平均
です。
 日本語で言っても分からないので、分かりやすい言語で書くと、

int ave = ave_data( data, num ); // 平均値を取得
double sum = 0;
for( int i = 0; i < num; i++ ) {
    sum += ( data[ i ] - ave ) * ( data[ i ] - ave );
}
return sum / num;

 こんな感じです。

 この値の平方根をとると、平均値を中心として全体のほとんどが
含まれる範囲を求められます。

 難しい計算ですね。偏差値を求めるときに使うらしいです。


 最後に最小値というのは、一番小さい値ですね。

int dmin = data[ 0 ];
for( int i = 1; i < num; i++ ) dmin = min( dmin, data[ i ]);
return dmin;

 こんな感じですね。



第4問 すばやさアルゴリズムの説明として正しいものは?

1.最小公倍数を考える
2.最大公倍数を考える
3.偏差値を考える
4.最大値を考える


 最大値を考えることです。4番が正解ですね。

 偏差値なんて、使いません。

 最小公倍数を考えることを最初に考えました。が、あれは
失敗しました。



第5問 現在このメルマガは何年目?

1.3年目
2.4年目
3.5年目
4.6年目

 創刊準備号を発行したのが、1999年11月14日。
 第1回を発行したのが、1999年11月19日でした。

 現在、5年と10ヶ月。つまり6年目で、4番が正解です。



第6問 一流大学教授職の半数をしめる血液型は?

1.A型
2.B型
3.C型
4.AB型


 4番のAB型です。大歓迎からの出題でした。

 ある番組の受け入れですが、そうらしいですよ。

 やっぱりAB型って、天才ですね。

 っていうか、C型ってなんですか?

 血液型というのは赤血球の種類のことですが、ひょっとして
赤血球がC言語でできている。。。あ、いいかも。



第7問 デスクトップショットなど特殊なフォルダのフルパスを
    取得する API は?

1. SHGetMalloc
2. SHGetSpecialFolderLocation
3. SHGetPathFromIDList
4. GetDesktopDirectory

 2番です。

// 特殊フォルダの取得
CString GetSpecialDirectory( HWND hWnd, int type )
{
    CString dir;
    LPMALLOC pMalloc = NULL;
    LPITEMIDLIST pItemList = NULL;
    char buff[ MAX_PATH + 1 ];
    memset( buff, 0, sizeof( buff ) );
    SHGetMalloc( &pMalloc );
    if( pMalloc ) {
        SHGetSpecialFolderLocation( hWnd, type, &pItemList);
        if( pItemList ) {
            SHGetPathFromIDList( pItemList, buff );
            pMalloc->Free( pItemList );
            dir = buff;
        }
        pMalloc->Release();
    }
    return dir;
}

// デスクトップを取得
CString GetDesktop( HWND hWnd )
{
    return GetSpecialDirectory( hWnd, CSIDL_DESKTOP );
}

 こんな感じですね。(デスクトップショットから抜粋)


{magclick}
/*========================================================*/
 さいごに
/*========================================================*/

 今後の予定です。あくまでも予定です。

 テキストエディッタ「あいすエディッタ」の作成と登録
 大型計算機「LC」の仕上げとシェアウェア登録
 ファイル比較ツール「あいすでふ」の作成とシェアウェア登録
 C言語解析ツール「しーますた」の作成とシェアウェア登録

{magclick}
/*========================================================*/
 次回予告
/*========================================================*/

 次回は9月24日(金曜日)に、第502回をお送りします。
 お題は「ファイル名称コピー」

 お楽しみに!

/*========================================================*/
 最後の決り文句
/*========================================================*/
 このメールマガジンは、まぐまぐさんから発行しています。
 このメールマガジンを解除したい場合は、まぐまぐさんをご利用
ください。このメルマガのまぐまぐアイディーは最後にあります。
 このメールマガジンには広告が挿入されていますか?
 このメールマガジンの内容に文面の引用はありませんか?
 めーらっくすの場合はめーらっくすの利用方に従ってください。
 このメールマガジンの内容の、転用、流用、宣伝、リンク、
私は飛びます、だってビー型だから! なんて大歓迎です。

{magclick}
/*========================================================*/
 
/*========================================================*/

発行者 あゆしゃ

ホームページ::あゆしゃの世界
http://ayusya.hp.infoseek.co.jp/

ご意見・ご感想・ご質問メール
mailto:ayusya@flamenco.plala.or.jp

まぐまぐ::アイディー
0000020674

まぐまぐ::登録と解除
http://www.mag2.com/m/0000020674.htm

まぐまぐ::バックナンバー
http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674

めーらっくす::アイディー
MM3E1AEE285AB4F

めーらっくす::登録と解除
http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F 

めーらっくす::バックナンバー★最近のものならこちらが便利★
http://www.mailux.com/mm_bno_list.php?mm_id=MM3E1AEE285AB4F

ブラウザの閉じるボタンで閉じてください。