fc2ブログ

初心者のためのC#プログラミング本格入門19 - 考えを形にしよう

 この記事は初心者のためのC#プログラミング本格入門18の続きです。前回は、処理の流れを考える方法を解説しました。今回は、その考えを形にする方法について解説します。
 前回書いた処理の流れを元に、Mainメソッド内のプログラムを考えます。Mainメソッドから考える理由は、処理全体の流れをイメージし、段階的にプログラミングをする事が可能になるからです。初心者の人が細かいプログラムから考えてしまうと、自分が実現したい事から遠ざかってしまい、結局自分が望んだプログラムを実現できない可能性があります。ですから、大まかなプログラムを書いて、徐々に詳細部分を書いていく方法を初心者の方にお勧めします。
 Mainメソッドから呼び出すメソッドは、戻り値・メソッドの名前・パラメーターだけを定義しておき、波括弧内は一旦空白にしておきます。
 今まで解説した文法を使って、Mainメソッドの内のプログラムを考えた模範解答を示します。

static void Main()
{
    string end = "end";
    while ( end != "" )
    {
        int value1 = GetValue();
        string sign = GetSign();
        int value2 = GetValue();
        int result = Calculation( value1, sign, value2 );
        ShowResult( value1, sign, value2, result );
        System.Console.WriteLine( "" );
        end = GetEnd();
    }
}

皆さまが考えた解答は、変数やメソッドにつける名前こそ違うと思いますが、大体この様になるかと思います。
 このプログラムは前回考えた処理の流れと大体は同じですが、繰り返しの判定が前の方になっているので違和感があります。もしかしたら混乱してしまう人が居るかもしれません。そこで、この状況に適した新しい文法を解説します。
 こうした一回は絶対に実行する処理を繰り返したい場合do-while文を使用します。do-while文はwhile文を知っている人にとっては簡単です。

do
{
  繰り返すプログラム
} while( 条件 )

頭にdoと書き、whileを波括弧の最後に書くだけなので、while文と大差がなく覚えやすい文法です。do-while文を使って、早速、先ほどのMainメソッドの処理を変更してみましょう。

string end;
do
{
    int value1 = GetValue();
    string sign = GetSign();
    int value2 = GetValue();
    int result = Calculation( value1, sign, value2 );
    ShowResult( value1, sign, value2, result );
    System.Console.WriteLine( "" );
    end = GetEnd();
} while ( end != "" );

動作は殆ど変わりませんが、while文よりも前回考えた処理の流れに近くなっています。プログラミングは、一つの目的に対して幾通りもの方法がありますが、人間が読みやすいプログラムを書く方法を優先的に採用します
 その心掛けを常日頃していれば、綺麗で他人や未来の自分が読んでも直ぐに理解できる良いプログラムが書けるようになります。一般的に読みやすいプログラムはプロの評価が高いです。たとえ趣味でプログラミングをする人であっても、高い評価が得られるプログラムを書く方が気分がよいでしょう。
 そういった小さな心掛けが、プロとアマの違いを生みます。常に自分の考えを分かりやすく表現するプログラムを書くように心がけましょう。
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

