ブログトップ

電子工作やってみたよ

年に一度のお楽しみ

で何が楽しみなの?と問われれば、そう HP電卓を使って計算をすること。
今 税金のための確定申告でお金の計算をしています。
だって最近では、HP電卓を真面目に使うのってこんな時しかないんだもの。

以前 有限会社にしていた時は、よくある「○○会計」などのソフトを使って青色申告をしていました。
その筋の先生に教えてもらいながら、一生懸命領収書などのデータを入力すると、最後に「決算報告書」などが自動的に出てきました。
ソフトの内部は全くのブラックボックスで何がどうなってこの数値が出てくるのか、まったく理解できませんでした。
しかしその「決算報告書」を税務署に提出するとクレームが付かないのです。
不思議でしたね。プロにはわかるのでしょうか。

その後 有限会社から個人商店にしてエクセルで計算していましたが、やはりデータ入力がとても面倒です。
で今年は、パソコンは一切使わない、と決心して電卓だけでやり始めました。
せっかくあるHP電卓の有効活用ということです。
HP97, HP32S, HP29C、HP15Cなどをとっかえひっかえして楽しみながらやったら意外と簡単。
やっていることは、足し算と掛け算だけ。
プログラムなんて全く使わないのですが、HP電卓をいじっているだけで幸せなのだからいいんじゃないですか。
こんな計算なら、普通の事務用の電卓の方がよほどやり易いと思われるでしょうけれど、そこはやはりHP電卓を使う所がいいのですね。
1+1=2 を計算するにも HP電卓で出した値の方が価値があるでしょう。( ? ? ? ? ? )
おまけにこれをネタにしてブログも書けたし。


c0335218_17435841.jpg

c0335218_17440756.jpg

しかし この確定申告の計算 毎年やっているのにどうして土壇場にならないと出来ないのだろう。
毎月真面目にやっていれば2月の土壇場に来て焦らなくて済むはずだと毎年思っているのに。
小学校の時 夏休みの宿題が出来ないのとおなじですね。
もう半世紀以上の筋金入りの「出来ない歴」か。
いろいろなこと 前倒しして行動できる人と、私のように土壇場にならないと行動出来ない人では、人生を振り返ったときすごい差が出るのでしょうね。

何でも、楽しんで物事ができるって素晴らしいですね。
世の中、辛いけどしなければならないから、というのが多すぎますものね。
毎年、確定申告出せるように、そしてHP電卓生かせるようにこの後も頑張りたいですね。

そうそう 友達もやっているという ネットで税務申告出来る e-Tax にも挑戦したいですね。

*****************************************************

今日 イチゴもらっちゃいました。

おっきーい

HP電卓(HP29C)の大きさが上下13Cmです。
イチゴを計ったら6~7Cmありました。
なんでこの時期に出来るの、そしてどうしてこんなに大きくなるの。

c0335218_17441230.jpg

c0335218_17441801.jpg

やはり ちゃんとした器に入れた方が美味しそうですね。

c0335218_18063344.jpg
食べたら とても甘くて美味しかったです。
わたしの小さい頃は、大きさだってこの半分以下ですっぱいので牛乳と砂糖をかけて食べるのが当たり前のような気がしたのですが、どんどん進化するのですね。 そのうちリンゴくらいの大きさのイチゴが出来ちゃうかも。


# by telmic-gunma | 2019-02-05 18:38 | HP電卓 | Trackback | Comments(4)

ええ XP上で動くソフトもたくさん使っています。
さすが インターネットにつなげているのはWindows10にしてありますが。
当然 ブログはこのWindows10で書いてます。
WindowsXPはネットにつながず使っています。

先日 機械設計を頼まれ XP上で動く AutoCAD LT2002 で書き上げました。
使い方を忘れて四苦八苦 説明書や手書きのメモを見返しながら何とかやりました。
このソフト制作された2002年からから17年も経っているのですね。
手書き図面の代わりとして使うというのであれば、何ら不足することはありません。

まだまだ元気なWindowsXPで使用しているソフトです。

1、機械設計  AutoCAD LT2002
主に板金設計に使っています。

2、Office2003 (SP3)
主に エクセルVBAを使ったデータ処理をしています。
  データー数は20000行位で処理時間はそれほど苦になりません。
  RS232Cを追加してコントローラとしても良く使っています。
  Office2000から現在のOfficeまですべてでそのまま動作するので不都合はありません。

3、電気設計 PADS パッツパワー
  パーツライブラリーが沢山作ってあるのと自作の詳しいマニュアルがあり使い慣れている。

4、スクリーンエディタ MIFES Ver7
マルチスクリーンエディタになっており、実用上十分。

5、picCコンパイラ CCS  PIC PCWHD ( 2008-07製 バージョン?)
  2008年時点でのPICの全ての機種が入っている。(16F88 や dsPICなどがあり不便を感じません)

6、FBASIC97 N88ベーシックとほぼコンパチのコンパイラです。


7、回路シュミレータ  サーキットビューア Ver4
いまは、バージョンアップしたインターシムVer5(サーキットビューア Ver5を含む)をWin10に入れてます。


c0335218_20143265.jpg



この時代のソフトの良いところは、現在のように「ネットにつないで承認を得る」ことが不要で、
CDでインストールしたらプロテクトKEYコードを入力すれば、どのパソコンでもすぐ使えるようになることです。
そして何回でも、また何台でも。
ただ 相手から最新バージョンで作ったソフトを送られてくると、こちらでは見えないと言う事が発生しますので、
もう 出力オンリー 出しまくるしかありません。
WindowsXPを使ってるなんてまだよい方で、ある一部上場の大会社の設備部門ではいまでもWindows95でしか動かないあるソフトを使うために頑張っていましたね。

そうそう MS-DOSの動いているPC9801にインターフェースを付けて現役で使っているところも在るなあ。
まだまだ頑張らなくては。



家の周りに花が見当たらないので、とりあえず、
これ 今真っ赤な ナンテンです。

c0335218_17482090.jpg


今まで 雪の下になっていた イチゴの苗です。
今年 大きい実ができるかな。
c0335218_17480022.jpg


# by telmic-gunma | 2019-02-01 20:16 | ときどき思うこと | Trackback | Comments(2)

韓国は病気? 4

いままで仕事上などで、何人ものうつ病の方と付き合ってきました。
うつ病にかかれば、当然本人が一番つらいのですが、付き合わなければならない、
その周りの人達もかなり大変です。
私自身 何度かうつ病になりましたが、幸い軽かったのでしょう、仕事は継続することができました。

いままで感じたことは、うつ病のひとは、なぜか性格がみな似たようになると言う事です。

1、自分の考えはすべて正しい。
2、自分と違う他人の考え方を許容することが出来ずに他人を攻撃する。
3、トラブルの責任はすべて他人にある。
4、自分が不幸なのは全て他人のせい。
5、症状がヒドイときには、わめきちらすばかりで言葉が通じなくなる。
6、他人の忠告を聞くことができない。
7、自分を客観的に見ることが出来ない。
8、約束をすぐやぶって平気、申しわけないという気持ちが無いみたい。

そう これらのことは、今の韓国にそっくりなんです。
このことから類推すると、もしうつ病が遺伝するものだとすると、
韓国のひとの遺伝子には、うつ病の元がたくさん組こまれているのじゃないかと思います。

じゃあ この様な人と(国と)どう付き合っていけばいいのかですが、
本人(韓国)が自分の意志で「何とかしなくちゃ」と思わない限り直らないとおもいます。
なので、出来るだけ距離を置いて付き合わないようにするしかないですね。
必要ならば国交断絶など。
 
わたし うつ病の人を非難するつもりはありません。
病気は本人の意思でどうにか出来るものではないし、私自身もかかった経験がありますから。
老人性うつ などがあるそうですからまたなるかもしれませんね。
もう すでになっているかも。



# by telmic-gunma | 2019-01-26 22:06 | ときどき思うこと | Trackback | Comments(2)

韓国は病気? 3

 いつも愛読しているメールマガジンで”疋田 智”(ヒキタ サトシ)さんのものに面白いことが載っていました。
(疋田 智さんはTBSのプロデューサーで自転車関連の本を沢山出しています。)
以下 メルマガの転載

***********************************************
 週刊 自転車ツーキニスト 


 とある元幹部自衛官との対話の817号

■正直「友軍」としてやってけるのか?

 先日、とある元・幹部自衛官と飲む機会があった。
 で、旧交を温めつつ、私は、以前から疑問に思ってることを、聞いたってわけ。疑問の内容って……、もちろんレーダー照射についてだ。
 どうなんだ、正直なところ、あの国の軍と友軍としてやっていけるのか? とね。
 以下の対話(というより元幹部自衛官Qの話)を聞いて、どうお考えになるだろうか。

疋田「ところで、なんだ、一連のレーダー照射事件なんだがな。もう、レーダー照射は『あった』でしかないと思うんだが、おれが聞きたいのはそこじゃない。どうなんだ「友軍」というのは、こういう状態のまま成り立つのかどうかということなんだ。
 おれなんかが思うのは、つまりこういうことだ。
(たとえば自衛隊側が)今から突撃態勢に入るから(韓国軍に)側方から援護を頼む、という状況があったとする。ところが、当の“友軍”が、敵軍じゃなく、こちら側にレーダー照射していては(笑)、もう友軍もヘチマもないだろうと思うんだが、そういう理解でいいのか?」

 元幹部自衛官だった友人Qは、こう話し始めた。
「そりゃな、もはや友軍として作戦行動することは不可能じゃわ。
 たとえば、自衛官同士の訓練で、ふたりで行動することを考えてみればわかる。
 いったん相互信頼が壊れたら、二度と一緒に行動しようとは思わない。なぜなら、こいつと一緒では、生きて帰れないと思うから」

■軍の中での暗黙の了解

「自衛隊ではな、弾の入っていない小銃の銃口を同僚にふざけて向けただけでも、ぶん殴られる。
 若い頃から、そういうふうに徹底的に教育される。こんなおれであっても、もし自分にふざけて銃口を向けた奴がいれば問答無用で殴る」

 Qが「こんなおれであっても」というのは、自他ともに「物静かな自衛官」で通ってたからだ。
 彼は決してマッチョなタイプじゃない。某大卒、幹部学校を首席で卒業した。陸自出身、インテリ系の自衛官である。

「レーダー照射は、分かりやすく言うと、いわゆるロックオンのことなんだが、(陸自出身の)我々は、携帯対空ミサイルの訓練で、戦闘機に対する赤外線方式ホーミングのロックオン訓練を受ける。
 レーダー方式ホーミングでも同じことで、要するに、あとは引き金を引きさえすれば、ミサイルが発射されて、ホーミング追尾し、ほぼ確実に撃墜するわけだ。
 ロックオンすれば、ロックオン側にも警報が出るし、ロックオンされた飛行機側でもそれを探知して警報が鳴り響く。そんな警報が鳴れば、飛行機側にとっては、そりゃもう、生きた心地がせんだろう。
 それでも今回の海自機の乗員が実に冷静に対応していて、おれはむしろそのことに感動したんだ」

■約束を違える相手、ウソの言い訳を繰り返す相手

「まあ、とにかくだ、おれは今回のニュースを聞いて、激怒した。
 謝るなら、まだいい。たとえ謝ったとしてもキズの修復はかなり困難だが(そんなおフザケをやる連中と命をかけた作戦行動がとれると思うか?)それでも、まあ完全に不可能というわけじゃない。
 ところが、今回の彼らはどうだ。ウソにウソを重ねて、バレバレの言い訳をし、あろうことか「こちらが悪い」ときたもんだ。
 これじゃ“友軍”どころか、正真正銘の“敵”だよ。
 とにかく、絶対的に必要なのは、死が目の前にぶら下がっていたとしても、お互いを信じることができる、信頼関係だ。それは完全に失われた。
 現在の現職自衛官たちは、韓国人と共同作戦をしようなどとは決して思わんだろう。
 それは韓国人が好きとか嫌いとかでなく、あの連中と共同作戦していては、自分たちが生きて帰れないからだ」

■とうとう軍も同じになったか

 そういえば(疋田が)思い出すのは、2013年の南スーダンで、自衛隊が弾薬を貸し出した件だ。
 PKO(国連平和維持活動)に参加していた自衛隊が、韓国軍から次のような依頼を受けた。
「(韓国軍の)宿営地のまわりが敵だらけであり、弾薬が不足している。1万発の小銃弾を貸してくれないか」と。この差し迫った要請に対して、自衛隊は「人道的、緊急的」観点から弾薬を提供した。
 当時、韓国軍は「日本隊のご協力に感謝する。この弾薬は日本隊と韓国隊の強い絆の象徴だと考えている」と謝意を示したという(南スーダン派遣施設隊長・井川賢一1等陸佐による)。
 ところが、その後になって、韓国政府が「要請はしていない、謝意も示していない」とひっくり返したのだ。
 日本側は誰もが呆れ返った。反日が国是というのはこういうことかと思った。
 ただ、あのとき、朴槿恵“告げ口”政権は狂っていても、韓国世論がどうかしてても、その一方、軍同士はまともなのかもしれない、とも思ったものだ。

 だが、それがちょっと変わり始めているという。
「おれもな、韓国世論がいかに狂っていても、北と対峙する軍だけは、まともだろうと思っていた。
 だが、それも見当違いだった。今回の一連の裏切りがそれを示している。
 先般の“帥”字旗事件といい(海上自衛隊旗(旭日旗)を拒否した一連の事件)、今回のレーダ照射事件といい、北の浸透工作はどうやら政府中枢だけでなく軍中枢にも及んでいるんだろう。
 ま、若い隊員を見ていると、あの不可解な姿勢の多くは、教育の問題だろうとも思うがね。最初から日本を敵視しながら、自衛隊に『留学』してくるんだから。なにをか言わんや、だよ。
 ここから先は多少冗談だが、いまだ韓国軍内に保守派勢力が生き残っているのであれば、そろそろ軍事クーデタがあってもいい頃だと思ってるんだよ、おれは。
 というのかな、もはや、あの国が正気に戻るには、軍事クーデタしかないんじゃないか」

-----------------------

疋田 智(ヒキタ サトシ)
週刊 自転車ツーキニスト "Weekly Bicycle Tourkinist"

以上 メルマガの転載でした。



# by telmic-gunma | 2019-01-26 20:00 | ときどき思うこと | Trackback | Comments(3)

時間のスピードって

お正月のブログに書きましたが、歳をとるとともに一年がえらく早く過ぎるように感じていました。
そしたら、タイミング良くNHkの「チコちゃんに叱られる」の番組の中でこの疑問に答えてくれました。


大人になると あっという間に1年がすぎるのはなぜ

「人生にトキメキが無くなったから」

c0335218_18265757.jpg

いきなり ズバリ 本当の事言われてしまいました。

