超初心者のプログラム入門(C# Frame Work)

前田稔(Maeda Minoru)の超初心者のプログラム入門(C# Frame Work)のページへようこそ。
最新の開発環境 .NET Frame Work を使って Console Mode から DirectX までプログラムします。 (^_^;
2010年2月以降のプログラムは Windows7 & Visual Studio .NET 2005 & DirectX Novmnber 2008 を使って開発しています。
OSやソフトのバージョンの違いにより、多少の違いがあるかも知れません。
前田稔(Maeda Minoru)の超初心者のプログラム入門


C# Program INDEX

Console Mode Program
C#プログラム紹介
- テンプレートを使って Hello C#
C# のテンプレートを使って、WriteLine で "Hello C# Console Programing" と表示します。
- Hello C#
[空のプロジェクト] の作成方法と簡単なプログラムの書き方を学んで下さい。
- CLIで操作

Command Line からC#のプログラムをコンパイルして実行します。
- 変数の値を表示する
変数に格納されている数値と文字を C# の WriteLine で編集して表示します。
☆Windows モードで WriteLine を実行すると出力ウインドウに印字されます。
- 日付と時刻を表示する
本日の日付と現在の時刻を C# の DateTime で取得します。
- 数値の計算をする
変数に格納されている数値の計算結果を C# の WriteLine で表示します。
- 変数の値を入れ替える
二個の変数の値を入れ替えます。代入の基礎です。
- 三個の最大値
三個の変数から最も大きい値を調べて表示します。C# if 命令(比較)の基礎です。
- 三個のソート
三個の変数を昇順(小さい順)に並べ換えます。
- 1〜100までの合計
1〜100までの合計を表示します。C# for ループの基礎です。
C#プログラム入門
- While Loop
While Loop(条件ループ)で最大公約数(GCM)を求めます。
- 変数を編集して表示する
String型や int型を c# WriteLine で編集して表示します。
- コンソールから入力する
名前と年齢を C# ReadLine でコンソールから入力して表示します。
- C#算術データの型
C#で使われる代表的な算術データの型と、最小値(MinValue)と最大値(MaxValue)の説明です。
- データの編集と表示
C#でC言語の printf() と同様に、データを編集して表示します。
- String を int に変換
コンソールから入力した文字列(String)を C# の Convert.ToInt32 で int に変換して計算します。
- 入力データの最大値
C# の ReadLine でコンソール入力されたデータの中から最大値を見つけ出して表示します。
- 文字列の検索と置換

string(文字列)の検索と置き換えです。
- 乱数の発生
C# の new Random() で「0〜99」の乱数を発生させます。
- 配列の基礎
C# で int 型の1次元配列を定義します。
- 二次元配列を定義
C# で二次元配列を定義します。
- dynamic にサイズを設定
C# で二次元配列のサイズを dynamic に設定します。
- Object Class の配列

C# で Object Class の配列を使います。
- Command Line 引数

Command Line から渡された引数を取得します。
- String & Char
C# の String 型と Char 型の説明と、Char 配列を String に代入する例です。
- Character Code
C# の Character Code(Unicode)を調べます。
- 数字の列を配列に変換
C# でカンマで区切られた数字の列を、int 型に変換して配列に格納します。
- 数字の列を float に変換
C# でカンマで区切られた数字の列を、float 型に変換して配列に格納します。
Split() で String を切り分けます。
- ArrayList の基礎
C# の ArrayList で int 型のデータを登録します。
- Object Class を登録
C# で ArrayList に Object Class(Struct) を登録します。
- ArrayList にミックスで登録
C# の ArrayList に複数の型をミックスして登録します。
メソッド(関数)
- メソッド(method) の定義
C# でメソッド(メンバー関数) を定義して呼び出します。
- 共通領域

共通領域に Main と method からアクセスします。
- out パラメータを使う
C# のメソッドのパラメータとして out を使います。
- ref パラメータを使う
C# のメソッドのパラメータとして ref(reference) を使います。
- 配列を渡してソートする
C# のメソッド(method)にパラメータとして配列を渡してソートします。
File 入出力
- TEXT File の入力
C# の StreamReader で TEXT File を入力して Console 画面に表示します。
- TEXT File の出力
C# の StreamWriter でTEXT データを File に出力します。
- BYTE DATA の出力
C# の FileStream でバイナリー形式のデータ(BYTE DATA)を File に出力します。
- BYTE DATA の入力
C# の FileStream でバイナリー形式のデータ(BYTE DATA)を入力して編集して表示します。
- binary DATA の出力
C# の FileStream で binary data を出力バイト長を指定して File に保存します。
- binary DATA の入力
C# の FileStream で binary data を入力バイト長を指定して File から読み込みます。
- TEXT 形式でデータを出力
C# の StreamWriter で整数データを TEXT 形式に変換して File に出力します。
- TEXT 形式のデータを入力
C# の StreamReader で TEXT 形式の整数データを入力します。
Object Class
- 独立した Class を定義
C# でメインとは別の Class を作成して、static メソッドを定義します。
- gcmlcm Class を定義
C# 言語で一般的な方法で gcmlcm Class を定義します。
- Class のデータに直接アクセス
C# で gcmlcm Class 内で定義されているデータ領域に直接アクセスします。
- Set,Get アクセッサ
C# で Set アクセッサ, Get アクセッサを使って Class 内で定義されているデータ領域にアクセスします。
- Class の継承
C# で GCM Class を継承して LCM Class を定義します。
- メソッドのオーバーライド
C# で継承した Class のメソッドを override(オーバーライド)します。
- Dispose で資源を解放

IDisposable を継承して、資源を解放します。
- 抽象クラスでジャンケンの判定
抽象クラスを使った、ジャンケンの勝ち負けを調べるクラスです。
Pointer
- Pointer を使う
C# で unsafe の設定をして、int 型の Pointer を使います。
- int型を byte型の Pointer に Cast
C# で byte型の Pointer で int型のデータに Cast して、メモリの内容を16進数でダンプします。
- byte型の Pointer で char型を Cast
C# で byte型の Pointer で char型のデータに Cast して、メモリの内容を16進数でダンプします。
- byte型の Pointer で文字を設定
C# で byte型の Pointer で char型のデータに Cast して、16進数で文字を設定します。
- メソッドのパラメータとしてポインタを渡す
C# で メソッドのパラメータとして int型のポインタを渡して、値を設定して返します。
再起関数
- 再起関数の基礎
C# の再起関数(recursive function) で GCM(最大公約数)を求めます。
- 「1〜n」までの和を求める再起関数
C# の再起関数で「1〜n」までの和を求めます。
再起関数から戻るときに処理する基本的な方法です。
- 再起関数でソート
C# で最大20件分のデータ領域(配列)を定義して、再起関数でソートします。
- *で囲まれた中を塗りつぶす
*で囲まれた中を塗りつぶす「C# 再起関数」のプログラムです。
- 迷路探索のプログラム
*で囲まれた迷路を探索してゴールに到達する「C# 再起関数」のプログラムです。
- 順列組み合わせを表示
順列組み合わせを C# の再起関数で求めます。
- ペグ・ソリティアを解く

C# の再起関数でペグ・ソリティアゲームの答えを見つけ出します。
List処理
- List の基礎

C# で List 構造をプログラムします。
- List を正順(逆順)で印字

連鎖した List構造を、正順(逆順)に印字します。
- List のセルを削除する

List に登録されているセルを削除します。
- List Object Class
C# で List Object Class を作成します。
Binary Tree
- Binary Tree の基礎
C# で Binary Tree の Object Class を作成します。
- Car, Cdr で連鎖

Binary Tree の Car と Cdr を使って連鎖します。
- Binary Tree ソート
Binary Tree で昇順にソートして印字します。
struct(構造体)
- XY座標構造体を定義
C# でXY座標構造体を定義します。
- gcmlcm Struct を定義
C# で gcmlcm Class に習って gcmlcm Struct を定義します。
- Class と Struct の違い
C# で Class と Struct の違いを検証します。
- Struct をパラメータで渡す
C# で Struct をパラメータとして渡します。
- 構造体に初期値を設定
C# では C++ のように構造体に直接初期値を設定することは出来ないようです。
Console の演習問題
- ボーリングのブービー
5人のボーリングの成績からブービー(booby)の点数を表示します。
- 分数の計算
分数の加減算をして、結果を分数で表示します。
- 平方根の計算
平方根の計算には「ニュートン・ラプソン」の方法と言う有名な解法があります。
- 正多角形で円周率を計算
円に内接する正多角形を用いて円周率を計算します。
- 素因数に分解する
整数nを素因数に分解して表示します。
- 約数を洗い出す
整数nを割り切る全ての約数を洗い出して表示します。
- 素数の判定
コンソールから入力した値が、素数か合成数かを判定します。
- 素数の一覧を表示する
エラトステネスのふるいで 1000 以下の素数を求めて表示します。
- 偶数の魔方陣を作成する
4,8,16, ...などの偶数の魔方陣を作成します。
- 奇数の魔方陣を作成する
3,5,7, ...などの奇数の魔方陣を作成します。
- 生年月日を入力して、曜日と生存日数を表示
C#の Console.ReadLine で生年月日を入力して、生まれた曜日と生存日数を表示します。
- 2倍すると最後尾の数字が先頭に
ある長い数列があり、2倍すると最後尾の数字(8)が先頭に移動します。
自前で作成した C# の List Object Class を使って、元の数列を求めて表示して下さい。
- C#で約4000桁の円周率を求めて表示してみましょう。
コンピュータの実行時間さえ許されるならば、ほんの少し修正するだけで10万桁ぐらいは計算できるかも知れません。 (^_^;
- 円周率の話と実行結果
- データの形式
- 4000桁の値を表示
- 円周率を求める公式
- Add メソッド

Windows Program
自動生成のプロジェクト
- 自動生成を使って Form を作成する
C# の自動生成を使って Form(Window) を作成します。
- カレンダーを表示する
C# の自動生成を使って、カレンダーを表示するプログラムを作成します。
内幕を知らなければ「すごい」と関心されることでしょう。
- 線を描画する
C# の自動生成を使って、線を描画します。
- 大きな文字を表示する
C# の自動生成を使って、ウインドウに大きな文字を表示します。
空のプロジェクト
- Form を作成する
C# で空のプロジェクトから Form(ウインドウ) を表示します。
- 背景色とキャプションを設定
Window の背景色とキャプションの設定です。
- カレンダーを表示する
C# で空のプロジェクトから、カレンダーを表示するプログラムを作成します。
CLI のプロジェクト
- Command Line から Windows プログラムを実行
Command Line から Windows プログラムをコンパイルして実行します。
- 背景色とキャプションを設定
CLI のプロジェクトで背景色とキャプションを設定します。
図形の描画
- Line を描画する
Form(ウインドウ) を作成して C# の DrawLine で線を描画します。
デリゲート(委譲)を使います。
- 図形を描画する
C# で Form を作成して「線(DrawLine), 矩形(DrawRectangle), 楕円/円(DrawEllipse)」を描画します。
- 三角形を描画する
C# の DrawLine を繰り返して三角形を描画します。
オーバーライドを使います。
TEXT の描画
- C#と表示する
Form(ウインドウ) に大きな赤い文字で「C#」と表示します。
- ToolBox からボタンを貼り付ける
C# でToolBox からウインドウにボタンを貼り付けます。
- ToolBox から TextBox と Button を貼り付ける
ボタンをクリックするとテキストボックスからメッセージを取得して表示します。
- タイマ割り込みでカウントする
ToolBox から Timer を貼り付けて、タイマ割り込みでカウントします。
- 直接ボタンを貼り付ける
C# でツールボックスを使わないで、直接ボタンを貼り付けます。
- 直接 TextBox と Button を貼り付ける
C# でツールボックスを使わないで、直接 TextBox と Button を貼り付けます。
Button をクリックすると TextBox のメッセージを表示します。
- 直接 Timer を貼り付ける
C# でツールボックスを使わないで、直接 Timer を貼り付けます。
- 16進数+文字で TextBox に表示する
string で定義した文字列を16進数+文字で TextBox に表示します。
Image の描画
- 画像ファイルを描画する
GIF 画像をファイルから直接入力して、C# の DrawImage で描画します。
- リソースで取り込んだイメージを描画する
C# で GIF 画像をリソースとして取り込んで、DrawImage で描画します。
- PictureBox に画像を描く
ウインドウに PictureBox を貼り付けて画像を描きます。
- 画像ファイルの名前を TextBox から入力
Button をクリックすると TextBox で指定した画像ファイルを描画します。
- button の背景に画像を描く
Button の背景に画像を描きます。
- Sprite を切り出す
大きな画像から Sprite を切り出して描画します。
- Sprite を切り替える
マウスのクリックで Sprite を切り替えます。
マウス & キー
- マウスのクリックを検出する
マウスのクリックを検出して MessageBox を表示します。
- マウスのクリックで終了確認
マウスがクリックされると、終了確認の MessageBox を表示します。
- ESC キーで終了
ESC キーが押されるとプログラムを終了します。
- マウスをキャプチャする
マウスをキャプチャして、移動中の座標を表示します。
- キー操作で幅と高さを変更する
矢印キーでウインドウの幅と高さを変更します。
メニューの設定
- ToolBox からメニューを貼り付ける
ToolBox からメニューを貼り付けます。
- メニューを設定する
ToolBox を使わずにプログラムの終了とバージョン情報のメニューを設定します。
- 画像ファイルを選択
画像ファイルを選択して描画するメニューを設定します。
- メニューにアイコンを設定
メニューバーに Icon を設定します。
- ContextMenu を設定する
マウスの右クリックで起動するメニューを設定します。
- ToolStrip(ToolBar)を設定する
クリック一発で起動する ToolStrip(ToolBar)を設定します。
- ToolStripContainer を設定する
ToolStrip をウインドウの左右上下に移動出来るようになります。
Picture Box
- PictureBox の画像を切り替える
ToolBox を使わずに PictureBox と Button を貼り付けて、二枚の画像を切り替えます。
- PictureBox の画像の上から図形を描く
ToolBox を使わずに PictureBox を貼り付けて、PaintHandler で画像の上から図形を描きます。
- MyHandler() で PictureBox に図形を描く
ウインドウに PictureBox を貼り付けて、MyHandler() で図形を描きます。
- MyHandler() で PictureBox に Text を表示
ウインドウに PictureBox を貼り付けて、MyHandler() で Text を表示します。
List Box
- ListBox に登録する
String で定義したアイテムを ListBox に登録します。
- ListBox に TEXT を表示する
ソースファイルを入力して ListBox に表示します。
- 選択された行を取得する
SelectedIndexChanged プロパティで選択された行を取得します。
- ListView に登録する
ListView にアイテムを登録します。
- ListView に Column を設定する
ListView に Column を設定します。
Windows Chips
- Form(ウインドウ) を直接生成する
Form Object Class を直接生成してウインドウを表示します。
- Main() のクラスに Form を継承する
Main() メソッドが定義されているクラスに Form を継承してウインドウを表示します。
- Form を継承した Class を使う
Form を継承した新しい Class を使ってウインドウを表示します。
- 「ちらつき」を無くす−1
画像を切り替えてアニメーションしたときの、チラツキを無くす方法です。
- 「ちらつき」を無くす−2
画像を切り替えてアニメーションしたときの、チラツキを無くす方法です。
- Double Buffer で描画する
Double Buffer を使って「ちらつき」を無くしてアニメーションします。

DirectX Program
Direct Draw 入門
- DirectX Guide
DirectX の説明とコンパイル環境の設定です。
- Direct Draw でウインドウを表示

C# の Direct Draw で空のウインドウを表示します。
- Command Line から DirectX を実行

Command Line から DirectX をコンパイルします。
- Direct Draw で楕円を描画
C# の Direct Draw で Front Surface に直接楕円を描画します。
- ofscreen を使って図形を描画する
C# の Direct Draw で ofscreen Surface を使って図形を描画します。
- Image を描画する
C# DirectX で ofscreen Surface にイメージをロードして描画します。
- 矢印キーで画像を移動する
C# DirectX で、矢印キーの操作で画像を移動します。
- Direct Draw でアニメーション
C# の Direct Draw で画像を切り出してアニメーションします。
Sprite 入門
- DirectX 3D で Form を表示する
空のプロジェクトから構築して、DirectX 3D でウインドウを表示します。
- Sprite で画像を描画する
DirectX の Sprite を使って画像ファイルを描画します。
- 画像をそのままのサイズで入力する
画像ファイルからそのままのサイズで入力して、サイズに合わせてウインドウを設定します。
- 透明色を使う
透明色を使ってイメージを描画します。
- Sprite でアニメーション
DirectX の Sprite を使ってアニメーションを行います。
DirectX 3D入門
- 三角形ポリゴンを描画する
C# DirectX で三角形ポリゴンの頂点座標を設定して描画します。
- カメラを設定して描画する
C# DirectX で折り曲げた矩形をカメラで写して描画します。
※カメラ座標と透視変換の説明です。
- 四面体を回転しながら描画する
C# DirectX で四面体の座標を定義して、回転しながら描画します。
※WORLD 座標回転の基礎です。
- 六面体を回転しながら描画する
C# DirectX で頂点座標を配列で定義して、六面体を回転しながら描画します。
- Object のサイズと描画のサイズ
C# DirectX で小さいモデルから大きいモデルまで、画面全体に同じように描画します。
- トーラスをライトで照らして描画する
C# DirectX でトーラスをライトで照らして、回転しながら描画します。
ライトの座標も回転してみましょう。
- View 座標を回転する
C# DirectX でティーポットをライトで照らして、カメラ(View)座標を回転しながら描画します。
- コーンのメッシュ(cone.x)を描画する
コーンに色を設定した3Dモデル(Cone.x)を描画します。
- 虎のモデルを描画する
C# DirectX のサンプルモデルとして格納されている虎のメッシュ(X-FILE)を描画します。
- Tiny.x を静止して描画する
DirectX のサンプルモデル(Tiny.x)をアニメーション無しで描画します。
- X-FILE 入力メニュー

X-FILE の入力メニューを設定します。
アニメーション
- ティーポットを回転する

Quaternion を使った自作の Interpolator で、ティーポットを回転します。
- X-FILE を入力して回転する

X-FILE を入力して、Quaternion の回転情報に従って、自作の Interpolator で回転します。
- 回転と移動のアニメーション

X-FILE から回転と移動の情報を取得してアニメーションします。
Sample Brower
- Tiny のアニメーション

DirectX に添付されている X-FILE(Tiny.x)を入力して、アニメーションします。
- Sample Brower でティーポットを描画

Sample Brower で生成したプロジェクトでティーポットを描画します。
- シェーダーを使ってティーポットを描画

シェーダー(.fx)を使ってティーポットを描画します。
- Sample Brower で cone.x を描画

Sample Brower で生成したプロジェクトで X-FILE(cone.x) を描画します。

Network Program
Web Page に接続
- Web ページをダウンロード
C# で URL に接続して Web ページを TEXT 形式でダウンロードします。
- Web ページを TEXT 形式で表示
C# で URL に接続して Web ページを TEXT 形式で TextBox に表示します。
Server & Client
- Server と Client で通信
C# で TCP(Transmission Control Protocol) Server に Client から接続します。
- 現在時刻を知らせる
C# で Server を常駐させて、現在時刻を Client に知らせます。
- タイマ割り込みで、接続要求をセンスする
C# でタイマ割り込みを使って Client からの接続要求をセンスします。
- スレッドで Message を取得する
アニメーションしながらスレッドで Message を取得します。
IP Address
- IPアドレスを指定して送信/受信
IPアドレスを指定してメッセージを相互に送信/受信します。
- スレッドでメッセージを受信
スレッドを使ったメッセージの受信と、IPアドレスを指定したメッセージの送信です。

C# Program Note
Post Console
- MessageBox を表示する
Console Mode で「MessageBox を使って終了確認」を行います。
- int 型を MessageBox に表示する
Console Mode で int 型を文字列に変換して MessageBox に表示します。
- Draw で書いたイメージをファイルに出力
BMP 画像領域にカラーで文字を書き、gif 形式でファイルに書き出します。
アプリケーションを起動
- アプリケーションを起動する
C# から他のアプリケーションを起動します。
Generics
- generics の基礎
C# で generics(総称性)を使ったメソッドを定義します。
- generics を使った加算メソッド
C# で generics(総称性)を使って加算メソッドを作成します。
- generics を使った比較メソッド
C# で generics を使って比較メソッドを作成します。
- generics を使った Class
C# で generics を使った Class のサンプルプログラムです。
- generics を使って Stack を作成
C# で generics を使って Stack Class を作成します。
Thread Program
- スレッドを起動する
C# で3本のスレッドを起動して、ランダムに時間を置いて時刻を取得します。
- スレッドで時刻を取得する
C# でアニメーションしながら、スレッドで時刻を取得して TextBox に表示します。
Delegate
- Delegate の基礎
C# の デリゲート(委譲)の基礎です。
- Delegate を渡す
C# で Delegate を引数として渡します。
- メソッド名やクラス名を表示
Delegate で設定されたメソッド名やクラス名を表示します。
- メソッドの追加と削除
移譲先リストに複数のメソッドを「追加/削除」します。
- 非同期で呼び出す
デリゲートを非同期で呼び出します。
Event
- Event の基礎
C# のイベント(事象)呼び出しの基礎です。
- 複数のハンドラを割り当てる
C# で1個のイベントに複数のハンドラを割り当てます。
- event 呼び出しでパラメータを渡す
C# でイベントを呼び出すときにパラメータを渡します。
Proxy
- Proxy の基礎
C# のプロキシ(代理/委任)の基礎です。
- 複数メソッドを定義
プロキシで複数のメソッドを定義します。

C# Application Program
Binary Viewer
- Binary Viewer のレイアウト
Binary Viewer のウインドウをレイアウトします。
- TextBox に16進+文字で表示する
このプログラムを自身を入力して TextBox に16進+文字で表示します。
- メニューを処理する
メニューを処理するイベントハンドラを作成します。
- Edit Object Class
Edit Object Class を使った Binary Viewer です。
Binary Editor
- Binary Editor のメニューを設定
Binary Viewer をベースに Binary Editor を作成します。
- 修正(&U)を設定する
修正(&U)のイベントハンドラを作成します。
- ページを修正する
修正(&U)で取得したテキストでページを修正します。
- ベータ版の完成です
書き込み(&W)のイベントハンドラを作成して、ベータ版を完成させます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

前田稔(Maeda Minoru)の超初心者の C#(Frame Work)

前田稔(Maeda Minoru)の超初心者の C++/CLI
