0 と 1 の世界の見習い探検家

2014年01月

着色された状態でのプロデルのソースの投稿実験です。


以下プロデルソースコード

鉄道会社とは

  電車である主力車両A持つ

  電車である主力車両B持つ

  電車である主力車両C持つ

  

  自分並べる手順

    名前:主力車両A車輌名 警笛:主力車両A警笛][改行名前:主力車両B車輌名 警笛:主力車両B警笛][改行名前:主力車両C車輌名 警笛:主力車両C警笛]」表示

  終わり

終わり

 

電車とは

  文字列である車輌名持つ

  文字列である警笛持つ

  

  自分鳴らす手順

    警笛表示

  終わり

終わり


昨日始めたC#でのメモ帳づくり(notepad.exe再現)はつい2時間ほど前までは順調に進んでいました。。。

ですが、、
ふぇえええ
ShowDialog()でフリーズするよぅ

↓↓C#形式コード


using System;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
 
class CSNotepad
{
    public static void Main(string[] args)
    {
        OpenFileDialog openDialog = new OpenFileDialog();
        Console.WriteLine("openDialog を生成しました。");
 
       openDialog.FileName         = ""; // デフォルトのファイル名
        openDialog.InitialDirectory =""; // デフォルトのフォルダ
       openDialog.Filter           ="TestExtensions (*.abp)|*.abp"; // フィルタ(選択するファイルの拡張子)
       openDialog.FilterIndex      = 1;
       openDialog.Title           = "開く"; // ダイアログのタイトル
       openDialog.Multiselect      = false; //複数のファイルを選択できるようにする
        openDialog.RestoreDirectory =false; //ダイアログボックスを閉じた際にディレクトリをInitialDirectoryへ戻す
       openDialog.CheckFileExists  = true; // 存在しないファイルの名前が指定された時に警告を表示する
       openDialog.CheckPathExists  = true; //存在しないパスが指定された時に警告する
        Console.WriteLine("openDialog の基礎情報の設定を行いました。");
 
        // ダイアログの結果を代入するオブジェクトを生成
        DialogResult openDialogResult= new DialogResult();
        Console.WriteLine("openDialogResult を生成しました。");
 
        openDialogResult =openDialog.ShowDialog();
        Console.WriteLine("ShowDialog を実行しました。");
 
        if (openDialogResult == System.Windows.Forms.DialogResult.OK)
        {
            // 選択されたファイルのパスを返す
            Console.WriteLine(openDialog.FileName);
        }
    }
}
 



本当にShowDialog()でフリーズしているのか調べるためにConsoleプログラム形式に書き換えてみました。。
そしたら本当に "openDialogResult を生成しました。" でフリーズしてしまって。。。


何が原因なんでしょうね。。。

イメージ 1

なんとなくシャフト繋がりで思い出したんですよ。


昨日始めたC#で予想以上に簡単にGUIアプリが開発できることに感動したので、早速メモ帳作りにチャレンジしてみます。

C#を初めてみるとなんとなくクラスの定義だとかがプロデルと似てるように見えたのでまた謎サンプルを作成してみました。


車両を数種類所有している鉄道会社である京成を定義してみた実用性ゼロの謎サンプル、、
自分で定義したクラスに同じく自分で定義したクラス型のメンバを持たせてみたり。。。↓

プロデル
京成電鉄という鉄道会社を作る

京成電鉄の主力車両Aの車輌名を「3300形」へ変えろ
京成電鉄の主力車両Aの警笛を「フォーーン」へ変えろ

京成電鉄の主力車両Bの車輌名を「3500形」へ変えろ
京成電鉄の主力車両Bの警笛を「プォーーン」へ変えろ

京成電鉄の主力車両Cの車輌名を「3600形」へ変えろ
京成電鉄の主力車両Cの警笛を「ファーーン」へ変えろ

京成電鉄で並べる


鉄道会社とは
電車である主力車両Aを持つ
電車である主力車両Bを持つ
電車である主力車両Cを持つ
はじめの手順
電車を作って主力車両Aとする
電車を作って主力車両Bとする
電車を作って主力車両Cとする
終わり
[自分]で、並べる手順
「名前:[主力車両Aの車輌名] 警笛:[主力車両Aの警笛][改行]名前:[主力車両Bの車輌名] 警笛:[主力車両Bの警笛][改行]名前:[主力車両Cの車輌名] 警笛:[主力車両Cの警笛]」を表示
終わり
終わり

電車とは
文字列である車輌名を持つ
文字列である警笛を持つ

[自分]を、鳴らす手順
警笛を表示
終わり
終わり


Visual Studio C#

using System;

class Program
{
    public static void Main()
    {
        // メインプログラム
        TrainCompany KEISEI = new TrainCompany();

        KEISEI.WriteCars();
    }
}

class TrainCompany
{
    public TrainCar carA = new TrainCar("3300形",3300,"フォーン");
    public TrainCar carB = new TrainCar("3500形",3400,"プォーーン");
    public TrainCar carC = new TrainCar("3600形",3600,"ファーーン");

    public void WriteCars()
    {
        Console.Write(carA.model);
        Console.Write(carA.number + 1);
        Console.WriteLine(carA.beep);

        Console.Write(carB.model);
        Console.Write(carB.number + 1);
        Console.WriteLine(carB.beep);

        Console.Write(carC.model);
        Console.Write(carC.number + 1);
        Console.WriteLine(carC.beep);
    }
}

class TrainCar
{
    public string model; // 形名
    public int number; // 番台
    public string beep; // 警笛

    public TrainCar(string setModel, int setNumber, string setBeep)
    {
        // ストラクチャ
        this.model = setModel;
        this.number = setNumber;
        this.beep = setBeep;
    }
}

今回は実験用でTrainCarクラス内の変数に外部からアクセスできるようにpublicで設定してあります。


C#さんはウィンドウとかも結構あっさり作成できるところがプロデルさんと似てますねぇ。。。
C#さんでテキストエディタを作ってみたいなぁ。。。

Windows 7以降または.NET Framework 3.5以降がインストールしているPCであれば、Visual Studioをわざわざインストールしなくてもコンパイラがすでに用意されているようです。
http://qiita.com/toshirot/items/dcf7809007730d835cfc (コンパイラの場所と使い方を解説してくれています)
メモ帳などのテキストエディタ+Windows付属のcsc.exeで簡単に実行可能ファイルの出力までできるところが魅力的ですね(((


このページのトップヘ