こういう事 研究している人がいるんですね。


千葉大学  一川 誠さん (いちかわ まこと)
(時間を、心理学や行動科学から研究する)
時間のスピードは、心がどのくらい動いているか、トキメキをどのくらい感じるかで変わる。

実際に生きる時間は変わらなくとも、感じる時間を二倍や三倍にできたら最高に幸せでしょうね。

これからの人生、 ワクワク、ドキドキ トキメキを感じる生き方を探していきたいですね。



# by telmic-gunma | 2019-01-20 19:08 | ときどき思うこと | Trackback | Comments(4)

前回のブログ「仕掛学」のおわりで、病院の花壇で咲いていた花を紹介しましたが、
なんと全部「造花」でした。
あけびさんからコメントで指摘され、いま調べに行ってきて確認しました。

あけびさん ありがとうございます。

わたし 恥ずかしいですね。
技術者の端くれと思っていたのに、注意力まるでダメ、もう 隠居した方がいいのかな。
それにしても 造花を屋外の花壇に植えますか?
まったくの想定外でしたね。

ここにある花の写真、全部 造花です。
c0335218_09430358.jpg


c0335218_09431240.jpg



c0335218_09425769.jpg



# by telmic-gunma | 2019-01-18 11:20 | おもしろいこと | Trackback | Comments(2)

Eテレの「ろんぶ~ん」という番組を見ていたら「仕掛学」というのをやっていました。
初めて耳にする言葉です。
何気なく聞いていたら、ごみをごみ箱に捨ててもらうようにする方法や、エスカレータと階段があれば階段を使ってもらう方法とかやっていました。
それも「自分の意志で楽しいからやる」というように行動するきっかけ作ってあげるということだそうです。
わたしなんかいつも「しなきゃいけない」でしかたなく行動しているのですが、それが「したくなる」に変わるならばこんなすばらしいことはありません。

もっと詳しく知りたいなと思い本を探したら、テレビに出ていた松村真弘(まつむら なおひろ)さんが書いた「仕掛学」が出ていました。

***引用***
仕掛けは社会問題を解決するための装置。
従来の解決策は罰金やルールを作るなど人を抑制する方法が多かった。
ついしたくなるような楽しくなるアプローチで解決できたらいい
***

わたし個人では社会問題なんて全く関係なくて、家族が幸せになれる方法とか、健康になれる方法などそんなところに使えたらいいなとおもいました。
どうなるか判りませんが、この「仕掛学」個人的な事で使えないか考えてみたいと思います。


c0335218_09422915.jpg


c0335218_09424343.jpg





お使いの途中 雪の中に見つけた花。
色が全くない。 


c0335218_09430358.jpg




これも 色がないですね。雪の中で色が消えてしまったのでしょうか。

c0335218_09431240.jpg




これ この前みたのとおなじかな?

c0335218_09425769.jpg


14日(月曜)川場村の「どんと焼き」を見に行ってきました。
甘酒やトン汁がふるまわれていたので頂いてきました。
甘酒なんて何年ぶりかな。
たまたま遊びに来ていた孫も一緒に連れていったらお菓子の詰め合わせもいただけました。
ダルマが沢山ありましたが、一般家庭にダルマなんてあるかな?
c0335218_08160248.jpg



# by telmic-gunma | 2019-01-12 10:20 | おもしろいこと | Trackback | Comments(2)

前回(1)の続きで、数式から回路に変換するところを、やってみます。
ちょっと見にくいかもしれませんが、紙に書いたものを写真で載せます。

X = -0.5Y +1  を回路図に変換するところです。
回路には疑似入力を加えて計算式から導いたものとあっているか確認しておきます。

c0335218_20065070.jpg

Y = 0.3X -7  を回路図に変換するところです。

c0335218_20071147.jpg

連立方程式を 各々下記のような形にしてグラフ化すれば交点が答えとなりますね。

今回のは入門編で、私自身まだよくわかっていません。
これからいろいろな問題をこのシュミレータに載せて解い行きたいですね
数をこなせば、少しづつ理解できるでしょう。

c0335218_20075186.jpg


川場村の「新年祝賀式」というのがあったので初めて出席させてもらいました。
村長や姉妹都市の東京都世田谷区の区長などえらい人のお話のあとアトラクションがありました。
これは 「上武武尊太鼓連」の人たちが和太鼓の演奏をしたもので、皆さんプロかと思うほど上手でした。

村内の農家の人達だそうです。
c0335218_20075703.jpg



# by telmic-gunma | 2019-01-06 20:48 | 電子回路シュミレータ | Trackback | Comments(2)

新しい一年が始まった

今日 平成31年(2019年)のお正月
抜けるような青空 雪は30cm~50cmほど積もっていて一面真っ白
スキー場のある武尊山もよく見えます。


c0335218_18313563.jpg




c0335218_18314898.jpg



私 今年70歳になります。
毎年 時間の進むのが早くなっている気がします。
この調子だと次のお正月には80歳くらいになっているかもしれませんね。
去年一年間の書いたブログの数は36個でした。週にひとつも満たないかずでした。
今年は、ブログの数 最低でも50個(週に1個)できれば80個くらい書くことを目標にしてみたいですね。
このブログを書くことで結構あたまを使っていますのでボケ防止には役立っているとおもいます。
ただ 書いているテーマが電子工作からどんどん離れて、農作業や季節の花、自転車、数学(算数かも)など
何でもありになっちゃてますけど。

仕事はまだやっています。若い頃に比べれば四分の一ほどですが、丁度いい感じです。
やっていることは、お客さんから戻ってきた製品の修理や生産設備の設計、ソフトの制作など。
50年前、就職してやっていたことと同じことですね。
若い頃は馬力だけでやれていましたが、さすがに同じようには行かなくなりました。
そうそう50年前にはソフトの仕事はやってなかったです。
まだ電卓やマイコン、パソコンもない時代で、会社の空調の効いた電算機室に給料計算用の軽トラぐらいのコンピュータが一台有りました。

技術的な仕事が難しくなったなら、農業で稼いでみたいのですが、
女房にはいつも「農業は頭良くなくては出来ないよ」と言われているのでどうだかなー。


このブログを書くことと仕事は亡くなるまで続けて行きたいと思っています。


安倍総理がよく言ってた「一億総活躍社会」 
これ素直にそのまま受け取って、働けるうちは皆働けば人材不足解消しないかな?



# by telmic-gunma | 2019-01-02 19:52 | 季節の風景 | Trackback | Comments(4)

干し柿をいただきました。
山梨県産の「あんぽ柿」
くださったのは、いつもコメントを書いていただいている「あけび」さんからです。
干し柿と言いながら、とてもみずみずしくて今まで全然知らなかったものですね。
今年1月 私のおじさんに貰ったのは黒くて白い粉を吹いていて普通に私の知っているものでしたけれどね。
世の中 まだまだ知らないものが沢山ありますね。
当然 種は入っておらず、全体が均一にトローンとしてとても甘いです。
ごちそう様でした。

c0335218_19375059.jpg



c0335218_19381485.jpg




# by telmic-gunma | 2018-12-25 14:54 | 季節の風景 | Trackback | Comments(2)

いままで回路シュミレータで パイ や e、積分などの計算をやってみましたが、途中で挫折しました。
なのでゼロから回路シュミレータで数学の勉強をやってみようとアナログ計算機の本など入手して始めてみました。

簡単なところからと 中学でやる 連立方程式を解くのに挑戦してみました。

  X + 0.5Y = 1    ①
  0.3X - Y = 7    ③

式のNoが①と③となっているのは、あとの式の変形時のNoの都合で間違いではありません。
これのX と Y を求める問題です。
最初紙の上でやったのですが、計算の度に違った値が出てきて結局ギブアップ。
いつもコメントをいただく わたしよりはるかに若い、くさかさんにヘルプをだして教えていただきました。

答えは
     X = 3.913
     Y = -5.826

中学の問題と侮るとやばいです。
さて この値が、回路シュミレータからすんなり出てくれば嬉しいのですが。

まず 式を回路に変換しなければならないのですが、回路に組むために式を変形します。
①式を②式に変形します。

     X + 0.5Y = 1    ①式
     X = -0.5Y + 1   ②式    


②式の右辺 -0.5Y + 1 が回路の入力となり 左辺Xが出力となります。
この ②式は 回路図 右の上側となります。

次に問題2行目の③式を変形して④式を作ります。

  0.3X - Y = 7    ③式
  Y = 0.3X - 7    ④式

④式の右辺 0.3X - 7 が入力となり 左辺Yが出力となります。
この ④式は 回路図 右の下側となります。

結局 電圧やら極性など、数式から出した値になるように、無理やり回路を作り上げて答え?が合いました。

回路シュミレータ    X=3.911    Y= 5.824   ピッタリですよね。
紙で計算        X=3.913    Y=-5.826

普通の人が見たら えらく違うじゃないか と言われそうですが、私の感覚からいうとピッタリと言うことになります。
こんなのでは実用価値はありませんが、電気回路で連立方程式が解けるなんて不思議じゃありませんか?
次回 この数式から回路に変換するところ、詳しくやってみます。

c0335218_20041149.jpg


今年は暖かく雪が遅かったので、いつもはつぼみで終わってしまう庭の***がきれいに咲きました。
(名前度忘れ なんでしたっけ 最近こういうの多いなー )
(いや 昔からですけど)

(追記 「さざんか」とあけびさんに教えていただきました。)
c0335218_06114701.jpg

c0335218_06120985.jpg

c0335218_06121625.jpg

c0335218_06115509.jpg



と思っていたら、やっぱり雪が降って終わりとなりました。


c0335218_06123342.jpg


# by telmic-gunma | 2018-12-14 21:30 | 電子回路シュミレータ | Trackback | Comments(4)

今から30年ほど昔、 東京の空は、スモッグでいつもどんよりしていました。
特に環状7号線のあたりはジーゼルエンジンのトラックによる汚染がひどく喘息が問題になっていました。
また 光化学スモッグも毎日の様に発生してニュース出ていました。

そんな頃 このジーゼルエンジンが吐き出したカーボンの粒子を分析する装置を作ってくれとの話がまわってきました。
客先は東京都環境科学研究所 こういう所があるなんてその時初めて知りました。
お役所だから名前を出してもいいのでしょうね。
納期はお役所なので3月末、そしてこの話が来たのは2月に入ってから。
設計を担当するはずだったヤツが会社とのゴタゴタで辞めちゃったたので、というのが原因。
期間は2か月も在りません。いくら何でもそれは厳しいと思いましたが、もともと突貫工事は好きな方なのでやらせてもらいました。
まあ 断れる雰囲気でもなかったと思います。

どんなもの作るのかお客さんの所に聞きに行ったり、同じような研究を筑波研究学園都市の公害研究所でやっているからと教えてもらいにいきました。
お客さんも呆れたかもしれませんね。今頃こんなこと聞きに来て納期大丈夫か?と。
まずは 設計する前から発注出来る部品はどんどん発注してそれから機械設計や電気設計してました。
当時はまだCADなど無かったので、図面は手書きでどんどん書きまくってそのあとをトレーサーの女の子に清書してもらってましたね。

部品が入ってきたら自分で組み立て。 人に手伝ってもらうという考え全然なかったみたい。
なんだかんだ、いろいろ有りましたがハード的には、何とか形が出来て、動作もしました。
残っている作業は、装置のデータを計測して処理しXYプロッタに結果を出すまでのソフト。
当時 世の中の主流だったNECのPC9801の上でN88BASICを動かしました。
しかし ソフトに手を付けたところで、タイムアウト
もう3月末の納期近くになり、物は納めておかないとやばい、ということになり装置は客先に行ってしまいました。
あとは、しょうがなく毎日客先に通ってソフトの制作とデバッグ。
そんな事をやっていたある日、ついに来ました。
予算どおりの物が入っているかをチェックする東京都の監査の人が。
素直に現在の状況を話したら、べつに怒られもせず「最後まで面倒見てくださいね。」と言ってくれたのは、うれしかったですね。 ほんと 大人の対応ですね。
社内では、「納期に遅れれば取引停止になっちゃうぞ」とヒステリー起こすひとがいたのにね。
最終的には、無事お客さんの要望通りのものが出来て検収があがりました。


このお話はまだ続きがあります。
それからしばらくして(数年かな もう忘れちゃいました)当時の石原東京都知事がとっても厳しいジーゼルエンジンの排気ガス規制をはじめました。
まだ国のほうの規制はゆるいままでしたが、石原さんのこの法律に適合しない車は東京都に入ってはいけない、というものでした。
わたしジーゼルエンジンがすきでした。燃費が安いし、上り坂でも力が強いですから。
日産のバネット(ジーゼルエンジン、マツダで作ったOEM)に乗っていましたが、都内に入れないのではマズイと思って、新しい規制に対応したバネットを注文しました。
すぐにできるという話がいつになっても完成しません。 結局一年まってもバネットのジーゼルエンジンは完成しませんでした。
仕方なくガソリン車に変えてバネットを買いました。
この排ガス規制の技術はかなり難しかった様で、他社での話ですが排ガスデータを捏造したとニュースになっていました。

ここで私が言いたいことは、
石原さんの様な人こそ自治体や国の長にふさわしい人だと言う事です。
メーカーの都合など関係なく、住民の健康や、未来のことを考えて絶対必要と思えるなら断固進める強い意志と行動力。
いいですね。 いまの東京の空がきれいなのは、石原元東京都知事のおかげです。
それに引き換え石原さん以後の都知事、特に舛添要一なんてひどかったですね。

いまの東京都環境科学研究所 どうなっているのか気になったのでネットで調べてみました。
ありました。 ついでに私の作った装置出てるかな、探したら出ていましたね。
1989年 「ステップ昇温による炭素成分の熱分析」
忘れていた担当の研究者の方の名前も出ていてなつかしくなりました。
話の通じる優しい人でしたね。


これ シャコバサボテン 玄関の暖かいところで咲いています。
まだまだこれからですね。

c0335218_11435736.jpg

庭に咲いている菊 もう終わり

c0335218_11292977.jpg

これも 庭に咲いている菊 最後の最後ですね。
c0335218_11291422.jpg




# by telmic-gunma | 2018-11-29 12:13 | むかしの思い出 | Trackback | Comments(6)

PICの勉強 再開

PICマイコン しばらくいじってなかったので再開準備
いままで作った試験機のメンテを引き継いでもらうために回路やソフトの勉強会を若い人とやるつもり。
下の写真 回路チェックする治具 作ってみました。
勉強会で使うために作りましたが、ついでにPICで悪さをするためにも使います。
本当は、悪さするのがメインですが、これはないしょ。
最新のマイクロチップのソフト開発システムは、だいぶ変わったらしいですが、私は古いままで行きます。
パソコンもWinXPを使います。ネットにつながないので問題無いはず。

