・ 文1 ・ 文2 : ・ 文n |
||
文1; 文2; : 文n; |
・t ← a ・a ← b ・b ← t |
|
var t = a; a = b; b = t; |
▲ 条件式 | | 条件式の結果が true のときの処理 | ▼ |
|
if (条件式) { 条件式の結果が true のときの処理 } |
○ 変数 t ▲ a > b |・t ← a |・a ← b |・b ← t ▼ |
|
if (a > b) { var t = a; a = b; b = t; } |
▲ 条件式 | | 条件式の結果が true のときの処理 + | 条件式の結果が false のときの処理 | ▼ |
|
if (条件式) { 条件式の結果が true のときの処理 } else { 条件式の結果が false のときの処理 } |
▲ a が 2 で割り切れる |・"a は偶数" を表示 + |・"a は奇数" を表示 ▼ |
|
if (a % 2 == 0) { document.write("a は偶数"); } else { document.write("a は奇数"); } |
▲ 条件式1 | | 条件式1 の結果が true のときの処理 | + 条件式2 | | 条件式2 の結果が true のときの処理 | : : | + 条件式n | | 条件式n の結果が true のときの処理 | + | | すべての条件式の結果が false のときの処理 | ▼ |
if (条件式1) { 条件式1 の結果が true のときの処理 } else if (条件式2) { 条件式2 の結果が true のときの処理 : } else if (条件式n) { 条件式n の結果が true のときの処理 } else { すべての条件式の結果が false のときの処理 } |
上記のフローチャートは、以下のように書くこともできます。 |
▲ a > 0 |・"a は正数" を表示 | +a = 0 |・"a はゼロ" を表示 | + |・"a は負数" を表示 ▼ |
|
if (a > 0) { document.write("a は正数"); } else if (a == 0) { document.write("a はゼロ"); } else { document.write("a は負数"); } |
なお、JavaScript では、while ループ、フローチャートでは、until ループが標準です。
繰返し条件(while ループ) | 終了条件(until ループ) | ||
---|---|---|---|
前判定 | ■ 繰返し条件式 | | 繰返し処理 | ■ |
■▽ 終了条件式 | | 繰返し処理 | ■ |
|
・i ← 1 ■ i <= 10 |・変数 i を表示 |・変数 i のカウントアップ ■ --- var i = 1; while (i <= 10) { document.write(i); i++; } |
・i ← 1 ■▽ i > 10 |・変数 i を表示 |・変数 i のカウントアップ ■ |
||
後判定 | ■ | | 繰返し処理 | ■ 繰返し条件式 |
■ | | 繰返し処理 | ■▽ 終了条件式 |
|
・i ← 1 ■ |・変数 i を表示 |・変数 i のカウントアップ ■ i <= 10 --- var i = 1; do { document.write(i); i++; } while (i <= 10); |
・i ← 1 ■ |・変数 i を表示 |・変数 i のカウントアップ ■▽ i > 10 |
■ カウンター変数 = 初期値, 値1, 値2, ..., 値n | | 繰返し処理 | ■ | |
○ 整数型: i ■ i = 1, 2, 3, ..., 10 |・変数 i を表示 ■ |
○ 整数型: i ■ i = 1, 2, 3, ..., n |・星印(*)を表示 ■ | |
□"StarPrint01.html"
|
○ 整数型: i, j ■ i = 1, 2, 3, ..., n |■ j = 1, 2, 3, ..., n ||・星印(*)を表示 |■ |・改行する ■ | |
□"StarPrint02.html"
|
○ 整数型: min = a ○ 整数型: max = a ▲ min > b |・min ← b ▼ ▲ min > c |・min ← c ▼ ▲ max < b |・max ← b ▼ ▲ max < c |・max ← c ▼ | |
□"MinMax01.html"
|
○ 整数型: s, i ・s ← 0 ■ i = 1, 2, ... n |・s ← s + i ■ | |
□"Sum01.html"
|
a と b の最大公約数を GCD(a, b) と表します。 a > b > 0 とし、a を b で割ったときのあまりを r >= 0 とします。 このとき次式が成立します。 GCD(a, b) = GCD(b, r)
○ 整数型: r ・r ← a を b で割った余り ■ r != 0 |・a ← b |・b ← r |・r ← a を b で割った余り ■ | |
□"GCD01.html"
|
○ 整数型: r ・r ← a を b で割った余り ■ r != 0 |・a ← b |・b ← r |・r ← a を b で割った余り ■ |
|
○ 整数型: b[] ○ 整数型: i ■ i = 0, 1, ... Na - 1 |・b[i] ← a[i] ■ | |
□"Array31.html"
|
○ 整数型: c[] ○ 整数型: i ■ i = 0, 1, ... Na - 1 |・c[i] ← a[Na - 1 - i] ■ | |
□"Array31.html"
|
○ 整数型: d[] ○ 整数型: i ■ i = 0, 1, ... Na - 1 |・d[i] ← a[(i + 1) を Naで割ったあまり] ■ | |
□"Array31.html"
|
○ 整数型: i ■ i = 0, 1, ... [Na / 2] |・a[i] と a[Na - 1 - i] とを交換する ■ | |
□"Array31.html"
|
○ 整数型: w = a[0]; ○ 整数型: i ■ i = 0, 1, ... Na - 2 |・a[i] ← a[i + 1] ■ ・a[a.length - 1] ← w | |
□"Array31.html"
|
○ 整数型: i ・i ← 0 ■ b[i] != 最大値 |・i のカウントアップ ■ ・変数 i の値を表示 | |
□"ElementSize01.html"
|
○ 整数型: i ■ i = 0, 1, ... Na - 1 |▲ a[i] = n ||・添字 i を返す |▼ ■ ・値 -1 を返す | |
□"SequentialSearch.html"
|
○ 整数型: l = 0, h = Na - 1, m ■ l <= h |・m ← [(l + h) / 2] |▲ a[m] < n ||・l ← m + 1 || |+ a[m] > n ||・h ← m - 1 |+ ||・変数 m を返す |▼ ■ ・値 -1 を返す | |
□"BinarySearch.html"
|
○ 整数型: countValue[] ○ 整数型: count = 0 ○ 整数型: prevValue = a[0] ○ 整数型: i, j ・ j ← 0 ■ i = 0, 1, ... Na - 1 |▲ prevValue = a[i] ||・count のカウントアップ |+ ||・countValue[j] ← prevValue ||・countValue[j + 1] ← count ||・j ← j + 2 ||・count ← 1 ||・prevValue ← a[i] |▼ ■ ・countValue[j] ← prevValue ・countValue[j + 1] ← count ・配列 countValue を返す | |
□"Count01.html"
|
○ 整数型: rank[] ○ 整数型: i, j ■ i = 0, 1, ... Na - 1 |・rank[i] ← 1 |■ j = 0, 1, ... Na - 1 ||▲ a[j] > a[i] |||・rank[i] のカウントアップ ||▼ |■ ■ ・配列 rank を返す | |
□"Rank01.html"
|
○ 整数型: c[] ○ 整数型: i = 0, j = 0, k = 0 ■ a[i] < 最大値 または b[j] < 最大値 |▲ a[i] < b[j] ||・c[k] ← a[i] ||・k のカウントアップ ||・i のカウントアップ || |+ a[i] = b[j] ||・c[k] ← a[i] ||・k のカウントアップ ||・i のカウントアップ ||・j のカウントアップ |+ ||・c[k] ← b[j] ||・k のカウントアップ ||・j のカウントアップ |▼ ■ ・c[k] ← 最大値 ・配列 c を返す | |
□"Marge01.html"
|
分類 | 計算時間 |
---|---|
バブル・ソート(交換ソート) | O(n2) |
選択ソート | O(n2) |
挿入ソート | O(n2) |
クイック・ソート | O(n*log2n) |
バケット・ソート | O(n) |
基数ソート | O(n) |
○ 整数型: i, j ■ i = 0, 1, ... Na - 2 |■ j = i + 1, i + 2, ... Na - 1 ||▲ a[i] > a[j] |||・a[i] と a[j] の値を交換 ||▼ |■ ■ ・配列 a を返す | |
□"Sort01.html"
|
○ 整数型: i, j ■ i = 0, 1, ... (Na - Nb + 1) |■ j = 0, 1, ... Nb - 1 ||▲ a[i + j] != b[j] |||・ループから脱出 ||▼ |■ |▲ j >= Nb ||・ループから脱出 |▼ ■ ▲ j < Nb |・i ← -1 ▼ ・変数 i を返す | |
□"StringSearch01.html"
|
○ 整数型: prime[n] ○ 整数型: primevalue[] ○ 整数型: i, j ・配列 prime の要素をすべて true にする ■ i = 2, 3, ... n - 1 |▲ prime[i] ← true ||■ j = 2 * i, 2 * i + j, ... n - 1 |||・prime[j] ← false ||■ |▼ ■ ・j ← 0 ■ i = 2, 3, ... n - 1 |▲ prime[i] ← true ||・primevalue[j] ← i ||・j のカウントアップ |▼ ■ ・配列 primevalue を返す | |
□"Eratosthenes.html"
|