C++ Builder CE Subversionのレポジトリ

git cloneの例として古のソートデモを取り上げようとしたのだけど…..

古いデモプログラムなんですが、視覚的教育的に面白いので扱います。urlは、

https://svn.code.sf.net/p/radstudiodemos/code/branches/RadStudio_XE6/CPP/RTL/Threads

です。Subversion経由で取ってこれます。Radstudio IDEから直接Subversionを取れるはずですが、12.1ではエラーが出てダメなので、別のクライアントを使います。

です。懐かしいですね。サイトは、

ここからrepo-browserをダウンロードして、最初のurlを開きます。

ここでOKをクリック。

左のペインで選択されている”Threads”を右クリック。

上から4番目の“Checkout”を選択。

Checkout directoryに問題がなければ、“OK”。Checkout directoryは、

こんなふうになっているはずなので、ためらうことなくThrdDemo.cbprojをダブルクリック。それから“F9”押すと。あら、

エラーでございます。曰く:

[bcc64 エラー] ThrdDemo.cpp(24): use of undeclared identifier ‘SetApplicationMainFormOnTaskBar’

いつのころからか、“SetApplicationMainFormOnTaskBar()”はObsolete(古く、不要または廃止)となっているので、単純にコメントアウトします。つまり、

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
	try
	{
		Application->Initialize();
		//SetApplicationMainFormOnTaskBar(Application, true);
		Application->CreateForm(__classid(TThreadSortForm), &ThreadSortForm);
		Application->Run();
	}
	catch (Exception &exception)
	{
		Application->ShowException(&exception);
	}
	catch (...)
	{
		try
		{
			throw Exception("");
		}
		catch (Exception &exception)
		{
			Application->ShowException(&exception);
		}
	}
	return 0;
}
//---------------------------------------------------------------------------

再度“F9”押すと、今度はBuildできました。

切れかかってますけど、”Start Sorting”をクリックすると、並列に三つのソートアルゴリズムが走ります。中間状態が

Bubble Sortは最遅なのでまだ終わっていません。タイミングが悪く、その他二つは終わっていますね。最後は、

となります。速度の順番だと、Quck Sort->Selection Sort->Bubble Sortということになって、定説通りですね。探すと、Web上には色々と視覚的にsort algorithmを比較したサイトがあるようです。面白い例は、

選択できるSorting Algorithmが増えて、

Bubble Selection Insertion Merge Quick Heapの6種類です。色々とsizeとかspeedとか変更すると面白いです。ま、普通はQucik Sort一択なんですけどね。関数化されていることが多いしね。

コメント