コース: 試験対策:基本情報技術者試験 データ構造とアルゴリズム

合計と平均を求める

最初から複雑なアルゴリズムの プログラムを読むのは大変です。 簡単なプログラムから始めましょう。 配列要素の合計と平均を求める処理は、 非常に基本的でよく行われます。 簡単なアルゴリズムの例として、 最初に合計と平均を求めてみましょう。 配列要素の合計を求めるのには、 配列要素を先頭から順に、 合計を求める変数に加算していきます。 そのときに使われるのが、 要素番号と呼ばれるインデックスです。 要素番号を使い、 配列要素を順にアクセスします。 基本情報技術者試験では、 要素番号は1から始まるものが多いので、 この図の要素番号も1から開始しています。 合計を求める変数には、 最初に0を格納しておきます。 そこに配列の1番目の要素を加算します。 すると0足す 67 ですから 合計は 67 になります。 次に配列の2番目の要素を加算します。 すると 67 足す 23 ですから、 合計は 90 になります。 同様に次々に要素を加算していきます。 全部の要素を加算し終わると、 合計は 364 になります。 求めた合計を要素数の7で割れば、 平均を求めることができます。 プログラムも確認してみましょう。 これは疑似言語で記述した 合計と平均を求めるコードです。 最初に配列と使用する変数を宣言します。 変数 i が配列の要素番号を示します。 要素番号を1から7まで増加させながら、 変数 sum に要素番号をの指す 配列要素を加算します。 合計を求めた変数の sum を 要素数の7で割れば、 平均を求めることができます。 なおこの例は、平均を求める変数 average が整数型なので、 少数点以下がある場合には 切り捨てられます。 このようにループを使って 配列要素を処理することで、 仮に配列要素が大量にあったとしても、 合計と平均を求めることができます。 もし偶数の値のみ合計を求める場合には、 どうすればいいでしょうか。 その時には次のような if 文を追加して 偶数かどうかの判定を行います。 偶数かどうかは 常用演算を行う mod を使って 2で割った余りが0かどうかで判定します。 また偶数の個数がわからないので、 if 文の中で 変数 count を使って数えています。 平均は、この count で 合計を割れば求めることができます。 この時、偶数値がひとつもないと 合計を0で割ってエラーが出るので、 if 文で0より大きいことを 確認しています。 このように繰り返しの中で、 if 文による判定を行い、 より複雑な処理が可能になります。

目次