第2章 順次処理、選択処理、繰返し処理
- 新原 俊一
- 2024年12月14日
- 読了時間: 4分
更新日:5月30日
第1章で、足し算のアルゴリズムを学びました。
この章では3つの処理方式、「順次処理」、「選択処理」、「繰返し処理」を学びます。
アルゴリズムはこの3つの処理方式を組み合わせることで成り立ちます。
プログラミングの基本中の基本ですのでしっかり身に付けましょう。
(1) 「順次処理」
順次処理とは、「順番に一命令ずつ処理を行う」ことです。
足し算のアルゴリズムは順次処理です。(➀から順番に⑥まで実行されます)
① (プログラム開始命令)
② (代入命令) 「変数1」に「103」を入れなさい
③ (代入命令) 「変数2」に「557」を入れなさい
④ (加算命令)(代入命令) 「変数1」と「変数2」を足した結果を「変数3」に入れなさい
⑤ (表示命令) 「変数3」を表示しなさい
⑥ (プログラム終了命令)
(2) 「選択処理」
選択処理は、「条件を選択して処理を行う」ことです。
「1から5までの数字の中で奇数だけの合計を求めなさい」という命題があります。
この中の条件は、「奇数」です。
そして、「奇数を選択して合計を求める」ことが選択処理になります。
アルゴリズムはこうなります。
① (プログラム開始命令)
② (代入命令) 「変数2」に「0」を入れなさい
③ (代入命令) 「変数1」に「1」を入れなさい *1から5の中の1
➃ (選択命令) 「変数1」が「奇数」なら⑤を行いなさい
⑤ (加算命令)(代入命令) 「変数1」と「変数2」を足して「変数2」に入れなさい
⑥ (代入命令) 「変数1」に「2」を入れなさい *1から5の中の2
⑦ (選択命令) 「変数1」が「奇数」なら⑧を行いなさい
⑧ (加算命令)(代入命令) 「変数1」と「変数2」を足して「変数2」に入れなさい
⑨ (代入命令) 「変数1」に「3」を入れなさい *1から5の中の3
⑩ (選択命令) 「変数1」が「奇数」なら⑪を行いなさい
⑪ (加算命令)(代入命令) 「変数1」と「変数2」を足して「変数2」に入れなさい
⑫ (代入命令) 「変数1」に「4」を入れなさい *1から5の中の4
⑬ (選択命令) 「変数1」が「奇数」なら⑭を行いなさい
⑭ (加算命令)(代入命令) 「変数1」と「変数2」を足して「変数2」に入れなさい
⑮ (代入命令) 「変数1」に「5」を入れなさい *1から5の中の5
⑯ (選択命令) 「変数1」が「奇数」なら⑰を行いなさい
⑰ (加算命令)(代入命令) 「変数1」と「変数2」を足して「変数2」に入れなさい
⑱ (表示命令) 「変数2」を表示しなさい
⑲ (プログラム終了命令)
➃と⑤、⑦と⑧、⑩と⑪、⑬と⑭、⑯と⑰が各々選択処理です。
(3) 繰返し処理
繰返し処理は、「反復して処理を行う」ことです。
(2)のアルゴリズムをよく見ると、「➂、➃、⑤」、「⑥、⑦、⑧」、「⑨、⑩、⑪」、「⑫、⑬、⑭」、「⑮、
⑯、⑰」は何となく同じ処理を繰返しているように見えませんか?
「でも、➂では変数1に1を入れ、⑥では変数1に2を入れ、⑨では変数1に3を入れ、⑫では変数1に4を入れ、⑮では変数1に5をいれてるから違う処理では?」と疑問を持たれた方がいらっしゃると思います。
ところが、繰返し処理を用いると同じになるのです。
アルゴリズムはこうです。
① (プログラム開始命令)
➁ (代入命令) 「変数2」に「0」を入れなさい
➂ (代入命令) 「変数1」に「1」を入れなさい
➃ (繰返し開始命令) 「変数1」が5以下なら⑤~⑧を行い、5を超えたら⑨へ行きなさい
⑤ (選択命令) 「変数1」が奇数なら⑥を行いなさい
⑥ (加算命令)(代入命令) 「変数1」と「変数2」を足した結果を「変数2」に入れなさい
⑦ (加算命令)(代入命令) 「変数1」と「1」を足した結果を「変数1」に入れなさい
⑧ (繰返し終了命令) ➃へ戻りなさい
⑨ (表示命令) 「変数2」を表示しなさい
⑩ (プログラム終了命令)
処理がずいぶん短くなりました。(19行が10行と約半分です)
変数1には最初に1が入っています。(➂)
その後、⑤、⑥で選択処理を経て、⑦で1つ加算されます。
そして、➃~⑧を繰返します。
つまり、繰返しの中では、変数1は1から5までの連続した整数になり、その整数に対して選択処理を行っているのです。
➃で変数1が5を超えたら繰返し処理を終わります。
⑤の行でみると、変数1は繰返すたびに⑦の行で1がたされていますのでこうなります。
<変数1>
繰返しの1回目-> 1 (1÷2=0 余り 1) 奇数
繰返しの2回目-> 2 (2÷2=1 余り 0) 偶数
繰返しの3回目-> 3 (3÷2=1 余り 1) 奇数
・・・
変数2には最初に0が入っています。(➁)
⑥の行で見ると、繰り返すたびに変数1が奇数なら変数1を足しています。
<変数1> <変数2> <変数2> <変数1>
繰返しの1回目-> 1 + 0 = 1 奇数
繰返しの2回目-> 2 1 偶数
繰返しの3回目-> 3 + 1 = 4 奇数
繰返しの4回目-> 4 4 偶数
繰返しの5回目-> 5 + 4 = 9 奇数
これが、繰返し処理のマジックです。
「分かったような分からないような」・・・
3つの処理方式の中で最も難しいので気にすることはありません。
慣れたらなんということの無い処理です。
お気づきの方もいるかもしれませんが、繰返し処理は、後戻りする命令(⑧)や選択命令(➃「変数1が5以下なら」)、順次処理命令(⑤、⑥、⑦)が組み合わさった複合命令セットになっています。
これは、人間が使いやすいよう配慮された命令で、このような命令が他にもたくさんあります。
頭が混乱気味という方は次の章ですっきりしてください。
© 2024 OSA・LTD LLC