いま やりたいことは、dsPICを使ってデジタル制御をすること。
それと、GAME言語をこのdsPIC上で動かすこと、
気まぐれですから、やり始めるかはたまたやりだしても完成まで行けるか分かりません。

c0335218_07410960.jpg


c0335218_08593029.jpg

東京見物に行ってきました。(今時、この言葉あるのかな)
築地で新鮮で美味しいお寿司を食べてから、スカイツリーに上ってきました。
小学生の時、出来たばかりの東京タワーに初めて上った感激の方がはるかに大きかったですね。

c0335218_09012464.jpg



c0335218_09011691.jpg

朝の散歩をしていたら 狐に出会いました。
しばらく見ていたのですが、あちらからもこっちを観察していたようです。

c0335218_09080191.jpg



# by telmic-gunma | 2018-11-03 09:34 | 電子工作 | Trackback | Comments(6)

若い仲間から「アイデア下さい」と言われて考えたのが下記の回路。
条件は 「入力変化に一定傾斜で追いつく回路」
まだ100点満点じゃないけれど一応それなりの動作はします。
そうこうしているうちに、
「とりあえず製品には入れなくてよくなったので、今回は頭の体操だけということで」
となりました。
c0335218_05163704.jpg
c0335218_05164201.jpg

了解をもらったので、ブログに載せてみます。

この回路 丸三日考えました。
昼間 本気で考えていると、ふとんの中に入っても頭から離れず、ずーっと考え続けていました。
最初は、積分器、コンパレータ、アナログスイッチなどの組み合わせで模索していましたが、
ふとんの中で考えているとき、おもいつきました。

昔 一緒に仕事していた同僚で、どんな回路でも、すぐAGC(オートゲインコントロール)を使いたがるのがいました。
それを組み込むと今まで不安定だった回路が不思議とピターと安定するのです。
今回 アイデアが煮詰まっていたところに、なぜかそのことが思い出されたので、ちょっとトライしてみました。
出力をいろいろ細工してから一番入力の所まで戻してみます。
思った通りの動作をしてくれました。

サーキットビューア(電子回路シュミレータ)いいですね。
回路でも定数でも、手を汚さずにすぐ変更して実験出来るのですから。
一番の効果は実験のための部品集めをしなくて済むことかな。
昔なら考えてから部品集めて実験するまで、えらい時間がかかったのに、
「思いついたら実験できる」なんて夢のようですね。
これも「電子工作」と言うことですよね。

わたし もうすぐ70歳になりますが、「わたしの頭 まだ結構使えるじゃん。」
と本人だけ勝手に思い込んでいます。


# by telmic-gunma | 2018-11-03 06:33 | 電子回路シュミレータ | Trackback | Comments(2)

なかなか頭の中がすっきりとしていないのですが、
ヒントをいただいたので、いろんな方向からアタックしてみます。
この式から数値計算で円周率をだしてみます。

c0335218_20463019.jpg
HP電卓(HP32S)でやってみました。
0から1の間を100分割して高さを出してから幅(0.01)をかけて一つの面積を出しそれを100回繰り返します。
答えは3.1316 多少の誤差はゆるしてください。

c0335218_21022816.jpg
念のため BASIC で計算しました。 3.1715 やはりこちらの方が精度は落ちるのかな。

c0335218_21021426.jpg


式の展開にミスはないのかチェック

c0335218_21024501.jpg

「t=TanΘ とおいて置換積分で解けるよ」とヒントいただき調べたらそっくりなのが見つかりました。
しかし、なぜ三角関数が出てきて X=TanΘ とすると最後π(パイ)にたどりつくのでしょうね。


c0335218_21012400.jpg

そこで 最も基本的なところまでもどり、式とシュミレータ回路の対応調べてみます。
            
               図 1

c0335218_21015123.jpg

図 1 の左上 Y=1 一定のもの 電圧1V時間1秒のパルスで1秒後の電圧は1Vです。
積分器 1個です。 これは 理屈でも直観でも同じで問題在りません。

c0335218_21044179.jpg
図 1 の右上 Y=X 数学的な積分で Y = (1/2)X^2 入力 1Vで出力は0.5Vですからピッタリです。

c0335218_21044768.jpg


問題はこれ
図 1 の下の左  Y=X^2 です。 
積分すると出力は 数学の上では Y=(1/3)X^3 となります。入力が1V1秒のパルスですから出力は1秒後には0.333Vになるべきです。
しかし出力電圧は167mV 想定値の半分です。

c0335218_21045382.jpg

c0335218_21045879.jpg

数値的に解いてはみると 0.338V   入力1Vに対して出力1/3で正しいです。
c0335218_21024034.jpg

c0335218_21020749.jpg

結局 問題あるのは、シュミレータの出力がおかしいと言うことになるのでしょうか。
使い方、考え方 どこかおかしいのでしょうね。
直ぐ答えが出てしまうより、いろいろ試行錯誤しながら答えに近づくのが、楽しいと思います。
と負け惜しみかな。



毎朝の散歩で通る歩行者専用のつり橋です。

c0335218_21034632.jpg

道ばたになっている柿 けっこう大きいです。 おじさんの所でたくさん作っているのですが、まだ連絡来ないなー。
c0335218_21040838.jpg


# by telmic-gunma | 2018-10-25 22:31 | 電子回路シュミレータ | Trackback | Comments(4)

最初の式に戻り 掛け算器を使って二乗を計算してみます。
そのため積分器は2個ですみます。

c0335218_20463019.jpg


左から2個目のOPアンプは極性を合わせるために入れています。
c0335218_14115344.jpg
c0335218_14114095.jpg
わずかな改造ですが、本物の回路のようにつなぎ忘れや、オシロのトリガレベルのずれで起動しないなどいろいろトラブルが起きるものですね。
まあ どんなミスをしても、爆発したり火を噴かないのがいいです。
それと壊れないことも。

結果は 円周率 3.143  前回とちょっとずれました。




# by telmic-gunma | 2018-10-23 14:29 | 電子回路シュミレータ | Trackback | Comments(2)

新しく手に入れた電子回路シュミレータ(インターシムV5)でさっそく、なにかやろうと考えてみました。
以前ネットで, π(パイ 円周率 3.14)をOPアンプを使って実物のアナログ回路で計算しているひとがいたので、それを参考にさせてもらい電子回路シュミレータで置き換えてみました。
この実物アナログ回路でやられたた人のブログ(ホームページかも)の名称は「円周率の計算 アナログ編」です。Googleで出ます。
2005年以降は記事の更新がされていませんので、もう亡くなられたのかもしれません。
こういうの 大好きですね。 何かに役立つわけでなく、お金になるわけでもなく(本人見ていたらごめんなさい)ただ好きだからやる、やりたいからやる、 なかなかこのような事できなくなりました。


回路図は以下の物です。
積分器を3台使っており、この積分回路のコンデンサーのデスチャージ(放電)のためにどうしてもアナログスイッチが必要だったわけです。Ver4以前のサーキットビューアには在りませんでした。

最終的な答えは、オシロ画面の右下にありますが 3.142 でした。 結構いいですね。
この電子回路シュミレータ 何も電子回路の予備実験に使用するだけでなく、物理や数学、制御などの計算にも使えますね。
世の中の通常の技術計算は、有効桁数 2~3桁あれば十分だと思います。
なぜなら世界最初の原子炉は、計算尺だけで設計されたそうですから。
もっとも 第二次大戦まえには計算尺しか計算手段がなかったのだから。
(タイガー計算機があったかな)
ゼロ戦も堀越二郎が計算尺を使って設計していましたしね。
私が学生の頃はまだ電卓が世の中には無くて、みんな計算尺を使っていましたね。
ヘンミ計算尺 電気設計用で値段は4000円位だったとおもいます。
一応買いましたが、私は紙の上で鉛筆使って手計算専門でした。

c0335218_20091021.jpg

このシュミレータ上のオシロスコープは、本物同等以上にいろいろ面白い動作をさせることが出来ます。
右下の隅に円周率計算の最終結果が出ています。
積分を3回やって出た結果 3.142 となっています。( 正解は 3.141592 すごく良いです。)
不思議ですね。この回路の定数のどこにも 3.14 なんて入ってないのに、どこからこの数値が出てくるのでしょうか。
円周率なんて 数学の図形の問題でしょう。電子回路とは全く関係ないはずなのに不思議ですね。


c0335218_20092128.jpg

以下は ネットの「円周率の計算 アナログ編」で説明されていたことです。
計算の出発点はこの式。
円周率を積分使って導く定理だそうです。


c0335218_20463019.jpg

上記の回路だと二乗するために掛け算器が必要になるので、それを無くすため
上記の式を変形して、二乗をなくして積分で済ませるようにしています。
答えは出ましたが、この定理の式や回路が納得できません。
(腑に落ちない、 いや 理解できないのですね)
あとで じっくり考えてみます。
c0335218_20462875.jpg


朝の散歩道 リンゴが実っていました。 真っ赤でもう食べれそうです。
品種は何かな、フジはまだ早いようなきがするけれど。
リンゴに限らず くだものは昔に比べると甘くて美味しくなりましたね。
小さい頃の思い出では、リンゴはすっぱいものという記憶しかありません。

c0335218_20463085.jpg


c0335218_20463067.jpg



c0335218_20462965.jpg


# by telmic-gunma | 2018-10-21 20:54 | 電子回路シュミレータ | Trackback | Comments(3)

何気なくネットを覗いていたら「サーキットビューア」回路シュミレータがバージョンアップしたと誰かが書いていました。
すぐに発売元のマイクロネットのホームページを調べたら、回路シュミレータとともに、デジタルシュミレータもバージョンアップされておりその合成されたものが「インターシム」という名で販売されていました。
私がサーキットビューアVer4を購入したのは2010年7月でしたから今度Ver5になったのはえらくスパンが長かったですね。
マイクロソフトのウインドーズはバージョンアップばかり繰り返しているけど、少しはマイクロネットさんを見習ってほしいものですね。(私にとってはWinXPのままが一番うれしいですけれど。)
聞いてみたら古いバージョンを持っている人には、バージョンアップと言うことで割安になるそうです。
いままでのVerで不便な点としてアナログスイッチが無かったのですが、今度それが使えるようになり、その他モロモロたくさん改良されているとのことなので、我慢できなくなり即購入手続きしちゃいました。
一応、嫁さんの許可はとりましたけれどね。
これから先、これが役立つことがどれほどあるか判りませんが、わくわくして楽しめればそれで充分と思っています。
私の周りには、100万円のオシロスコープを自分のオモチャとして買っちゃうような人も居ましたから。


c0335218_17212296.jpg


c0335218_17213447.jpg


以前 dsPICのDSP機能を使って電源のデジタル制御に挑戦したのですが、勉強不足で挫折、その時はアナログのPID制御と同じものをC言語で置き換えて「デジタル制御だ」と言い張っていました。
今回、これで勉強してぜひ 本当のDSP デジタル制御をやりたいですね。
dsPICで作ってあるので、ハードそのままで、ソフトを書きかえればデジタル制御になるはずです。
まあ 今までのC言語で作ったものでも,仕様は満足して正常に動作はしているのですけれど。

c0335218_17214235.jpg


今朝、散歩道に咲いていた百日草(ヒャクニチソウ)です。
たくさんの種類があるのですね。
こういうのも 誰かが植えるのでしょうね。 自然には生えないでしょう。

c0335218_17225545.jpg

c0335218_17222547.jpg


ピンボケです。撮り方勉強しよう。


c0335218_17224226.jpg


c0335218_17221626.jpg













# by telmic-gunma | 2018-10-14 18:26 | シュミレータ | Trackback | Comments(2)

先日のブログに書いた、イチゴの粒を大きくする話の続きです。

イチゴについては、毎年 雑草で悩むので何とか出来ないかと思っていました。
雑草を防ぐ方法としてマルチと呼ばれる黒のビニールシートで地面を覆うという方法があります。
太陽の光を地面に当てなければ雑草は生えることが出来ないと言うことです。

今回 すでにイチゴの苗は植えてしまったので穴を開けたマルチは使うことが出来ません。

そこで単純に稲のワラをイチゴの周りに並べてみました。
これなら雑草を防ぐとともに、できたイチゴを地面に付けないで綺麗なままにしておけるはずです。
うまく行くかどうかは、来年の春にならないと判りませんけれどね。

c0335218_19570981.jpg

ちょっと 隙間が大きいような気がする

c0335218_19582139.jpg


もうちょっと ワラを増やしておこう
c0335218_19575030.jpg



c0335218_19575647.jpg


白菜の苗を植えました。 全部で12個 うまく育つかな。
近所の家で作っている白菜はもう食べられるほどになっているのですが。

c0335218_19591292.jpg

網を被っているのが、やっと食べられそうになった、チンゲン菜とホウレン草 
なぜかチンゲン菜は、虫に食べられたものが多い。どこから虫が入ったの?。

c0335218_19592258.jpg

いつも綺麗です。
アルストロメリアでしたよね
今年もまだたくさん咲いています。


c0335218_20013366.jpg


c0335218_20012616.jpg


# by telmic-gunma | 2018-10-08 20:33 | 農作業 | Trackback | Comments(2)

物置を片付けていたらまたまた面白いものがでてきました。
SONYのデジカメ、型式はMVC-FD7
名前は「Mavica」➡「マビカ」 (まったくビックリするカメラの略だそうです)
たぶん日本でのデジカメはこれが最初じゃなかったかしら。
記録媒体は3.5インチのフロッピー 1.44Mbyte
1枚のフロッピーで十数枚記録できたと思います。

画像サイズ 640 X 480 (VGA)
総ドット数 61380

現在のデジカメと比較すればオモチャかもしれませんが、当時はこれを使って
説明書などに役立てていました。
媒体がフロッピーなので撮影したらフロッピーを外して、すぐパソコンに入れてみることが出来たので、たいへん便利だった記憶があります。
他社の物は通信ケーブルをつないだり面倒でした。
バッテリーの充電器が見つからないので動かせません。
まあ電池が有っても動くかどうかわかりませんけれど。
いつも思うのですが、単三電池でも使ってくれれば何十年たっても動かせるのに、なぜ機種ごとに専用のバッテリーを作るのでしょうか。
そして数年で生産中止


発売は1997年 今から20年前ですね。
値段は6万円ぐらいでしたでしょうか。
大きさは、フロッピーと比べても、かなりの迫力がありますね。

c0335218_21055144.jpg




c0335218_21061367.jpg




c0335218_21055898.jpg








# by telmic-gunma | 2018-10-01 21:58 | カメラなど | Trackback | Comments(2)

