<< C#初心者入門Visual Studio2017改訂版3 | main | Visual Studioでスマホのアプリを作る(Cordova)4 >>

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) |
Comment
12月19日に返信を頂いているのに、
お礼のメールをせずすみません。
ご返信、
大変あり難く、又貴重な内容、
本当に感謝であります。
2018/12/26 6:44 PM, from 山田
すごく難しいコメントありがとうございます。

とても私ごときが回答することではありませんが、あえて書かしてもらいます。
結論から言うと、C#から始めてもほかの言語からでもまったく問題ありません

もともとコンピュータのCPUは0と1しかわかりません
コンピュータの言語は人間が勝手に決めたもので、何の言語でも同じです。
どんな言語で勉強したとしても作り方(アルゴリズム)は同じになります。
C#である程度理解できれば、知らない言語も何となくわかります。

それに、C#にはマイクロソフトがついています。
マイクロソフトが倒産しない限りは大丈夫でしょう!
それに、C#はもともとC(C++)言語を改良したものですし
(ただし、Apple Mac好きになったらSwiftにしたほうがいいけど無駄にはなりません)

なぜPythonが人気なのかは、単純で覚えやすい言語だからです。
環境設定も簡単で、かつインタプリタ言語なので、
C#を組めるようになれば解説書なしでPythonを組めると思います。
なので世界中の人が使い人気になったんだと思います。暇な時に使ってみるといいです。
(このブログにも記事があります。念のため)

もし、WEB関係の仕事をしようと思うのでしたら
プラウザ上で動くJavaScriptとphpが必要になります。
サーバを管理するためはWindowsではなく、Linuxの知識が必要になるかもしれません

どちらにしても、どのプログラムでもIF、For、配列の使い方が分かればプログラムは作れますので心配はいりません

細かく1つ1つのプログラムのことを書くと本1冊ぐらい長くなりますので、
この辺でやめておきます。

どの言語でも動くと楽しいですよ
2018/12/19 12:04 PM, from てらちゃん
ご無沙汰しております。

本日は、技術的な御助言ではないのですが・・・

御存知の通り私は今、VS2017 C#を勉強しておりますが、
偶然に以下の記事を目にしました。

「日経 xTECHは2018年10月に「プログラミング言語実態調査」をWebサイト上で実施した。その結果、現場で使われているプログラミング言語がはっきりと浮かび上がった。
利用言語の第1位はC/C++・・・
スキルを磨きたい言語の第1位は「Python」だった。回答者1000人中、実に670人がPythonを選んだ。」(抜粋)

で、端思ったのですが・・・
自分が今勉強している言語は、どの程度の「普遍性」を持っているのか?
疑問が湧いてきました。

無論、今の私のレベルは御指摘されるまでもなく自覚しております。(笑い)
今は兎も角、我武者羅に学習及びプログラム作成と思っているのですが、
又、「一事が万事」を身上としている私でありますが・・・
何か、モヤモヤして変なスランプに陥っております。
こんな私に、一言頂けると目下の幸いです。
宜しくお願いします。
2018/12/18 9:06 PM, from 山田
ご無沙汰しております。

本日は、技術的な御助言ではないのですが・・・

御存知の通り私は今、VS2017 C#を勉強しておりますが、
偶然に以下の記事を目にしました。

「日経 xTECHは2018年10月に「プログラミング言語実態調査」をWebサイト上で実施した。その結果、現場で使われているプログラミング言語がはっきりと浮かび上がった。
利用言語の第1位はC/C++・・・
スキルを磨きたい言語の第1位は「Python」だった。回答者1000人中、実に670人がPythonを選んだ。」(抜粋)

で、端思ったのですが・・・
自分が今勉強している言語は、どの程度の「普遍性」を持っているのか?
疑問が湧いてきました。

無論、今の私のレベルは御指摘されるまでもなく自覚しております。(笑い)
今は兎も角、我武者羅に学習及びプログラム作成と思っているのですが、
又、「一事が万事」を身上としている私でありますが・・・
何か、モヤモヤして変なスランプに陥っております。
こんな私に、一言頂けると目下の幸いです。
宜しくお願いします。
2018/12/18 8:34 PM, from 山田
ご助言通りに行いました所、解決できました。
本当に有難うございます。
又、温かい言葉、有難うございます。
丁度、心が折れかかっていました。(笑い)
2018/11/05 5:19 PM, from 山田
さっきコメントで、twitterのアドレス間違いました。
正解には、
https://twitter.com/terachan_Genes
です。
2018/11/04 11:22 PM, from てらちゃん
山田 さま
コメントありがとうございます。
残念ながら「visual C# 2017 パーフェクトマスター」の本は持っていませんので、正確には回答できません。

なにしろ質問の量が多いので、ここでは書ききれません
なのでホームページ(html形式)で回答させていただきます。
http://www.genestera.com/newfolder18/
へアクセスしてください。
いちおう分かる限りのことは書いておきました。

とにかく、最初はわからないことが多いというか
なにが書いてあるかもわからないものです。
僕は今でも難しい専門用語を使われると何をいっているのかさっぱりわかりません
でも、これだけやる気があれば、すぐに覚えてしまうでしょう

