FC2ブログ

[jhomework-2009-02-13-基本情報向け]


 PDPC を説明したものはどれか。

 ア アンケートなどで得られる言語データを,それが語っている意味の近さに注目し,意味の近いもの同士を統合することで,言語データを要約する手法であり,断片的で漠然としたイメージを具体化するときに役立つ。

 イ 工程の開始から完了までの各作業を,それぞれの関係を保ちながら時系列  に並べて矢印で結んだ図であり,ある作業に遅れが生じたときの全体日程への影響を把握したり,最短日程を算出したりするのに役立つ。

 ウ 実施過程で起こりうる不測の事態を事前に予測しながら,計画の開始から最終結果に至る過程や手順を時間の推移に従って矢印で結合した図であり,試行錯誤を避けられない状況における最適策の立案に役立つ。

 エ 左端に最も大きな目的を書き,その右側に目的を達成するための手段を書き,さらに目的と手段の連鎖を展開して右端を最終手段である実施項目とする図であり,その実現可能性や経済性などを検討して,採用すべき実施項目の決定に役立つ。

この記事は、斉藤末広氏提供『宿題メール』をもとに作成されました。


スポンサーサイト



more...

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[2009-02-06-jhomework-データベース向け]


 ある商品を購入する顧客を,年齢の境界値,収入の境界値,性別などの発生頻度で区分し,これらの条件を階層的に順次判断して,商品購入の振る舞いを予測するデータマイニングの手法はどれか。

 ア クラスタ分析
 イ 決定木
 ウ ニューラルネットワーク
 エ マーケットバスケット分析

 この記事は、斉藤末広氏提供『宿題メール』をもとに作成されました。


more...

theme : 情報処理技術者試験
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

tag : 情報処理

[Win32] ERROR_SEM_TIMEOUT

 セマフォとか全然使ってないのにセマフォのせいみたいなエラーコードが出ることがある。
呼び出したシステムコールが内部的にセマフォを使ってるせいだと思うけど。

WN0016 - WebCom Wiki

> CreateMailslot() で MAILSLOT_WAIT_FOREVER を指定しても WtireFileで err番号 #121 ERROR_SEM_TIMEOUT が出る。
> メールスロットが一杯になった場合に エラー番号 121 (ERROR_SEM_TIMEOUT) が返される。

Windows XP ベースのコンピュータの SCardEstablishContext 関数を呼び出すことと、エラー メッセージ0x79-ERROR_SEM_TIMEOUT- セマフォのタイムアウト期間が切れて

> SCardEstablishContext 関数が、スマート カード サービスに接続します。 この現象は、Smart Card サービス準備ができておよび接続のリッスンが前に、アプリケーションが SCardEstablishContext 関数を呼び出す場合に発生することがあります。

 スマートカードサービスが接続を受け付けられるようになる前に、クライアントから接続をかけてきたってことか?

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証

[Win32] CRITICAL_SECTIONをロックしたスレッドが、ロックしたままTermしたら

#pragma once

#include <windows.h>
#include <process.h>
#include <TCHAR.H>
#include <stdio.h>


// *******************************************************
void ThreadFunc0();
void ThreadFunc1();
void WriteLog(LPSTR);

// *******************************************************
CRITICAL_SECTION    cs;
CRITICAL_SECTION    cs_cons;
HANDLE    hEvent[2]={INVALID_HANDLE_VALUE,INVALID_HANDLE_VALUE};


int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE  hThread[2]={INVALID_HANDLE_VALUE,INVALID_HANDLE_VALUE};
    DWORD   dwThreadId[2]={0,0};

    ZeroMemory(&cs,sizeof(CRITICAL_SECTION));
    ZeroMemory(&cs_cons,sizeof(CRITICAL_SECTION));

    __try{
        ::InitializeCriticalSection(&cs);
        ::InitializeCriticalSection(&cs_cons);
        WriteLog("Test starts.");

        hEvent[0]=CreateEvent(NULL,TRUE,FALSE,NULL);
        hEvent[1]=CreateEvent(NULL,TRUE,FALSE,NULL);

        hThread[0]=(HANDLE)_beginthreadex( NULL,
                         0,
                         (unsigned int (__stdcall *)(void *))ThreadFunc0,
                         NULL,
                         TRUE,
                         (unsigned int *)&dwThreadId[0]);
        hThread[1]=(HANDLE)_beginthreadex( NULL,
                         0,
                         (unsigned int (__stdcall *)(void *))ThreadFunc1,
                         NULL,
                         TRUE,
                         (unsigned int *)&dwThreadId[1]);

        ::WaitForMultipleObjects(2,hEvent,TRUE,INFINITE);
        Sleep(1000);
        WriteLog("Therad0 starts to quit.");
        ::PostThreadMessage(dwThreadId[0],WM_QUIT,0,0);

        ::WaitForMultipleObjects(2,hThread,TRUE,INFINITE);
    }
    __finally{
        ::DeleteCriticalSection(&cs);
        ::DeleteCriticalSection(&cs_cons);
        WriteLog("Test ends.");
    } 
    return 0;
}

