超初心者のプログラム入門(C#)
前田稔(Maeda Minoru)の超初心者のプログラム入門(C#)のページへようこそ。
Console Mode & Windows Mode & Game Program も掲載しています。 (^_^;
C#ページ検索抜粋
前田稔の超初心者のプログラム入門
C# index
Programming Guide
C# Console Mode Program
C#プログラム紹介
- C# Program Guide
C#はC言語の後継言語で「C言語より半音高い(#)仕様?」の言語です。
- テンプレートを使って Hello C#
C# のテンプレートを使って、WriteLine で "Hello C# Console Programing" と表示します。
- Hello 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 でコンソール入力されたデータの中から最大値を見つけ出して表示します。
- 乱数の発生
C# の new Random() で「0~99」の乱数を発生させます。
配列
- 配列の基礎
C# で int 型の1次元配列を定義します。
- 配列の比較
C# で配列を比較します。
- 二次元配列を定義
C# で二次元配列を定義します。
- 配列のコピー
short 型の二次元配列を例に、コピーの説明です。
- 連想配列
C# で連想配列を使います。
- dynamic にサイズを設定
C# で二次元配列のサイズを dynamic に設定します。
- Object Class の配列
C# で Object Class の配列を使います。
- ArrayList の基礎
C# の ArrayList で int 型のデータを登録します。
- Object Class を登録
C# で ArrayList に Object Class(Struct) を登録します。
- ArrayList にミックスで登録
C# の ArrayList に複数の型をミックスして登録します。
- ListGeneric
C# の List ジェネリック・クラスで string を使います。
string
- string⇔char[]
C# の string 型と char 型と char 配列の説明です。
- Character Code
C# の Character Code(Unicode)を調べます。
- Substring
Substring で文字列の一部を取り出します。
大文字/小文字を区別しないで比較します。
- string ⇔ byte
str(C#の内部コード)を Shift_JIS に変換します。
Shift_JIS を str(C#の内部コード)に変換します。
- カンマで区切られた数字を配列に変換
C# でカンマで区切られた数字の列を、int 型の配列に格納します。
- カンマで区切られた文字列を文字列の配列に変換
C# でカンマで区切られた string を切り分けて string の配列に変換します。
配列 ⇔ string 相互に変換します。
- 文字列の検索と置換
string(文字列)の検索と置き換えです。
大文字/小文字を区別しないで検索します。
改行コードが邪魔になるとき、取り除きます。
- 文字列の反転
string(文字列)の反転と連続する文字を一個にまとめます。
- Command Line 引数
Command Line から渡された引数を取得します。
Command Line の引数はストリング配列(string[])です。
メソッド(関数)
- メソッド(method) の定義
C# でメソッド(メンバー関数) を定義して呼び出します。
- 共通領域
共通領域に Main とメソッド(関数)からアクセスします。
- out パラメータを使う
C# のメソッドのパラメータとして out を使います。
- Sort XYZ
ref(reference) パラメータを使って X,Y,Z をソートします。
- 配列を渡してソートする
C# のメソッド(method)にパラメータとして配列を渡してソートします。
再起関数
- 再起関数の基礎
C# の再起関数(recursive function) で GCM(最大公約数)を求めます。
- 「1~n」までの和を求める再起関数
C# の再起関数で「1~n」までの和を求めます。
再起関数から戻るときに処理する基本的な方法です。
- 再起関数でソート
C# で最大20件分のデータ領域(配列)を定義して、再起関数でソートします。
- *で囲まれた中を塗りつぶす
*で囲まれた中を塗りつぶす「C# 再起関数」のプログラムです。
- 迷路探索のプログラム
*で囲まれた迷路を探索してゴールに到達する「C# 再起関数」のプログラムです。
- 順列組み合わせを表示
順列組み合わせを C# の再起関数で求めます。
- ペグ・ソリティアを解く
C# の再起関数でペグ・ソリティアゲームの答えを見つけ出します。
C# 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 形式の整数データを入力します。
- 文字コードを指定して入力
文字コードの異なるファイルを入力します。
- 文字コードを指定して出力
文字コードの異なるファイルを作成します。
- 文字コードを調べて入力
ファイルの文字コードを調べて入力します。
- ファイル操作
ファイルの「コピー, 削除, 名前変更, 移動, 存在確認」などを行います。
- Folder Copy
C# でフォルダーを再起的にコピーします。
- Folder Delete
C# でフォルダーを削除します。
C# Object Class
- static メソッドを定義
C# でメインとは別の Class を作成して、static メソッドを定義します。
- gcmlcm Class を定義
C# 言語で一般的な方法で gcmlcm Class を定義します。
☆Main() と gcmlcm Class のファイルを分けて格納してみます。
- Partial を使う
Partial を宣言した Class は一つにまとめられます。
- Sample Class
配列をパラメータとする Object Class のサンプルです。
☆C/C++ との違いを学んで下さい。
- Class のデータに直接アクセス
C# で gcmlcm Class 内で定義されているデータ領域に直接アクセスします。
- Set,Get アクセッサ
C# で Set アクセッサ, Get アクセッサを使って Class 内で定義されているデータ領域にアクセスします。
- Parameter
関数に渡したパラメータの値を変更して、元のデータに及ぶ影響を調べます。
- Static
Static 宣言と Object Class の関係です。
- Class の継承
C# で GCM Class を継承して LCM Class を定義します。
- メソッドのオーバーライド
C# で継承した Class のメソッドを override(オーバーライド)します。
- Dispose で資源を解放
IDisposable を継承して、資源を解放します。
- 抽象クラスでジャンケンの判定
抽象クラスを使った、ジャンケンの勝ち負けを調べるクラスです。
struct(構造体)
- XY座標構造体を定義
C# でXY座標構造体を定義します。
- gcmlcm struct を定義
C# で gcmlcm Class に習って gcmlcm struct を定義します。
- class と struct の違い
C# で class と struct の違いを検証します。
- struct をパラメータで渡す
C# で struct をパラメータとして渡します。
- 構造体に初期値を設定
構造体に初期値を設定します。
- 構造体の入れ子
C# で構造体の中で構造体を使う「構造体の入れ子」です。
try(トライ)&catch(キャッチ)
- try&catch
try(トライ)&catch(キャッチ)の説明です。
- finally
try & catch & finally を使います。
- throw
throw で例外を投げて、catch() で受け取ります。
List 連鎖
- List 連鎖の基礎
C# で List 構造をプログラムします。
- List を正順(逆順)で印字
連鎖した List構造を、正順(逆順)に印字します。
- List のセルを削除する
List に登録されているセルを削除します。
- List Object Class
C# で List Object Class を作成します。
- ArrayList の連鎖
C# で ArrayList を連鎖するプログラムです。
Binary Tree
- Binary Tree の基礎
C# で Binary Tree の Object Class を作成します。
- Car, Cdr で連鎖
Binary Tree の Car と Cdr を使って連鎖します。
- Binary Tree ソート
Binary Tree で昇順にソートして印字します。
Generics
- generics の基礎
C# で generics(総称性)を使ったメソッドを定義します。
- generics を使った加算メソッド
C# で generics(総称性)を使って加算メソッドを作成します。
- generics を使った比較メソッド
C# で generics を使って比較メソッドを作成します。
- generics を使った Class
C# で generics を使った Class のサンプルプログラムです。
- generics を使って Stack を作成
C# で generics を使って Stack Class を作成します。
インターフェース
- interface
interface(インターフェース)の説明です。
- interface-2
複数のインターフェースを継承します。
スレッド
- スレッドを起動
スレッドの説明と、基本プログラムです。
- Thread NowTime Class
NowTime Class のメソッドを Thread で起動します。
- スレッドの中断
スレッドの実行を中断します。
XML(ExtensibleMarkupLanguage)
- XML Save&Load
XML ファイルの作成と入力の基礎です。
- 成績データ XML
成績データ XML(簡易データベース)の作成と利用方法です。
- XHTML とは
XHTML は XML に準拠した HTML の後継仕様です。
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型のポインタを渡して、値を設定して返します。
- 配列のポインタ
ポインタを使って配列にアクセスします。
- TEXT の暗号化
TEXT(string) を暗号化して UTF-8 で書き出します。
- TEXT の複合化
暗号化して書き出された UTF-8 のファイルを複合化します。
Delegate
- Delegate の基礎
C# の デリゲート(委譲)の基礎です。
- Delegate を渡す
C# で Delegate を引数として渡します。
- メソッド名やクラス名を表示
Delegate で設定されたメソッド名やクラス名を表示します。
- メソッドの追加と削除
移譲先リストに複数のメソッドを「追加/削除」します。
- 非同期で呼び出す
デリゲートを非同期で呼び出します。
Event
- Event の基礎
C# のイベント(事象)呼び出しの基礎です。
- 複数のハンドラを割り当てる
C# で1個のイベントに複数のハンドラを割り当てます。
- event 呼び出しでパラメータを渡す
C# でイベントを呼び出すときにパラメータを渡します。
Proxy
- Proxy の基礎
C# のプロキシ(代理/委任)の基礎です。
- 複数メソッドを定義
プロキシで複数のメソッドを定義します。
DLL(Dynamic Link Library)
☆C/C++⇒C# DLL の記述があるページは、C/C++ から DLL を呼び出すページにリンクしています。
- C# Hello DLL
"C# Hello DLL" を印字する Class を登録した DLL を作成します。
☆C/C++⇒C# DLL
- C# GcmLcm.dll
GCM と LCM を計算する Class を登録した DLL を作成します。
☆C/C++⇒C# DLL
- こよみ DLL
年月日を入力すると、曜日と経過日数を計算する Class を登録した DLL を提供します。
- C#⇒C/C++ Hello.dll
C# から C/C++ でクラスを登録した Hello.dll を呼び出します。
- C#⇒C++/GcmDLL
C# から C/C++ でクラスを登録した GclLcm.dll を呼び出します。
- C#⇒DLL(HelloMsg)
C# から C/C++ で HelloMsg 関数を登録した DLL を呼び出します。
- C#⇒DLL(GCM,LCM)
C# から C/C++ で GCM,LCM 関数を登録した DLL を呼び出します。
- C#⇒DLL(CharMsg)
C# から C/C++ のポインター引数を持つ DLL の関数 CharMsg(wchar_t*) を呼び出します。
- DLL Command
コマンドプロンプトから C# の DLL を作成します。
- Math Library
AddClass と MultiplyClass を登録した C# の DLL を作成します。
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 メソッド
C# Windows Program
Form(Window)を表示
- 自動生成を使って Form を作成
C# の自動生成を使って Form(ウインドウ) を作成します。
- Form を作成する
C# で空のプロジェクトから Form(Window) を表示します。
- 背景色とキャプションを設定
Window の背景色とキャプションの設定です。
- カレンダーを表示する
C# の自動生成を使って、カレンダーを表示するプログラムを作成します。
内幕を知らなければ「すごい」と関心されることでしょう。
☆[デザイン]と[ツールボックス]の基本的な使い方です。
- カレンダーを表示する
C# で空のプロジェクトから、カレンダーを表示するプログラムを作成します。
☆InitializeComponent() メソッドのソースコードが追加されます。
Form に描画
- 線を描画する
C# の自動生成を使って、線を描画します。
- Line を描画する
空のプロジェクトから DrawLine で線を描画します。
- 図形を描画する
「線(DrawLine), 矩形(DrawRectangle), 楕円/円(DrawEllipse)」を描画します。
- 三角形を描画する
C# の DrawLine を繰り返して三角形を描画します。
オーバーライドを使います。
- 大きな文字を表示する
C# の自動生成を使って、ウインドウに大きな文字を表示します。
- 大きな文字を表示する
空のプロジェクトから、ウインドウに大きな文字を表示します。
- Goban
図形を使って碁盤を表示します。
マウス
- マウスのクリックを検出する
マウスのクリックを検出して MessageBox を表示します。
左クリック・右クリックの識別方法も説明します。
- マウスのクリックで終了確認
マウスがクリックされると、終了確認の MessageBox を表示します。
☆一般的な終了確認の方法を紹介します。
- Click Position
マウスがクリックされた座標をキャプションに表示します。
- Beep 音を鳴らす
マウスのクリックで Beep 音を鳴らす。
- マウスをキャプチャする
マウスをキャプチャして、移動中の座標を表示します。
キー
- ESC キーで終了
ESC キーが押されるとプログラムを終了します。
- キー操作で幅と高さを変更する
矢印キーでウインドウの幅と高さを変更します。
☆Console.WriteLine() で「出力ウインドウ」に印字します。
- キー操作で画像を移動する
矢印キーで上下左右に画像を移動します。
矢印キーに加えて、Shift+(ADWX)でも操作出来るようにプログラムします。
画像を描画する IMAGE Class を使ってみました。
Image の描画
単純な画像の描画は キー操作で画像を移動する の class IMAGE を推奨します。
画像の切り分けは カードを描画 の class Card を推奨します。
- 画像ファイルを描画する
GIF 画像をファイルから直接入力して、C# の DrawImage で描画します。
Bitmap に画像をロードして、Bitmap から描画します。
- リソースで取り込んだイメージを描画する
C# で GIF 画像をリソースとして取り込んで、DrawImage で描画します。
- Sprite を切り出す
大きな画像から Sprite を切り出して描画します。
- Sprite を切り替える
マウスのクリックで Sprite を切り替えます。
- 画像を切り分ける
Bitmap の Graphics を取得して画像を切り分けます。
- 画像描画 etc
画像を「拡大縮小・反転・回転・平行四辺形の変形」などで描画します。
- 専用 icon を設定
Window(Form)に専用の icon を設定します。
- ImageList の基礎
Image List に画像を登録します。
- クリックで切り替える
Dog1.bmp ~ Dog5.bmp をマウスのクリックで画像を切り替えます。
- 画像を分割して登録
16枚の画像を切り分けて Imagelist に登録します。
- 美人のアニメーション
画像を切り分けてタイマー設定でアニメーションします。
Windows Tool の使い方
Button
- ボタンを貼り付ける
自動生成のプロジェクトで ToolBox からボタンを貼り付けます。
☆イベント(稲妻アイコン)の基本的な使い方です。
- ToolBox からボタンを貼り付ける
空から作成したプロジェクトで ToolBox からボタンを貼り付けます。
- 直接ボタンを貼り付ける
ツールボックスを使わないで、直接 Form にボタンを貼り付けます。
Text Box
- TextBox
C# の自動生成を使って TextBox, Label, Button を貼り付けます。
- TextBox と Button を貼り付ける
空のプロジェクトで ToolBox からボタンとテキストボックスを貼り付けます。
- 直接 TextBox と Button を貼り付ける
ツールボックスを使わないで、直接 TextBox と Button を貼り付けます。
- 16進数+文字で TextBox に表示する
string で定義した文字列を16進数+文字で TextBox に表示します。
- 画像ファイルの名前を TextBox から入力
Button をクリックすると TextBox で指定した画像ファイルを描画します。
Rich Text Box
- RichTextBox
C# の自動生成を使って RichTextBox を貼り付けます。
- Rich Font
RichTextBox にフォントを設定します。
- RichTextBox
空から作成したプロジェクトに RichTextBox を貼り付けます。
KeyWord を検索して、色やフォントを設定します。
- RichSaveLoad
RichTextBox の状態を Save, Load します。
- Text File
RichTextBox にファイルからテキストデータを入力/保存します。
- Replace
RichTextBox に文字列を挿入します。
RichTextBox で、文字の置換です。
RichTextBox で、文字列の置換です。
- Delete
RichTextBox から文字列を削除します。
RichTextBox から行を削除します。
- Rich Contex
RichTextBox に Contex Menu を設定します。
☆Text Editor に必要なメソッドを抜粋します。
- Rich KeyDown
RichTextBox で Function キーを使います。
Function キーで Keyword の選択と検索を行います。
- Key Search
RichTextBox を KeyWord で検索します。
RichTextBox のダブルクリックでメソッドを呼び出します。
- Form Size
ウインドウサイズの拡大/縮小に対応します。
Picture Box
- PictureBox に画像を描画
ウインドウに PictureBox を貼り付けて画像を描画します。
- PictureBox の画像を切り替える
ToolBox を使わずに PictureBox と Button を貼り付けて、二枚の画像を切り替えます。
- PictureBox の画像の上から図形を描く
ToolBox を使わずに PictureBox を貼り付けて、PaintHandler で画像の上から図形を描きます。
- MyHandler() で PictureBox に図形を描く
ウインドウに PictureBox を貼り付けて、MyHandler() で図形を描きます。
- MyHandler() で PictureBox に Text を表示
ウインドウに PictureBox を貼り付けて、MyHandler() で Text を表示します。
- button の背景に画像を描く
Button の背景に画像を描きます。
Common Dialog
- Open File Dialog
自動生成で Open File Dialog からファイルを選択します。
- Color Dialog
自動生成で ColorDialog から TextBox の背景色を選択します。
- Open File Dialog
空のプロジェクトから Open File Dialog を組み込みます。
- Save File Dialog
空のプロジェクトから Save File Dialog を組み込みます。
- Folder Browser Dialog
FolderBrowserDialog で Folder を選択します。
- Font Dialog
FontDialog から選択したフォントと色で表示します。
- Color Dialog
ColorDialog から TextBox の背景色を選択します。
メニューの設定
- ToolBox からメニューを貼り付ける
ToolBox からメニューを貼り付けます。
- メニューを設定する
ToolBox を使わずにプログラムの終了とバージョン情報のメニューを設定します。
- 画像ファイルを選択
画像ファイルを選択して描画するメニューを設定します。
☆Single Thread Apartment(STA)モードに設定します。
- メニューにアイコンを設定
メニューバーに Icon を設定します。
- ToolStrip(ToolBar)を設定する
クリック一発で起動する ToolStrip(ToolBar)を設定します。
- ToolStripContainer を設定する
ToolStrip をウインドウの左右上下に移動出来るようになります。
- ContextMenu を設定する
マウスの右クリックで起動するメニューを設定します。
Timer
- タイマ割り込みでカウントする
自動生成のプロジェクトで Timer 割り込みでカウントします。
- タイマ割り込みでカウントする
空のプロジェクトから Timer を貼り付けてカウントします。
- 直接 Timer を貼り付ける
ツールボックスを使わないで、直接 Timer を貼り付けます。
List Box & List View
- ListBox に登録する
C# で String で定義したアイテムを ListBox に登録します。
- ListBox に TEXT を表示する
ソースファイルを入力して ListBox に表示します。
- 選択された行を取得する
SelectedIndexChanged プロパティで選択された行を取得します。
- ListBox Directory
C# で Directory を検索して、ファイル一覧を ListBox に表示します。
- ListView に登録する
C# で ListView にアイテムを登録します。
- アイテム名の変更
C# で ListView に登録したアイテムの名前を変更します。
- ListView Icon
ListView にアイコンを設定します。
- ListView に Column を設定する
ListView に Column を設定します。
- 表示の切り替え
ListView の表示形式を切り替えます。
- ListView Item 選択
ListView から Item を選択して MessageBox に表示します。
シングル/ダブルの検出方法も説明します。
- ListView Directory
Directory を検索して「"名前", "更新日付", "サイズ"」を表示します。
- ListView Directory Icon
C# で Directory を検索してアイコンを付けて表示します。
- ListView Sort
ListView のカラムクリックでアイテムをソートします。
Tree View
- TreeView に登録する
C# で TreeView にノードを登録します。
- TreeView に階層で登録
C# で TreeView にノードを階層構造で登録します。
TreeView に登録したノードを削除します。
- レベル指定の Data を TreeView に登録
string で定義したレベル指定の Data を TreeView に登録します。
- Struct を TreeView に登録
string で定義した構造体 を TreeView に登録します。
★原因不明の現象です。
- TreeView Click
C# で TreeView のノードを右クリックすると MessageBox を表示します。
- TreeView 親ノード
TreeView でクリックされたノードの親を調べます。
Command Line からコンパイル出来る形式で掲載します。
- 子・孫を再起でトレース
TreeView でクリックされたノードの子・孫を再起でトレースします。
- Drive Icon
C# でドライブを検索して TreeView に登録します。
- Expand
TreeView のドライブをクリックするとノードを展開します。
Radio Button
- Radio Button
Radio Button の説明です。
- Radio Button & GroupBox
Radio Button を GroupBox で囲みます。
Tab Control
- TabControl
C# の自動生成を使って TabControl を貼り付けます。
- TabPage 番号を表示
TabPage のクリックで RichTextBox にページ番号を表示します。
Split
- SplitContainer
C# の SplitContainer でウインドウを分割します。
- FolderView
C# で TreeView と ListView を並べてフォルダを表示します。
- Handler
C# で作成した File Handler の原型です。
C# CLI Project
CLI の Project は *.cs ファイル一本で動きます。
CLI Console Mode
- CLI Guid
Command Line から CLI Mode のプログラムをコンパイルして実行します。
- コンソールから入力する
CLI で ReadLine を使って TEXT を入力します。
- 配列の基礎
CLI で int 型の1次元配列を定義します。
- 二次元配列
CLI で2次元配列を定義します。
- 関数を定義
CLI でメソッド(メンバー関数) を定義して呼び出します。
- Sort XYZ
ref パラメータで「X,Y,Z」を昇順に並べます。
- Text 入出力
CLI で Text Data の入力と出力をします。
- ArrayList を使った二次元配列
ArrayList を使って、二次元の String 配列を定義します。
- ArrayList の配列
ArrayList の配列(配列の要素が ArrayList)を使います。
- gcm Class を定義
C# 言語で一般的な gcm Class を定義します。
- Class ファイルを分ける
Main() メソッドと Object Class のファイルを分けます。
- 曜日と日数の計算
事件が発生した日付をタイプして、曜日と本日までの経過日数を計算します。
CLI Windows Mode
- Windows を表示
Command Line から Windows プログラムを実行します。
- 背景色とキャプションを設定
CLI のプロジェクトで背景色とキャプションを設定します。
- 専用アイコンを設定
プログラムを起動すると、専用のアイコンがフォームの左上に表示されます。
- マウスのクリック座標を印字
マウスの左/右クリックを検出して、座標を印字します。
- Line を描画する
DrawLine で線を描画します。
- 三角形を描画する
DrawLine を繰り返して三角形を描画します。
- 大きな文字を表示する
ウインドウに大きな文字を表示します。
- 画像ファイルを描画する
BMP 画像をファイルから直接入力して DrawImage で描画します。
- 画像ファイルを選択
画像ファイルを選択して描画するメニューを設定します。
- Sprite を切り替える
マウスのクリックで Sprite を切り替えます。
- TextBox と Button を貼り付ける
ボタンをクリックするとメッセージを取得して表示します。
- Ritch Text Box
CLI で Ritch Text Box を貼り付けます。
- RitchText ContexMenu
CLI で Ritch Text Box に右クリックメニューを設定します。
- タイマー割り込み
タイマー割り込みでカウンターを表示します。
- Counter Class
カウンタークラスで、数字の画像を切り分けてカウンターを表示します。
- CLI Windows で「じゃんけんゲーム」を作成する。
- 画像の確認
「じゃんけんゲーム」で使用する画像を確認します。
- グー・チョキ・パーを選択
ラジオボタンで「グー・チョキ・パー」を選択します。
- 得点を計算
得点を計算して TextBox に印字します。
コンピュータは乱数で手を決めます。
- じゃんけんゲームの完成
コンピュータの思考関数を作成してゲームの完成です。
- じゃんけん Class
じゃんけんゲームに白番のクラスファイル(W_Sumaho.cs) を組み込みます。
- じゃんけんバトルゲーム
プログラム同士が対戦する「じゃんけんバトルゲーム」を作成します。
C# Program Note
C# Multi Windows
MessageBox
- MessageBox を表示する
Console Mode で「MessageBox を使って終了確認」を行います。
- int 型を MessageBox に表示する
Console Mode で int 型を文字列に変換して MessageBox に表示します。
Form2
- Form-2
C# で新しいフォーム(Form2)を追加します。
- Multi Window Animetion
Button をクリックすると、次々とアニメーションウインドウが開きます。
- Form Size(Max & Min)
Button のクリックで、アニメページに切り替えます。
- Page Navigate
Button のクリックで、ページからページに Navigate します。
DialogBox
- DialogBox
C# で DialogBox を表示します。
- DialogText
DialogBox からタイプした文字列を取得します。
- ModeLess Dialog
ModeLess Dialog の基礎です。
Windows Thread
- Thread Count
Thread で起動したタスクでカウントします。
- Thread Class
Class で Thread のメソッドを定義します。
- Thread Join
Thread を配列で定義して、終了を待ち合せます。
- アニメーション&Thread
アニメーションしながら Thread で時刻を取得します。
- Thread Animation
Thread でアニメーションします。
Sound
- WAVE を演奏
SoundPlayer で WAVE を演奏します。
- MIDI を演奏
MCI(Media Control Interface)で MIDI を演奏します。
- MP3 を演奏
MediaPlayer で MP3 を演奏します。
C# Network Program
- Web ページをダウンロード
C# で URL に接続して Web ページを TEXT 形式でダウンロードします。
- Web ページを TEXT 形式で表示
C# で URL に接続して Web ページを TEXT 形式で TextBox に表示します。
- FTP UP_Load
FTP を使って Web Page を UP_Load します。
- Server と Client で通信
C# で TCP(Transmission Control Protocol) Server に Client から接続します。
- 現在時刻を知らせる
C# で Server を常駐させて、現在時刻を Client に知らせます。
- タイマ割り込みで、接続要求をセンスする
C# でタイマ割り込みを使って Client からの接続要求をセンスします。
- スレッドで Message を取得する
アニメーションしながらスレッドで Message を取得します。
- IPアドレスを指定して送信/受信
IPアドレスを指定してメッセージを相互に送信/受信します。
- スレッドでメッセージを受信
スレッドを使ったメッセージの受信と、IPアドレスを指定したメッセージの送信です。
C# その他
- Command Line
Command Line で指定されたパラメータを受け取ります。
- アプリケーションを起動する
C# から他のアプリケーションを起動します。
ファイルを関連付けられたアプリケーションから開きます。
- ホームページを開く
ボタンのクリックで URL を参照してホームページを開きます。
- Clipboard Text
C# で Clipboard を使って、文字列を Copy&Paste します。
- Clipboard Image
C# で Clipboard を使って、イメージを Copy&Paste します。
- Clipboard Files
C# で Clipboard を使って、ファイルリストを Copy&Paste します。
Windows Explorer と相互に Copy&Paste することが出来ます。
- Clip Text&Image
Clipboard に文字列とイメージを一緒に格納します。
- Drag&Drop
ListBox を使った Drag&Drop の基礎です。
- Drag&Drop View
ListView には Drag&Drop 専用の機能が備わっています。
- エクスプローラと Drag&Drop
Windows Explorer と Drag&Drop します。
- 「ちらつき」を無くす-1
画像を切り替えてアニメーションしたときの、チラツキを無くす方法です。
- 「ちらつき」を無くす-2
画像を切り替えてアニメーションしたときの、チラツキを無くす方法です。
- Double Buffer で描画する
Double Buffer を使って「ちらつき」を無くしてアニメーションします。
- Special Folder
Windows の特殊フォルダーを調べます。
- Draw で書いたイメージをファイルに出力
BMP 画像領域にカラーで文字を書き、gif 形式でファイルに書き出します。
- Form(ウインドウ) を直接生成する
Form Object Class を直接生成してウインドウを表示します。
- Main() のクラスに Form を継承する
Main() メソッドが定義されているクラスに Form を継承してウインドウを表示します。
- Form を継承した Class を使う
Form を継承した新しい Class を使ってウインドウを表示します。
C# Game Program 入門
三山くずしゲーム
- 石の画像を描画
ゲームに使う石の画像を描画します。
- クリック座標
マウスがクリックされた座標から、山と石を計算します。
- Alpha 版
三山くずしゲームの Alpha 版です。
カードゲームに挑戦
- カードを描画
格子状にカードを並べた画像から Sprite を切り分けて描画します。
- カードをシャッフル
カードをシャッフルして、並べて描画します。
- カードを反転
カードを重ねたり、反転して描画します。
シューティングゲームに挑戦
- キーをセンス
リアルタイムにキーをセンスして画像を動かします。
- 背景のスクロール
ゲームの背景画像をスクロールします。
- 弾丸を発射
Space キーで弾丸を発射します。
- 弾丸を一括管理
シューティングゲームで飛び交う弾丸を一括管理します。
- アニメーションクラス
高精度タイマでアニメーションを行うクラスを作成します。
- 敵に向かって連射
弾丸を敵に向かって連射します。
ナンプレ(数属)ゲーム
- ナンプレ・ガイド
Numberplace(ナンバープレイス)ゲームガイドです。
- GamePlay
レベル(好み)に合わせてゲームをプレイします。
- Image
ナンバープレイスで使用する Image 描画の基本です。
- Layout
メニューを設定してゲーム画面を描画します。
- Menu
NewGame メニューを実装して、プレイが出来るようにします。
- Alpha 版
残りのメニューを実装して、α版の完成です。
- Alpha 版の実行
α版をダウンロードして実行します。
- Numberplace
Numberplace(ナンバープレイス)の完成です。
- 世界一数独
世界一難しい数独の問題を解きます。
オセロゲーム
- 挟んだ駒を裏返す
マウスで「黒,白」の駒を置いて、挟んだ駒を裏返します。
- プラットホーム
オセロゲームのプラットホームの完成です。
- Final 関数
最も面白い Final 関数のテストです。
- コンピュータがプレイする
コンピュータがプレイする関数を追加します。
- Base Project
AIを組み込む前のベースプロジェクトです。
- Learnning
コンピュータ同士で対戦した結果の学習準備です。
- Osero Game
AIを組み込んだオセロゲームです。
囲碁ソフト作成
- 碁盤に石を置く
碁盤を表示して、石を置きます。
- クリックで石を置く
マウスのクリックで石を置きます。
- 打ち上げと禁じ手
石の打ち上げと禁じ手の判定です。
- SGF ファイルを入力
SGF ファイルを入力して、出題図を表示します。
- 棋譜ツリー
SGF ファイルの棋譜ツリーと CELL 構造体の説明です。
- 棋譜の再生
SGF ファイルを入力して棋譜を再生します。
- 棋譜の保存
ツリー構造に展開した棋譜を SGF ファイルに保存します。
- 棋譜の入力
マウスのクリックで棋譜を入力します。
- 分岐の入力
分岐手順を入力します。
- RadioButton
主要な操作は RadioButton で制御します。
- Version 4
SGF Version 4(FF[4]) に対応します。
- LB tag をプログラム
SGF Version 4 に対応して LB tag をプログラムします。
- SGF Header
SGF Header の編集をサポートします。
三目並べゲーム
- ゲームの手を記録
Cell を連鎖して三目並べゲームの手を記録します。
- 三目並べの学習機能
C# で ArrayList を使って三目並べゲームを学習します。
- 三目並べの自動学習
ArrayList を使って三目並べゲームの手を自動的に学習します。
- 三目並べゲーム
Windows Mode で三目並べゲームを作成します。
- 三目並べゲーム-2
ディープラーニングを使った三目並べゲームです。
- 三目並べゲーム-3
ディープラーニングと常識的な手を打つ関数を組み合わせます。
C# Application Program
Screen Capture
- Screen Capture
Screen を Capture して画像ファイル(gif 形式)で保存します。
Text Editor の基礎
- Text Editor の基礎
C# で作成する Text Editor の基礎です。
- メニューをプログラム
Text Editor のメニューをプログラムします。
- XML に保存
Editor の設定情報を XML に Save, Load します。
- Command Line
Command Line からファイル名を受け取ります。
Text Editor を開発
- Text Editor の開発
C# で実用的な Text Editor を開発します。
- ファイル入出力
メニューの設定とファイルの入出力です。
- Contex Menu
Contex Menu を設定して編集メニューをコーディングします。
- XML に保存
Editor の設定情報をXML に保存します。
- 検索機能
「Search/Replace」メニューを設定します。
- Single File Editor
キー操作を設定して Single File Editor の完成です。
- TabPage Change
複数ファイルをオープンして Tab Page で切り替えます。
- FileClass
FileClass を MultiEditor に対応して再編集します。
- Multi File Editor
ファイル比較を設定します。
Binary Viewer
- Binary Viewer のレイアウト
Binary Viewer のウインドウをレイアウトします。
- TextBox に16進+文字で表示する
このプログラムを自身を入力して TextBox に16進+文字で表示します。
- メニューを処理する
メニューを処理するイベントハンドラを作成します。
- Edit Object Class
Edit Object Class を使った Binary Viewer です。
- utf-16, utf-8
utf-16, utf-8, Shift_JIS に対応します。
Binary Editor
utf-16, utf-8, Shift_JIS に対応します。
- Binary Editor のメニューを設定
Binary Viewer をベースに Binary Editor を作成します。
- 入出力と描画の制御
ブロックの入出力と描画の制御を行います。
- ページを修正する
「修正(&U)メニュー」を実装します。
- ベータ版の完成です
Binary Editor ベータ版の完成です。
File Handler
- File Handler
File Handler の原型プロジェクトを作成します。
- Layout
File Handler のレイアウトを整えます。
- Handler Menu
File Handler に Menu を設定します。
Windows Explorer を起動してファイルを貼り付けることが出来ます。
- コピーを実装
File Handler にコピー機能と削除機能を実装します。
Windows Explorer と相互に Copy&Paste することが出来ます。
- 表示メニューを実装
特殊フォルダや ListView の「表示切り替えメニュー」を実装します。
- Private Menu
Contex Menu にプライベートメニューを追加します。
ListView の名前変更(フォルダ名やファイル名の変更)を実装します。
- File Handler Version 1.0
ListView のカラムをクリックすると昇順/降順に並べ替えます。
一応これで Version 1.0 の完成です。
Memo Application
- Memo Guide
Memo2 アプリケーションのガイドです。
- Memo Read File
Memo のデーターファイルを入力して ArrayList に格納します。
- Layout
ツールボックスから Tool を貼り付けて Layout を整えます。
- Memo Tree View
Memo アプリのデーターファイルを Tree View に登録します。
- RichTextBox
TreeView で選択された node の Text Data を RichTextBox に表示します。
- Menu を登録
Memo2 のメニューを登録します。
- 編集メニューを実装
RichTextBox を編集する Edit Menu を実装します。
- Tree Menu を実装
TreeView を操作する Tree Menu を実装します。
- File Menu を実装
ファイルを操作する File Menu を実装します。
- Search Menu を実装
TEXT を検索する Search Menu を実装します。
- ToolStrip を実装
ToolStrip に Menu を実装します。
Function Key に Text 編集を実装します。
RichTextBox でダブルクリックを検出します。
- User Menu を実装
フォントやパスワードを設定する User Menu を実装します。
- Memo2 α版
Memo2 α版を作成します。
- Memo2 β版
Memo2 β版を作成します。
- Dialog Input
Dialog Box から Text(検索キー, 置換文字列) を入力します。
画像認識
画像認識 C# API
- Image Guid
C#で画像解析を行うために必要な知識です。
- Face Image Size
顔の画像をサイズを整えて保存します。
- Color ⇒ Grayscale
カラー画像をグレースケールに変換します。
- Color ⇒ 二値画像
カラー画像を二値画像に変換します。
- Delete Color
カラー画像から選択された色(背景色など)を削除します。
- Select Color
カラー画像から選択された色を抽出します。
- Color ⇒ エッジ画像
ピクセルの濃淡の違いを検出して、エッジ画像を作成します。
- Line をピックアップ
エッジを検出して作成した二値画像から Line をピックアップします。
画像認識 Win32 API
- BitBlt
Win32 API の BitBlt() 関数を使って描画します。
- GetDIBits
Win32 API の GetDIBits でピクセルデータを取得します。
- Win32 3原色
Win32 API を使って、3原色を個々に設定して描画します。
- W32 Color ⇒ Gray
Win32 API を使ってグレースケールに変換します。
- W32 Color ⇒ 二値画像
Win32 API を使って二値画像に変換します。
- 画像のエッジを検出
Win32 API で、ピクセルの濃淡の違いを検出してエッジ画像を作成します。
- Mark Rect
Win32 API で、顔の画像に Land Mark を検出する矩形を重ねます。
- Land Mark
Win32 API で、検索範囲を矩形で設定して Land Mark を検出します。
- 顔画像の識別
Win32 API で、Land Mark を使って顔の画像を識別します。
- Face
Store App(UWP) で静止画から顔を見つけます。
C#ページ検索抜粋
超初心者のプログラム入門(C#)
超初心者のプログラム入門(C/C++)