電子工作 最近全然やってないと言われちゃいましたが、性懲りもなくまたまた自転車です。
この自転車は マウンテンバイク(MTB)と言って 野はらや山あるいは河原などを走るためのものです。
タイヤは太く凸凹になっており、荒れ地でもスリップし難いようになっています。
物置の奥にしまってあった物を出してきて掃除をしました。
タイヤはぺちゃんこでしたが、空気を入れるとしっかりと固くなりました。
購入したのは10年ほど前のまだ私が若い頃です。(どこが若いのという突っ込みはなしで)

「センチョリオン」と言う名前で、たしか台湾製だったと思います。
前後輪にエアーサスペンションが付いています。
ブレーキは油圧のデスクブレーキになっておりこれが最高ですね。

ブレーキを軽く握るだけでジワーっと利いて、長い下り坂でも手が痛くなることはありません。


c0335218_18454963.jpg

このマウンテンバイクのデザインを見るとどうしても虫の「カマキリ」を連想してしまうのですが、皆さんはいかがですか。

c0335218_18454138.jpg

リアサスペンションです。
空気入れで内部の圧力を調節することによりクッションの強度を変えられます。
ショックアブソーバーは左側に一つ付いているだけです。
現在 この形のものは販売されていないと思います。

c0335218_18462422.jpg


ハンドルからフロントサスペンションの動作を入れたり止めたりすることが出来ます。
フロントおよびリアのギアシフトは1回押すと1段確実に動きます。
50年前のアルプスローバーでシフトレバーを操作してチェンジするのと比べたら「なんて楽なの」という感じ。

c0335218_18460844.jpg

リアスプロケットは9枚 歯数は忘れましたが、大きい方は30を超えているでしょう。
フロントチェーンホイールは3枚 歯数は猛烈にワイドです。 

c0335218_18470366.jpg

あとから作った27インチで細いタイヤのホイール。
サイクリングロードなど良い道を走るときは、こちらに取り換えれば軽くはしれます。
取り換えもワンタッチでできるから楽。
しかし今思えばこれ無駄だったという感じ。 タイヤのみ細いものに入れ替えればお金かけずに済みましたね。
c0335218_20205188.jpg

この自転車で行ったところの思い出としては、
丹羽隆志さんのやっている「やまみちアドベンチャー」に何度も参加しました。
東京 奥多摩の五日市駅前に集合して八王子の山々を走りまわります。
毎回10人前後の人が集まりました。
初めて参加した時は、途中でどうしてもみんなについていけなくなってリタイアしたのですが、サポートの人が最後まで送ってくれました。
山の中を自分の力で走り回る面白さを教えてもらいました。


次は、「自転車の教科書」を書いた堂城賢(タカギ マサル)さんの「ヤマメの学校」へ行ってマウンテンバイクの乗り方を習いました。
今までの常識と真逆の乗り方で、理屈を教えてもらっても体は全く言う事を聞いてくれません。

先生は元プロの人で、私のように「前後にサスペンションの付いたものはダメ」
先生の乗っていた自転車は当然サスペンションは無くタイヤサイズは29インチでした。





# by telmic-gunma | 2018-09-28 21:27 | サイクリング | Trackback | Comments(0)

3年ほど前イチゴの苗を貰ってきて植えたのですが、最初は大きな実がなったのに、毎年ほったらかしにしていたら小さな実ばかりになってしまいました。
調べたら、連作障害があり3~4年はあけること ということでした。
植え付け時期は9月~10月ということで、今がちょうどよい時期なので移植にトライしてみました。
親株から伸びたランナーと呼ばれる枝の先の子株を小さな植木鉢で3週間ほど育ててからランナーを切って移植するそうです。
いつもの事で、今回も横着して畑にある子株を掘り出しすぐ植えてみました。
全部で186本 順調に育てば毎日大きなイチゴが食べられるはずです。
場所は元あったところから10m位離れたところにしたので、連作障害は防げるかな。
念のため、古い親株もそのままにしてあります。大きさにどのくらいの差が出来るか見れますね。


c0335218_20183359.jpg



c0335218_06545136.jpg




c0335218_06545182.jpg



c0335218_06545048.jpg





# by telmic-gunma | 2018-09-24 20:55 | 農作業 | Trackback | Comments(2)

チンドン屋さんが来た

今でも在ったのですね。(居たというのかな)
畑仕事をしていたらチャンチャカにぎやかな音が聞こえてきたので道路をみたらなんと、チンドン屋さん
まだ存在していたなんてビックリ。
私がチンドン屋さんをよく見ていたのは、今から60年ほど前、小学生のころ、まだ我が家にはテレビがない時代ですね。
昔は5~6人ぐらいで太鼓やクラリネットなどを鳴らしながら、宣伝ビラを配っていきました。


なんの宣伝をしているのかと思ったら、この辺に多いブドウ農家の宣伝でした。

c0335218_19274450.jpg


c0335218_19275037.jpg


c0335218_19273518.jpg


c0335218_19272778.jpg


# by telmic-gunma | 2018-09-24 20:16 | 季節の風景 | Trackback | Comments(2)

いままで利根川サイクリングロードを何度か走りましたが、今回一番上流の端っこの出発点に初めて行ってみました。
前回と同じく車で 道の駅よしおか温泉まで行きそこから地図を頼りに利根川サイクリングロードを上流にすすみました。
このあたり国道17号線と一緒になったり分かれたりで道に迷ってしまったのですが、GPSを頼りにして何とか利根川サイクリングロードを見つけました。


今回の装備 自転車にキャリアや泥除けを付けて普通の形にしてみました。

c0335218_20165396.jpg


これが利根川サイクリングロードの上流の端っこ。
「出発点」と思っていたところが、なんと「終点」でした。
普通 上流が「出発点」でないのかなあ。
それと名前は「利根川自転車道」でした。
ここが 太平洋まで240kmの端っこなのに、あまりにも素っ気ない感じ。

c0335218_19562191.jpg


終点のまわりは野球が出来るグランドになってました。
ベンチなど休憩できるものは何もありませんでした。


c0335218_19554990.jpg

「終点」から「よしおか温泉」に向けて下りの途中

c0335218_19553628.jpg

途中 自転車に乗っている人には一人も会いませんでした。 散歩している人は、結構いました。

c0335218_19545072.jpg


途中 榛名山を望むところ。

c0335218_19552850.jpg



途中に咲いていた コスモスの花。 模様や色などたくさんの種類がるのですね。

c0335218_19592246.jpg


c0335218_19580467.jpg


c0335218_19595366.jpg

c0335218_20001193.jpg


c0335218_20082651.jpg


c0335218_20085157.jpg



# by telmic-gunma | 2018-09-16 20:10 | サイクリング | Trackback | Comments(7)

スプリング付き皮サドル組み付けてから、初めてのサイクリングに行ってみました。
安全なところということで、車に自転車積んで35km先の、群馬県渋川の先、道の駅よしおか温泉まで行きました。
そこから自転車に乗り換えて、側を通っている利根川サイクリングロードを太平洋の方向へ下って行きました。
今回 ブルックスのスプリング付きサドルを組み付けるついでに細かな外せる部品すべて外して、使い勝手がどうなるかの試しもあります。
代わりに背中には、ドイターの30Lリュックを背負いました。
工具や予備チューブ、水筒など全部入れたので合計5.5kgにもなってしまいました。

まずは、ブルックスのスプリング付き皮サドルの感想。
履いていたズボンも関係するのでしょうが、とにかくお尻がサドルの上でつるつると滑ってお尻の位置が定まらない感じ。
それとサドルのスプリングが固くて無いのといっしょ。
誰かのブログに「5000kmくらい乗ったらやっとお尻に馴染んできた」と書いてありましたが、これはサドルがお尻に馴染んだのではなくてお尻がサドルに馴染んだのでしょうね。
なのでサドルの印象を言うにはまだまだ乗り慣れてみないと判らないですね。
そうそう 今回、自動車で35kmも先まで移動しながら自転車で漕いだ距離は往復25km程度でした。
バカみたい。



今回 不便を感じたことは、
1、リュックに詰めたものは、自転車を停止して背中から降ろさなくてはならないので取り出しに時間がかかる。
2、重いリュックの分さらにお尻に過重がかかるのでお尻が痛い、さらに背中の熱が逃げない。
3、スピードメーター(距離積算計、時計付き)はハンドルに必要
4、GPSは必要
5、水筒はフレームに付ける
6、A4サイズで地図がハンドルの上にあると良い。(風の抵抗を受けないようにして)
7、羊かんやパンなどすぐ取り出して食べられると良い。
8、タオルを走行中でも簡単に取り出して顔を拭けると良い。
9、財布や携帯、車のカギなどは、体に付けておきたい。
10、すべての荷物は自転車に付けて、人間には何もつけず自由でありたい。
11、自転車を立ちかけるのに不便なのでスタンドがほしい。

とにかく必要な物へのアクセスタイムは1秒程度でないと役に立たない。
結局 元に戻ってしまうのかな。
まあ 少しづつ改良していけばいいですね。





フレームに付いていたキャリアや水筒などはみな外しました。 
ペダルの所にある黄色のアームは、自転車を持ち上げて移動するときに使う取っ手です。
これは、いまは無きアルプス自転車で販売していたキャンピング車 「アルプスローバー」の特徴です。

フロント 44X38X26  リア 15~28 6段
c0335218_20250066.jpg


ハンドルにも何も付けてありません。 
最初のオリジナルは、 普通のドロップハンドルが付いていたのですけれどね。
私にとっては、これの方が手が圧迫されず楽なんです。

c0335218_20244131.jpg


ここは 道の駅 よしおか温泉です。 群馬県の渋川と前橋のあいだ、国道17号線と利根川のそばにあります。
大きな駐車場や綺麗なトイレが有るのでサイクリングの拠点とするにはとてもいいですね。
汗をかいた帰りには温泉に入ればさっぱりしますしね。 最近はやりの足湯もありました。

c0335218_20241958.jpg

遠くからも良く目立つ風力発電機が一つ立っています。
検証実験で建てたそうですが、お役目終わって そのうち解体するそうです。 
群馬の空っ風でも足りなかったのか。 もったいないですね。
国道17号線の脇にあるので、よしおか温泉はこれ目指してすぐ行けます。

c0335218_20240206.jpg

飛行場はないけど、なぜか本物のグライダーが飾ってありました。
やはり本物は大きいですね。 台風きても平気かなあ。

c0335218_20241183.jpg


途中 利根川サイクリングロードの高まったところから利根川を覗いたところです。
サイクリングロードは土手の上じゃなくて山の淵といったところで、平らではなく結構10m位上がったり下がったりです。

c0335218_20310166.jpg

利根川サイクリングロードの道ばたで咲いていた花たちです。

c0335218_20224817.jpg


これ 自宅近くの散歩道でも咲いていましたね。

c0335218_20230349.jpg


これは ケイトウですね。
わたしが小さいとき、庭にたくさん咲いて埋め尽くされていた思い出があります。

c0335218_20235253.jpg



c0335218_20234253.jpg



# by telmic-gunma | 2018-09-02 16:20 | サイクリング | Trackback | Comments(2)

自転車は安全ですか?

今日( 2018-8-28 )ヤフーニュース見たら茨城県常総市の国道で朝4:20頃大型トラックが自転車旅行中の20代男性二人をはねてそのまま逃げた、と出ていました。二人とも意識不明の重体.
(次の日ニュースで二人の内一人死亡 朝4:20は今の時期もう暗いですね)

自転車に限らず歩行者など交通弱者がいつも犠牲になります。

しかし新聞に載るようなことは全体から見ればごく一部と思います。
その裏側には、新聞には載らない事故が数百倍、数千倍あると思われます。
自転車は弱い立場のせいか、事故となると被害者になると思っていましたが、最近加害者となってしまうことも多いみたい。
もし加害者となって相手を死亡させたりしたら億に近い損害賠償を請求されることも珍しくないでしょう。
しばらく前に女子大生が77歳の女性にぶつかり死亡させた事故がありましたね。
この女子大生の親はお医者さんで1億円の示談金を被害者に払ったとネットに出ていました。
このひとのように誰かがお金だしてくれればいいですが、二十歳前後で1億の借金などといったら前途真っ暗、
何のための人生だろうとなってしまいます。
被害者で有ろうと加害者であろうと、いくら保険に入っていても、すべてお金で解決できる問題ではないと思います。
一億円もらったとしても、死ぬまでベッドの上で何十年も過ごすなんてそれこそ地獄でしょう。

ではこういう悲劇を無くするにはどうしたらいいのでしょうか。
いつも思うのですが、一つの道路に歩行者と自転車そして自動車など、スピードが大きく違うものを一緒に走らせたら、
必ず事故が起きて当たり前と思います。
都会では歩道が整備されているので少しは良いと思いますが、田舎では歩道なんてまったくありません。
かりに歩道を歩いていても、最近は高齢者の運転する自動車からの攻撃で命を落とす人が多いようです。

自転車の使い方は大きく分けて二つあると思います。
一つは 通勤、通学、買い物などの実用 いまはこれ考えません。
もう一つは サイクリングなどのレジャー。 私はこれ専門ですが。
これは走ること自体を楽しめればいいので、

もう自動車や歩行者のいるところは走らない。
自転車専用道路(サイクリングロード)などに車で移動してから
そこで自転車で走れば、もうそこは天国。
信号もないし自由気ままに全力で走れます。
これしかないと思います。

最近、自転車専用道路ほんと沢山あります。
群馬の山奥から利根川の土手沿いに200km以上も続いた「利根川サイクリングロード」もあります。
それでも自損事故は起きるかも知れません。
でもヘルメットを被っていれば、最低限 命は助かることが出来るでしょう。

多摩サイクリングロードでこけた自民党の元幹事長 谷垣さんも命は大丈夫でしたね。
また 政界に復帰すると言ってるので元気になっているとおもいます。



川場村にある田んぼアートです。 すぐ近くにつり橋があり、その上から見学できるようになっています。


c0335218_17171939.jpg


はじめて植えた「サトイモ」です。 大きなイモできるかな。


c0335218_17140159.jpg




「いちご」です。  雑草にやられそう。 手入れしなくてはと思いつつやってません。

c0335218_17143674.jpg


「朝顔」です。 まだ元気ですね。


c0335218_17152788.jpg


# by telmic-gunma | 2018-08-28 17:24 | サイクリング | Trackback | Comments(0)

前回のブログ「華麗なる双輪主義」に出てきたスプリング付きサドル買っちゃいました。
「いいなあ」と思うと、もう我慢できなくなってしまう私の悪い性格が出てしまいました。
「サドル コンクエスト」をアマゾンで調べたらブルックス製のスプリング付き皮サドルがでました。
いろいろ調べたら、スプリング付きの物でもたくさんの種類があるのですね。
ブルックス_フライヤーのカスタマーレビューに10人の人が投稿していましたが、
皆さん最高ランクの5に入れており、異口同音に「良い買い物をした」と言ってるのを見て我慢できなくなってしまいました。
そしてアマゾンをポチっとやってしまったのですね。
いまのこの便利な世の中 ほんとにいいことなのでしょうか。
どうしても無駄遣いしてしまうようになっているんじゃないですか。