// *******************************************************
LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
    LRESULT lResult=NULL;
    char    cMessage[1024];


    ZeroMemory(cMessage,1024);
    switch(msg)
    {
        case WM_GETMINMAXINFO:
        case WM_NCCREATE:
        case WM_NCCALCSIZE:
        case WM_CREATE:
            // ウィンドウ生成時に発生するいつものメッセージ。読み飛ばし 
              lResult=::DefWindowProc(hWnd,msg,wParam,lParam); 
            break; 
        case WM_NCDESTROY:
            // ウィンドウ破棄時に発生するいつものメッセージ。読み飛ばし 
              lResult=::DefWindowProc(hWnd,msg,wParam,lParam); 
            break; 
        case WM_QUIT:
            WriteLog("Received \"WM_QUIT\"."); 
              lResult=::DefWindowProc(hWnd,msg,wParam,lParam); 
            break; 
        default:
            sprintf(cMessage,"Received 0x\"%08X\".",msg);
            WriteLog(cMessage);
            lResult=::DefWindowProc(hWnd,msg,wParam,lParam); 
            break; 
    }; 

    return lResult;
}

HWND OpenThreadWindow(LPSTR WindowName)
{
    WNDCLASSEX    wcex;


    ZeroMemory(&wcex,sizeof(WNDCLASSEX));

    wcex.cbSize=sizeof(WNDCLASSEX);
    wcex.lpfnWndProc=WndProc;
    wcex.lpszClassName=WindowName;
    wcex.hInstance=GetModuleHandle(NULL);

    RegisterClassEx(&wcex); 
    return  CreateWindow( WindowName, 
                          WindowName, 
                            0, 
                            CW_USEDEFAULT, 
                            0, 
                            CW_USEDEFAULT, 
                            0, 
                            HWND_MESSAGE, 
                            NULL, 
                            GetModuleHandle(NULL), 
                            NULL);
}

// ******************************************************* 
void ThreadFunc0()
{
    MSG        msg;
    HWND    hWnd=NULL;
    int        iMsgResult=0;


    WriteLog("Thread0 starts.");
    ::EnterCriticalSection(&cs);    // CriticalSectionを取得する 
    SetEvent(hEvent[0]);            // Thread0の起動終了を通知 

    OpenThreadWindow("ThreadFunc0");
    PeekMessage(&msg,hWnd,0,0,PM_NOREMOVE); 

    do{
        iMsgResult=GetMessage(&msg,hWnd,0,0); 
        if(iMsgResult==-1)
        {
            DWORD    dwErrorCode=GetLastError();
            abort();
        } else if(iMsgResult>0)
        {
            //    何かする。
        }

    }while(iMsgResult>0); 
// ::LeaveCriticalSection(&cs); // わざとLeaveしてない 

    DestroyWindow(hWnd);

    WriteLog("Thread0 ends.");


void ThreadFunc1()
{
    ::WaitForSingleObject(hEvent[0],INFINITE);  // Thread0の起動を待つ 
    WriteLog("Thread1 starts.");
    SetEvent(hEvent[1]);           // Thread1の起動終了を通知 

    ::EnterCriticalSection(&cs);
    ::LeaveCriticalSection(&cs);
    WriteLog("Thread1 ends.");



// *************************************************************************** 
void WriteLog(LPSTR log)
{
    SYSTEMTIME    lpTime;

    ZeroMemory(&lpTime,sizeof(SYSTEMTIME));
    GetSystemTime(&lpTime);

    ::EnterCriticalSection(&cs_cons);
    printf( "[%02d:%02d:%02d.%04d] ",
            lpTime.wHour,
            lpTime.wMinute,
            lpTime.wSecond,
            lpTime.wMilliseconds);
    printf( "PID : %d, TID : %d, %s\n",
            GetCurrentProcessId(),
            GetCurrentThreadId(),
            log);
    ::LeaveCriticalSection(&cs_cons);
}

more...

theme : プログラミング
genre : コンピュータ

FC2ブックマーク | この記事をokyuuへインポート | このエントリーを含むはてなブックマーク | ニフティクリップへ追加 | この記事をクリップ! | イザ!ブックマーク | POOKMARK Airlinesに登録する | del.icio.us |
動作未検証 | | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証 | 動作未検証
カレンダー
01 | 2009/02 | 03
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
最近の記事
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
いろいろリンクボタン
埋め込みe-Words