C#初心者入門Visual Studio2017改訂版4

 

前回からの続きです。

 

パスワード作成プログラムを使って、

今回のテーマは、乱数と繰り返しとします。

乱数はゲームを作る上では欠かせないものです。

また、繰り返しも使わないプログラムはないくらい頻繁に使用します。

 

このブログの最後に、Visual Studioでのデバックでの変数の確認の仕方を書いておきます。

これは、変数の値を処理の途中で確認でき、プログラムを作るうえでは必ず必要になるテクニックです。

 

パスワードを作るとき、苦労しませんか?

なかなか、意味のない組み合わせというのは作りにくいものです。

 

なので、パソコンで乱数を使い勝手にパスワードを作ってみます。

まずは、新規作成してください。

 

 

今回は、名前を変えて(WinFormransu)みました。

 

左のツールボックスからボタンを1つとリストボックスを作ってください。

 

 

 

前回で説明した。フォームの名前、ボタンの名前をプロパティで直して、

リストボックスはお好みにより、適当な大きさにしてください。

 

その次に、ボタンをダブルクリックすると、

なりますので、

 

Form1.csに22行目から下のコードを書い(コピーアンドペーストし)てください。

 

            int mojisu = 8;//パスワードの文字数
            int kosuu = 5;//パスワードの作成数
            string kekka = "";//作成した結果
            string mojisyu = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            //パスワードの文字の種類
            int len = mojisyu.Length;//文字の種類の文字の長さ
            System.Random r = new System.Random();//乱数の発生の変数をrとする
            for (int j = 0; j < kosuu; j++){
                for (int i = 0; i < mojisu; i++){
                    int i1 = r.Next(len);//文字の長さの乱数を発生
                    string s1 = mojisyu.Substring(i1, 1);//文字の種類から文字を取り出す
                    kekka = kekka + s1;//文字をつなげる
                }
            listBox1.Items.Add(kekka);//リストボックスに表示
            kekka = "";//結果を初期化
            }

 

次のようになるはずです。

 

 

 

前回までに説明していない項目では、24行目に出てくる

stringは文字変数という意味です。

 

乱数については、28行目の

system.Random r = new System.Random();

です。

ここでは、System.Random()というプログラムをrという名前で本プログラムに組み込みます。

()内は具体的な数字(100)などを入れてもOKですが、その場合同じ(系列)の乱数が発生します。

(省略するとシステム時間をもとにした系列で発生します。)

31行目で、文字の長さの乱数を作ります。(ここでは。0から62未満を発生させます。

int i1=r.Next(62)と同じ)

 

繰り返しで一番よく使われるのが、29行目のfor文です。

for (int j = 0; j < kosuu; j++){}は、

jが0から1づづ増やしていきkosuuに達するまで{}内を繰り返すという意味です。

for(変数名;条件式;変数を増やす(減らす))

ここでは、kosuuが5なので、5回繰り返すことになります。

30行目も同様で、8回繰り返します。

これによって、8文字のパスワードを5個つくります。

 

35行目の

listBox1.Items.Add(kekka);は

リストボックスにデータを追加します。

 

あとは、説明を付けてありますので、なんとなくわかると思います。

 

下は、FP5を押してデバックし、ボタンを押して実行した結果です。

 

 

パスワードの文字数を変えるときは、22行目のmojisuの数字を変えてください。

また、作成個数を変えるときは、23行目のkosuuの数字を変更してください。

 

デバックについて

 

正しく打ち込めば上のように動くと思いますが、

動いたからといって、正しいとは限りません。

 

ここでは、Visual Studioでデバックしてローカル変数の確認してみましょう。

 

 

一例として、29行目の左をクリックして、赤丸を付けてください。

続けて、PF5を押してデバックを実行させます。

続けて、PW作成ボタンを押してみると、

赤丸の行でプログラムが止まります。また

 

 

左下にローカルが表示されます。

ここに、自分で作った変数の値がでます。

たとえば、lenの値は62になっていますが、アルファベット26文字×大小文字2+数字10文字で62文字で

自分の予想通りとなり、正しいと言えます。

 

赤丸を消すときは、再度クリックして、消してください。

メニューバーの続行ボタンか中断のボタンを押してください。

また、複数の行にもつけることができます。

その場合、メニューバーの続行ボタンを押すごとに赤丸の場所で止まります。

 