それはともかくサドルは直ぐきたので付けてみますた。
写真のものですが、スプリングが付いていても、それほど違和感はないと思います。
すぐ乗れれば良かったのですが、ちょうど出張になったのでしばしお預けです。
やはり最低100km以上乗らなければお尻に合うか判らないでしょうね。
出張から帰って乗るのが楽しみです。

ブルックスのカタログ写真です。やはり綺麗に撮れていますね。

c0335218_20095998.jpg


ブルックスのサドルをアルプスローバーに付けて、不要なものをみな外してみました。
このアルプスローバーは、元はキャンピング自転車です。 
これなら山の林道を走るためのパスハンターに見えますね。?

c0335218_20355226.jpg

ちょっと前方向から見ました。  ハンドルの位置が高いので恰好がいまいち、ママチャリみたいですね。
以前 ドロップハンドルで頑張って遊びまわっていたとき、体は前傾だけど首は上げていたので、
頸椎ヘルニア(首の骨のヘルニア)になってしまいました。
それ以来無理はやめました。

c0335218_20361197.jpg



ブルックスのスプリング付きサドル。 私が小さい頃の大人の自転車はみなこれだったような気がします。

c0335218_20364256.jpg



こんなにスプリングが大きくては、サドルバッグを付ける余裕が有りませんね。

c0335218_20363595.jpg
ついでに、いろいろな物を外したこの状態で重さをはかってみました。
みなさん良くやる、自転車を抱えて体重計に乗り全重量をはかり、次に人間だけの体重を量りその差を求める方法でやってみました。

人間 + 自転車 = 91.65kg
人間のみ     = 79.20kg
差(自転車単体) = 12.45kg

いがいや思っていた値より軽かったです。
元はキャンピング車なので頑丈なフレームの為15kg位あると思っていたんですけれど。
でも今のスポーツ車はみな10kg以下なんでしょうね。
パーツを変えて10kg以下にするには、べら棒な部品代がかかるでしょうから、
体重を減らした方がお金も安上がりに済みそうです。 でもないかな?



家の前の畑で、枝豆がたくさん出来ています。
奥に見えるのは、私の作業小屋です。
c0335218_20433123.jpg

おすそ分けしてもらった枝豆。
今年は、高温で雨が降らなかったので、出来が悪いそうです。 その分値段は高いみたいですけれど。

c0335218_20434194.jpg

庭に咲いたアサガオ

c0335218_20403885.jpg
毎朝 散歩する道ばたに咲いているきれいな花。 名前は不明

c0335218_20420171.jpg



c0335218_20422883.jpg



More
# by telmic-gunma | 2018-08-18 21:49 | サイクリング | Trackback | Comments(2)

「華麗なる双輪主義」 書いた人「小池一介」 発行2006年5月11日

自転車に関連したエッセイは好きなので、いろいろ読んでいますが、
その中でこの本は強烈な個性で自転車と人間の付き合い、そして自転車への愛情を語っています。
どちらかというと、こまかな技術的なことは少なく、感性の世界を「良くここまで考えますね」というくらい追及しています。
発行は12年前ですが、決して古いという感じはなく楽しく読めます。

著者の小池一介さん 歳は私よりちょっと上かなと思われます。
この本は、いろいろなブログに紹介されていますが、イギリスにしばらく住んでいたことぐらいで詳しくは解りません。



c0335218_20080219.jpg

この本の、心に残ったところを書いてみます。
以下 「私」とあるのは著者の小池一介さんです。 
*****************************************************
私は実は、かなりのバスケットマニアである。( 籠のバスケットです)
バスケットの、何がそんなに面白いのかと聞かれると困るが、これは理由なしに感覚的なものである。
材料となる植物のアースカラーもいいしその表面の質感も面白い。
バスケットの味わい深さというものは、これは茅葺き屋根の良さなのだ。
金属製自転車という機械の一部に、植物性であるバスケットが組み込まれる事によって、自転車が自然の風景の中にうまく溶け込むようになる。
籠がついた自転車は力まず、人口のものと自然の物との架け橋にになるのである。



c0335218_20074129.jpg


サドルにバネが入っているのを馬鹿にする傾向が、マニア間にあるようだが、これも気にすることはない。
英国には自転車で1300km 3日間走り続ける極限のレースがある。
これを走るとたいていの選手はお尻の痛みで、走り続けられなくなってしまう。
そういう要求に応えて、英国ではバネの入った細身のレース用サドルが1930年代に存在したが、これはすごく楽なサドルである。
そのサドルは現在、「コンクエスト」の名称で手に入る。


c0335218_20095998.jpg


私は自転車好きであるが、ほんのささいなことで、乗るのに「面倒くさい」と思うことがある。
ひとつはズボンの裾を処理すること。
もう一つは、自転車のために、それ専用の靴を履くことである。・・・・・・・
どんな靴でも乗れるペダルの付いた自転車は「敷居が低い」ので、自然とよく乗るようになることもメリットと言える。
私は両面踏みのペダルにしてから、「出撃回数」が激増したと断言できる。


c0335218_20111561.jpg



自転車には統一された色彩がエレガンスを生み出すという、時代を超えた法則があると言ってよい。
自転車の第一印象を決めるのは色だと思う。
「自分の色」というのがオーダーメイド自転車を作るときの、大きな醍醐味となる。
・・・・
大切な思い出の自転車が、自分の一番好きな色に塗られているのは幸福の結晶そのものという感じである。


自転車の色のことで、意外に見落とされているのが、乗りての服の色と自転車の色の不調和の問題だ。
車両が黒や白なら何を着ても合うものだが、オレンジ色とかの強いフレーム色では、着る洋服の色がかなり限定される。
場合によっては「毒トカゲ」さながらの配色になることを覚悟しなければいけなくなるのでご注意。



c0335218_20130460.jpg


弁当というのは楽しい。 これは歳を重ねても同じだと思う。
たまの休みに、どこかに持ってゆくものの場合は、
「うまいものをどこかへ運んで行って、安全なところでゆっくりと味わう」という、きわめて動物的な本能をも満足させてくれているにちがいない。


c0335218_20134478.jpg






アムステルダム・オリンピックの自転車競技で銀メダル、銅メダルを取ったジャック・ラウッターワッサーは90歳を超えてからも、自転車工場でのホイール組み立て工程を手伝うため自転車通勤をしていた。
94歳の時台所でころんで骨盤にヒビが入り、自転車から遠ざかってしまった。
亡くなったのは98歳であった。
ジャック本人から聞いた話。「自転車で転んだのだったら、”もう危ないから自転車に乗るな”
という神の声として受け入れられたかもしれないが、台所での事故で自転車を諦めることになったんだから、
悔やんでも悔やみきれない。
自転車こそが俺の唯一の健康法だったのに。」




自転車を壊さないように目的地まで乗るのと同じように、精神を肉体という船に乗せて人生の終着港まで無事に送り届けることを考えるのは無意味ではあるまい。


************************************************************************

これくらい 自分の考えに自信と信念をもって「俺の考えはこれだ 文句あっか」と言えるのは素晴らしいですね。






# by telmic-gunma | 2018-08-14 20:23 | いい本 | Trackback | Comments(0)

数独は奥が深いですねえ。
錆びかけた脳みそに油をさしながら頑張ってみたのですが、やっと ニコリの数独攻略ガイドの中級が解けるプログラムが出来ました。
解析手順は今までの2つの方法に新たに2つ追加して以下の4つの方法をグルグルと繰り返しています。

1、 空きマスを探して 縦、横、3X3ブロックの条件からそこに入力出来る数値を探す。
2、 1~9のなかで注目する数値を決めその数値がない3x3のブロックの中のどこに置くことが出来るか探す。
3、 1~9のなかで注目する数値を決めその数値がない縦の列の中のどこに置くことが出来るか探す。
4、 1~9のなかで注目する数値を決めその数値がない横の行の中のどこに置くことが出来るか探す。

言葉で言えばこれだけの事ですが、これをプログラムで表現しようとするとなかなうまく行きませんでした。
2~4においては、答えの場所を探すというよりは、置けないところを見つけてはじき出すという感じですね。
このなかでは、「先読み」や数値の「仮置き」は使っていません。

この次は「上級」の問題に挑戦してみます。


c0335218_19035428.jpg

ニコリ 数独攻略ガイド (中級) P52,53 No17,18
c0335218_10091709.jpg


ニコリ 数独攻略ガイド (中級)P52 No17
正常な答えがでました。

上半分は問題  下半分は回答です。 演算時間はみな5秒以内でした。
c0335218_10003189.jpg

ニコリ 数独攻略ガイド (中級)P53 No18
正常な答えが出ました。
上半分は問題  下半分は回答です。
c0335218_10003962.jpg


ニコリ 数独攻略ガイド (上級) P73 No26 上級の問題

c0335218_10100381.jpg


ニコリ 数独攻略ガイド (上級)P73 No26   
答えがまったく出ません。

上半分は問題  下半分は回答です。
c0335218_10004645.jpg




F-97 BASICで書いたプログラムリストです。

------------------------------
数独(ナンプレ) Ver SDOK_050N.BAS 2018-08-7
'基本テーブル配列の定義
dim AL(9,9) 
dim CHK(27)
dim INV1(20)
dim M_BUF(9)
'
'問題のテーブルデータの設定
gosub *TBL_ABCD
gosub *DISP3
gosub *ALBKCOPY
'stop
for AL_COUNT = 1 to 20
    ?" AL_COUNT=";AL_COUNT
gosub *MAIN_1
gosub *MAIN_2
gosub *MAIN_3
gosub *MAIN_4
next AL_COUNT
gosub *DISP3
?" ALL END"
stop
'=====================================================================================
'空欄を順に探してそこに入る可能性のある数値を、空欄のたて、横、ブロックのデータから類推する
*MAIN_1
'?" MAIN_1 ============================== "
X=1:Y=1
'空欄のマスをサーチする
for JJJ=1 to 20
for Y=1 to 9
for X=1 to 9
'?" X=";X;:?" Y=";Y;
if AL(X,Y)=0 then gosub *SHORI
next X
next Y
next JJJ

return
'
'=============================================================================
'空欄のたて、横、ブロックのデータを読み込む
*SHORI
'?" SHORI":'stop
for XXA=1 to 27
CHK(XXA)=0
next XXA
for XXB=1 to 9
' ?" XXB=";XXB;" Y=";Y
INV1(XXB)=AL(XXB,Y)
'stop
next XXB
'gosub *disp1:stop

'空欄に入る可能性データに変換する
for XX=1 to 9
INV2(XX)=XX
next XX

for YY=1 to 9
for XX=1 to 9
if INV2(XX)=INV1(YY) then INV2(XX)=0
next XX
next YY
for XX=1 to 9
CHK(XX)=INV2(XX)
next XX
'------------------------------------------------
'問題のテーブルから縦の列データをコピーする
for YY=1 to 9
INV1(YY)=AL(X,YY)
next YY
'gosub *disp1:stop
'空欄に入る可能性データに変換する
for XX=1 to 9
INV2(XX)=XX
next XX
'gosub *DISP2:stop
for YY=1 to 9
for XX=1 to 9
if INV2(XX)=INV1(YY) then INV2(XX)=0
next XX
next YY
'gosub *DISP2:stop
for XX=1 to 9
CHK(XX+9)=INV2(XX)
next XX
'gosub *DISP27:stop
'-------------------------------------------------
'問題のテーブルからブロックデータをINV1へコピーする
if (X<=3)and(Y<=3) then gosub *AAA:goto *BLKMOVEND
if (X>=4)and(X<=6)and(Y<=3) then gosub *BBB:goto *BLKMOVEND
if (X>=7)and(Y<=3) then gosub *CCC:goto *BLKMOVEND
if (X<=3)and(Y>=4)and(Y<=6)then gosub *DDD:goto *BLKMOVEND
if (X>=4)and(X<=6)and(Y>=4)and(Y<=6)then gosub *EEE:goto *BLKMOVEND
if (X>=7)and(Y>=4)and(Y<=6)then gosub *FFF:goto *BLKMOVEND
if (X<=3)and(Y>=7) then gosub *GGG:goto *BLKMOVEND
if (X>=4)and(X<=6)and(Y>=7)then gosub *HHH:goto *BLKMOVEND
if (X>=7)and(Y>=7) then gosub *III:goto *BLKMOVEND
?" ERR_blkend":stop
*BLKMOVEND
'空欄に入る可能性データに変換する
for XX=1 to 9
INV2(XX)=XX
next XX
'gosub *disp2:stop
for YY=1 to 9
for XX=1 to 9
if INV2(XX)=INV1(YY) then INV2(XX)=0
next XX
next YY
'gosub *disp2:stop
for XX=1 to 9
CHK(XX+18)=INV2(XX)
next XX
'gosub *disp27:stop
'-------------------------------------------------
for XX=1 to 9
BF(XX)=0
next XX
'gosub *DISP_BF
for M=1 to 9
KZ=0:GT=0
for T=1 to 27
if CHK(T)=M then KZ=KZ+1
if KZ>=3 then ANS=M:GT=1:BF(M)=1:T=27: '?"KZ";KZ;:?"GT=";GT;
next T
next M
OKCHK=0
for XX=1 to 9
OKCHK=OKCHK + BF(XX)
next XX
'gosub *DISP_BF
'?" OKCHK=";OKCHK,
'?" X="X;:?" Y=";Y
'stop
if OKCHK<>1 then goto *NON
AL(X,Y)=ANS
    '?" ANS=";ANS,
'?" X=";X,
'?" Y=";Y
*NON
return
'------------------------------------------------------------
'注目する数値を決めてからその注目値の無いブロックを探し、注目値がそのブロックのどこに当てはまるかを調べる。
*MAIN_2
'?" ":?" ":
'?" MAIN_2 ====================================================================== "
'stop
X=1:Y=1
'空欄のマスをサーチする
for ALOOP=1 to 20
for CHUMOKU=1 to 9
for BLKNO=1 to 9 ' *AA: 1 *BB: 2 ----
           '?" ":?" CHUMOKU=";CHUMOKU;  :?" BLKNO=";BLKNO;
