c-MOS NOT ゲート

第5回放送授業
5.5 再帰呼び出し
再帰呼び出し(recursive call)
int factorial(int x) {
if (x == 1) {
# x が 1 ならば 1 を返す
return 1;
} else {
# それ以外は x*(x-1)!を返す
return x * factorial(x - 1);
}
}
6 アルゴリズム
6.1 アルゴリズムとは
アルゴリズム
• algorithm
• プログラムの手順
構成、流れ
処理のしかた
書き方、考え方
良いプログラムとは
•
•
•
•
計算速度が速いこと
メモリーをあまり使わないこと
考え方がすっきりしていること
読みやすいこと
6.2 よいアルゴリズムの例
与えられた数が素数か
• 与えられた数Nの一つ下N-1から順に
、その数で割ってみる
• 2、3、4、…と順に小さい数から割っ
てみる
• √N までで停止する
• 下から順に素数を拾い出しながら、素
数だけで割ってみる
6.3 ユーザから見た
よいアルゴリズム
•
•
•
•
•
最大計算速度が速いこと
平均計算速度が速いこと
メモリーをあまり使わないこと
操作性がよいこと
可能ならばマニュアルを読まなくて
すむこと
6.4 プログラムの保守
• 変数名をわかりやすくする
• コメントを多くつける
readme
• 構造化プログラム
• ブロック化とサブルーチン
6.5 プロファイラ
• プロファイリングとプロファイラ
• プログラム中に注目点を入れておくと
注目点と注目点の間の計算時間を表
示してくれる