このデバック機能は、プログラムが複雑になった時には実力を発揮すると思います。

 

 

JUGEMテーマ:プログラミング

| C#プログラム | 18:05 | comments(13) | trackbacks(0) |

C#初心者入門Visual Studio2017改訂版3

前回からの続きです。

 

前回のプログラムを実行するには、ファンクションキーのF5を押します。

 

下のように出れば成功です。

 

 

終了するときは×をクリックします。

 

失敗すると、エラーメッセージが出ますので、いいえボタンを押します。

 

 

エラー一覧が下にでますので、それを元に修正してください。

(下の例は、27行目に;を入れ忘れたもの)

 

 

修正すると、エラーメッセージが消えますので、再度ファンクションキーF5で実行してください。

 

下は、実行して、4,982円を3人で割り勘した結果

 

 

お疲れ様でした。これで完成です!。

 

が、

 

ただ、見た目がよくありませんので見出しを直します。

 

Form1.cs[デザイン]を選択します。そのあと、フォームの部分をクリックします。

 

プロパティがForm1に変わっていると思います。

上手くいかないときは、↓矢印から選んでください。

 

 

Textを探して、割り勘の計算に変えエンターキーを押します。

下のとおり、見出しが変わりました。

 

 

ラベルをもう2つ追加して、

 

 

見出しを付けていきます。

 

 

ついでに、同じようにボタンも

 

 

このように、プロパティでは、テキストや文字の大きさ、色や背景色など細かく指定できます。

 

手直して、実行した結果

 

 

なんとなく、アプリっぽくなったと思います。

 

あとは、作ったアプリを好きなところへ移動します。

デバックでできたプログラムは、Debugホルダーに入っています。

保存先を変更してなければ、下のパスにあると思います。

 

 

 

そこにある、プロジェクト名.exeをダブルクリックして実行させてみてください

ちゃんと動くと思います。

なので、この実行ファイルをコピーするかショートカットを作って移動させてください。

 

ここまで、できれば一応なんでもできるはずです。

 

C++では、資料が少ないため、その回ごとにのまとめを書いてきましたが、

C#では、僕の説明よりも、はるかに正確な解説が多くありますので、

たとえば、 DOBON.NET などで(いつも参考にさせてもらってます)

 

そちらを参考にしてください。

 

あとは、参考プログラムとして、よく使うものを数本書いてみます。

 

その4に続きます。

 

JUGEMテーマ:プログラミング

| C#プログラム | 05:16 | comments(1) | trackbacks(0) |

C#初心者入門Visual Studio2017改訂版2

 

前回の続きです。

 

前回で用意はできました。新しいプロジェクトの作成をクリックすると、下のようにでますので、

WindowsクラシックデスクトップからWindows フォームアプリケーションを選んで、

(前回書いた通り、.NETデスクトップの開発をインストールしないと出てきません。

出ないときは、Visual Studioインストーラーを開くをクリックして、インストールしてください。)

 

 

名前などは、自動的にでてきます。

勉強だけなら変える必要はないと思いますが、

もし変えたいときは変更してください。

(名前やソリューション名は何でもいいです。ただし、最初の文字を数字しないのと、途中にスペースは入れないでください)

 

OKボタンを押します。

下のように出れば成功です。

 

 

実は、これでプログラムは完成しています。なので、内容を変更するだけです。

これから、ソリューションエクスプローラとプロパティは頻繁に使いますので、位置は覚えておいてください。

 

それでは、何か作ってみましょう

居酒屋などで、割り勘(部下は百円切り捨て、上司が残り)をする計算をしてみましょう

頭の中で、仕様を考えます。

入力項目、金額、人数

出力項目、1人あたりの金額

 

Windows Formとは、掲示板のようなものです。

掲示板の上に紙(部品)を張っていきます。

 

キーボードから入力するためには、テキストボックスを使います。

ツールボックスをクリックして、ツールボックスが出たらTextboxをダブルクリックします。

 

 

フォームにテキストボックスが出ますので、マウスで移動させてこださい。

 

 

同様に、テキストボックスをもう一つ、ボタン(Button)を一つ、ラベル(Label)を1つ、作ってください。

 

 

次に、button1をダブルクリックすると、自動的にForm1.csが現れます。

 

 

その一番下に、自動的に、private void button1_Click(object sender, EventArgs e)ができています。

これは、button1をクリックした時の処理になります。

