【レポート】プログラムの流れの分岐や繰返しに慣れるようにする

【レポート】プログラムの流れの分岐や繰返しに慣れるようにする

目的

プログラムの流れの分岐や繰返しに慣れるようにする。

内容

①キーボードから5つの数字を読み込んで、小さい順に表示するプログラムを作成する。

②入力する回数に従い、点数が減るような仕組みをいれたゲーム(プログラム)を作成する。

ソースコード

以下に内容の①、②のソースコードを示す。 

①-1

①-2(配列使用)

結果

3の①、②の実行結果の画面キャプチャを図1,2、3に示す。

図1 3の①-1の実行結果
図2 3の①-2の実行結果
図3 3の②の実行結果

考察

 3の①-1の小さい順に並べるプログラムは、a~eの5個の変数に値を自身で適当に代入し、まずaをbと比べてaの値がbの値より大きい場合はaとbの値を交換するというのをaと残りのc~eも同様に比べることによって、aには必然的に一番小さい値が入る。これをbの場合、cの場合、dの場合とやることにより、a~eの値が小さい順になる。しかし、このやり方では時間がかかると考え、3の①-2で配列を利用してバブルソートを行った。for文を2回使ったがfor文の中身としては、3の①-1と同じことをした。こちらのプログラムの方が早く、コンパクトになった。

 3の②-2のゲームを作成するプログラムでは、最初のdo文で得点、回数、0~99の数の乱数を初期化しているが、ここで初期化を行ないと、関連しているwhileでゲームをもう一度やるかどうかの際、もしやると「1」を入力した場合doの部分ではなく、例えばその上に初期化しておくと、まだ正解してないのに途中で終わってしまう可能性がある為、最初のdo文で初期化しておいた。

 3つ目のdo文では、数当てゲームの0~99の解答場所であるが、もし0~99以外の数を入力してしまった場合に備え、whileでは0~99の数を入力しないとdo文を抜け出せないというプログラムを作成した。2つ目のdo文では3つめのdo文を囲んでおり、また関連するwhileでは、10回まで数を入力できることにした。この数当てゲームは、100点満点の1回間違えるごとに-10で10回間違えると得点は0点になり、0点になるとゲーム終了に設定した。

 今回のプログラムで使用したif文は、if文の式の値を調べて、その値が真となった時にのみ文を実行した。また、偽の時はelse文を実行した。また、do文はwhileの式を評価した値がtrueである限り、doの中の文を繰り返した。また、for文は初期化部を一度だけ評価・実行した。式を評価した値がtrueである限り、文を実行して、更新部を評価・実行することを繰り返した。

まとめ

 数を小さい順に並び変える際、配列を使い、バブルソートを使うと計算量的に良いプログラムになる。後判定繰り返しは、do文によって実現出来る上、前判定繰り返しは、while文とfor文によって実現でき、またwhile文とfor文は相互に置換することが可能だ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です