|
情報系/IT系の広告を掲載しています。(広告一覧) |
|
|
フローチャート入門[1] |
6.擬似言語 |
形式 | 用例 |
処理 | GR4←GR1 & 1 |
形式 | if(条件) { 条件が正しかった場合に行う処理 } else { 条件が正しくなかった場合に行う処理 } |
用例 | if(カウンタの最下位ビット==0) { GR0=GR0 or #8000 GR0を1ビット分右へシフト } |
形式 | while(条件) { 反復する処理 } |
用例 | while(残り反復回数>0){ GR4=GR1 & 1 ビット1数=ビット1数+GR4 GR1を1ビット分右へシフト 残り反復回数を−1 } |
形式 | repeat { 反復する処理 } until(条件) |
用例 | repeat { S=S+X[i] i=i+1 } until(S>5) |
形式 | for(初期化処理;終了条件;増分処理) { 反復する処理 } |
用例 | for(i=0;i<5;i=i+1) { S=S+X[i] } |
形式 | for(初期化;終了条件;増分処理) { 反復する処理−前段 if(終了条件) exit 反復する処理−後段 } |
用例 | i=0 for(;;) { S=S+X[i] if(i>=4) exit i=i+1 } |
形式 | for(初期化;終了条件;増分処理) 反復する処理 |
用例 | for(i=0;i<5;i=i+1) S=S+X[i] |
形式 | if(条件) 条件が正しかった場合に行う処理 |
用例 | if(A==0) B=B+1 |
要素 | 用例 |
○定義する変数名等 | ○整数型:GR0,GR2 |
形式 | 用例 |
・処理 | ・GR4←GR1 & 1 |
形式 | ▲条件 │条件が正しかった場合に行う処理 ┼ │条件が正しくなかった場合に行う処理 ▼ |
用例 | ▲ビット1のカウンタの最下位ビット=0 │・GR0←GR0 or #8000 │・GR0を1ビット分右へシフト ┼ ▼ |
新形式 | ▲条件 │条件が正しかった場合に行う処理 ▼ |
用例 | ▲ビット1のカウンタの最下位ビット=0 │・GR0←GR0 or #8000 │・GR0を1ビット分右へシフト ▼ |
形式 | ■条件 │反復する処理 ■ |
用例 | ■残り反復回数>0 │・GR4←GR1 & 1 │・ビット1数←ビット1数+GR4 │・GR1を1ビット分右へシフト │・残り反復回数を−1 ■ |
新形式 | ■ │反復する処理 ■条件 |
用例 | ■ │・GR4←GR1 & 1 │・ビット1数←ビット1数+GR4 │・GR1を1ビット分右へシフト │・残り反復回数を−1 ■残り反復回数>0 |
形式 | ■変数:初期値,反復条件,増分 │反復する処理 ■ |
用例 | ■i:0,i<5,1 │・S←S+X[i] ■ |
ビット1数=0 while(GR0==0) { オーバフロー・フラグ=GR0の最下位ビット GR0を1ビット分右へシフト if(オーバフロー・フラグ==1) { ビット1数=ビット1数+1 } } GR0=ビット1数を15ビット分左へシフト return GR0 |
○整数型:PARITY(整数型:GR0) ○整数型:ビット1数,オーバフロー・フラグ ・ビット1数←0 ■GR0=0 │・オーバフロー・フラグ←GR0の最下位ビット │・GR0を1ビット分右へシフト │▲オーバフロー・フラグ=1 ││・ビット1数←ビット1数+1 │▼ ■ ・GR0←ビット1数を15ビット分左へシフト ・return GR0 |
備考 木構造とは、文字どおり木の形の、データやプログラムの表現形式です。 木構造でのプログラム設計の図法には、PADなどがあります。 木構造でのプログラムの設計では、 反復や選択の中に出てくる処理を、条件よりも右に1段ずらして記述します。 つまり、逐次で行う処理は縦に並べて、 反復や選択の中身は横へ伸ばして行く、2次元の書き方になります。 木構造での設計図は、2次元の図になります。 高級言語でのプログラムも、各行は横方向で、その行を縦に並べます。 このため木構造でプログラムを設計すると、 2次元の対応関係を残しながら、 設計図からプログラムへと分かり易く書換えることが出来ます。 因みに3次元的な図としては、NSチャートがあります。 図ですから本来2次元なのですが、 反復を斜め方向に対応させることで、擬似的に3次元になっています。 |
7.論理 |
8.ループの書換え |
形式 | 実例 | |
元 | while(条件) { 処理 } | S=0;i=0; while(i<5) { S=S+X[i] i=i+1 } |
┌──→│ │ /\ │ / \N │ < 条件 >─┐ │ \ / │ │ \/Y │ │ ┌┴─┐ │ │ │処理│ │ │ └┬─┘ │ └───┘ │ ┌───┘ ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──→│ │ /\ │ / \N │ < i<5 >─┐ │ \ / │ │ \/Y │ │┌──┴──┐│ ││S←S+X[i] ││ ││ i←i+1 ││ │└──┬──┘│ └───┘ │ ┌───┘ ↓ |
形式 | 実例 | |
変 | repeat { 処理 } until(not条件) | S=0;i=0; repeat { S=S+X[i] i=i+1 } until(i>=5) |
┌──→│ │ ┌┴─┐ │ │処理│ │ └┬─┘ │ /\ │ Y / \ └─< 条件 > \ / \/N ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──→│ │┌──┴──┐ ││S←S+X[i] │ ││ i←i+1 │ │└──┬──┘ │ /\ │ N / \ └─< i>=5 > \ / \/Y ↓ |
形式 | 実例 | |
元 | while(条件) { 処理 } | i=0;S=0; while(i<n) { S=S+X[i] i=i+1 } |
┌──→│ │ /\ │ / \N │ < 条件 >─┐ │ \ / │ │ \/Y │ │ ┌┴─┐ │ │ │処理│ │ │ └┬─┘ │ └───┘ │ ┌───┘ ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──→│ │ /\ │ / \N │ < i<n >─┐ │ \ / │ │ \/Y │ │┌──┴──┐│ ││S←S+X[i] ││ ││ i←i+1 ││ │└──┬──┘│ └───┘ │ ┌───┘ ↓ |
形式 | 実例 | |
変 | if(条件) { repeat { 処理 } until(not条件) } | S=0;i=0; if(i<n) { repeat { S=S+X[i] i=i+1 } until(i>=n) } |
/\ / \N < 条件 >─┐ \ / │ \/Y │ ┌──→│ │ │ ┌┴─┐ │ │ │処理│ │ │ └┬─┘ │ │ /\ │ │ Y / \ │ └─< 条件 > │ \ / │ \/N │ │←──┘ ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ /\ / \N < i<n >─┐ \ / │ \/Y │ ┌──→│ │ │┌──┴──┐│ ││S←S+X[i] ││ ││ i←i+1 ││ │└──┬──┘│ │ /\ │ │ N / \ │ └─< i>=n > │ \ / │ \/Y │ │←──┘ ↓ |
形式 | 実例 | |
元 | repeat { 処理 } until(条件) | S=0;i=0; repeat { S=S+X[i] i=i+1 } until(i>=5) |
┌──→│ │ ┌┴─┐ │ │処理│ │ └┬─┘ │ /\ │ N / \ └─< 条件 > \ / \/Y ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──→│ │┌──┴──┐ ││S←S+X[i] │ ││ i←i+1 │ │└──┬──┘ │ /\ │ N / \ └─< i>=5 > \ / \/Y ↓ |
形式 | 実例 | |
変 | 処理 while(not条件) { 処理 } | S=X[0];i=1; while(i<5) { S=S+X[i] i=i+1 } |
┌┴─┐ │処理│ └┬─┘ ┌──→│ │ /\ │ / \N │ < 条件 >─┐ │ \ / │ │ \/Y │ │ ┌┴─┐ │ │ │処理│ │ │ └┬─┘ │ └───┘ │ ┌───┘ ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──┴──┐ │S←S+X[i] │ │ i←i+1 │ └──┬──┘ ┌──→│ │ /\ │ / \N │ < i<5 >─┐ │ \ / │ │ \/Y │ │┌──┴──┐│ ││S←S+X[i] ││ ││ i←i+1 ││ │└──┬──┘│ └───┘ │ ┌───┘ ↓ |
形式 | 実例 |
for(;;) { 処理A if(条件) exit 処理B } | S=0;i=0; for(;;) { S=S+X[i] if(i>=4) exit i=i+1 } |
┌──→│ │ ┌─┴─┐ │ │処理A │ │ └─┬─┘ │ /\ │ / \Y │ < 条件 >─┐ │ \ / │ │ \/N │ │ ┌─┴─┐ │ │ │処理B │ │ │ └─┬─┘ │ └───┘ │ ┌───┘ ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──→│ │┌──┴──┐ ││S←S+X[i] │ │└──┬──┘ │ /\ │ / \Y │ < i>=4 >─┐ │ \ / │ │ \/N │ │┌──┴──┐│ ││ i←i+1 ││ │└──┬──┘│ └───┘ │ ┌───┘ ↓ |
形式 | 実例 |
処理A while(not条件) { 処理B 処理A } | i=0;S=X[0]; while(i<4) { i=i+1 S=S+X[i] } |
┌─┴─┐ │処理A │ └─┬─┘ ┌──→│ │ /\ │ / \N │ < 条件 >─┐ │ \ / │ │ \/Y │ │ ┌─┴─┐ │ │ │処理B │ │ │ └─┬─┘ │ │ ┌─┴─┐ │ │ │処理A │ │ │ └─┬─┘ │ └───┘ │ ┌───┘ ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──┴──┐ │S←S+X[i] │ └──┬──┘ ┌──→│ │ /\ │ / \N │ < i<4 >─┐ │ \ / │ │ \/Y │ │┌──┴──┐│ ││ i←i+1 ││ │└──┬──┘│ │┌──┴──┐│ ││S←S+X[i] ││ │└──┬──┘│ └───┘ │ ┌───┘ ↓ |
形式 | 実例 |
-処理B; repeat { 処理B 処理A } until(条件) | S=0;i=-1; repeat { i=i+1 S=S+X[i] } until(i>=4) |
┌─┴─┐ │-処理B│ └─┬─┘ ┌──→│ │ ┌─┴─┐ │ │処理B │ │ └─┬─┘ │ ┌─┴─┐ │ │処理A │ │ └─┬─┘ │ /\ │ N / \ └─< 条件 > \ / \/ Y ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──┴──┐ │ i←i-1 │ └──┬──┘ ┌──→│ │┌──┴──┐ ││ i←i+1 │ │└──┬──┘ │┌──┴──┐ ││S←S+X[i] │ │└──┬──┘ │ /\ │ N / \ └─< i>=4 > \ / \/ Y ↓ |
形式 | 実例 |
repeat { 処理A 処理B } until(条件) -処理B | S=0;i=0; repeat { S=S+X[i] i=i+1 } until(i>=5) |
┌──→│ │ ┌─┴─┐ │ │処理A │ │ └─┬─┘ │ ┌─┴─┐ │ │処理B │ │ └─┬─┘ │ /\ │ N / \ └─< 条件 > \ / \/ Y ┌─┴─┐ │-処理B│ └─┬─┘ ↓ | ┌┴─┐ │S←0│ │i←0│ └┬─┘ ┌──→│ │┌──┴──┐ ││S←S+X[i] │ │└──┬──┘ │┌──┴──┐ ││ i←i+1 │ │└──┬──┘ │ /\ │ N / \ └─< i>=5 > \ / \/ Y ┌──┴──┐ │ i←i-1 │ └──┬──┘ ↓ |
9.書換え |
フローチャート入門[2] |
|
|
|
|