なので、その中に、プログラムを書いていきます。

 

 

プログラムの説明:

 

23、24行目

int teraa = int.Parse(textBox1.Text);

int terab = int.Parse(textBox2.Text);

は、テキストボックスの中の文字を数字にしています。

intとは小数点以下がない数字です。整数型といいます。

teraa,terabは変数です。=以降で数字の値が変わります。

名前の付け方は、何でもいいですが他の命令と重ならないようにまた、変数とわかるように

今回は、teraa,terabと付けてあります。(たとえば、kingaku,ninnsuuなどでもいいです)

Visual Studoには強力なガイダンス機能がありますので、

(下は、intと入力した例、横の図柄は基本型という意味)

変数を作るときには、予約語と重ならないか確認しながら行ってください。

int.Parse()は、カッコ内の文字を数字にします。テキストボックスの中は、すべて文字なので、

あとで計算するために数字に変えておきます。

textBox1.Text、textBox2.Textはテキストボックスの中の内容です。

なお、;以降の//とはプログラムには関係のない参照となります。

 

25行目

Double terac = teraa / terab;

数字に変えたteraa,terabを使って、一人当たりの金額を計算します。

Doubleは、小数点以下がある数字です。実数型といいます。

なので、teracは小数点以下も使えます。

スラッシュの/はプログラムの世界では割り算(÷)です。

 

26行目

int terad = (int)(terac / 100);

100円以下を切り捨てるため、100円以上の数字を計算します。

(int)はさきほの整数型にして小数点以下を取ります。

(たとえば、teracが1659円ならteradは16になります。)

 

27行目

terad = terad * 100;

は、26行目に100を掛けて元の単位に戻します。

掛け算は、×じゃなくて*です。

なお、teradは先ほど、intと宣言してますので、頭にintはいりません。

 

28行目

terab = terab - 1;

上司分の1人を引きます。

 

29行目

int terae = teraa - terad * terab;

上司分の計算をします。

 

30行目

label1.Text = "一人当たり=" + terac.ToString() + "円¥n部下=" + terad.ToString()
                + "上司=" + terae.ToString() + "円";//結果の表示

ラベルに結果を書きます。

C#では、;があらわれるまで一つに文とみなしますので、途中で改行しても大丈夫です。

その代り区切りの;は絶対忘れないでください。

前に配置した、label1のTextを=以下の文字で表示します。

文字をつなぐときは、+でつないでいきます。

数字の変数を文字にするときには、.ToString()を使います。

¥nは特殊文字で改行するときに使います。

 

 

ちょっと長くなりましたので、その3に続きます

次回は、実行(デバック)のしかたと、見た目を整えていきます。

 

 

 

JUGEMテーマ:プログラミング

| C#プログラム | 08:30 | comments(0) | trackbacks(0) |

C#初心者入門Visual Studio2017改訂版1

 

 

C#プログラムについての入門編は、3年前に記事を書きましたが、

いまでも、アクセス数が多いので、Visual Studio2017に合わせて改訂版を書いてみたいと思います。

C#プログラムはmicrosoft社の主要プログラムなので、

他のホームページやブログでも多くの情報が得られます。

 

なのになぜ、こんな素人のブログでもアクセスが多いのか?(と言っても大した数ではありません)

 

それは、他では書いているひとは、プログラムをよく知っているからだと思います。

よく知っている人は、当たり前のことは書かないからではないかと?

でも、当たり前のことがわからないから初心者だということを気が付かないのでは?

また逆に、正確に説明しようとするため、初心者はまだ覚える必要のないことまで書いてあります。

そのため覚えることが多すぎて、混乱し、途中で挫折してしまいます。

 

なので、ここでは、動かし方しか書いていません。

詳しい説明は他のプロのページで、合わせて見てもらえばと思います。

 

(まえに、C++初心者入門を読んですでにVisual Studioをインストールしてくれたひとは、

次回から読んでもらえばいいです。)

 

今回は、Visual Studioのインストールの仕方になります。

 

まずは、ここからmicrosoft社のVisual Studioをダウンロードしてください。

一番下にあるVisual Studio Communityダウンロードから

 

 

無償ダウンロードを選びます。(あとのは、試用版なので、のちのちお金が要ります。)

 

 

ファイルを保存ボタンを押して、ダウンロードしてください。

 

 