初心者のためのC#プログラミング本格入門18 - 処理の流れを考えよう

 この記事は初心者のためのC#プログラミング本格入門17の続きです。前回は、自分が望むプログラムを作るには「物事を順序立てて考える」事が必要だと説きました。今回は、サンプルプログラムの改良を通じて、物事を順序立てて考える練習をします。
 今まで取りあげてきたサンプルプログラムは、決まった計算しか出来ませんでした。そこで、サンプルプログラムを改良し、ユーザーが自由に計算を出来るようにします。
 まずは、ユーザーが自由に計算するにはどうすればいいのかを考えてみましょう。考える方法は色々ありますが、初心者向けの箇条書きを使った方法を紹介します。
 早速、ユーザーが自由に計算するための条件を箇条書きにしてみましょう。

  • 数値が2つ必要
  • 演算子(+の様な演算記号の事)が必要
  • 結果を表示する必要がある

 この3つの条件があればひとまず計算できます。しかし、それだけではプログラミングは出来ません。この計算をどのようにするのか、順序立てて考えなくてはなりません。そこで今度は全体の流れを箇条書きで考えます。

  1. コンソール画面上で、1つの数字を入力する。
  2. コンソール画面上で、演算子を入力する
  3. コンソール画面上で、2つめの数字を入力する。
  4. 入力された数値と演算子を使って計算する。
  5. コンソール画面に、計算式と計算結果を出力する。
 次に考えなくてはならないのはエラー処理です。数字を誤って入力した場合と、演算子を誤って入力した場合の対処法について考える必要があります。考えられる対処法は、「初めからやり直す」と「再度入力を促す」です。ユーザーの身になって考えれば「初めからやり直す」は面倒なので「再度入力を促す」の方がいいでしょう。
 最後に計算処理全体を繰り返し行うか否かについて考えます。この件に関しては、計算の度に起動しなおすのは面倒なので、ユーザーが終了の合図をするまで繰り返し計算をする方がよいでしょう。
 エラー処理と計算処理全体を繰り返す事を考慮すると、処理の流れは次のようになります。

  1. コンソール画面上で、正しい数値1が得られるまでトライする。
  2. コンソール画面上で、正しい演算子が得られるまでトライする。
  3. コンソール画面上で、正しい数値2が得られるまでトライする。
  4. 入力された数値と演算子を使って計算する。
  5. コンソール画面に、計算式と計算結果を出力する。
  6. ユーザーに計算を続けるか尋ねる。
  7. 計算を続ける場合は手順1へ戻る。
  8. 計算を終了する場合はここでプログラムを終了する。

 これぐらいはっきりしていればプログラミングが出来ます。次回模範解答を発表します。解答を見る前に、一度自分でプログラミングをしてみてください。

テーマ : プログラミング
ジャンル : コンピュータ

実践的オブジェクト指向分析入門31

 この記事は実践的オブジェクト指向分析入門30の続きです。前回で静的なオブジェクトモデルの構築についての解説を終えました。今回は動的モデルの構築について解説します。
 システムは静的なものではなく動的で複雑なものです。従って、静的な側面に目を向け、オブジェクトを発見したり、オブジェクトをまとめたりする作業だけではオブジェクト指向分析だと呼べません。システムの動的な面について分析する必要があります。
 最初に行う作業はユースケースの記述です。ユーザーがシステムを使って何をするのか、そしてユーザーがシステムに対して何を求めるのかを理解しなくては、ユーザーが望むシステムを構築できません。ユーザーが望むシステムをつくるために、ユーザーシナリオを通じてシステムの動的な面を把握する糸口にします。
 ここで、オブジェクトモデルの構築をする時に、ユースケース図にユーザーストーリーの記述をするべきだと解説した事を思い出して下さい。システムの静的な側面と動的な側面は表裏一体です。静的な分析図と動的な図を結びつける図が必要となります。それがユースケース図なのです。おそらく、大半のユーザーストーリーは記述済みだと思います。
 オブジェクトモデルの構築をする際に記述したユースケース図を見て、足りないシナリオがあれば書きます。その結果、足りないオブジェクトがあれば、オブジェクトモデルに新しいクラスを追加します。この作業は意外と忘れやすいので注意しましょう。定期的に、静的なオブジェクトモデルと動的モデルが矛盾していないかチェックします。

テーマ : ソフトウェア開発
ジャンル : コンピュータ

初心者のためのC#プログラミング本格入門17 - 好きなプログラムを作る方法

 この記事は初心者のためのC#プログラミング本格入門16の続きです。前回は、特定の処理を繰り返す方法について解説しました。今回は、自分が望んだプログラムを作る方法について解説します。
 プログラミング入門書を読んでも、自分が考えるプログラムを作れない人が居ます。それは、才能の問題ではありません。プログラミングに必要な考え方を習得していないだけであって、これさえ身につければ程度の差こそあれ誰でもプログラミングそのものは出来ます。もちろん、作りたいものが「望めば世界を征服出来るプログラム」などといった曖昧なものや、人間には不可能な「神様になるプログラム」などといったものは作れません。ですが、大概のものは時間をかければ特別な才能がなくても作れます。
 思い通りのプログラムを作るには、物事を順序立てて考える必要があります。これが出来る人はプログラミングが出来て、出来ない人はプログラミングも出来ません。「物事を順序立てて考える」というと難しく感じるかもしれませんが、私達人間が日常生活で普通に行っている事です。
 一例として買い物をする時の事を思い出して下さい。買い物の前にお金を用意して、何らかの交通手段でお店へ行き、目的の商品を探し、お会計を済まし、商品を持って帰宅しています。これらの行為は順序だてて行われています。決して難しい行為ではありません。それはプログラミングも同じです。
 サンプルプログラムを作る過程を通じて、物事を順序立てて考える練習をしましょう。続く・・・

