第5章 プログラムコードを作成
- 新原 俊一
- 1月8日
- 読了時間: 5分
更新日:1月28日
(図-1)は、前章で作成したフローチャートです。
図形にプログラムコードを書いていきます。
尚、コピー、カット&ペーストした図形は、プログラムコードもそのままコピーされています。

まず、追加した定義済み処理図形のコードを作成します。
定義済み処理図形では、関数を定義します。
関数とは「処理のまとまり」です。
関数を使用する目的は2つあります。
1つ目は、プログラムソース中に同じ処理が何度も出てくる場合、その同じ処理を1か所にまとめて再利用するケース。
2つ目は、プログラムソースが大きくなり処理を追いかけるのが大変な場合、まとまった処理を関数として別に書きプログラムの見通しをよくするケース。
関数の呼び出し方には(図-2)のように4通りあります。
「関数を呼出す側」と「関数」はまったく別の世界ですので、正しい呼出し方でないと結果は保証されません。
・パターン1 関数名称(); (戻り値の型や変数名称、パラメータを書く必要はありません)
・パターン2 戻り値の型 戻り値の変数名称 = 関数名称(); (パラメータを描く必要はありま
せん)
・パターン3 関数名称(パラメータ); (戻り値の型や変数名称を書く必要はありません)
・パターン4 戻り値の型 戻り値の変数名称 = 関数名称(パラメータ);

今回のケースは、関数を呼出しエントリーされた数字を受け取りますので、関数呼び出しパターン2になります。
int suuji = ConsoleEntry();
ConsoleEntry 関数にコンソールから数字をエントリーしてもらい、そのエントリー結果を「 suuji 」で受け取ります。
エントリー結果は次の選択処理で使います。

判断図形の左辺の条件図形のコードです。
suuji == 1
判断図形は、if ~ else ~ 形式ですので条件図形には条件式を書きます。

続いて、右辺の条件図形ですが、suujiは1か2に限定されますので何も書きません。

そして、判断図形「数字の分岐」の右辺の繰返しのコードを書きますが、条件図形を除いては内容は左辺の繰返しと同じになっています。
判断図形「偶数の分岐」の左辺の条件図形には以下になります。
hensu1 % 2 == 1

判断図形「偶数の分岐」の右辺の条件図形には何も書きません。

続いて、定義済み処理図形のフローチャートのコードを書きます。
関数の書き方は以下になります。
修飾子 戻り値の型 関数名称(パラメータ)
{
実行する処理
}
「修飾子」は、C#などオブジェクト指向言語で使われるアクセス権限を付与する命令です。
ここでは、「public」をそのまま書いてください。
「static」もそのまま書いてください。
「戻り値の型」は、呼出し元へ何らかの値を返す場合に値の型を指定します。
呼出し元の定義済み処理図形で「int」型を指定していますので 「int」と書きます。
「ConsoleEntry」は、関数名称です。
呼出し元の定義済み処理図形で「ConsoleEntry」を指定していますので「ConsoleEntry」と書きます。
3行目には、コンソールから入力された数字を保管する変数「ent」の初期化を行います。
public static int ConsoleEntry()
{
int ent = 0;

次は、ループ開始図形です。

今まで繰返し処理にはfor命令を使用してきましたが、今回はwhile命令を使用します。
書き方は以下です。
while (条件式)
{
繰返す処理
}
while命令は、条件式を満足する限り繰返します。
while((ent != 1) && (ent != 2))
{
条件式は、「(ent != 1) && (ent != 2)」です。
この条件式は、2つの比較演算子と1つの論理演算子から成り立っています。
比較演算子は、2つの式を比較する場合に用いますが、論理演算子は、複数の条件式を組み合わせ複合的な条件の判断を行います。
・(ent != 1) 比較演算子「!=」は左辺と右辺が等しくないことを表します。
つまり、「ent」は「1」ではないということです。
・(ent != 2) 同じく、「ent」は「2」ではないということです。
・&& 2つの条件式「(ent != 1)」、「 (ent != 2)」が正しいかどうかを判断します。
従って、「entが1ではなくて、かつentが2でもない」ときに繰返しを続行します。(どちらも満足すれば良いわけです)
2つの条件式のどちらかを満足する場合を判断するには「||」を用います。
条件式「(ent != 1) || (ent != 2)は、「entが1ではない、またはentが2ではない」ときに繰返しを続行します。(どちらかを満足すれば良いわけです)
次は、コンソールから数字をエントリーする処理図形です。
// 数字のエントリー(1,2)
Console.Write("1か2のいずれかの数字を入力してください \r\n");
ent1 = int.Parse(Console.ReadLine());
最初に行はコメントです。
後の2行で入力を促すメッセージと入力された数字を受け取る変数を指定しています。
言語によって多少書き方が多少異なりますのでそのまま書いてください。

判断図形左辺の条件図形です。
(ent1 == 1) || (ent1 == 2)
先ほど出てきた論理演算子「||」です。

判断図形右辺の条件図形には何も書きません。

エラーメッセージの処理図形です。
Console.Write("1、2以外の数字が入力されました。再度入力してください。 \r\n");

ループ終了図形です。
}

終了図形です。
return ent;
}
1行目の「return」は、関数から値を呼び出し元へ返す書き方です。
返す必要が無い場合は書きません。

最後になりましたが、Mainのフローチャートの2つのループ終了図形にIDを追加してください。

以上で、コードは完成です。
© 2024 OSA・LTD LLC