陽だまりの中で

~香川フリーランスのぼやき~

HelloWorldからのC#入門!!九九表完成・・・からのレッスン問題

f:id:hidamarinonakade:20150228165056p:plain

はじめに

こんにちわ、かなたです。

本日は昨日に引き続きC#に関する記事です。

 

なぜか昨日PVがいつもの20倍に増えていて少しびっくりしています。
おそらく一部の方が何度も開きなおしたと思われます。

何をされてたのでしょう?

 

それはさておき、今回は昨日課題にしていた九九表の桁合わせの解答からしていきたいと思います。

昨日の記事はこちら

HelloWorldからのC#入門!簡単な九九表作成してみよう - ひなかなHelloWorldからのC#入門!簡単な九九表作成してみよう - ひなかな

はじめにこんにちわ。かなたです。今回はプログラム言語C#について記事にしてみたいと思います。C#についての前置きや開発環境などについては他のブロガーさんにお任せ...

今回から画像は余分なところを少しカットして使用するようにしようと思います。

久しぶりの記事作成だったため操作方法をほぼ忘れかけていたのは内緒です(笑)

 

九九表完成!!

まずは昨日のおさらいから・・・

Console.WriteLine("九九表");

int kotae = 0;//答えを入れる整数の型

for( int dan = 1, dan < 10, dan++)//段の整数の型を1から10まで設定しつつ「{ }」の中のプログラムを実行

{

 for( int retu = 1, retu < 10, retu++)//列の整数の型を1から10まで設定しつつ「{ }」の中のプログラムを実行

 {

  kotae = dan * retu;//答えの型に段×列の答えを代入

  Console.Write( kotae );//答えをコンソールに表示(改行なし)

 }

 Console.WriteLine();//改行

 ここまでが前回の記事で学んだことでしたね。

これを実行すると・・・。

f:id:hidamarinonakade:20150301172557p:plain

以上のようになります。

 

列の区分けもされずすべて段の文字が団子状態です。

段だけに・・・ボソ

これでは非常に見づらいですね・・・。

それではどうすれば見やすくなるでしょうか?

列の間にスペースを入れますか?

そうすると、一ケタの数字はいいとしても二ケタの数字になるとおかしな歪が生まれてきて下の段とずれが生じてきますね?

 

では何が一番最善の方法なのか・・・。

答えは簡単です。

「kotae」の数字を3ケタ表示ということにしてやればいいのです。

とはいっても「001」等の表示になると余計見づらいので0はついてほしくありません。

そんな便利なものがあるものかね・・・。

そう思ったそこのあなた!

実は存在してしまうのです!

Console.Write(kotae);

の部分を・・・

Console.Write("{0,3}",kotae);

とするだけ!

こうするだけであら不思議!

3ケタ表示分のスペースを確保しつつ右詰めとなります。

 

これに書き換えて実行したものがこちら

f:id:hidamarinonakade:20150301172204p:plain

どうですか?

見やすさが全然違うと思います。

ちなみに「"{0,3}"」の部分は3の部分を4にすると四ケタ表示に。
-3にすると三ケタ表示の左詰めとなります。

これで、本当の意味での九九表の完成です!

 

やってきたことは本当に大したことがないのですが、どうでしょうか?

少しはC#・・・慣れてきましたでしょうか?

私のC#の先生には「一度出来たからといって満足せずに、何も見ずに何度も作ってみて作成時間をどんどん短くできるようになれば、自ずと自分の力になる。」と仰っていました。

私も記事にする前になんども自分で書いていました。

それによって確かに理解も深まりますし、構文も頭に入ってきたように思います。

皆さんも是非試してみてください。

 

 

簡単なレッスン問題

ここまでで九九表の作成は完了しました。

これを反復練習することで自分の力になると私は信じております。

そして、反復練習も済んで何も見ずに九九表が作れるようになったならば、次はこちらの問題をやってみてください。

  1. 10から0まで表示
  2. 10までの偶数値の合計値を表示

とりあえずは以上の2つです。

両方ともfor文を用いて作れば非常に簡単なプログラム構成となります。

それぞれ皆さんで考えて組んでみてください。

できたならば以下にプログラムを載せておきますのでチェックしてみましょう。

 

1.10~0まで表示

for ( int i = 10, i <= 0, i-- )

{

 Console.Write( i + " ");

}

 まず初めに10から表示するので始まりを10とします。

そこから1ずつ減っていくので、「--」をつけます。

そしてiが0になるまで繰り返しiをコンソールに表示させ続けます。

その時、ただ単にiだけを表示してしまうと

「10987654321」

 という風に団子状態になってしまうので、スペースを空けます。

なぜ、九九表の時のテクニックを使わないのかというとただの見栄えの問題です(笑)

それではこれを実行してみましょう。

f:id:hidamarinonakade:20150301175847p:plain

このように表示されればオッケーです。

 

2.10までの合計値を表示

int kotae = 0;

for ( int i = 0, i <= 10, i++ )

{

 if (i % 2 == 0 )

 kotae = kotae + i;

}

Console.Write(kotae);

 今回は1問目に比べて少しステップアップしています。

まず要点は

  • 計算が含まれること
  • 偶数値を判定すること

この二つです。

それでは少しずつ見ていきましょう。

 

まずは答えを入れる型を用意しています。

int kotae = 0;

次に例のごとくfor文で0から10まで繰り返し処理をしています。

for ( int i = 0, i <= 10, i++ );

{

}

 その中で「i」が偶数のときを判定します。

偶数の判定の仕方としては、「i」を2で割って余りが0ならば偶数ということです。

i % 2 == 0;

この部分です。

「%」は割った余りを求める計算式です。

もし、偶数なら足し算を行いますのでif文を使います。

「if = もし」ですから覚えやすいでしょう。

if ( i % 2 == 0)

この分の後に書かれたプログラムが実行されることになります。

今回はブロック({ }で囲まれたもの)を使用していませんが、わかりやすくブロックを使用しても可能です。

if ( i % 2 == 0)

{

 kotae = kotae + i;

]

 上のようなイメージです。

 

最後にkotaeをコンソールに表示させています。

以上のプログラムを実行させるとこうなります。

f:id:hidamarinonakade:20150301181702p:plain

 2 + 4 + 6 + 8 + 10 = 30なので、こう表示されればオッケーです。

 

 

次回までの課題

以上の問題を自分なりに解いてみておいてください。

これらには乱数を用いますので、乱数について各人調べてプログラムを組んでみてくださいね。

次回解説から行いたいと思います。

 

 

おわりに

いかがだったでしょうか?

九九表の完成から簡単な問題二つを解いてもらいました。

それから乱数を用いた計算問題を二つ宿題として出しました。

C#は慣れれば意外と簡単なものだと実感していただけたと思います。

とっつきやすいプログラムではないでしょうか?

 

これからプログラムを組むにあたって、気にしておいていただきたいことがいくつかあるので紹介しておきます。

  1. 文法の変数名はわかりやすいものにする
    例えば「i」ではなく「count」など(簡単なプログラムについては例外も有)
  2. バグを考慮した組み方をする
    これは1に準ずる
  3. ソースはわかりやすく、拡張しやすいようにする
    これも1に準じますが、クラスをうまい具合に使っていくと良い

 

今回の記事から少し見やすさを追求していましたがいかがでしょうか?

まだ、少し見づらいでしょうかね・・・^^;

見やすい記事を書けるように精進していきたく思いますので何かあればコメントででも優しくご指摘いただけると幸いです。