'stop
gosub *BLOCK
next BLKNO
next CHUMOKU
next ALOOP
'?"  All end"
'gosub *DISP3B
'?" "
'gosub *DISP3
return
'------------------------------------------------------------
*BLOCK
if BLKNO=1 then BLKYUP=1:BLKXLF=1:gosub *AAA:goto *BLKXX
if BLKNO=2 then BLKYUP=1:BLKXLF=4:gosub *BBB:goto *BLKXX
if BLKNO=3 then BLKYUP=1:BLKXLF=7:gosub *CCC:goto *BLKXX
if BLKNO=4 then BLKYUP=4:BLKXLF=1:gosub *DDD:goto *BLKXX
if BLKNO=5 then BLKYUP=4:BLKXLF=4:gosub *EEE:goto *BLKXX
if BLKNO=6 then BLKYUP=4:BLKXLF=7:gosub *FFF:goto *BLKXX
if BLKNO=7 then BLKYUP=7:BLKXLF=1:gosub *GGG:goto *BLKXX
if BLKNO=8 then BLKYUP=7:BLKXLF=4:gosub *HHH:goto *BLKXX
if BLKNO=9 then BLKYUP=7:BLKXLF=7:gosub *III:goto *BLKXX
?" BLK ERR":stop
'------------------
*BLKXX
CNT=0
'このブロック(*AAA *BBB *CCC~) の中に注目している(CHUMOKU)数値があれば何もせずリターン
for XXX=1 to 9
CNT=CNT+1
'if INV1(XXX)=CHUMOKU then ?" ":?"M2 ブロック内に注目値あり":CNT=0:XXX=9:return
if INV1(XXX)=CHUMOKU then :CNT=0:XXX=9:return
next XXX

' ?" ":?"M2 ブロック内に注目値が無いので場所探しをする":stop
gosub *BK_Y_IV
gosub *BK_X_IV
gosub *XY_LNCK
gosub *CHUSET
return
'---------------------------------------------------------------
*AAA
'?"":?" AAA"
INV1(1)=AL(1,1): INV1(2)=AL(2,1): INV1(3)=AL(3,1)
INV1(4)=AL(1,2): INV1(5)=AL(2,2): INV1(6)=AL(3,2)
INV1(7)=AL(1,3): INV1(8)=AL(2,3): INV1(9)=AL(3,3)
gosub *BLKOUTCOPY
return
'----------------------------------------
*BBB
'?"":?" BBB"
INV1(1)=AL(4,1): INV1(2)=AL(5,1): INV1(3)=AL(6,1)
INV1(4)=AL(4,2): INV1(5)=AL(5,2): INV1(6)=AL(6,2)
INV1(7)=AL(4,3): INV1(8)=AL(5,3): INV1(9)=AL(6,3)
gosub *BLKOUTCOPY
return
'----------------------------------------
*CCC
'?"":?" CCC"
INV1(1)=AL(7,1): INV1(2)=AL(8,1): INV1(3)=AL(9,1)
INV1(4)=AL(7,2): INV1(5)=AL(8,2): INV1(6)=AL(9,2)
INV1(7)=AL(7,3): INV1(8)=AL(8,3): INV1(9)=AL(9,3)
gosub *BLKOUTCOPY
return
'----------------------------------------
*DDD
'?"":?" DDD"
INV1(1)=AL(1,4): INV1(2)=AL(2,4): INV1(3)=AL(3,4)
INV1(4)=AL(1,5): INV1(5)=AL(2,5): INV1(6)=AL(3,5)
INV1(7)=AL(1,6): INV1(8)=AL(2,6): INV1(9)=AL(3,6)
gosub *BLKOUTCOPY
return
'----------------------------------------
*EEE
'?"":?" EEE"
INV1(1)=AL(4,4): INV1(2)=AL(5,4): INV1(3)=AL(6,4)
INV1(4)=AL(4,5): INV1(5)=AL(5,5): INV1(6)=AL(6,5)
INV1(7)=AL(4,6): INV1(8)=AL(5,6): INV1(9)=AL(6,6)
gosub *BLKOUTCOPY
return
'----------------------------------------
*FFF
'?"":?" FFF"
INV1(1)=AL(7,4): INV1(2)=AL(8,4): INV1(3)=AL(9,4)
INV1(4)=AL(7,5): INV1(5)=AL(8,5): INV1(6)=AL(9,5)
INV1(7)=AL(7,6): INV1(8)=AL(8,6): INV1(9)=AL(9,6)
gosub *BLKOUTCOPY
return
'----------------------------------------
*GGG
'?"":?" GGG"
INV1(1)=AL(1,7): INV1(2)=AL(2,7): INV1(3)=AL(3,7)
INV1(4)=AL(1,8): INV1(5)=AL(2,8): INV1(6)=AL(3,8)
INV1(7)=AL(1,9): INV1(8)=AL(2,9): INV1(9)=AL(3,9)
gosub *BLKOUTCOPY
return
'----------------------------------------
*HHH
'?"":?" HHH"
INV1(1)=AL(4,7): INV1(2)=AL(5,7): INV1(3)=AL(6,7)
INV1(4)=AL(4,8): INV1(5)=AL(5,8): INV1(6)=AL(6,8)
INV1(7)=AL(4,9): INV1(8)=AL(5,9): INV1(9)=AL(6,9)
gosub *BLKOUTCOPY
return
'----------------------------------------
*III
'?"":?" III"
INV1(1)=AL(7,7): INV1(2)=AL(8,7): INV1(3)=AL(9,7)
INV1(4)=AL(7,8): INV1(5)=AL(8,8): INV1(6)=AL(9,8)
INV1(7)=AL(7,9): INV1(8)=AL(8,9): INV1(9)=AL(9,9)
gosub *BLKOUTCOPY
return
'---------------------------------------------------------
*BK_Y_IV
'?"ブロックを含むヨコ3行(1行9マス)の中に注目値を含む行が有るかチェック"
'?"YCHU(1)は1行目の9マスに注目値があったら1を入れる"
'?"YCHU(1)は2行目の9マスに注目値があったら1を入れる"
'?" "
YCHU(1)=0:YCHU(2)=0:YCHU(3)=0:
for BKJJ=0 to 2
'?"ブロックの上横1行9文字をINV1へコピーして注目値を調べる"
'?"注目値があればYCHU(1-3)に1が設定される"
'stop
for XX=1 to 9: INV1(XX)=AL(XX,BLKYUP+BKJJ): next XX
CNT=0
for XXX=1 to 9
CNT=CNT+1
'if INV1(XXX)=CHUMOKU then CNT=0:XXX=9:YCHU(BKJJ+1)=1:?"よこ3行に注目値が有り" '0, 1, 2 => 1, 2, 3
if INV1(XXX)=CHUMOKU then CNT=0:XXX=9:YCHU(BKJJ+1)=1: '0, 1, 2 => 1, 2, 3
next XXX
'stop
next BKJJ
return
'----------------------------------------------------------
*BK_X_IV
'?"M3 BK_X_IV ブロックを含む縦3列の中に注目値を含む列が有るかチェック"
'?"XCHU(1)は1列目の9マスに注目値があったら1を入れる"
'?"XCHU(2)は2列目の9マスに注目値があったら1を入れる"
'?" "
XCHU(1)=0:XCHU(2)=0:XCHU(3)=0:
for BKJJ=0 to 2
    '?"ブロックの左端縦の1列9文字をINV1へコピーして注目値を調べる"
'?"注目値があればXCHU(1-3)に1が設定される"
'stop
    for YY=1 to 9: INV1(YY)=AL(BLKXLF+BKJJ,YY): next YY
CNT=0
for YYY=1 to 9
CNT=CNT+1
'if INV1(YYY)=CHUMOKU then CNT=0:YYY=9:XCHU(BKJJ+1)=1:?"縦3列に注目値が有り" '0, 1, 2 => 1, 2, 3
if INV1(YYY)=CHUMOKU then CNT=0:YYY=9:XCHU(BKJJ+1)=1: '0, 1, 2 => 1, 2, 3
next YYY
'stop
next BKJJ
return
'------------------------------------------------------------------------------
*XY_LNCK
'?"注目数値のある行(9個)および列(9個)に関わるマスには使用不可の10を入れておく"
'?"INV1 をセーブしたBLKOUTからINV1へ戻す"
'?"BLKOUTとは現在作業中のブロックのデータを1列にしたもの"
'stop
for BLKX=1 to 9 
INV1(BLKX)=BLKOUT(BLKX)
next BLKX
if YCHU(1)=0 then goto *LBL200
INV1(1)=10:INV1(2)=10:INV1(3)=10
'?" YCHU INV(1-3)=10"
*LBL200
if YCHU(2)=0 then goto *LBL210
INV1(4)=10:INV1(5)=10:INV1(6)=10:
'?" YCHU INV(4-6)=10"
*LBL210
if YCHU(3)=0 then goto *LBL220
INV1(7)=10:INV1(8)=10:INV1(9)=10:
'?" YCHU INV(7-9)=10"
*LBL220
'stop
if XCHU(1)=0 then goto *LBL300
INV1(1)=10:INV1(4)=10:INV1(7)=10:
'?" XCHU INV(1,4,7)=10"
*LBL300
if XCHU(2)=0 then goto *LBL310
INV1(2)=10:INV1(5)=10:INV1(8)=10:
'?" XCHU INV(2,5,10)=10"
*LBL310
if XCHU(3)=0 then goto *LBL320
INV1(3)=10:INV1(6)=10:INV1(9)=10:
'?" XCHU INV(3,6,10)=10"
*LBL320
'stop
return
'--------------------------------------------------------------------
*CHUSET
'?"注目数値に対応する空きマスが1つの時そこに注目数値を入れる"
'?" 空きマスの数を数え2個以上あったらリターンする"
'?" 空きマスの場所をPOJに覚えておく"
WCHK=0:POJ=0
for III=1 to 9
if INV1(III)=0 then WCHK=WCHK+1:POJ=III
next III
'if WCHK>=2 then  ?"空マスが2個以上あったのでリターンする":return
if WCHK>=2 then return
'?"空マスが1個でした"
'?" 空きマスの位置の元のXY座標を求める"
if POJ<=3 then YY=1:XX=POJ:goto *MTRX
if (POJ>=4)and(POJ<=6)then YY=2:XX=POJ-3:goto *MTRX
if(POJ<=9) then YY=3: XX=POJ-6: goto *MTRX
?"ERR 5 ":stop
'stop
*MTRX
'?"ブロックNOとの組み合わせで大元のALテーブル上のXY座標を求め注目値を置く"
if BLKNO=1 then X=XX:Y=YY: goto *DTSET
if BLKNO=2 then X=XX+3:Y=YY: goto *DTSET
if BLKNO=3 then X=XX+6:Y=YY: goto *DTSET
if BLKNO=4 then X=XX:Y=YY+3: goto *DTSET
if BLKNO=5 then X=XX+3:Y=YY+3: goto *DTSET
if BLKNO=6 then X=XX+6:Y=YY+3: goto *DTSET
if BLKNO=7 then X=XX:Y=YY+6: goto *DTSET
if BLKNO=8 then X=XX+3:Y=YY+6: goto *DTSET
if BLKNO=9 then X=XX+6:Y=YY+6: goto *DTSET
?" ERROR 10 ": stop
*DTSET
AL(X,Y)=CHUMOKU
'?" ":?" X=";X," Y=";Y," DATA=";CHUMOKU,"WCHK=";WCHK
'stop
'gosub *DISP3
'?" ================ "
'stop
return
'----------------------------------------------------------------------------
----------------------------------------------------------------------------
'注目する数値を決めてからその注目値の無いヨコ行を探し、注目値がその行のどこに当てはまるかを調べる。
*MAIN_3
'?" MAIN_3 ============================== "
'stop
'空欄のマスをサーチする
X=1:Y=1
for ALOOP=1 to 20
'?"ALOOP=";ALOOP
'stop
for CHUMOKU = 1 to 9 '********************************************************************************
'stop
for X = 1 to 9 '********************************************************************************
'?"":?" MAIN3 CHU=";CHUMOKU; " 現在調査中の縦列 左から何列目の位置か X=";X
'stop
gosub *LINE_Y
next X
next CHUMOKU
next ALOOP
'?"  M3 All end"
'gosub *DISP3B
'?" "
'gosub *DISP3
'stop
return
'----------------------------------------------------------------------------
*LINE_Y
'?" ":?" M3 LINE_Y 01 TATE JYOUGE ============================================== "
'?"これから調べるメインの縦1列の中に注目値があったら何もせずリターンする"
'stop
for YY = 1 to 9
'?"注目値チェック 主調査の縦列に注目値があれば何もせずもどる"
'?" CHUMOKU=";CHUMOKU;
'?" X=";X; " YY=";YY; " マス値=";AL( X,YY)
'if AL( X,YY)=CHUMOKU then ?"M3 この縦列内に注目値あり":YY=9: ?"":return
if AL( X,YY)=CHUMOKU then :YY=9:return
next YY
'stop
'?"M3 この縦列内に注目値が無いので何処に入るか調査開始する
'?"ALテーブルから現在の縦列1行をメインバッファ(M_BUF)にコピーして表示"
'stop
'?" X=";X
for YY=1to 9
M_BUF(YY) = AL( X,YY)
next YY
'gosub *DISP_M_BUF
'stop
if (X<=3) then goto *LEF
if (X>=4)and(X<=6)then goto *SNT
if (X>=7) then goto *RGT
?"ERR ":stop
'-------------------------------
*LEF
'?" M3 LEF_1====================================== "
'?" 1列~3列の範囲なので一番上のブロックAAAに注目値があるかチェック"
'gosub *AAA: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 AAAに注目値なし ":goto *LEF3
gosub *AAA: gosub *BK_CHU_CK: if CHUFLG=0 then goto *LEF3
'?" AAAに注目値があるので空きマスを10で埋める "
for PT=1 to 3
M_BUF(PT)=10
next PT
'gosub *DISP_INV1:gosub *DISP_M_BUF
*LEF3
'?"":?" M3 LEF_3 "
'stop
'?" M3 1列~3列の範囲なので2段目のブロックDDDに注目値があるかチェック"
'gosub *DDD: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 DDDに注目値なし ": goto *LEF4
gosub *DDD: gosub *BK_CHU_CK: if CHUFLG=0 then : goto *LEF4
'?" DDDに注目値があるので空きマスを10で埋める "
for PT=4 to 6
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*LEF4
'?"":?"M3 LEF_4 *************************"
'?" M3 1列~3列の範囲なので上から3段目のブロックGGGに注目値があるかチェック"
'gosub *GGG: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 GGGに注目値なし ": goto *LEF5
gosub *GGG: gosub *BK_CHU_CK: if CHUFLG=0 then goto *LEF5
'?" GGGに注目値があるので空きマスを10で埋める "
for PT=7 to 9
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*LEF5
'?"":?"M3 LEF 5 "
'stop
gosub *LINE_Y_YOKO
'stop
return
'----------------------------------------------------------------
*SNT
'?"":?" M3 SNT_1============================== "
'stop
'?" 4列~6列の範囲なので一番上のブロックBBBに注目値があるかチェック"
'gosub *BBB: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 BBBに注目値なし ": goto *SNT3
gosub *BBB: gosub *BK_CHU_CK: if CHUFLG=0 then goto *SNT3
'?" BBBに注目値があるので空きマスを10で埋める "
for PT=1 to 3
'if INV1(PT)=0 then M_BUF(PT)=10:?" M_BUF(PT)=10を代入する "
M_BUF(PT)=10
next PT
'gosub *DISP_INV1:gosub *DISP_M_BUF
*SNT3
'?"":?" M3 SNT_3 "
'stop
'?" 4列~6列の範囲なので2段目のブロックEEEに注目値があるかチェック"
'gosub *EEE: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 EEEに注目値なし ":goto *SNT4
gosub *EEE: gosub *BK_CHU_CK: if CHUFLG=0 then goto *SNT4