テーマ : プログラミング
ジャンル : コンピュータ

中の人の徒然草397

気になる書籍があったのでメモします。



おや、有名な本が再発刊されるみたいですね。
私は昔読んだ事があるのですが手元にありません。
この本は確かプロジェクトの管理方面に強かったと思います。
古典ですが普遍的でためになる事が沢山書いています。
休日に読むのにうってつけだと思います。
また読みたいので時間があれば購入して再読します。


Scalaといえばこの本ですので、Scalaを知りたい人はこの本をゲットしましょう。



それにしても、もう第2版が出るのか・・・吃驚しました。
光陰矢のごとしですね。

アジャイルを実践している私にとってはこの本は外せませんね。



非常に気になる。何か目新しい事が書かれているかな?


テーマ : 裏事情
ジャンル :

初心者のためのC#プログラミング本格入門16 - 繰り返し処理をする方法を習得しよう(後半)

 この記事は初心者のためのC#プログラミング本格入門15 - 繰り返し処理をする方法を習得しよう(前半)の続きです。前回から引き続き、特定の処理を繰り返す方法について解説します。
 サンプルプログラム中のwhile文の使い方を見てみましょう。

string input = "1";
while ( input != "" )
{
    input = InputValue();
    if ( input != "" )
    {
        int value = GetValue( input );
        ShowResult( value );
        System.Console.WriteLine( "" );
    }
}

このプログラムは、文字列変数が何も指定されていない状態になるまで、処理を繰り返し行う事を示しています。while文はこの様に、指定した条件が満たされている間波括弧内の処理を繰り返し行います。指定する条件は括弧内(while ( input != "" ))に書きます。今回は不等価演算子「!=」を使って、「文字列変数に何かを指定されている状態の間」という条件を指定しています。
 リファクタリングをしたお陰で、繰り返す処理の内容が分かりやすくなった点にも注目して下さい。繰り返し文を使う時は、なるべく繰り返す処理の内容が分かりやすくなるようにした方が読みやすくなり、結果としてエラーの予期と改良がしやすくなります。繰り返し実行するプログラムが長いと、読み難くバグを埋め込んでしまう可能性が高くなるので注意して下さい。
 条件として文字列の値「””」を使っている理由は、ReadLineメソッドがEnterキーだけを押すと値""を返すからです。繰り返し文を使う際には、事前にどのような状態になるのかチェックする事が大事です。そうすることで、無限に処理を繰り返してしまうバグを未然に防げます。

テーマ : プログラミング
ジャンル : コンピュータ

初心者のためのC#プログラミング本格入門15 - 繰り返し処理をする方法を習得しよう(前半)

 この記事は初心者のためのC#プログラミング本格入門14の続きです。前回は、リファクタリングの概念と値を返すメソッドを解説しました。今回は、特定の処理を繰り返す方法について解説します。
 前回のサンプルプログラムはエラーに対処できるものの、間違ったら再度実行する必要があります。また、複数の数値の計算結果を見たい場合も再度実行する必要があります。これでは非常に不便です。改善しましょう。
 改善するには、ユーザーが止めると合図するまで繰り返し実行する処理を追加する必要があります。今まで紹介してきた文法ではこれは実現できません。繰り返し文という新しい種類の文法を覚えると実現可能となります。
 ひとまず、サンプルプログラムを使って新しい文法を体験しましょう。

class Program
{
    static void Main()
    {
        string input = "1";
        while ( input != "" )
        {
            input = InputValue();
            if ( input != "" )
            {
                int value = GetValue( input );
                ShowResult( value );
                System.Console.WriteLine( "" );
            }
        }
    }

    static string InputValue()
    {
        string message = "0以外の数値を入力してからEnterを押して下さい";
        System.Console.WriteLine( message );
        string note = "終了したい時は何も入力せずにEnterを押して下さい";
        System.Console.WriteLine( note );
        return System.Console.ReadLine();
    }

    static int GetValue( string input )
    {
        int value;
        if ( int.TryParse( input, out value ) == false )
        {
            string errorMessage = "数字だけを入力して下さい";
            System.Console.WriteLine( errorMessage );
        }
        return value;
    }