もし、Twitterのアカウント持っていれば
http://www.genestera.com/newfolder18/
のダイレクトメールを使って質問してもらってもけっこうです。

ご健闘をお祈りします。
2018/11/04 11:13 PM, from てらちゃん
ご無沙汰しております。

本日は、「visual C# 2017 パーフェクトマスター」で、「デスクトップアプリを作る」から、「背景イメージを設定」についてご助言をお願いします。
*デスクトップアプリ名=「税込み金額計算アプリ」

先ずは、「デスクトップアプリ」作成操作手順を下記に記します。(本より抜粋)

1、ファイルメニューの新規作成→プロジェクトを選択して
  「新プロジェクト」ダイアログを表示。
2、visual C#→Windows→クラシックデスクトップを選択し、
  Windowsフォームアプリケーション(.NET Frameworke)を選択。
3、保存先を選択。
4、ツールボックスから、Label(8つ)TexBox(2つ)を作成、配置、各プロパテイ設定。
*詳細は、割愛
5、「背景イメージを設定」します。( 1)〜7) )
1)先にソリューションエクスプローラーを開いておく。(質問1)
2)任意のイメージをコピーして、ソリューションエクスプローラーで
プロジェクト名を右クリックして「貼り付け」を選択。(質問2、3、4)
これでプロジェクト用フォルダーにイメージがコピーされます。(質問5)
3)フォーム上の何も表示されていない部分をクリックして、
プロパテイウインドウの表示カテゴリにあるBucgroundlmageを選択して、
値の欄に表示されているボタンをクリックする。
4)「リソースの選択ダイアログ」が表示。
5)ローカルリソースをオンにしてインポートボタンをクリック。
6)プロジェクト用フォルダーにコピーしたイメージを選択して、
開くボタンをクリック。
7)「リソースの選択ダイアログ」Okボタンをクリックし、「背景イメージを設定」完了。

質問1〜立ち上がっている画面の右側上の画面が、
    「先にソリューションエクスプローラーを開いておく。」と言う理解でいいのです
     か?
質問2〜「任意のイメージをコピーして、」とありますが、意味が分かりません。
    意味の説明と、もし操作があるなら、具体的に教えて下さい。
質問3〜ここで言う「プロジェクト名」とは、二つありますが、
    一つは、「ソリューション’税込み金額計算アプリFormsApp2’(1プロジェクト)
    一つは、「税込み金額計算アプリFormsApp2」
    上ですか?下ですか?
質問4〜「プロジェクト名を右クリック」しましたが、貼り付けがを選択できません。
     右クリックして「貼り付け」項目はありますが、薄く表示され反応しません。
     一応、上も下もしてみましたが、同じです。
質問5、〜「プロジェクト用フォルダー」とは、6)にも出てきますが、何処にあるのか
     探し出し、表示する具体的手順をお願いします。

3)、4)、5)の作業をしました。
が、「プロジェクト用フォルダー」を探す事が出来ません出した。
一応、「visual Studio 2017フォルダー」をクリックし
5つのフォルダーの中を探しましたが・・・駄目でした。
 ArchitectureExplore
◆Backup Files
 Code Snippets
ぁStartPages
Templates

以上です。
ご助言、宜しくお願いします。

追伸〜発行元の出版社に問い合わせしましたが、出版社曰く、著者と連絡が取れないとの
   事です。(十日ほど経ちましたが・・・)
2018/11/04 4:03 PM, from 山田
度々、有難うございます。
成功しました。
又、何かありましたら宜しくお願いします。

追伸〜この勉強は疲れますね。デバックの時は、心臓がバクバクします。
2018/10/24 2:34 PM, from 山田
エラー番号は「CS1513」は
「}」が足らないというエラーとなります。
「{」と「}」は必ずセットで使います。
誤解を生まないように、ブログを書き換えてみました。
いちおうコピーアンドペーストしてテストして動きましたので、大丈夫だと思いますが、まだエラーが出るようならお知らせください。
2018/10/24 5:24 AM, from てらちゃん
引用文の掲載、有難うございます。
早速、コピーアンドペーストを行いました。
が、エラーです。
エラーの番号は「CS1513」です。
表示して見てみると「}」後ろ下に波線が出て、カーソルを当てると「private void button1_Click(object sender, EventArgs e)
{
}が必要です。
}が必要です。
} 」と、出ます。
お手数ですが、ご助言をお願いします。
2018/10/23 9:45 PM, from 山田
コメントありがとうございます。
ブログを書いていてこれ程嬉しいことはありません
たぶん、入力ミスだと思います。
特に、;と:の間違い及び入力漏れに注意してもらえばと思います。
コピーアンドペーストできるように引用文をブログに追加しましたので、試してみてください
2018/10/21 6:35 AM, from てらちゃん
嬉しさの余り、「PW作成」に挑戦しました。
が、撃沈!!!
書き写したコードを検証してみます。
(本日は、疲労の為検証は明日にします)
2018/10/20 4:40 PM, from 山田









Trackback
url: トラックバック機能は終了しました。

06
--
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