トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

合計を求める

合計を求める

複数個のデータの合計を計算するには反復構造(ループ)を利用する。たとえば、1から10までの整数の総和の式は通常次のように記す。

1+2+3+4+5+6+7+8+9+10

実際には次のように計算している。

総和+1→総和
総和+2→総和
総和+3→総和
総和+4→総和
総和+5→総和
総和+6→総和
総和+7→総和
総和+8→総和
総和+9→総和
総和+10→総和

これは1から10までの整数を数えるカウンタを使えば、次のようにまとめることができる。

総和+カウンタ→総和

この式をカウンタを1から10まで変化させるときに処理すれば総和を求められる。

  • 総和を代入する領域の初期値は0にしておく。
  • カウンタの初期値や増分を変えることで様々なパターンに対応できる。

フローチャートは次のようになる。

 問題集

条件式は継続条件です。

20ページ

1からnまでの整数を2刻みで変化させ、それを加算していく。
初期値 条件式 カウンタ増分
1 cnt <= n 2 ans+cnt→ans

21ページ

1からnまでの整数を1刻みで変化させ、その都度2n-1を加算していく。
初期値 条件式 カウンタ増分
1 cnt <= n 1 ans+2*cnt+1→ans

22ページ 設問1

2からnまでの整数を2刻みで変化させ、1/nを加算していく。
初期値 条件式 カウンタ増分
2 cnt <= n 2 ans+1/cnt→ans

22ページ 設問2

1からnまでの整数を1刻みで変化させ、1/2nを加算していく。
初期値 条件式 カウンタ増分
1 cnt <= n 1 ans+1/2*cnt→ans

23ページ 問題4

nから1までの整数を1刻みで変化させ、それをかけていく。
初期値 条件式 カウンタ増分
n cnt >= 1 -1 ans*cnt→ans

23ページ 問題5

aをn回かける。
初期値 条件式 カウンタ増分
1 cnt <= n 1 ans*a→ans

24ページ

増分が可変なので増分の変化分zを1ずつ変化させ、それをカウンターに加算し、合計を求める
初期値 条件式 カウンタ増分
1 cnt <= n z ans+cnt→ans
zの初期値は2、増分は1

25ページ

  • 二重ループで処理する。
  • 外側ループは項数1からnをカウントする
  • 内側ループでは各項の値(1から項数の和)を求める
  • 各項の値を求めたら合計に加算する
初期値 条件式 カウンタ増分
1 cnt1 <= n 1 ans+s→ans

sは内側ループで求める
初期値 条件式 カウンタ増分
1 cnt2 <= cnt1 1 s+cnt2→s

26ページ 問題7

値aをb回かける。
初期値 条件式 カウンタ増分
1 cnt <= b 1 ans+a→ans
aをb回足す

26ページ 問題8

aからbが何回引けるかをカウントする。


アルゴリズムとデータ構造(H17)