Ascent2022_coll
17/32

アルゴリズムは流れ図を用いて表現することができます。図2.4にユークリッドの互除法の流れ図を示します。キーボードの形の箱は入力されたふたつの数値をそれぞれmとnという名前の記憶場所に保存することを意味します。四角の箱は処理をあらわします。 r ← m%n の % は割り算の余りを求める演算子です。整数同士の割り算 m÷n の余りを r に記憶しています。菱形の記号は場合分けを示します。記憶場所 r の値が0でなければ下に、 0ならば右に進みます。下に進んだ場合は m と n の値を更新してもう一度割り算の余りを求めた後、菱形の前に戻って繰り返します。余りが0になったら n の値を gcd に記憶して終了します。流れ図では上記の3つの基本パターンが明確に区別できていません。そこで、連接、選択、反復に異なる記号を用いる図式が考案されました。一例として、 PAD(Problem Analysis Diagram)を紹介します。図2.5に流れ図との対応、図2.6にユークリッドの互除法のPADによる表現を示します。すべてのアルゴリズムは以下の3つの基本パターン(基本制御構造)の組み合わせで記述することができます。(1)連接:処理Aをして、次に処理Bをする(2)選択:条件が満たされていれば処理A 満たされていなければ処理Bをする(3)反復:条件が満たされている間、処理Aを繰り返すアルゴリズムの図式表現(1):流れ図アルゴリズムの図式表現(2):構造化チャートアルゴリズムの基本パターン図2.4:ユークリッドの互除法のアルゴリズムの流れ図図2.5:PADと流れ図による連接、選択、反復の表現図2.6:ユークリッドの互除法のPADによる表現stratr m % nm ngcd nn rgcdr m % nendr ≠ 0mをnで割った余りnom, n yesPADAB連接選択反復流れ図A条件条件BAnonoyesyesBAB条件A条件Aユークリッドの互除法m, nを入力gcd nr m % ngcdを表示while r ≠ 0m nn rr m % n17

元のページ  ../index.html#17

このブックを見る