'?" EEEに注目値があるので空きマスを10で埋める "
for PT=4 to 6
'if INV1(PT)=0 then M_BUF(PT)=10:?" M_BUF(PT)=10を代入する "
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*SNT4
'?"":?" M3 SNT_4 "
'stop
'?" 4列~6列の範囲なので3段目のブロックHHHに注目値があるかチェック"
'gosub *HHH: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 HHHに注目値なし":goto *SNT5
gosub *HHH: gosub *BK_CHU_CK: if CHUFLG=0 then goto *SNT5

'?" HHHに注目値があるので空きマスを10で埋める "
for PT=7 to 9
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*SNT5
'?"":?" M3 SNT 5 "
'stop
gosub *LINE_Y_YOKO
return
'------------------------------
*RGT
'?"":?" RGT_1============================== "
'stop
'?" 7列~9列の範囲なので一番上のブロックCCCに注目値があるかチェック"
'gosub *CCC: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 CCCに注目値なし":goto *RGT3
gosub *CCC: gosub *BK_CHU_CK: if CHUFLG=0 then goto *RGT3
'?" CCCに注目値があるので空きマスを10で埋める "
for PT=1 to 3
M_BUF(PT)=10
next PT
'gosub *DISP_INV1:gosub *DISP_M_BUF
*RGT3
'?"":?" M3 RGT_3 "
'stop
'?" 7列~9列の範囲なので2番目のブロックFFFに注目値があるかチェック"
'gosub *FFF: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 FFFに注目値なし":goto *RGT4
gosub *FFF: gosub *BK_CHU_CK: if CHUFLG=0 then goto *RGT4

'?" FFFに注目値があるので空きマスを10で埋める "
for PT=4 to 6
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*RGT4
'?"":?" M3 RGT_4 "
'stop
'?" 7列~9列の範囲なので3番目のブロックIIIに注目値があるかチェック"
'gosub *III: gosub *BK_CHU_CK: if CHUFLG=0 then ?"M3 CHUFLG=0 IIIに注目値なし":goto *RGT5
gosub *III: gosub *BK_CHU_CK: if CHUFLG=0 then goto *RGT5
'?" IIIに注目値があるので空きマスを10で埋める "
for PT=7 to 9
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*RGT5
'?"":?" M3 RGT 5 "
gosub *LINE_Y_YOKO
return
'----------------------------------------------------------------------------
*LINE_Y_YOKO
'?" *M3 LINE_Y_YOKO===================================================="
'?"調査中の縦列に存在する空きマスのヨコ1行をチェックして注目値があるか見る"
'stop
for YYY=1 to 9
'?" YYY=";YYY;:?" CHUMOKU=";CHUMOKU
'if M_BUF(YYY)<>0 then ?"M_BUF(YYY)<>0の時 ":goto *YOKO
    if M_BUF(YYY)<>0 then  goto *YOKO
'?"M_BUF(YYY)=0 空きマスなのでよこ1行に注目値があるかチェックする"
CNT=0
for XXX=1 to 9
'?" XXX=";XXX; " YYY=";YYY; " マス値=";AL(XXX,YYY)
'if AL( XXX,YYY)=CHUMOKU then M_BUF(YYY)=10: ?"M3 このよこ列内に注目値あり":XXX=9:
if AL( XXX,YYY)=CHUMOKU then M_BUF(YYY)=10:XXX=9:
            'gosub *DISP_M_BUF
'stop
next XXX
*YOKO
next YYY
'gosub *DISP_M_BUF
'stop
KARA=0:ZERO_Y=0
for YYY=1 to 9
if M_BUF(YYY)=0 then KARA=KARA+1:ZERO_Y=YYY
next YYY
'if KARA=1 then AL(X,ZERO_Y)=CHUMOKU:M_BUF(ZERO_Y)=CHUMOKU:?" KARA=1 SET OK  X,ZERO_Y=";:?X;ZERO_Y
if KARA=1 then AL(X,ZERO_Y)=CHUMOKU:M_BUF(ZERO_Y)=CHUMOKU
'?" X,ZERO_Y =";X;ZERO_Y
'?" KARA=";KARA;
'?" ZERO_Y=";ZERO_Y;
'?" CHUMOKU=";CHUMOKU
'gosub *DISP_INV1:gosub *DISP_M_BUF:gosub *DISP3
'?"M3 end M3 end M3 end"
'stop
return

'---------------------------------------------------------
*BK_CHU_CK
'?"":?"*BK_CHU_CK 01================================================= "
'?"通過するブロック(3*3)の中に注目値が含まれるかチェック"
'gosub *DISP_INV1
CHUFLG=0
CNT=0:CHUFLG=0
'   ?" CHUMOKU=";CHUMOKU;
for XXX=1 to 9
CNT=CNT+1
'if INV1(XXX)=CHUMOKU then CHUFLG=1:CNT=0:?" BK_CHU_CK 注目値あり ":XXX=9:goto *BK_CHU_CK03
if INV1(XXX)=CHUMOKU then CHUFLG=1:CNT=0:XXX=9:goto *BK_CHU_CK03
next XXX
'?" BK_CHU_CK 注目値無し "
*BK_CHU_CK03
return

'----------------------------------------------------------------------------
'注目する数値を決めてからその注目値の無いヨコ行を探し、注目値がその行のどこに当てはまるかを調べる。
*MAIN_4
'?" MAIN_4 ============================== "
'stop
'空欄のマスをサーチする
X=1:Y=1
for ALOOP = 1 to 20
'?"ALOOP=";ALOOP
'stop
for CHUMOKU = 1 to 9 '***********************************************
'stop
for Y = 1 to 9 ' **********************************************
'?" MAIN4 CHU=";CHUMOKU; " 現在調査中の横列 上から何行目の位置か Y=";Y
'stop
gosub *LINE_X ' Y => X
next Y ' X => Y
next CHUMOKU
next ALOOP
'?" M4 All end"
'gosub *DISP3B
'?" "
'gosub *DISP3
'stop
return
'----------------------------------------------------------------------------
*LINE_X ' Y => X
'?" ":?" M4 LINE_X 01============================================== "
'?" これから調べる横1行の中に注目値があったら何もせずリターンする"
'stop
for XX = 1 to 9                ' YY =>  XX
'?" 注目値チェック 主調査の横行に注目値があれば何もせずもどる"
'?" M4 CHUMOKU=";CHUMOKU;
'?" XX=";XX; " Y=";Y;" マス値=";AL( XX,Y)
'if AL( XX,Y)=CHUMOKU then ?" M4 この横行内に注目値あり ":XX=9:return :'stop
if AL( XX,Y)=CHUMOKU then XX=9:return :'stop
next XX

'?"この横行内に注目値が無いので何処に入るか調査開始する
'?"ALテーブルから現在の横行 1行をメインバッファ(M_BUF)にコピーして表示"
'stop
'?" M4  XX=";XX;" Y=";Y
for XX=1to 9 ' YY => XX
M_BUF(XX) = AL( XX,Y)
next XX ' YY => XX
'gosub *DISP_M_BUF
'stop
if (Y<=3) then goto *UP            ' X => Y           *LEF => *UP
if (Y>=4)and(Y<=6)then goto *MD ' X => Y *SNT => *MD
if (Y>=7) then goto *LO ' X => Y *RGT => *LO
?"ERR ":stop
'-------------------------------
*UP '*LEF => *UP
'?" M4 UP_1====================================================== "
'?" 1行~3行の範囲なので一番上のブロックAAAに注目値があるかチェック"
'gosub *AAA: gosub *BK_CHU_CK: if CHUFLG=0 then ?" M4 CHUFLG=0 ":goto *UP3
gosub *AAA: gosub *BK_CHU_CK: if CHUFLG=0 then goto *UP3
'?" AAAに注目値があるので空きマスを10で埋める "
for PT=1 to 3
M_BUF(PT)=10
next PT
'gosub *DISP_INV1:gosub *DISP_M_BUF
*UP3                                                  'LEF => UP
'?"":?" M4 UP_3 "
'stop
'?" M4 1行~3行の範囲なので2行目のブロックBBBに注目値があるかチェック"
gosub *BBB: gosub *BK_CHU_CK: if CHUFLG=0 then goto *UP4
'?" M4 BBBに注目値があるので空きマスを10で埋める"

for PT=4 to 6
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*UP4
'?"":?" M4 UP_4 ================================================"
'?" M4 1行~3行の範囲なので左から3行目のブロックCCCに注目値があるかチェック"
gosub *CCC: gosub *BK_CHU_CK: if CHUFLG=0 then goto *UP5
'?" CCCに注目値があるので空きマスを10で埋める "
for PT=7 to 9
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*UP5
'?"":?"M4 UP 5 "
'stop
gosub *LINE_X_TATE
'stop
return
'---------------------------------------------------------------
*MD ' SNT => MD
'?"":?" M4 MD_1 =============================== "
'stop
'?" 4行~6行の範囲なので一番左のブロックBBBに注目値があるかチェック"
gosub *DDD: gosub *BK_CHU_CK: if CHUFLG=0 then goto *MD3
'?" DDDに注目値があるので空きマスを10で埋める "
for PT=1 to 3
M_BUF(PT)=10
next PT
'gosub *DISP_INV1:gosub *DISP_M_BUF
*MD3
'?"":?" M4 MD_3 "
'stop
'?" 4行~6行の範囲なので左から2個目のブロックEEEに注目値があるかチェック"
gosub *EEE: gosub *BK_CHU_CK: if CHUFLG=0 then goto *MD4
'?" EEEに注目値があるので空きマスを10で埋める "
for PT=4 to 6
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*MD4
'?"":?" M4 SNT_4 "
'stop
'?" 4行~6行の範囲なので左から3個目のブロックFFFに注目値があるかチェック"
gosub *FFF: gosub *BK_CHU_CK: if CHUFLG=0 then goto *MD5
for PT=7 to 9
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*MD5
'?"":?"M4 MD 5 "
'stop
gosub *LINE_X_TATE               ' *LINE_Y_YOKO  =>  *LINE_X_TATE
'stop
return
'------------------------------
*LO 'RGT => LO
'?"":?" M4 LO_1========================= "
'?" 7行~9行の範囲なので左から2個目のブロックGGGに注目値があるかチェック"
'stop
gosub *GGG: gosub *BK_CHU_CK: if CHUFLG=0 then goto *LO3
'?" GGGに注目値があるので空きマスを10で埋める "
for PT=1 to 3
M_BUF(PT)=10
next PT
'gosub *DISP_INV1:gosub *DISP_M_BUF
*LO3
'?"":?" M4 LO_3 "
'stop
'?" 7行~9行の範囲なので一番左のブロックGGGに注目値があるかチェック"
gosub *HHH: gosub *BK_CHU_CK: if CHUFLG=0 then goto *LO4
'?" HHHに注目値があるので空きマスを10で埋める "
for PT=4 to 6
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*LO4
'?"":?" M4 LO_4 "
'stop
'?" 7行~9行の範囲なので左から2個目のブロックGGGに注目値があるかチェック"
gosub *III: gosub *BK_CHU_CK: if CHUFLG=0 then goto *LO5
'?" GGGに注目値があるので空きマスを10で埋める "
for PT=7 to 9
M_BUF(PT)=10
next PT
'gosub *DISP_INV1: gosub *DISP_M_BUF
*LO5
'?"":?" M4 LO 5 "
'stop
gosub *LINE_X_TATE 
'stop
return
'----------------------------------------------------------------------------
*LINE_X_TATE ' *LINE_Y_YOKO
'?" M4 LINE_X_TATE============================================= "
'?"調査中のMAINの横行に存在する空きマスのSUB縦1列をチェックして注目値があるか見る"
'stop
for XXX=1 to 9                            'YYY => XXX
'?" XXX=";XXX;:?" CHUMOKU=";CHUMOKU
'if M_BUF(XXX)<>0 then ?"M_BUF(XXX)<>0の時 ":goto *TATE
    if M_BUF(XXX)<>0 then goto *TATE 
CNT=0
'?"M_BUF(XXX)=0 空きマスなのでSUB_縦1列に注目値があるかチェックする"
CNT=0
for YYY=1 to 9
'?" XXX=";XXX;:?" YYY=";YYY;:?"値=";AL(XXX,YYY)
if AL( XXX,YYY)=CHUMOKU then M_BUF(XXX)=10:YYY=9:

'gosub *DISP_M_BUF
'stop
next YYY
*TATE
next XXX
'gosub *DISP_M_BUF
'stop
KARA=0:ZERO_X=0
for XXX=1 to 9
if M_BUF(XXX)=0 then KARA=KARA+1:ZERO_X=XXX
next XXX
if KARA=1 then AL(ZERO_X,Y)=CHUMOKU:M_BUF(ZERO_X)=CHUMOKU:?" KARA=1 SET OK  ZERO_X,Y=";:? ZERO_X;Y
'?" ZERO_X,Y =";ZERO_X;Y
'?" KARA=";KARA;
'?" ZERO_X=";ZERO_X;
'?" CHUMOKU=";CHUMOKU
'gosub *DISP_INV1:gosub *DISP_M_BUF:gosub *DISP3
'?"M4 end M4 end M4 end"
'stop
return
'----------------------------------------------------------------------------
 *BLKOUTCOPY
for BLKX=1 to 9
BLKOUT(BLKX)=INV1(BLKX)
next BLKX
return
'---------------------------------------
*ALBKCOPY
?" "
for YYY=1 to 9
for XXX=1 to 9
ALBK(XXX,YYY)=AL(XXX,YYY)
next XXX
next YYY
return

