構造化定理
一つの入口と一つの出口を持つプログラムであれば、基本的な三つの構造単位の組み合わせで表現できる。
〇順次 〇選択 〇繰り返し(ループ)
4.順次
上から下に処理が流れる制御(水が上から下に流れるイメージ)
例題1 次のフローチャートを実行すると各変数の値はどうなるか
例題2 次のフローチャートで各変数の値がどのように変化するか。表に書きなさい。
処理が進むときに変数の値がどのように変化するかを追っていくことを、トレースという。
5.選択
選択とは
「ある条件」に応じて処理(命令)を2通り以上に分けて実行する構造。2通りに分けて実行する構造を双岐分岐、3通り以上に分けて実行する構造を多岐分岐とよぶ。
選択 双岐分岐
ひし形の図形記号の中に、条件式(比較演算式)を記入する。
条件式の結果が真の場合が「YES」、偽の場合が「NO」。
条件式の例
論理演算を使った条件式の例
JAVA
if-else文で記述する。
if(条件式){
___真の場合の処理
}else{
___偽の場合の処理
}
「偽の場合の処理」がない場合
if(条件式){
___真の場合の処理
}
例題1
次の流れ図を実行すると終了時の変数aの値はどうなるか。
例題2
次の流れ図を実行すると終了時の変数aとbの値はどうなるか。
選択 多岐分岐
多岐分岐には3通りの書き方がある
書き方1
書き方2
書き方3
JAVA
多岐分岐は、JAVAでは、if-elseif-else文 switch-case文 if-else文のネストなど複数の記述法がある。
ネストとは
- 構造の中に同じ構造があることをネストとよぶ。 例 if文の中にif文 for文の中にfor文がある
- ネストは、「深い」「浅い」と表現する
- ネストが深くなると、プログラムが読みにくくなる、ネストは浅い方が望ましい
確認問題
1.構造化定理を説明しなさい。
2.空欄を埋めなさい。
3.次の判断を条件式で書け。
(1)得点(ten)が60点以上で、出席率(syu)が80%以上のとき
(2)得点(ten)が60点未満または、出席率(syu)が80%未満のとき
(3)(2)で、NOT演算子を使う
(4)得点(ten)が100点以下で、0点以上のとき
(5)得点(ten)が100点より大きい、または0点未満のとき
(6)aとbの値、どちらかがマイナスのとき
(7)(6) で、NOT演算子を使う
(8)aの値がマイナスで、bの値が0でないとき
4.次のフローチャートを作成しなさい。
(1)変数tokutenが、80以上の場合、変数hanteiに”合格”を代入、80未満の場合、変数hanteiに”不合格”を代入するフローチャートを作成しなさい。
(2)変数xが0の場合、変数seiに”男”を代入、1の場合、変数seiに”女”を代入するフローチャートを作成しなさい。変数xに格納されているのは0または1とする。
(3)変数aに格納されている数値の絶対値をbに代入するフローチャートを作成しなさい。
ヒント 変数aに負の数が格納されている場合には、-1を掛け算する。
(4)変数tokutenが、60点以上で出席率(syusseki)が80%以上の場合、変数hanteiに”合格”を代入、それ以外は変数hanteiに”不合格”を代入するフローチャートを作成しなさい。
5.次のフローチャートを作成しなさい。多岐分岐の書き方3で書くこと
(1)変数tokutenが、80以上の場合、変数hanteiに”A”を代入、60以上80未満の場合、変数hanteiに”B”を代入、60未満の場合、変数hanteiに”C”を代入するフローチャートを作成しなさい。
(2)変数kingakuが、10000以上の場合、kingakuの値を10%引き、5000以上の場合、kingakuの値を5%引き、5000未満の場合、割引なしとするフローチャートを作成しなさい。