ハノイの塔と再帰を使った並び替え
ハノイの塔 ここまでは、簡単な再帰呼び出しのプログラムを例にして再帰方程式などの説明を行った。次に「ハノイの塔」の処理時間を例題に、プログラムの処理時間について分析を行う。 ハノイの塔は、3本の塔にN枚のディスクを積み、 […]
複素数クラスによる演習
複素数クラスの例 隠蔽化と基本的なオブジェクト指向の練習課題として、前回の授業では、直交座標系による複素数クラスを示した。今回の授業では、演習を行うとともに直交座標系を極座標系にクラス内部を変更したことにより、隠蔽化の効 […]
JavaScriptによるフロントエンドとPHPバックエンド入門
前回の講義では、インターネットの仕組みを復習し、そこで使われるプログラミング言語などを紹介した。 今回の授業では、インターネットのブラウザ側(フロントエンド)で使われるプログラム言語である JavaScript の基本に […]
再帰呼び出しと処理時間の見積もり
再帰呼び出しの基本 次に、再帰呼び出しを含むような処理の処理時間見積もりについて解説をおこなう。そのまえに、再帰呼出しと簡単な処理の例を説明する。 再帰関数は、自分自身の処理の中に「問題を小さくした」自分自身の呼び出しを […]
創造工学演習・予備実験(2)・8queen
創造工学演習の予備実験 part 2 として、Flood Fill , 8queen にチャレンジしてみる。 Flood fill アルゴリズム 前の問題は、今年度のプログラミングコンテストの課題のパズルとは、方向性が違 […]
複素数クラスとC++の演算子オーバーロード
複素数クラスの例 隠蔽化と基本的なオブジェクト指向の練習課題として、複素数クラスをあげる。ここでは、複素数の加算・乗算を例に説明をするので、減算・除算などの処理を記述することで、クラスの扱いに慣れてもらう。 直交座標系の […]
創造工学演習・予備実験(1)・パズル問題
プログラミングコンテストの競技部門では、パズルのような組み合わせ問題が 出題されることが多い。また、課題部門や自由部門であっても、複数の条件の組み合わせの中から最良のものを選ぶといった処理も求められる。そこで、この予備実 […]
繰り返し処理と処理時間の見積もり
単純サーチの処理時間 ここで、プログラムの実行時間を細かく分析してみる。 // ((case-1)) // 単純サーチ O(N) #include <stdio.h> int main() { int a[ […]
インターネットとWebの仕組み
前回の講義では、最初のガイダンスとしてOSの仕組みについて説明をおこなった。 2回目の授業では、インターネットのWebページを作るために使われているHTMLやCSSやプログラム言語について解説を行う。 Webページの生成 […]
構造体からクラスの導入
構造体の参照渡し 構造体のデータを関数で受け渡しをする場合は、参照渡しを利用する。 struct Person { char name[ 20 ] ; int age ; } ; void print( struct P […]