数独自動生成ソフト開発で学ぶ超初心者のためのC++マルチスレッドプログラミング入門  
第1講 序章(周辺の説明とプログラミング体験)
第6話 本講座の特徴その1

ここで本講座の特徴の1つを説明しておきましょう。

他の講座にない特徴がもう一つありますが、それは第12話で説明します。

本講座の目的は、数独自動生成ソフト開発を題材にして、

プログラミングを教える初心者のための講座であることは説明済みです。

ですから、プログラミングを全くやったことがない方、

入門書や入門サイトで何とか理解しようとして頑張ったけど、

挫折してしまった方を対象とする初心者のためのプログラミング講座であることもすでに述べています。

ですから、知識0の方を対象としていますので、

本当に基礎の基礎から説明していきます。

10年近く更新していなかったので、

今は順位が下がってしまってしまいましたが、

毎日更新していた頃は、

Googleランキングで上位を独占していました。

『VC++ 初心者』で検索すると第1位から第12位まですべて私のサイトページだったこともあります。

『VC++ 入門』『VC++ 基礎』『VC++ 基礎』などで検索すると第1位に来るページがすべて私のページでした。

『VB 入門』『VB 基礎』『VB 基礎』『VBA 初心者』『VBA 入門』『VBA 基礎』『VBA 基礎』『VBA 初心者』

についても同様です。

そして、多くの方が私のサイトに出会ってはじめてプログラミングが理解できたと、

おしゃったのです。

入門サイトや入門書籍の問題点は、

カタカナ専門用語の乱発にあります。

カタカナではなく漢字で書けば理解できたはずですが、

情報技術社会は困ったほど悪質なカタカナ社会です。

日本語には有意文字である漢字があるのに、

インストール・スコープ・スキル・コンパイル・エディタ・デバッガ・オブジェクト指向などなど。

恐ろしいほどの乱発です。

初心者相手にどうだ、俺はすごいだろう!とカタカナを連発するのです。

ですが、数学の教科書を思い出してください。

数学ではほとんどカタカナは出てきません。

明治初期の翻訳者たちが漢語・漢字にすることにこだわったからです。

今では残念ながら相当ランキングを落としていますが、

一時は、日本は学力では世界一を誇っていました。

最大要因は有意文字である漢字を使ったことにある

と著名な数学者である高木貞二が何処かでいっています。

変数・関数などは漢字でないと表せない概念です。

カタカナとともに不要だと思っている最大のものが頭文字をつなげて、

TPPなどと書くことです。

これを環太平洋経済連携協定と書けば、

なるほど太平洋を囲む国が仲良くなり経済を一緒にやるための協定だと、

字を見ただけでわかります。

TPPでは全くわかりません。

日本語には有意文字である漢字あるのですから、

頭文字をつなげる必要はさらさらありません。

欧米で使われるアルファベットはもともと有意文字でないので、

頭文字をつなげているだけです。

というよりもともと意味ないアルファベットを重ねるヨーロッパやアメリカでは、

頭文字をつなげることに何の抵抗感も持っていなかったのです。

カタカナ・頭文字に困っている人は、

プログラミング初心者だけではありません。

高齢者も悲鳴を上げています。

フレイルって何?です。

虚弱・老衰と書けば、わからない高齢者はいません。

薬局のポスターに『フレイル』と書いてあり、高齢者は皆?です。

正直私も「なんじゃいそれは」と心の中でつぶやいていました。

フレイルではなく虚弱体質などというべきです。

ですから、

私のプログラミング講義の最大の特徴は『カタカナ専門用語』は使わないことです。

基本漢字で表すか、スコープ(変数の適用範囲)と()入れてそこに意味を漢字で書きます。

それから、変数名や関数名を英単語で書くこともしません。

C++は漢字が使えますので、漢字にしようと思っています。


#include<iostream>
#include<conio.h> //while (!_kbhit())を使うために必要
using namespace std;
int main() {
	unsigned 種 = (unsigned)time(NULL);
	srand(種);
	int 配列[9];
	配列[0] = rand() % 9;
	int i = 1;
	while (i < 9) {
		while (1) {
			int h = 1;
			配列[i] = rand() % 9;
			for (int j = 0; j < i; j++) {
				if (配列[i] == 配列[j]) {
					h = 0;
					break;
				}
			}
			if (h == 1)break;
		}
		i++;
	}
	for (int i = 0; i < 9; i++)cout << 配列[i] << " ";
	cout << endl;
	cout << "プロジェクト終了" << endl;
}
実行画面



こんな感じです。

尚、関数や変数という言葉を聞いて

「えっ!!プログラミングに苦手だった関数や変数が出てくるの?」

と思った方も入らっしゃると思いますが、

全然心配は要りません。

変数はもの(整数や文字など)入れる箱にすぎませんし、

関数はただの部品のことです。

「関数なんていう必要ないじゃない」と叫ぶ人もいるでしょうが、

関数と呼ぶことにはもちろん意味があります。

その意味をこの講座で学ぶことによって、

数学の関数も実はとんでもなく面白いもので、

恐れるに足らずと思うことを請け合います。

現代哲学の3大分野の一つである、分析哲学ではこの世は関数関係で成り立っていると考えます。

私はその立場(分析哲学)をとりませんが、

この世は関数関係で成り立っていることは真実であると思っています。

第5話へ 第7話へ

トップへ