    static void ShowResult( int value ) 
    {
        if ( value != 0 ) 
        {
            Print( "+", value + value, value );
            Print( "-", value - value, value );
            Print( "*", value * value, value );
            Print( "/", value / value, value );
            Print( "10 / 3 の余りは? ", 10 % 3 );
        }
    }

    static void Print( string message, int result )
    {
        System.Console.Write( message );
        System.Console.WriteLine( result );
    }

    static void Print( string sign, int result, int value )
    {
        string message = value + " " + sign + " " + value + " = ";
        Print( message, result );
    }
}

このサンプルプログラムは、何も入力せずにEnterキーが押されるまで、繰り返し指定された数値の計算結果を表示します。前回との違いは繰り返し文の仲間であるwhile文を使っている点と、入力ミス時にも処理が継続できるようにしている点です。処理を繰り返し行う場合、処理を中断する方法と処理を継続させる方法を考えてなくてはなりません
 もし、どのように処理の繰り返しを中断するのか考えていないと、無限に処理を繰り返す危険なプログラムになってしまいます。また、エラー時にも処理を継続する場合、どのように対処するのかを考えなくてはなりません。そうしないと、予期せぬエラーが生じてしまいます。
 今回のサンプルプログラムでは、数字以外の文字が入力されると変数valueの値が0になり、0除算のエラーが生じてプログラムが中断してしまいます。実は前回のプログラムで0を入力しても、0除算エラーが発生してプログラムが中断されます。卓上電卓では0で割ってもエラーにならない事が多いのですが、C#プログラミングでは0で数値を割るとエラーが発生します。これはよくある間違いです。注意しましょう。後半へ続く・・・ 

テーマ : プログラミング
ジャンル : コンピュータ

初心者のためのC#プログラミング本格入門14 - メソッドを活用してリファクタリングをしよう

 この記事は初心者のためのC#プログラミング本格入門13の続きです。前回は、選択文を使ってエラーに対処する方法について解説しました。今回は、メソッドを活用してプログラムを整理整頓する方法について解説します。
 プログラムを追加して行きプログラムの量が増加するのに従い、プログラムは徐々に読み難くなってしまいます。読み難いプログラムは、将来の自分と他者にとって良い影響を与えません。通常のプログラムは書く時間よりも読む時間の方が長いので、読みやすいように工夫をせねばなりません。その工夫のうちの一つにリファクタリングと呼ばれる手法があります。
 リファクタリングを簡潔に表現すると、プログラムを明瞭簡潔に維持するために、プログラムを整理整頓する技法の事です。興味がある人はリファクタリング―プログラムの体質改善テクニック (Object Technology Series)を読んで下さい。これ1冊でリファクタリングのほぼ全てが分かります。
 試しに前回のプログラムをリファクタリングしてみました。このサンプルプログラムを見ればリファクタリングの概要が伝わると思います。

class Program
{
    static void Main()
    {
        string input = InputValue();
        int value = GetValue( input );
        ShowResult( value );
    }

    static string InputValue()
    {
        string message = "数字だけを入力してからEnterを押して下さい";
        System.Console.WriteLine( message );
        return System.Console.ReadLine();
    }

    static int GetValue( string input )
    {
        int value;
        if ( int.TryParse( input, out value ) == false )
        {
            string errorMessage = "数字だけを入力して下さい";
            System.Console.WriteLine( errorMessage );
            System.Environment.Exit( 1 );
        }
        return value;
    }

    static void ShowResult( int value ) 
    {
        Print( "+", value + value, value );
        Print( "-", value - value, value );
        Print( "*", value * value, value );
        Print( "/", value / value, value );
        Print( "10 / 3 の余りは? ", 10 % 3 );
    }

    static void Print( string message, int result )
    {
        System.Console.Write( message );
        System.Console.WriteLine( result );
    }

    static void Print( string sign, int result, int value )
    {
        string message = value + " " + sign + " " + value + " = ";
        Print( message, result );
    }
}

サンプルプログラムの動作は前回と変わりません。前回との違いは、3つのコメントがあったプログラムの塊をメソッドにし、Mainメソッド内のプログラムを簡潔化した点だけです。こうすれば、処理内容が3つの段階で成り立っている事と、実現しようとしている事が容易に分かります。
 リファクタリングするのに当たって、新しい形式のメソッドを使用しました。今回定義したメソッドは任意の値を返します。値を返すメソッドの定義は次の形式で書きます。

