初心者のためのC#プログラミング本格入門31 - 初心者がプログラムを改良する方法
今まで解説した知識を組み合わせれば、「自由に計算式を指定して計算するプログラム」を作成できます。しかしながら、初心者は、まだプログラミングに慣れておらず、自分の知識を組み合わせて作るのは難しいと思います。
そこで今回は、元からあるプログラムを改良して、自分が望むプログラムを作る方法を解説します。
最初に、自分が作成したいプログラムに似たプログラムを探します。「自由に計算式を指定して計算するプログラム」に似たプログラムは、22回で解説したプログラムです。このプログラムを元に改良して、「自由に計算式を指定して計算するプログラム」を作成していきましょう。
元となるプログラムは、GetValueメソッドとGetSignメソッドが目的に合致しません。ですから、この2つのメソッドを数回にわたって解説したメソッドを使うように変更すれば、ひとまず目的のプログラムが得られます。
static void Main()
{
string end;
do
{
//計算式を入力
string message = "計算式を入力して下さい";
string inputValue = InputValue( message );
//数値1を取得
System.Tuple<int, string> result = GetValue( inputValue );
int value1 = result.Item1;
inputValue = result.Item2;
//演算子を取得
System.Tuple<char, string> result1 = GetSign( inputValue );
char sign = result1.Item1;
inputValue = result1.Item2;
//数値2を取得
result = GetValue( inputValue );
int value2 = result.Item1;
//計算して結果を表示
int resultValue = Calculation( value1, sign, value2 );
ShowResult( value1, sign, value2, resultValue );
System.Console.WriteLine( "" );
end = GetEnd();
} while ( end != "" );
}
GetValueメソッドは28回で解説したものを使用し、GetSignメソッドは30回で解説したものを使用しています。それに加えて、CalculationメソッドとShowResultメソッドの引数を、char型を指定するように変更しています。
static int Calculation( int value1, char sign, int value2 )
{
int result = 0;
switch ( sign )
{
case '+':
result = value1 + value2;
break;
case '-':
result = value1 - value2;
break;
case '*':
result = value1 * value2;
break;
case '/':
if ( value2 == 0 )
{
result = 0;
}
else
{
result = value1 / value2;
}
break;
case '%':
result = value1 % value2;
break;
}
return result;
}
static void ShowResult(
int value1, char sign, int value2, int result )
{
string message = "計算結果";
System.Console.WriteLine( message );
string expression =
value1 + " " + sign + " " + value2 + " = ";
System.Console.Write( expression );
System.Console.WriteLine( result );
}
この様にすれば、初心者でも目的のプログラムを作りやすくなります。システム屋の私は「プログラミングの専門書をよく読み、サンプルプログラムを自分で打ったりしたけど、いざ自分が作りたいプログラムを作ろうとするとできない。自分はプログラミングに向いていないのだろうか?」という相談をよく受けます。すっかりプログラミングをする自信をなくしているようです。同様の経験をしている人は多いと思います。
ですが、そんな事はありません。プログラミングをするのに特別な才能は要りません。経験者が自由自在にプログラムを作れるのは、似たようなプログラムを沢山作っているからです。初心者から見たら凄い経験者でも、何の苦労もなく特別な才能だけでプログラミングが出来るようになったのではありません。膨大な数のプログラムを作り続け、頭と体で覚えているだけなのです。
プログラミングに対して苦手意識を持っている人は多いと思いますが、プログラミングは思いのほか簡単かつ便利なものなので覚えないと損です。ほんの少しの勇気と好奇心を持って、気楽にプログラミングをしましょう♪