アルゴリズム

アルゴリズム
~すべてのプログラムの基礎~
1.アルゴリズムって何?
アルゴリズムとは、「何か問題を解決するときの考え方」です。
これをわかりやすく図示したものが、フローチャートです。
スタート
●日常生活の一場面のアルゴリズム
信号を見る
信号=青
Yes
歩道を渡る
1.道を歩いていて、信号にさしかかる。
No
2.信号を見る。
3.信号が赤なので、待つ。
4.信号を見る。
5.青になったので、歩道を渡る。
終了
2.効率のよいアルゴリズム
与えられた問題を解く方法は1つとは限らない。いくつか
ある解法の中から、効率のよいアルゴリズムを見つけなけ
ればならない。
効率のよいアルゴリズムとはどんなものだろうか?
1.誰が見ても分かりやすい
2.どんな場合でも正しく処理する
3.フローチャートの図記号
端子
プログラムの流れの開始と終
了を示す。
入出力
データの入力及び出力の時に
使用する。
判断
条件により分岐する。
処理
計算や代入などに使用する。
ループ端 二つの部分から成り,ループの
始まりと終わりを示す。
4.フローチャートの書き方
①
・①プログラムの最初と最後を
明記する。
スタート
③
信号を見る
②
信号=青
Yes
歩道を渡る
①
No
・②原則として、上から下へ、左か
ら右へ記述する。
・③処理の流れを明示したいとき
は,矢印をつける。
終了
※線が交差しないようにする。
5.構造化定理とは?
「ひとつの入り口とひとつの出口を持つようにプログラ
ムを設計すれば,3つの基本制御構造の組み合わせに
より,どんなプログラム論理も記述することができる」こ
の定理を構造化定理という。
1.順次構造(直線型)
2.選択構造(分岐型)
3.くりかえし構造(ループ型)
6.構造化定理が必要な理由
1.個人差が少ない。
2.整理され,分かりやすい。
3.保守がしやすい。
高品質のプログラムを作成することができる!
7.基本制御構造
1.順次構造(直線型)
順次構造とはその名の通り、上から下へと処理を順
に実行する構造を言う。最も単純な構造なので、手直
しなども簡単である。
処理①
円の半径を入力
処理②
面積を計算
処理③
結果を表示
7.基本制御構造
2.選択構造(分岐型)
選択構造とは、ある条件によって処理内容が別れる構造
である。二分岐選択と多分岐選択がある。
(1)二分岐選択
判断
No
奇数?
Yes
出力①
No
Yes
出力②
奇数を出力
偶数を出力
例題4.1 次の流れ図は,正方形の面積Sを求めるものである。
A=4としたとき,表示されるSの値はいくらか。
開始
Aを入力
A×A→S
開始
Aを入力
A×Aを計算し,
4を入力
4×4=16
Sに代入
Sを出力
終了
面積Sを出力
プログラムの終了
答えの16が出力
される
(2)多分岐選択
判断
処理①
処理②
面積の値
処理③
10m2未満
“小”の処理
10~50m2
“中”の処理
50m2以上
“大”の処理
例題4.2 次の流れ図で,J=5,K=2としたときに,出力する
値はいくらか。
開始
開始
J,Kを入力
JとKを入力
JとKを比較し,
J≧K
JがKより大きい
か,等しい場合
Jを出力
終了
Kを出力
JがKより小さい
場合
プログラムの終了
Jを出力する
5が表示される
Kを出力する
7.基本制御構造
3.くりかえし構造(ループ型)
くりかえし構造とは、ある条件が成立している間は、処理
を実行し,条件が成立しなかったら次の制御に移る構造で
ある。While型,until型,for型がある。
ループ
iは1からはじまり1
ずつ増えてnまで
処理
n回くりかえす
ループ
ループ
例題4.4 次の流れ図は,1~10までの合計を計算し出力する
ものである。①~③に適するものを回答群から選び,記
号で答えなさい。
開始
●合計を求める考え方
0 + 1 + 2 + 3 + 4 + 5 +・・・・ + 10
①
0+1=1
1回目
②
③
K
GOKEI
を出力
終了
1+2=3
2回目
3+3=6
3回目
4回目
前の答え
6+4=10
足す数
●規則性を見つける!
前の答え
答え
0
+ 1 =
1
1
+ 2 =
3
3
+ 3 =
6
6
+ 4 = 10
10 + 5 = 15
足す数
1から10まで
左の図より,
前の答え + 足す数 =答え
答えを入れる変数をGOKEI,足す
数をKとすると
GOKEI + K → GOKEI
上の式は,前の答えに足す数を加
えたものを,答えにするという意味
である。
初期値設定
解答
集計をするためには,集計処理を始める前に,集計場所
をゼロにしておく必要がある。集計場所をゼロにすることを
ゼロクリアという。
開始
最初の合計(初期値)は0なので
①
0 → GOKEI
②
足す数は,1から10まで,1ずつ増えるので
③
K = 1,10,1
K
GOKEI
を出力
終了
合計の計算式は,GOKEI=GOKEI+Kとなり,
くりかえし処理を行うので
GOKEI + K → GOKEI