static 戻り値の型名 メソッド名( パラメーター )
{
}
実例
static string InputValue()
{
}

戻り値の型名には、整数ならばint、文字列ならばstringを指定します。もちろん違う型も指定できますが、現時点ではこの2を覚えて下さい。
 任意の値を返すメソッドの定義を書き終えたら、後は実際の値を返す処理を書くだけです。値を返す処理はreturnキーワードを使用します。例えば、「return value;」と書けば、変数valueの値が呼び出し元(今回のサンプルではMianメソッド)へ返されます。任意の値を返すメソッドを知れば、プログラミングの幅が広がります。
 もうひとつ解説しなくてはならない事があります。それは、サンプルプログラムの「System.Environment.Exit( 1 );」の部分です。このプログラムは処理全体を終了させています。Exitメソッドに1を渡している理由は、エラーが原因で終了した事を示すためです。Exitメソッドに0を渡せば正常終了、0以外の値を渡せばエラーが原因で終了した事を示せます。
 以上で今回の記事はお終いです。今はリファクタリングの効果が実感できないと思いますが、サンプルプログラムにどんどん機能を付け加えていきますので、その際にリファクタリングの効果を感じられると思います。

テーマ : プログラミング
ジャンル : コンピュータ

初心者のためのC#プログラミング本格入門13 - 選択文を使ってエラーに対処しよう

 この記事は初心者のためのC#プログラミング本格入門12の続きです。前回は、文字列と数値を連携する方法について解説しました。今回は、選択文を使ってエラーに対処する方法について解説します。
 前回のサンプルプログラムは、数値以外の文字を入力された時にエラーが発生しました。これは望ましくありません。数値以外の文字が入力された場合の処理について、あらかじめ想定しなくてはなりません。想定外では済まされません。
 数値以外の文字が入力された場合に対処するには、選択文の仲間であるif文を使用します。if文を使って前回のサンプルプログラムを改善しますので見て下さい。

class Program
{
    static void Main()
    {
        //値を入力
        string message = "数字だけを入力してからEnterを押して下さい";
        System.Console.WriteLine( message );
        string input = System.Console.ReadLine();

        //入力値を取得
        int value;
        if ( int.TryParse( input, out value ) == false )
        {
            string errorMessage = "数字だけを入力して下さい";
            System.Console.WriteLine( errorMessage );
            return;
        }

        //各種計算結果を表示
        Print( "+", value + value, value );
        Print( "-", value - value, value );
        Print( "*", value * value, value );
        Print( "/", value / value, value );
        Print( "10 / 3 の余りは? ", 10 % 3 );
    }

    static void Print( string message, int result )
    {
        System.Console.Write( message );
        System.Console.WriteLine( result );
    }

    static void Print( string sign, int result, int value )
    {
        string message = value + " " + sign + " " + value + " = ";
        Print( message, result );
    }
}

ポイントは「//入力値を取得」とコメントされた後のプログラムです。TryParseメソッドを呼ぶと、数値に変換できる場合はtrueの値を、数値に変換できない場合はfalseの値を返してきます。この値をif文で判定するとエラーに対処できます。
 trueとfalseという値が何なのか気になる方が居ると思いますが、if文を知る事が先決ですのでこの2つの値については後で解説します。
 if文は値を比較する演算子とともに使用します。「==」記号は2つの値が等しいかを演算する等価演算子を表しています。例えば、「value == 1」の場合、valueの値が1ならばtrue、valueの値がそれ以外ならばfalseの値を返します。if文はこの値がtrueならば{}(波括弧)内に指定されたプログラムを実行します。
 波括弧が何度も言及されている事に気付いた方が居ると思います。波括弧はプログラムをまとめます。以前定義したPrintメソッドも波括弧内にプログラムを書いていました。これは、複数のプログラムを指定するという意味で波括弧を指定しています。波括弧の意味が分かれば、C#の文法も理解しやすくなるので、この機会に是非とも覚えておきましょう。
 実はif文にはいくつかバリエーションがありますが、ひとまず基本の形を覚えればOKです。プログラミング言語の文法は細かいところまで見れば複雑であり、一度に細かいところまで覚えようとしても習得できません。基本スタイルを覚えておいて、徐々に技のバリエーションを増やしていきましょう。それがプログラミングを早く習得するコツです。