ダウンロードしたものを実行すると、何をインストールするか表示されます。

Visual Studio Comminity 2017 を選んでインストールボタンを押してください。

すいません。下の写真はインストール済みのものです。インストールしてないときは、インストールのボタンがあります。

 

 

また、何のプログラムをダウンロードするか聞いてきますので、

まずは、上三つにチェックを入れてインストールしてください。

(C#ではWindowsフォームを使いますので、必ず.NETデスクトップ開発にはチェックを入れてください。)

 

 

 

通信環境によりますが、普通は約30分以上かかります。

 

ダウンロードが終わったら、

 

 

プログラムを立ち上げてください。

(Visual Studioをはじめてインストールした人は、登録画面が出ると思いますので、Microsoftのログイン名と

パスワードを入れてください。ログイン名等は、Windowsを初期設定したとき登録していると思います)

 

 

新しいプロジェクトの作成を選んで、C#プログラムの作成を始めます。

これで、準備は終了です。

 

お疲れ様でした。

 

次回に続きます

 

 

JUGEMテーマ:プログラミング

| C#プログラム | 08:55 | comments(3) | trackbacks(0) |

Visual Studioの使い方(初めてのC#)テキストボックス編

いまさらですが、プログラムを作るときの基本は入力、出力を設計することから始まります。
これを仕様書といいます。おもにSE(システムエンジニア)の仕事です。
これに基づいてコードを書くのがPG(プログラマー)の仕事です。
これまでは、
入力としてはボタンを押す。
出力はプログラムを起動する。
だけでしたが、
ボタン以外にもWindow8にはいろいろな部品が用意されています。

手始めに、文字や数字を入出力するテキストボックスを使ってみます。

仕様書としては、
テキストボックスに入力された文字を(入力)、
ボタンを押すことによって、読上げる(出力)というものです。

手順は前回のボタン編と同じですので、省略します。

Form1.cs[デザイン]から
左のツールボックスをクリックして(または、表示(V)を押してツールボックス(X)を選ぶ)
すべてのWindowsフォームを選び
TextBoxをダブルクリックする。





TextBoxの右上についている矢印みたいなものを押して
MultiLineにチェックをいれる。
また、プロパティのTextに「ここに記入して」等をいれておく




そのあと、同様にボタンを作り、形を整える。




音声合成の機能(SAPI)を使用するために、
ソリューションエクスプローラの参照設定を右クリックして
参照の追加(R)を選ぶ(または、プロジェクト(P)から)



左からCOMを選び
Microsoft Speech Object Libraryにチェックをいれる。



つぎにform1.csのusingにSpeech.Libを追加する。
これで、Speech.Libにある実行ファイル(専門用語でインスタンス)を使うことができます。



class form1の中にSpeech.Libにある音声合成のための実行ファイルSpVoiceを登録(初期化)します。
今回はharukaという名前をつけています。(この作業をコンストラクタといいます。)



ボタンを押したときの処理を書きます。
ここで、TextBox1.Textがテキストボックスの内容になります。



実行したところ



ボタンを押すとテキストボックスの内容をしゃべります。

ただし、解かりやすく説明するため、
このプログラムはエラー処理が書かれていません。
入力内容によってはエラーを起こしますので、ご了承ください。

参考
ちなみに、英語にしたい場合や速度(ピッチ)を変えた場合は、次のとおりです。

音声の設定
SpVoice.Voice = SpVoice.GetVoice().Item(番号)

Windows8.1のデスクトップの場合
Item(0)はMicrosoft Haruka Desktop(日本語、女性)
Item(1)はMicrosoft Zira Desktop(英語、女性)
が入っていました。

音量の設定
SpVoice.Volume = 数字:数字は0から100

音声の速度
SpVoice.Rate = 数字:数字は-10から10

例)音声を英語に、Volumeを小さく50に、速度を遅く-5とした場合







JUGEMテーマ:PC関連
| C#プログラム | 16:02 | comments(0) | trackbacks(0) |

09
--
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
29
30
--
>>
<<
--
Profile
New entries
Archives
Categories
Recent comment
カウンター


今日
昨日
レンタルサーバ/プロバイダー




ファッション
カタログ通販ベルーナ(Belluna)

イマージュ - IMAGEアウトレットセール
yahoo・その他


買い物
ビックカメラ.com



Mobile
qrcode
Links
Others
無料ブログ作成サービス JUGEM