'--------------------------------------------------------------------------
*DISP_M_BUF
'?"":?" M_BUF=";
for YY=1to 9
'?M_BUF(YY);
next YY
'?" "
return
'----------------------------------------------------------------------------
*DISP_INV1
*DISP1
'?" INV1 =";
for KKK=1 to 9
'?INV1(KKK);
next kkk
return
'---------------------------------------
'*DISP2
'?" INV2(1~)=";
for KKK=1 to 9
'?INV2(KKK);
next kkk
return
'---------------------------------------
*DISP3
'?" "
for YYY=1 to 9
for XXX=1 to 9
?AL(XXX,YYY);
if XXX=3 then ?" ";
if XXX=6 then ?" ";
next XXX
if YYY=3 then ?" "
if YYY=6 then ?" "
?" "
next YYY
return
'---------------------------------------
*DISP3B
?" "
for YYY=1 to 9
for XXX=1 to 9
?ALBK(XXX,YYY);
if XXX=3 then ?" ";
if XXX=6 then ?" ";
next XXX
' if YYY=3 then ?" "
' if YYY=6 then ?" "
?" "
next YYY
return
'---------------------------------------
'*DISP27
for X12=1 to 27
? CHK(X12);
if X12=9 then ?" "
if X12=18 then ?" "
next X12
?" "
return
'-----------------------------------------
'*DISP_BF
?" "
?" BF(1~9)=";
for KKK=1 to 9
?BF(KKK);
next kkk
return
'---------------------------------------
'問題のテーブルデータの設定
'ニコリ 数独攻略ガイド P51 No16
'M1,2,3,4 全OK    20180804
*TBL_ABCD

data 2,0,1, 6,0,0, 0,0,9
data 0,0,0, 0,0,8, 2,0,0
data 3,0,0, 0,4,0, 0,5,0
data 9,0,0, 0,0,0, 0,2,0
data 0,0,8, 0,0,0, 3,0,0
data 0,4,0, 0,0,0, 0,0,6
data 0,3,0, 0,5,0, 0,0,8
data 0,0,9, 7,0,0, 0,0,0
data 6,0,0, 0,0,1, 4,0,5

for YY=1 to 9
for XX=1 to 9
read AL(XX,YY)
next XX
next YY
return



これで終わりです。




今年は、猛烈な暑さのため、スイカはみなひび割れてしまいました。
トウモロコシも半分以上のものが乾燥してダメでした。
この花だけは、毎年元気で咲いてくれています。

c0335218_09115141.jpg

朝顔も元気ですね。
c0335218_09112206.jpg

***************

++++++++++++++ 
-------------------------



# by telmic-gunma | 2018-08-08 10:21 | HP電卓 | Trackback | Comments(2)

前回の4x4の解き方をそのまま9x9の拡張してやってみました。
しかし4x4ではうまく行っていた方法も9x9では単純な問題しか解くことができなくなりました。
そこで数独の解説書などを参考に新たな方法に挑戦してみました。
ここでも 人力で解くことは可能なのですが、それをプログラム化するところで四苦八苦してしまいました。
何とか出来上がったソフトでいろいろ試したのですが、やはりオールマイティーということはなくて、

限られた問題しか解けません。
やはり いろいろな問題を解くには、いろいろな方式のプログラムを作りそれを組み合わせていかなくてはならないようです。

今回の方式は、3x3の一つのブロックに注目しその中にない数値がどの場所ならば置くことが出来るかをさがしていく方法です。
これは ニコリの「全問解説数独」のP6に載っている方法をプログラム化したものです。

1) 1~9までの注目する数値を決める(実際は「1」から順番にやる)
2) その数値がない3x3のブロックを順に見つける。(今回は上の右端)
3) 横方向の行で注目数値「1」が入らないところを見つける。
   a行 b行には「1」が有るので入らない。
4) 縦方向で「1」が入らないのは I列です。
5) 上記より「1」の入る可能性はGcとHcです。
6) しかしHcはすでに「2」が入っている。
7) ゆえに残るのはGcだけなのでここに「1」が入ります。

表題に出している「HP電卓」はどうしたのと言われそうですが、ベーシックで問題が解けるようになったら、人間コンパイラになってHP電卓に書き直してみようと思います。
c0335218_19035428.jpg



この問題は 最初にやった4x4の延長の方式では解くことが出来ませんでした。
今回の各ブロックに注目してやる方法で解けました。
だけど この方式でも解けない問題がわんさか有ります。

c0335218_19045525.jpg



画面上側が問題です。  問題のブランクの所には、ゼロが入っています。
下側はパソコンが出した回答です。
Fベーシック97で3秒ほどかかりました。
デバッグのための途中経過を表示しているので、その時間がかかっていると思います。


c0335218_19042435.jpg





( Fベーシック97  富士通が作った20年前のBASIC言語をWinXPで動かしてます)


'数独(ナンプレ) SDOK9x9_30D 2018-06-20
'基本テーブル配列の定義
dim AL(9,9)
dim CHK(27)
dim INV1(9)
'
'問題のテーブルデータの設定
gosub *TBL_P6
gosub *DISP3
stop
'空欄のマスをサーチする
for ALOOP=1 to 10
for CHUMOKU=1 to 9
for BLKNO=1 to 9 ' *AA: 1 *BB: 2 ----
'          ?" CHUMOKU=";CHUMOKU;  :?" BLKNO=";BLKNO;
'stop
gosub *BLOCK
next BLKNO
next CHUMOKU
next ALOOP
?"  All end"
gosub *DISP3
stop:stop
'------------------------------------------------------------
*BLOCK
if BLKNO=1 then BLKYUP=1:BLKXLF=1:gosub *AAA:goto *BLKXX
if BLKNO=2 then BLKYUP=1:BLKXLF=4:gosub *BBB:goto *BLKXX
if BLKNO=3 then BLKYUP=1:BLKXLF=7:gosub *CCC:goto *BLKXX
if BLKNO=4 then BLKYUP=4:BLKXLF=1:gosub *DDD:goto *BLKXX
if BLKNO=5 then BLKYUP=4:BLKXLF=4:gosub *EEE:goto *BLKXX
if BLKNO=6 then BLKYUP=4:BLKXLF=7:gosub *FFF:goto *BLKXX
if BLKNO=7 then BLKYUP=7:BLKXLF=1:gosub *GGG:goto *BLKXX
if BLKNO=8 then BLKYUP=7:BLKXLF=4:gosub *HHH:goto *BLKXX
if BLKNO=9 then BLKYUP=7:BLKXLF=7:gosub *III:goto *BLKXX
?" BLK ERR":stop
'---------------------------------------------------------------
*BLKXX
CNT=0
'このブロックの中に注目している(CHUMOKU)数値があれば何もせずリターン
for XXX=1 to 9
CNT=CNT+1
if INV1(XXX)=CHUMOKU then CNT=0:XXX=9:?"同一文字有り":return
next XXX
'----------------------------------------
YCHU(1)=0:YCHU(2)=0:YCHU(3)=0:
for BKJJ=0 to 2
'ブロックの上横1行9文字をINV1へコピー
for XX=1 to 9: INV1(XX)=AL(XX,BLKYUP+BKJJ): next XX
CNT=0
for XXX=1 to 9
CNT=CNT+1
if INV1(XXX)=CHUMOKU then CNT=0:XXX=9:YCHU(BKJJ+1)=1
next XXX
next BKJJ
'-------------------------
XCHU(1)=0:XCHU(2)=0:XCHU(3)=0:
for BKJJ=0 to 2
'ブロックの左縦から1行9文字をINV1へコピー
for YY=1 to 9: INV1(YY)=AL(BLKXLF+BKJJ,YY): next YY
CNT=0
for YYY=1 to 9
CNT=CNT+1
if INV1(YYY)=CHUMOKU then CNT=0:YYY=9:XCHU(BKJJ+1)=1
next YYY
next BKJJ
'-------------------------------------------
for BLKX=1 to 9
INV1(BLKX)=BLKOUT(BLKX)
next BLKX
if YCHU(1)=0 then goto *LBL200
INV1(1)=10:INV1(2)=10:INV1(3)=10:
*LBL200
if YCHU(2)=0 then goto *LBL210
INV1(4)=10:INV1(5)=10:INV1(6)=10:
*LBL210
if YCHU(3)=0 then goto *LBL220
INV1(7)=10:INV1(8)=10:INV1(9)=10:
*LBL220
if XCHU(1)=0 then goto *LBL300
INV1(1)=10:INV1(4)=10:INV1(7)=10:
*LBL300
if XCHU(2)=0 then goto *LBL310
INV1(2)=10:INV1(5)=10:INV1(8)=10:
*LBL310
if XCHU(3)=0 then goto *LBL320
INV1(3)=10:INV1(6)=10:INV1(9)=10:
*LBL320
WCHK=0
for III=1 to 9
if INV1(III)=0 then WCHK=WCHK+1:POJ=III
next III
if WCHK>=2 then ?"空マスが2個以上あった":return
if POJ<=3 then YY=1:XX=POJ:goto *MTRX
if (POJ>=4)and(POJ<=6)then YY=2:XX=POJ-3:goto *MTRX
if(POJ<=9) then YY=3: XX=POJ-6: goto *MTRX
?"ERR 5 ":stop
*MTRX
if BLKNO=1 then X=XX:Y=YY: goto *DTSET
if BLKNO=2 then X=XX+3:Y=YY: goto *DTSET
if BLKNO=3 then X=XX+6:Y=YY: goto *DTSET
if BLKNO=4 then X=XX:Y=YY+3: goto *DTSET
if BLKNO=5 then X=XX+3:Y=YY+3: goto *DTSET
if BLKNO=6 then X=XX+6:Y=YY+3: goto *DTSET
if BLKNO=7 then X=XX:Y=YY+6: goto *DTSET
if BLKNO=8 then X=XX+3:Y=YY+6: goto *DTSET
if BLKNO=9 then X=XX+6:Y=YY+6: goto *DTSET
?" ERROR 10 ": stop
*DTSET
AL(X,Y)=CHUMOKU
ALLCNT=ALLCNT+1
?" ":?" X=";X," Y=";Y," DATA=";CHUMOKU,"ALL CNT=";ALLCNT
'gosub *DISP3
?" ================ "
return
'---------------------------------------------------------------
*AAA
INV1(1)=AL(1,1): INV1(2)=AL(2,1): INV1(3)=AL(3,1)
INV1(4)=AL(1,2): INV1(5)=AL(2,2): INV1(6)=AL(3,2)
INV1(7)=AL(1,3): INV1(8)=AL(2,3): INV1(9)=AL(3,3)
gosub *BLKOUTCOPY
return
*BBB
INV1(1)=AL(4,1): INV1(2)=AL(5,1): INV1(3)=AL(6,1)
INV1(4)=AL(4,2): INV1(5)=AL(5,2): INV1(6)=AL(6,2)
INV1(7)=AL(4,3): INV1(8)=AL(5,3): INV1(9)=AL(6,3)
gosub *BLKOUTCOPY
return
*CCC
INV1(1)=AL(7,1): INV1(2)=AL(8,1): INV1(3)=AL(9,1)
INV1(4)=AL(7,2): INV1(5)=AL(8,2): INV1(6)=AL(9,2)
INV1(7)=AL(7,3): INV1(8)=AL(8,3): INV1(9)=AL(9,3)
gosub *BLKOUTCOPY
return
*DDD
INV1(1)=AL(1,4): INV1(2)=AL(2,4): INV1(3)=AL(3,4)
INV1(4)=AL(1,5): INV1(5)=AL(2,5): INV1(6)=AL(3,5)
INV1(7)=AL(1,6): INV1(8)=AL(2,6): INV1(9)=AL(3,6)
gosub *BLKOUTCOPY
return
*EEE
INV1(1)=AL(4,4): INV1(2)=AL(5,4): INV1(3)=AL(6,4)
INV1(4)=AL(4,5): INV1(5)=AL(5,5): INV1(6)=AL(6,5)
INV1(7)=AL(4,6): INV1(8)=AL(5,6): INV1(9)=AL(6,6)
gosub *BLKOUTCOPY
return
*FFF
INV1(1)=AL(7,4): INV1(2)=AL(8,4): INV1(3)=AL(9,4)
INV1(4)=AL(7,5): INV1(5)=AL(8,5): INV1(6)=AL(9,5)
INV1(7)=AL(7,6): INV1(8)=AL(8,6): INV1(9)=AL(9,6)
gosub *BLKOUTCOPY
return
*GGG
INV1(1)=AL(1,7): INV1(2)=AL(2,7): INV1(3)=AL(3,7)
INV1(4)=AL(1,8): INV1(5)=AL(2,8): INV1(6)=AL(3,8)
INV1(7)=AL(1,9): INV1(8)=AL(2,9): INV1(9)=AL(3,9)
gosub *BLKOUTCOPY
return
*HHH
INV1(1)=AL(4,7): INV1(2)=AL(5,7): INV1(3)=AL(6,7)
INV1(4)=AL(4,8): INV1(5)=AL(5,8): INV1(6)=AL(6,8)
INV1(7)=AL(4,9): INV1(8)=AL(5,9): INV1(9)=AL(6,9)
gosub *BLKOUTCOPY
return
*III
INV1(1)=AL(7,7): INV1(2)=AL(8,7): INV1(3)=AL(9,7)
INV1(4)=AL(7,8): INV1(5)=AL(8,8): INV1(6)=AL(9,8)
INV1(7)=AL(7,9): INV1(8)=AL(8,9): INV1(9)=AL(9,9)
gosub *BLKOUTCOPY
return
'----------------------------------------------------------------------------
*BLKOUTCOPY
for BLKX=1 to 9
BLKOUT(BLKX)=INV1(BLKX)
next BLKX
return
'----------------------------------------------------------------------------
*DISP1
'?" INV1(1~)=";
for KKK=1 to 9
?INV1(KKK);
next kkk
return
'---------------------------------------
*DISP3
?" "
for YYY=1 to 9
for XXX=1 to 9
?AL(XXX,YYY);
if XXX=3 then ?" ";
if XXX=6 then ?" ";
next XXX
if YYY=3 then ?" "
if YYY=6 then ?" "
?" "
next YYY
return
'---------------------------------------
'問題のテーブルデータの設定
'ニコリ全問解説数独P6
*TBL_P6
data 6,0,2,0,0,1,0,0,5
data 0,0,1,0,0,0,6,0,0
data 0,8,0,0,5,0,0,2,3
data 3,0,0,9,0,2,0,0,0
data 0,0,4,0,0,0,8,0,0
data 0,0,0,1,0,3,0,0,7
data 5,1,0,0,6,0,0,8,0
data 0,0,3,0,0,0,2,0,0
data 2,0,0,7,0,0,5,0,1

for YY=1 to 9
for XX=1 to 9
read AL(XX,YY)
next XX
next YY
return





今我が家の庭に大きく咲きだした変わった形のアジサイ
ばあちゃんが大事にしていた形見です。

c0335218_20195548.jpg

とんがり帽子の形をしています。 まだこれから大きくなるところですね。

c0335218_20200528.jpg


何という花?



c0335218_20201743.jpg

葉っぱの中心に紫色のかわいい花が咲いています。
c0335218_20204033.jpg






# by telmic-gunma | 2018-06-20 20:41 | HP電卓 | Trackback | Comments(6)