テーマ : プログラミング
ジャンル : コンピュータ

初心者のためのC#プログラミング本格入門12 - 文字列と数値の連携方法を覚えよう

 この記事は初心者のためのC#プログラミング本格入門11の続きです。前回は、「多重定義(オーバーロード)」を使用して、固定化した共通部分を柔軟に扱えるようにしました。今回は、文字列と数値を連携する方法について解説します。
 前回演算子のオーバーロードに関する解説で、数値を文字列へ変換して文字列を連結する事について述べました。次はその逆である文字列を数値へ変換する方法について学習しましょう。
 先ずはサンプルプログラムを見て下さい。

class Program
{
    static void Main()
    {
        //値を入力
        string message = "数字だけを入力してからEnterを押して下さい";
        System.Console.WriteLine( message );
        string input = System.Console.ReadLine();
        int value = int.Parse( input );

        //各種計算結果を表示
        Print( "+", value + value, value );
        Print( "-", value - value, value );
        Print( "*", value * value, value );
        Print( "/", value / value, value );
        Print("10 / 3 の余りは? " , 10 % 3 );
    }

    static void Print( string message, int result )
    {
        System.Console.Write( message );
        System.Console.WriteLine( result );
    }

    static void Print( string sign, int result, int value )
    {
        string message = value + " " + sign + " " + value + " = ";
        Print( message, result );
    }
}

このサンプルプログラムは、ユーザーがコンソール画面で数値を指定し各種計算結果を表示するというものです。今まで使用していないC#の文法を使っているのでその個所から解説します。
 「//(ダブルスラッシュ)」記号に続いて、プログラムの説明が書かれている点に注意して下さい。これは、C#のコメントという文法です。コメントを使用すると、好きな文を書く事が出来ます。コメントに指定する文はプログラマが自由に書け、プログラムの動作に影響を与えません。ただし、改行してはならない事に注意して下さい。

//長い文章なので
改行

こういうふうに途中で改行をすると文法エラーになります。実際に試してみて下さい。文法エラーが「エラー一覧」ウインドウに表示されます。改行さえしなければ、かなり長い文章を書けますが、長いコメントはプログラムを読み辛くするので簡潔に書くように心がけましょう。処理内容を簡潔に示したコメントを適切に書きましょう。
 本題の文字列を数値へ変換するプログラムは・・・

string input = System.Console.ReadLine();
int value = int.Parse( input );

の部分です。ReadLineという名前のメソッドを呼び出すと、ユーザーが指定した文字列を取得できます。習得した文字列は、Parseメソッドに文字列を指定して呼び出せば数値へと変換できます。
 察しがいい読者は「数値以外の文字が入力されたらどうなるのだろうか?」と思われたでしょう。そうした疑問を持つ事は大切です。疑問を持ってそれを試せばプログラミングの上達が早くなります。
 「デバッグなしで実行」で実行してからaの様な数値以外の文字を入力して下さい。そうすると・・・

FirstProgramは動作を停止しました
この問題の解決方法を確認しています...

などと書かれた小さな画面が表示されます。しばらく放置しておくとデバッグが出来ますが、今回は問題の原因が分かっていますので「キャンセル」ボタンを押して下さい。この手の実行時に発生するエラーの対処方法は後に解説します。
 今回紹介した「ReadLine」メソッドと「Parse」、そして今まで使ってきた「Write」メソッドと「WriteLine」メソッドはマイクロソフト社があらかじめ用意しくれているものです。毎回この複雑な処理をプログラミングしなければならないとなると凄く大変です。今回のサンプルプログラムでメソッドの強力さが実感できると思います。もしメソッドがなければ、実用的なアプリケーションを作るのはほぼ不可能に近いでしょう。
 プログラミング上達の道は、あらかじめ用意されているメソッドの使い方を知る事も含まれています。

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

インドリ

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人がいるので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、言いがかかり等の行為を禁止します。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所
  6. セキュリティの基礎と仮想ネットワークの仕様
  7. GDI+と独自プロトコルの定義



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ
  4. インテルTBBのスレッドクラス


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ
  3. OpenMPのメモリモデルとfork- joinモデル

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (9)
C++ (11)
C# (370)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (33)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (4)
WPF (0)
WF (2)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター