先の記事で、1番簡単な交通誘導である、単純な通行止めのやり方を示しました。
参考「交通誘導の仕方 〜 もっとも簡単な通行止めの方法」
このルールに従えば、大概の人は、それが出来るようになると思います。
少なくとも、僕はこのルールをベースに、それを改善した方法を実行することで、交通誘導をやっています。
他の誘導員が、この問題にどのように対処しているかは知りませんが、
コンピュータは、ほぼこんな感じで問題に対処しています。
まあ、コンピュータは、普通の人なら持っているはずの常識を持っていません。
先の記事で、
僕は曲がり角での片側交互通行のやり方をこう説明しました。
#####
AとBを交互に見て、
1、Aから車が入ってくるなら、Bの車を止める。
2、Bから車が入ってくるなら、Aの車を止める。
#####
普通の人なら、これを言えば、キチンとやってくれると思います。
あるいは、もっと高次の表現、
「先に来た車を通し、後から来た車を止めて!」
でも、大概の人は分かってくれると思います。
でも、コンピュータ相手では、そうは行きません。
きちんと、
#####
1、左手の平をBに向け、ストップの合図を送り、
右手でAの車においでの合図をする。
2、右手の平をAに向け、ストップの合図を送り、
左手でBの車においでの合図をする。
#####
そう説明しないと、分かってもらえない。
つまり、コンピュータのプログラミングとは、
常識が通じない杓子定規な相手、
取り柄は一旦教えれば、脇目も振らず、サボりもせずに、律儀にそれをこなす相手、
に、一切の曖昧さがない形で、そのやり方を教える。
そんな作業なのです。
つまり、プログラミングとは、コンピュータに対して、
そんな感じで、その仕事のやり方を、
一切の曖昧さのない形で、懇切丁寧に教える作業なのです。
プログラムを知らない人を前提にプログラミング言語がどんなものかを、
C言語に近い文法で説明すると、
コンピュータにやって欲しい処理を、
#####
処理()
{
}
#####
として、{}の中に、コンピュータに実行してもらいたい処理を、;で区切りながら順次書いていきます。
#####
一連の処理()
{
処理1 ;
処理2 ;
処理3 ;
}
#####
と書けば、処理1、処理2、処理3が、順番に実行される感じです。
また処理のところに()が付いている処理は、別途一連の処理が別のところに書かれています。
つまり、
#####
一連の処理()
{
処理1 ;
処理2 ;
処理3() ;
}
処理3()
{
処理4 ;
処理5 ;
}
#####
と書けば、処理1、処理2、処理4、処理5が順に実行されます。
また、英単語のif文の後に{}を入れれば、条件に適合したときだけ、その処理が実行されます。
また、for(;;) の後に{}を入れれば、その処理が永遠にくりかえさせられます(ループされます)。
break処理を実行すると、ループ(繰り返し)から出ます。
なので、先にあげた曲がり角付近での片側交互通行をプログラミングすると、こんな感じになります。
#####
曲がり角付近の片側交互通行()
{
for(;;)
{
Aを見る();
if( Aから車が来た )
{
Bの車を止める処理();
Aからの車を引き入れる処理();
}
Bを見る();
if( Bから車が来た )
{
Aの車を止める処理();
Bからの車を引き入れる処理();
}
if( 工事終了 )
{
break;
}
}
工事車両に乗り込み移動();
}
#####
こんな感じです。
そして、
#####
Aからの車を引き入れる処理()
{
右手でおいでおいでをする();
}
#####
ってことになるわけです。
そして、さらに
「おいでおいで」
とは、何をすることかを教える必要があるわけです。
つまり、「右手でおいでおいで」とは、
「右肩を上げる。」
「右肘を曲げる。」
「右手首をふる。」
とか、
そう言う処理に分割されていくわけです。
そして、そういうプリミティブな処理、
まあ、手足を持っているパソコンはあんまりないとは思いますが、
ディスプレーに文字を表示する処理();
とか、
プリンターに矩形を印字する処理();
とか、
プログラムは、
そんな感じの最小単位の処理に分割されていきます。
そして、アプリケーション・プログラム、あるいは、アプリケーション・プログラマーにとっては、
そのプリミティブな処理を依頼する相手、それこそがOSなのです。
僕は、以前半導体集積回路(LSI)の設計用のプログラム(CAD)開発のリーダー業務をしてたことは、
何回か記事にしました。
これまさに、
そのやり方(LSIの設計の仕方)を、部下、ないしは下請けの「プログラマー」と言われる人間に教えると、
それやり方をコンピュータに指示するプログラムが納入される!
つまり僕になり代わってコンピュータに教えてもらえる人に、仕事の依頼をする。
そんな仕事でした。
つまり、前回あげた記事のような内容のメールに、
今回の記事のようなタイトル
「自動交通誘導プログラム、交通誘導君の開発依頼の件」
を付けてEメールを送ると、
誤記の修正、
疑問点の問い合わせ、
曖昧部分の補完
そんな返事が返ってきて、やりとりが始まります。
蛇足ですが、先の記事、
参考「交通誘導の仕方 〜 もっとも簡単な通行止めの方法」
意図せず、左右の誤記が一箇所ありますね。
まともな下請けなら、この訂正も当然してくるはずです。
そして、納得を得た段階で、
細部をつめた、詳細仕様書が帰ってきます。
それを僕がチェックして問題がなければ、開発にGOサインを出します。
すると、それをするプログラムが後日納入されてくるわけです。
なので、当時の僕は、
「どうやったら、それが出来るか?」
(LSIの設計の仕方)その方法をせっせと考えていました。
その時の習い性で、交通誘導員をしている現在も、
それ(交通誘導の仕方)をせっせと考えているわけです。
しかし、現在の僕はそれを人に教えることは、まずありません。
それを通じて、人材を育てることが、会社にとっては好ましい貢献であることは確かです。
でも、それをすると言うことは、
自分が上司、相手が部下、そう言う人間関係を作ってしまうことです。
この年になって、今さら、
この仕事でそう言う鬱陶しい責任を背負い込む気には、なりません。
また、その人がどのようにそれをやっているのか知りませんが、
人のやり方に文句を言うこともありません。
僕自身が、僕自身のやり方で、キチンとやれれば良いだけです。
だから、
そのやり方は、僕の頭の中でキチンと整理されてれば良いだけである。
現在の僕は、そう考えています。
参考「下に下に作戦と良い人作戦」
参考「ガードマン(交通誘導員)という仕事」
ためのメールセミナー>
「このメルマガを読むと、将来に関して、漠たる不安を感じ
ているあなたは、自信がなくても、勇気を持って前に進むこ
との重要性を理解できるようになります。なぜなら、我々の
(つまり「あなたの」)先祖が、自立のために立ち上がった
勇気のある人々であったことが分かるからです。
それにより、まずは、自分の先祖に関して自信が持てるよう
になる。自信がなくても、勇気を持って前に進むことの重要
性を理解できるようになります。」
教科書に書かれていない、「日本の本当の歴史」を知るため
にも、ぜひこのメールセミナーを読んでみてください。
1日目 信教の自由の日に関するネット上の文章への反論
2日目 私が考える日本教とは?
3日目 信教の不自由な宗教と信教の自由な宗教
4日目 先の戦争の悲惨な体験を語り継ぐな
5日目 現代の鶴田浩二 ー傷だらけの人生ー
6日目 今までの社会人生活の中で、現在が一番満足度が高い
7日目 顧客満足第二
※必要がなければいつでも配信解除できます。
※迷惑メールを送りつけたりなんてことは当然ありません。
※ご登録いただいたメールアドレスがどこかに流出することなどは一切ありません。責任を持って管理いたしますので、どうぞご安心ください。
⇒登録はこちら(リンク )