tomopinのブログ

ジャンク好き。おもちゃ好き。二人の孫はもっと好き。

C.Basicプログラミングの前にやっておくと便利なCG50側の設定

CASIO fx-CG50で使用する「C.Basic」は純正の「CASIO BASIC」に比べると、演算スピードの他にも便利な機能がたくさん含まれています。

まだ、全部はつかみ切れていませんが、その中でも、プログラム作成前にやっておくと非っ常~に便利な機能を四つ程、ご紹介したいと思います。

プログラミングをしない人には無縁の設定です。

①文字の大きさ変更
②ポップアップ文字の色変更
③プログラム編集時の行番号表示
④コピー・ペースト機能

 

まず、C.Basicを起動すると出てくる最初のファイル選択画面ですが、

C.Basic起動直後のファイル選択画面

お気づきでしょうか、文字が一回り以上小さくなってとても見やすくなっています。

これは、この画面の時に、「SHIFT」押して、「MENU」を押すと出てくる「設定画面」で設定変更できます。では、そのようにして「設定画面」に行ってみます。

「設定画面」
「SHIFT」押して「MENU」

①文字の大きさ変更

最初のファイル選択画面で「SHIFT」押して、「MENU」を押すことにより、C.Basic個別の「設定画面」が出てきます。

最初は、計算時の角度単位の指定が1番先頭に来ています。

ここでは文字の大きさを変更したいので、この設定画面で、十字キーを下向き「↓」に何回か押すと、

「EditFontSize:」という項目があるので、

「設定」の「EditFontSize:」

ここにカーソルを持ってくると、下段の「Function」メニューに文字のサイズが並びます。

・一番左の「Std」が標準初期設定の一番大きい文字、
・二番目が「Mini」、上のファイル選択画面での文字サイズです。

順次、もっと小さくも強調文字にもなりますが、私は二番目「Mini」が丁度です。

一度に見られる情報量が格段に増えます。

文字サイズ「Mini」での編集画面

恐らくプログラム中での「TEXT」命令で出力されるテキストサイズがこれだと思います。

これをやらない手はありません。是非変更しましょう。

 

次は、初期設定のままでは、ポップアップやポップアップメニュー画面の文字が、最初は白地に単色系の「緑」や「ピンク」でとても見にくいと思います。ので、ポップアップ文字を「黒」に変更したいと思います。

 

②ポップアップ文字の色変更

今の「EditFontsize」に来る途中に通過しているので、ここからだと十字キーの「上向き↑」で戻ります。

「Plot/LineCol:」を「Black」か「Blue」にします。

「Plot/LineCol:」

「F1:COLOR」キーを押して色番号を選びます。

 

濃いめの色であれば「赤」でも「青」でも結構見やすくなると思います。これらは背景が「白」の前提です。背景を変えた場合はまた状況に応じて見やすい色に変えればよいと思います。他にも白地に単色系の文字色が初期設定で指定されている色は、濃い色に変更しておくとよいと思います。

ポップアップ・メニュー画面での文字色変更(青)

時刻合わせ用プログラム「SETCLOCK」で文字が見えなくなると思いますが、修正していますので、こちら、あるいは元の記事から再ダウンロードしてご利用ください。

SETCLOCK.g3m - Google ドライブ

他にも見づらくなったものがあれば、元の記事から再ダウンロードをお願いいたします。気が付いた限りは直してあると思います。

「C.Basic」内のみでの話です。「Program」から入る「CASIOBASIC」では特に変更の必要ありません。

 

次、プログラム編集時の行番号表示です。

 

③プログラム編集時の行番号表示

先ほどの「EditFontSize」の2行下にある、

「Edit LineNum:」の項を「F1」で「On」にします。たったこれだけで格段に操作性が上がります。

「Edit LineNum:」行番号表示

「On」にしてプログラムの編集画面に行ってみると、

行番号表示してプログラム編集

左端に行番号が表示されるようになります。1行表示文字数は少し減りますが、行番号の効果は絶大です。

 

行番号は、気になるところの行番号をメモしておけば、行数が膨大になったときも、編集中に「F1:JUMP」→「F3:GO」で行番号を入れてやれば、一発で目的行まで飛んでくれます。

他にもいろいろありそうですが、効果絶大な設定変更は概ねこの3つで十分かと思います。

あとは適宜試してみるとよいかと思いますが、色変更以外はあまりいじらない方が大吉かと思います。

 

次は、実は最初に持ってくるべきかもしれませんが、純正CASIO BASICも共通のコピペ機能ですが、既に使われているかもしれません。知らなかった方のために、改めてご紹介します。

 

④コピー・ペースト機能

編集中に「SHIFT」→「8:CLIP」を押した後に十字キーで範囲選択してから、

「F1:COPY」、

「F2:CUT」、

「DEL」、

「9:PASTE」が使いこなせるようになると抜群に効率が上がります。これはほんと、しょっちゅう使います。非常に便利な機能です。これなしではとても作業が進みません。

④以外は純正CASIO BASICでは使えないので要注意です。

 

体系的なマニュアル的なものがまだ見当たらないので、ひたすら暗中模索の状況です。

今のところ、こんなところですが、思い出したらまたこの下に書き足していきます。

 

またまた市電保存館

またまたと言っても、市電保存館ネタは初めてだったですかね。

本日は夏休み始まって、休日を除く平日の初日だったので、横浜市電保存館に行ってきました。もう毎年行ってるので今回で4回目です。だったかな?

横浜市電保存館の看板

YOKOHAMA TRAMPORT

ここはいつ来ても特に目新しいものはないのですが、HOゲージ?のコレクションはいつ見ても素晴らしい限りです。これだけでもここに来るカチはあります。

HOコレクション

もとは木村さんという方のコレクションだったようです。

木村コレクション すごい数

なんと、手作りらしい。これは無理。絶対ムリ。KATOすら凌駕しそうな精巧さ。パンタグラフなんてどうやって作ってんでしょうかね。

HOゲージ模型手作りの説明

ちゃんとモーターもあるので動くようです。すごいっ!

造作の細かいED・EF系まで

3Dプリンタのない時代、どうやって車体を整形したんですかね。

蒸気機関車から新幹線は700系まで、とにかくすごい数

ジオラマもすごいです。

有料で運転可能なジオラマ
こちらはNゲージかな。

他に市電の運転シミュレータがいくつかあります。電車でGO的な。ジオラマは有料ですが、シミュレーターの方は無料でできます。

路線図も展示している車両によって違います。

電車運転系統図(初期?)
展示車の運転席の裏

電車運転系統図(後期)
別の展示車の運転席の裏

この「立田野」のロゴ、最近どっかでみたような気がする。。。あ、今もある?本社は銀座、工場は横浜なんだそうです。どうりで見たわけだ。創業明治28年(1895年)、一旦2021年に閉店して2023年に再スタートしたそうです。

 

保存館横の市営バスの駐車場には目新しい観光用のバスも数台とまっていました。

観光用のバス

以前見かけて躊躇した「横浜市高速鉄道建設史Ⅲ」があったら、今回こそは購入しようと意を決して1万円もっていきましたが、もうすでにその姿を見ることはかないませんでした。第3巻はグリーンラインの建設史のようです。ちょっと残念。

かわりにバスのミニカー2種を買ってきました。トミカなので物はとてもよいです(後述)。

市電、復活しないっすかねー。

洪福寺~間門

入ってすぐのHOジオラマ。すごい迫力。やはりHOの迫力はすごいです。

入口付近のHOジオラマ
特に好きな車両4種。

かわいい頭2つ
市電が遠ざかっていきます。

バスのHO(多分)ミニチュア。

バスのミニチュアと質素なジオラマ、素晴らしい!
あーこれ前なかったかも。

レトロなアナログ掛け時計。

レトロアナログ時計
つい最近似たようなのどっかで見た。
このフォントがまた。
ロゴは「KOSE」

長い針で隠れていますが、ロゴマークからすると製造は「光星舎」ですかね?

今でもちゃんと正確に時を刻んでいます。合わせてんのかな?

光星舎はセイコーより早いらしい。全く別会社です。

 

ポールトップ。

ポールトップ(電柱の先端)

その形に何か意味があるのでしょうか、なんか面白い。これだけ見るとお寺の建築物のような。

 

滝頭の標識。

←八幡橋 滝頭 根岸橋→

橋の近くに停留所が多いらしい。

ビールの運搬用梱包。

「まるばことわらづと」
かすかに見覚えがあるような、ないような。

横浜がビール発祥の地ですとな?

キリンビール。

・1869年(明治2年)スプリング・バレー・ブルワリー創業、
・1885年(明治18年)ジャパン・ブルワリー・カンパニー(渋沢栄一が関与)、
・1888年(明治21年)キリンビールに改名
軽く150年超えの歴史。
キリン横浜工場で見学会があるようです。おこちゃまは大人になってから。

横浜は明治期の日本の主要貿易港で、朝ドラでも出てきましたが、ビールは貿易開始当時の輸入品の目玉だったのでしょうかね。当時は特に質の良い生糸が一番の輸出品だったようで、それまで鎖国してきた日本という国を一気に文明国に押し上げた立役者でもあります。そういえばここ横浜に引っ越してきて割と長い間、あちこちに桑畑があったのを記憶しています。

娘が小学生の頃や自分が小学生の頃など、よくカイコを買ってたことがありますが、今にしてみると、カイコって新幹線っすね~~。基本、イモムシ全般苦手ですが、カイコだけは別。子供も大人もかわええの。蛾になっても飛べないらしいっすよ。なんか気の毒。

今年の3月からでしたっけ、国土地理院の地形図から数少ない作物の地図記号のひとつ、「桑畑(Y_)」の記号がなくなったそうです。寂しい限りですが、これも時代の流れでしょうかね。なんか、泣けてくる。

おととしまでは「これ(桑畑)は横浜市内の中学入試に頻繁に出るので必ず覚えておくこと」の記号だったのですが、今年からはもう出ないんでしょうかね。覚えてももう使う機会ないもんね。我々の頃の地形図の記号凡例と比べると、そんなに違いはないのですが、目立たぬところでコソコソと違うものも増減しています。
ウチのバーさんは何故かイモムシ全般が大好きで、限りある庭に植えてる柑橘系に卵を産み付けたアゲハの幼虫を見つけては、一匹残らず大切に保護して育てています。おぇ。保護しないと片っ端からハチの幼虫の餌にされてしまうのです。孫の長男くんも昆虫大好きでとてもよろこんでいます。柑橘系はすっかり全滅同然ですが。

アゲハになって飛んでく姿はちょっとグッときます。大事にしても何匹かに1匹ぐらいは黒くなったまま、ちょうちょになれないのもいます。

まれにクロアゲハのこともありますが、極めてまれです。おおお、てなります。幼虫の時に非常に似ていて、ん?ていう程度の違いはあります。

ボケてますがクロアゲハ?の羽化
アオスジアゲはの間違い

コクワガタのメスもよく飛んできます。

この辺はまだまだ自然が豊かなんですかねえ。

極めて稀にカブトムシのオスも飛んでくることがあります。これを養殖系のオスと一緒の居住空間に混ぜると一発で養殖系がバラバラにされてしまいます。こわいこわい。

次は新発売の新ビオフェルミン。

新発売 新ビオフェルミン

新ビオフェルミンが新発売された頃っていつ頃でしたかね。

大正製薬の製品情報サイトによれば、
・1917年(大正6年)ビオフェルミン販売開始、
1966年(昭和41年)新ビオフェルミン
・1987年(昭和62年)新ビオフェルミンS錠・細粒
・1966年(昭和41年)新ビオフェルミンSプラス錠・細粒が追加、
と変遷して現在に至るそうです。100年越え、すごい歴史。
今ではわんビオフェルミンS・にゃんビオフェルミンSもあるそうです。

1972年に市電は廃止されるので、もう末期の頃でしょうか。

この1000型の製造初年はなんと1928年だそうで製造終了が1970年(番号1000-1017)、「初のボギー車」だったようです。すごいね、ジジの親父も生まれる前。ちゅうか、さ来年100年アニバーサリーだわ。

ボギー台車(ボギーだいしゃ)とは、車体に対して水平方向に回転可能な装置をもつ台車の総称である。またボギー台車を装備した車両をボギー車と呼ぶ。だそうです(Wikipedia)。

そういう歴史的情報も展示してくれるととても面白いと思うのですがねえ。それともどっかにあったのかなあ。見逃しただけかなあ。

 

おみやげにトミカバスを2種買いました。1台1320円(税込み)高いっ!

トミカバス2種

右の方は路線バス、左は観光用ですかね。右の方はシールが入っていて行先を選べます。弟君はとても喜んで「市電保存館行」を貼っていました。

トミカバス2種

横浜市営バスです。

スマホで「今どこ?」検索ができて、とても便利な世の中になりました。とても助かりますが、京急バスは対応していません。

しかし、バス路線も運行本数もどんどん減らされていってます。運転手が不足しているのと利用者が激減しているのが要因のようです。ウチのすぐ近くに停留所のあった路線も10年近く前になくなったあたりから、加速度的に減っていっています。

 

今日はめちゃ暑い日でしたが、とても楽しい一日でした。孫の相手も命がけ。

夏休みでしたが他にはあまり来ていませんでした。混んでれば混んでるでアレですが、すいてればすいてるでまた寂しいもんですな。

あと何回、一緒に来れるんでしょうかねえ。目指せ30回以上!!

て、もういいおっさんなっとるやん。その時にはひ孫かな~~?。

この歳になってみると、娘はこれ以上ない最高の親孝行をしてくれました。感謝、感謝しかありません。

最初の数日で夏休み全部用のエネルギーを使い果たした気がしますが、今がこれまでの人生で一番幸福な時かもしれません。

 

「横浜市高速鉄道建設史」関連の記事。

gea02330.hatenablog.com

 

CASIO CG50のC.BASICで「飛行機で行け!」的なゲーム作ってる途中

生まれてこの方、初めての関数電卓でのゲーム第2弾!!


アナログ時計が作れるのであれば、スピードメーター的なものも作れるのでは、と思い立ち、スピードメータを作ってみたら調子づいて、昔なつかしの「飛行機でGo!」

株式会社「HIRO」の「飛行機でGO!」

的なものを作りたくなってしまったので、早速取り組んでみたところ、なかなかうまくいきません。やるたびごとに新たな欠陥を発見し、息つく暇もない感じです。

息つく暇はないものの、幸か不幸か、なんというか、仕事やめたので試験飛行のための時間は山ほどあります。

ひたすら試験飛行を繰り返しつつ、日々採点の修正を続けております。
20260801 23:59以降が現在のところの最終版です。
C.Basic設定での「Sketch Line」の太さにかかわらず、各メーターの針の太さが一定になるように修正。


ファイルのタイムスタンプが変えられないのが非常に不便ですな。

現在のところ、ゲーム画面表示以外はなかなかの出来ではないかと思うので、ここで一旦ご紹介したいと思います。

途中といっても、当面画面表示が完成できる見込みがありません。「グラフと計器だけを頼りに夜間の暗闇の中での飛行」とお考え下さい。滑走路位はなんか照明が欲しいところですねえ。

ゲーム仕様としては、

操作はスピード(十字キーの上と下)と
・ピッチ角(上向き[OPTN]キー/[8]キーと下向き[log]キー/[2])のみ
・時間は無制限、
設定した飛行距離を少しでも超えるとGAME OVER
設定距離の半分を超えても高度=0の場合GAME OVER、
・設定距離の手前3000m以内に入ってから、1500m以上残して速度=0かつ高度>5mでGAMEOVER、
高度が「0」のまま設定距離の半分を過ぎるとGAMEOVER
・設定距離の半分を超えるまでは、途中で速度および高度が「0」になっても続行可能です
・着陸時にピッチ角が±10°以内で高得点、
・最大スピードは999km/h、最高高度は9999m、最大ピッチ角は±50°、
・飛行状況を「飛行距離が横軸、飛行高度が縦軸」のグラフで表示
・設定した飛行距離を平均時速400km/hで飛行した場合の時間から遅れるにしたがって減点が加算、
・現在のところ、背景画面を検討中
何分、訓練飛行不足で最後の判定にいろいろと穴がある可能性があります。

 

まずは起動直後の画面です。

起動画面

ごちゃごちゃしてますが、一応のキー操作、おおよそのかかる時間と飛行距離を説明して、希望する飛行距離を(km)単位で聞いてきています。

何も入れないで[EXE]を押すと、「50」kmが設定されます。あまり短いとゲームが成立しないので、10km以上が適当かと思います。長い方には制限はありませんが、内蔵時計を使っているので、現実の日付を跨ぐとおかしくなります。

起動してしばらくは離陸滑走路ですので、ひたすらスピードを300km(黄色の目盛)まで上げます

最初の滑走では速度が300km/hを超えるまで、ピッチ操作はききません

一旦スピードが300kmを超えてピッチを上げると、以後はスピードに関係なくピッチ操作ができるようになります

CG50のハードウェアの仕様上、どちらかを押しっぱなしにしている最中は他のキーは受け付けませんので、違うキーを押す場合には、今まで押し続けていたキーを一旦離す必要があります。

ピッチ上げて機首を上向きにしてしばらくすると高度がどんどん上がってきます。ピッチ角は最大±50°となっています。

実際の画面で説明します。設定距離500kmで出発して、ピッチを上げてどんどん高度が上がって、高度4754mで「x^2」キーまたは「5」キーでピッチを水平にしてしばらく飛んだ時点の画面で説明します。

ゲーム途中の画面

・一番左上の縦長メーターはピッチ角で、赤線(水平)より下が機首上向き、上が下向き、飛行機のコックピットで一番目立つやつ。
・左上段のピッチ角メーターの右となりの3つの箱の一番上が「横軸が飛行距離、縦軸が高度」のグラフ、飛行軌跡は黄色い線(実は点)で表示されます。ピンクの線は高度5000mの目安、細線に変えました
・その下の「D:」は残りの距離(=設定距離-飛行距離)、飛行距離ではありません。
・その下の「T:」は開始からの時間(平均時速400km/hの時間より短い程高得点)、
・一番右上の「H:」は現在高度(高度0-9999m)、
・その下の「S:」は現在スピード(0-999km/h)です。
・下段の丸いメーター類は左端が高度のひと目盛り1「km」表示、その右隣が高度の「100m」表示
・その隣はピッチ角、赤線の位置が水平、赤線より上が機種上向き、下が下向き
・一番右のメーターはスピード計、「300km/h」の目盛が黄色表示、ここを超えるとピッチ操作「OPTN」/「8」が操作可能になります。

「F3」キーを押すといつでもピッチ角を確認できます。「EXIT」でPopupが解除
「終了」は「F5:[×]」です。即座に終了します。このキー以外では途中終了できません
ピッチ角は「x^2」キーか数字の「5」キーでどの角度からも一瞬で水平に戻せます。
(現実はさておき、これがないと非常にやりにくいため。)
スピードは十字キーの上か下で「0~50km/h」までは「1km/h」ずつ、それ以上は「2km/h」ずつ増減します。

空気抵抗を考慮して、高度が上がるとピッチ角に応じて一度に上下するスピードが増えます。空気抵抗は速度、時間、距離の関係には影響しません。

 X-Yグラフの左端が開始地点、右端が設定した飛行距離となりますので、この右端より手前で着地と速度0にするようにします。着陸地点が滑走路を超えると大惨事になるのでゲームオーバーです。必ず手前で「速度=0かつ高度≦5」になるように操縦します。着陸時点でピッチ角が±10°以内で高得点です。

着陸は滑走路想定なので、手前でさえあれば残距離はそれほど大きな減点にはなりませんが、あまりに手前で降りると減点対象になります。

まだ現状たったこれだけで、背景画像ができていません。現在検討中ですが、あんまりできる見通しがないので、とりあえずここで一旦ご紹介したいと思います。

背景画像はないものの、X-Yグラフがあるので、着陸計画の見通しは立てやすいのではないかと思います。

着陸準備に入り、水平飛行から降下を開始したところ。

降下開始

上の例では、降下開始がやや遅く、ギリギリ目標地点までは間に合わなそうです。

実際、目標地点の手前では着地できず、結果はこのようになりました。

結果表示画面
ピッチ角も表示するようにしました。
順番も変えました。
最後の図参照

不合格判定です。

Δdがマイナスになると即アウトです。

・Δd:設定距離-飛行距離(ただし、不合格判定により強制中断の距離)、
・speed:設定距離に到達した時点のスピード(「0」が目標)、
・time:起動開始から不合格中断(設定距離)までの時間、
・high:設定距離に到達した時点での高度(「0」が目標)

となっています。

 

うまく目標距離より手前で着地できた場合には、残距離と時間で「EXCELLENT」、「VERY GOOD」、「GOOD」の3段階評価で1000点満点でのポイントが表示されます。

「GAME OVER」では基本、ポイントはでません。何故かでることもある。

まだ合格点画面の写真が撮れていませんので、是非ともチャレンジして実際に見て下さい。

 

・「飛行機で行け!」転送用g3mファイル
HIKOKIGO.g3m - Google ドライブ

・同テキストファイル
HIKOKIGO.txt - Google ドライブ

できたてホヤホヤなので、いろいろ不都合は出るかと思います。ご一報いただければ検討します。〇メータの2番目、「H.100m」計で稀に針の残像が残ることがあります。ちょっと原因がわかりません。同じところを針が通過すると消えることもありますが、消えないこともあります。通過2回目で消えることもあります。解決済、多分もう出ないと思います。「And」と「Or」の使い間違いでした。「Speed」にもありましたので直しました(20260726 14:36)。

高度=「1」mでも「0」mでさえなければゲーム続行できるので、難解な場合は高度=「1」で練習してみるといいと思います。高度=「1」のままゴール(速度=0)しても無事着地とみなされます(=<5m)。

設定距離の両端は(離着陸ともに3000mの)滑走路想定なので、特に着陸時の残距離の影響はそれほどなく、ほとんど時間とピッチ角でポイントが決まります。しかし設定距離よりもあまりに手前だと減点されます。

 

ちなみに、採点の基準の要因となる時間ですが、最初から最後まで一貫して時速400km/hで設定した時間を飛行するのにかかる時間を基準として、この時間からの遅れを減点として決めています。基準の時間は概ね以下のとおりです。

時速400km/hで最初から最後まで飛行した場合にかかる時間

 

この時間から離れる程、減点が大きくなりますが、この飛行時間による減点は最大でも-200点です。これより速いか、差がゼロに近い程、減点は「0」に近づきます。減点の最小はいくら上表の基準時間より早く着いても「0」です。

例えば10kmを設定距離とした場合総飛行時間が1分30秒より早ければ減点ゼロです。

100kmだと15分が基準時間となります。床屋の待ち時間などに丁度よいかもです。

基準を「400km/h」に決めた理由は特にないのですが、新幹線よりは速く、適度にゲームが成功する程度に抑えるとこんな感じでしょうか。という感じです。


上の表での最小距離5000mというのは、平均的な滑走路(3000m)を差し引くと2000mしか残らないので現実的ではありません。あまり上昇すると着陸までに下降が間に合わなくなります。あくまで検算用・練習用ですので、最低でも50,000m程度以上の設定距離での飛行をお勧めいたします。

 

「わけわからん!」な人のための練習用モード

既述のとおり、高度は「0m」でさえなければGAMEOVERにはならないので、最初は高度「1~2m」とかで速度をあまり上げないで設定距離=10kmで飛行するとわかりやすいかもしれません。5kmでも受け付けますが時間が足りなくてまずクリアは不可能に近いです。

その後、苦心して一応、上記練習用モードで「EXCELLENT !!」が出ないわけではないことは確認しました。

「EXCELLENT !!」

最初の方でもう少しスピードを上げて全体的に400km/hより速ければもっと得点があがります。ちんたらやってたらこんな感じです。時間差でかなり引かれています。離陸と、特に着陸時点での速度が遅いため、途中は400km/hよりかなり速くすると高得点につながります。

高度「5m」以下はそのまま着地とみなされます。着陸なのでピッチ角が10°を超えると減点です。現実は10°など衝突に近く、ほとんど水平なのでしょうが。

複雑な関数は必要ないのですが、とにかく「Int」と「Abs」の付け忘れが意外な盲点となって、非常にバグが見つけにくいです。片っ端からつける習慣をつけておくとよいですな。飛行距離、高度の計算には速度と時間と三角関数を使っていますので、そこそこリアルに近い気はします。

将来ゲームを作りたいような優秀なぼくちゃんは、今のうちから、何はさておき算数だけはしっかり勉強しておきましょう。必ず役に立ちます。

とは言っても特に難しい数学・物理学ではなくて、むしろ文系の算数の方が出番が多い感じです。

 

おっしっ!設定距離50kmです。

設定距離「50km」でやたっ!

一応矛盾はなさそうです。やっぱり設定距離は長い方がやりやすいと思います。

 

 

CASIO fx-CG50でアナログ時計作ってみた(C.Basic限定)(日付時刻合わせ、日の出・日の入り追記)(20260723 19:37)

「F-Line」コマンドを覚えたら、今度はアナログ時計を見たくなって作ってみました。例によって「Program」では日付・時間を呼び出せないので、今回も「C.Basic」限定です。なので「Program」から起動してもエラーになります。「C.Basic」から起動してください。

ちまちまと仕様変更しています(20260715 00:10:15)。

表示中は画面の省電力機能は働かないので、つけっぱなしの電池消費にご注意です。なので、派手な画面にはせず、必要最小限のあえて極めて地味なデザインになっています。

起動するとこんな感じです。

CG50でアナログ時計
脳内白黒反転でちょっと旧国鉄っぽい

ファンクションキーは一応全部使っています。一部表示してないものもありますが、以下のようになっています。

「F1」で「CALENDCX」起動(月カレンダーの表示)、終了は「F6」か「EXIT」キーです。一応「F2」に「CLOCKCX」を入れていますが、煩雑なので表示は省略です。

「F2」で「CLOCKCX」起動です。

「F3」で「SETCLOCK」日付・時刻合わせを追加しました。設定に戻らずとも日付・時刻の修正ができるので、是非とも一緒に入れておくとよいと思います。

「F4」で「SUNRISE」日の出・日の入りを表示する機能を追加しました(20260715 23:25)。本プログラム内にルーチンを追加しています。「F4」を1回押すと表示して、もっかい押すと消えます。よいこは日が沈む前におうちへかえりましょう。最初の1発目で表示しなかったバグを修正しました(20260717 00:10)。

「F5」に「LUNACALX」月齢表示を追加しました(20260717 11:10)。

いずれも同じフォルダ内にこれらのプログラムを一緒に入れておくといろいろと便利です。同じフォルダに入れておかないで呼び出しすると「エラー」となります。

「F6」で終了です。

 

「日の出・日の入り」と「月齢表示」はいずれも基準点を2000年とする概略計算なので、あまりに遠い過去・未来の時刻は全く未検証です。というか、多分、ダメでしょう。

 

「アナログ時計」は常に現在の日付・時刻で起動します。

 

画面構成はシンプルですが、鉄道好きには結構見てて飽きないと思います。そんなことはないか。まあないよりまし程度のジャンクプログラムです。しばらくご無沙汰の鉄道模型ネタですが。仕事辞めたんで先立つものが。。。しばらくは電卓いじっておとなしくしていたいと思います。

日の出・日の入りで使う現在位置の初期値は「横浜港」の緯度・経度が入っていますので、プログラムリストの一番最初の行の数値を適宜、必要に応じて変更してご使用ください。「L」が緯度、「O」が経度です。十進数の度単位で入力します。

個人的にはカレンダーよりもつけっぱなし時間が長くなりました。なんとなく、動くものは楽しいので、うっかりするとそのまま寝入ってしまうので要注意です。癒し効果あるかも。画面表示中にGetKeyを使ってると時間が経っても画面は暗くならないようです。親切設計なのかな。

 

アナログ時計「ANALOGCL」プログラムです。

 

・転送用実行ファイルg3m
ANALOGCL.g3m - Google ドライブ

・テキストファイル
ANALOGCL.txt - Google ドライブ

アナログ時計は基本、単独で起動しますが、カレンダー、置時計側からも、それぞれ、「F1」キーで呼び出せます。隠しコマンドみたいですが、他に表示する場所がもうないんですよ。

カレンダー上から呼び出す場合は、どの年月日で呼び出しても、常にシステム時計の「現在時刻」をアナログ表示します。

特に前後左右に移動するわけでもなく、ただ時計表示しているだけのプログラムです。時計がずれるといろいろと困るもんねえ。

 

日の出・日の入りの単独起動版はこちら(20260716 10:25)

「十字キー」の左右「◀・▶」で1日前・後、上下「▲・▼」で1月前・後します。
(20260723 19:37)

・日の出・日の入りg3m
SUNRISE.g3m - Google ドライブ

・同テキスト
SUNRISE.txt - Google ドライブ

「カレンダー」などに移動できますが、移動してから「アナログ時計」に移動すると、「現在日付」に戻ってしまいます。「月齢LUNA」は大丈夫です。

月の出・月の入りはひっじょー~~に複雑なので、ちょっと無理そうです。

観測場所の初期値は「横浜港」の緯度・経度が入っていますので、プログラムリストの一番最初の行の数値を適宜、必要に応じて変更してご使用ください。「L」が緯度、「O」が経度です。十進数の度単位で入力します。度分秒は計算モードで変換して「度単位」を入れておいてください。

電卓による簡易計算なので、国立天文台の発表値とは最大で2~3分ずれることがあります。参考程度にご利用ください。「月齢」ともに、あくまで余興として、厳密に信用しないようにお願いいたします。本プログラムの結果により発生した不都合については、一切の責任を負えません。日々の暮らしで精いっぱい。

カレンダーと置時計は連動させるためには、下記ファイルに更新する必要があります。

前記事でのリンク先も新しい方に変わっています。というか同じ最新版を呼び出しています。

・こちらも「F3」に時刻合わせ呼び出し(後述)を付け加えました。画面には表示されません。

ここで、「CLOCKCX」と「CALENDCX」の違いをまとめておきます(一部仕様変更あり)。

うるう年の2月を見た後に他の年でも2月が「29」日になるバグ修正済(20260728)。

・CALENDCX
 ・任意の「年」・「月」・「日」を入力してから起動。
 ・曜日の略号と本日マーク(起動時に入力した日付)が
 ・日付が変わっても本日マークの位置は不変。
 ・「SUNRISE」から飛んだ時、「SUNRISE」で表示されていた日付が「本日」マーク
・CLOCKCX
 ・入力なしで、現在の日付・時刻で起動。
 ・曜日の略号と本日マークが水色
 ・日付が変わると本日マークの位置が変わる(ハズ)。
 ・どこからから飛んで来ても、常に現実の「本日」が「本日」マーク。

どちらも、「月齢」プログラムで日付を変更すると、戻ってきたときにその日が本日マークに変わりますので、特に「CLOCKCX」の場合は要注意です

休日データの入力時にはデータ行の後に行数を指定する必要はなくなりました(20260726)。順番は不同ですが、Str変数の添字に欠番が出ないように注意してください。何も起こらないとは思うのですが、未確認のため。

これに関連して、一番最初に追加したコメント行「'#_Str _A」は宣言文なので、消さないようにお願いいたします。

他の機能は同じです。必要に応じて使い分けて下さい。

 

・CALENDCX(アナログ時計呼び出し版)
CALENDCX.g3m - Google ドライブ

・同テキスト
CALENDCX.txt - Google ドライブ

・CLOCKCX(アナログ時計呼び出し版)
CLOCKCX.g3m - Google ドライブ

・同テキスト
CLOCKCX.txt - Google ドライブ

・月齢(アナログ時計呼び出し版)
LUNACALX.g3m - Google ドライブ

・同テキスト
LUNACALX.txt - Google ドライブ

 

あらかじめ、時計合わせを忘れずに行っておいてください。時計合わせは「C.Basic」のファイル選択画面で、「SHIFT」→「MENU」の下の方です。

→「うわっ、めんどくさっ」というわけで、おまけで

日付・時刻合わせ用プログラム「SETCLOCK」

「いちいち設定まで戻るのめんどくさいぞ」と感じたので、電池交換後などは「ここの画面から日付・時刻の設定できるようにしたいかな~」と思って作成しました。

単独でも起動できますが、修正後の日付・時刻の確認用に「ANALOGCL」を呼び出すので、必ず同じフォルダ内に「ANALOGCL」を入れておいてください。ウザイ場合にはプログラムをいじって呼び出さないように修正していただいてもよいかと思います。

アナログ時計からは「F3」で呼び出します。

現在の日付、時刻を修正します。システム時計の日付・時刻を変えるプログラムですので、以後、時計の日付・時刻が変わります。必要な時以外は起動しないよう要注意。

カレンダーからも「F3」で呼び出せます。

 

・日付・時刻修正プログラム転送用g3m
SETCLOCK.g3m - Google ドライブ

・テキストファイル
SETCLOCK.txt - Google ドライブ

日付・時刻合わせ画面(20260714白黒反転)

いつもの入力形式で「年・月・日」または「時・分・秒」をそれぞれ個別に聞いてきますが、
「年」は4桁限定、その他は1桁でも2桁でもOKですが、範囲外の数字を入れると、変更しません。

変更したくない項目は何も入力しないで「EXE」を押せばその項目は変更しません。変更したい項目だけ数値を入力すればOKです。

間違って起動した場合も何も入力せずに「EXE」だけを押し続ければ何も変更しません。

ただし、時刻設定を何も入力せずに終了しても、「秒」だけ、多少のタイムラグ(1~2秒)が出て遅れるようです。アルゴリズム上、遅れるはずはないのですが、プログラムの作成中に何度か試行錯誤繰り返しているうちにな~んか少しずつ遅れてる感じです。

 

電卓の時計は水晶時計程の精度はないので、電波時計かなんかを見ながら、ちょくちょく秒合わせをするとよいと思います。

電波時計だって、電波を受信できない環境だと結構ずれてきます。もともとがちょくちょく時間合わせをする前提で設計されており、時計自体にはそれほどの精度は組まれてないようです。電波におんぶにだっこの感じ。

まだ長期で観測してないので何とも言えませんが、CG50の内蔵時計は、気持ちやや進む感じがします。気のせいかもしれません。いじくりまわしてるので電池の減りがめちゃ速くて。

 

どのプログラムからも起動・他のプログラムへの移動は可能ですが、

任意の年月日で起動できるのは以下の3プログラムです。

・CALENDCX
・SUNRISE
・LUNACALX

これらから初めても、一旦アナログ時計「ANALOGCL」に移動すると現在の日付に変わります。

他は現在の日付・時刻で入力なしに起動します。

 

過去記事↓これの進化形です。

gea02330.hatenablog.com

 

だんだん伏線回収のレベルが上がってきたように思えますがどうでしょうか。

CASIO fx-CG50で月齢計算(月カレンダーと連動)(置時計化完了20260709)

CASIOのfx-CG50のせっかくグラフ機能を使ってもっと何か面白いことできないかなといろいろ考えていたら、月の満ち欠けを年月日から計算できないかと思いつきました。あんましおもしろくないすかね。

今回はGoogle Geminiに大いに助けてもらいつつ、どうにかプログラムができましたのでご紹介したいと思います。

こんな感じのものです。

月齢表示例

 

 

すいません、"Thr"は"Thu"に直してあります。

さっそくプログラムですが、以下のとおりです。

「Program(CASIO BASIC)」用プログラム(サンプル用、非推奨)

・転送用g3mプログラム
LUNARCAL.g3m - Google ドライブ

・テキストファイル
LUNARCAL.txt - Google ドライブ

このプログラムは「Program」でも「C.Basic」のどちらでも動きますが、「C.Basic」の方が描画が圧倒的に速いです。かかる時間が体感ですが10倍くらい違います。実用性を考えるならば「C.Basic」限定としたいところです。

さて、どちらでもOKですが、「Program」から起動したやつで説明を進めます。

「C.Basic」については後述します。

上のプログラムを転送したら、

ファイル名「LUNARCAL」を起動

ファイル名は「LUNARCAL」です。「LunarCalender」にしたかったのですが、「Program」の字数の制限でこうなりました。

「C.Basic」ならば「LUNACAL」です。

で、このファイルを起動しますと、

「年」を聞いてきます。

ここはとりあえず、「2026」を入れてみます。

「Year」に「2026」を入力

で、「EXE」すると、次は「Month」です。

「Month」を聞いてきます。

「Month」に今月の「7」を入れてみます。で、「EXE」すると、日付を聞いてきます。

「7月」の「7」を入力

で、日付は本日の日付「2」を入れてみます。

「Date」は本日の「2」を入力

で、「EXE」。

要は年月日を3回に分けて入力します。

すると即座に描画を開始します。「C.Basic」を推奨します。

本日2026年7月2日の月齢表示

表示結果画面です。十字キーの左右で1日ずつ前後します。上下キーで30日ずつ前後します。通常の「Program」から起動するととても耐えられる描画スピードでないわけではありませんが(人による)、「C.Basic」での起動を圧倒的に推奨します。

「F6」キーか「EXIT」キーか「EXE」キーで終了です。

この月齢ですが、正確に言うと一般に見られる月齢とは小数点1桁のオーダーで若干の違いが出ています。小数点以下は時間なので、深く気にせずこの程度、程度にお考え下さい。

とりあえず、

・月齢0もしくは29.53日付近が新月で真っ暗、
・15日付近が「15夜」と言われる満月付近です(厳密には違うらしい)。

で、「EXE」すると、最後に表示した日時のJDNとMJDと月齢計算結果を表示して終了です。

最後っ屁画面

以前に作成したユリウス日計算JDNプログラムに付け足して作成しました。

今月14日の新月の描画例。

新月の描画例

 

今月末の満月の描画例。

満月の描画例

おもちゃ程度にお考え下さい。月齢の数値は一般に公表されているものとは若干異なります。ちょっと基準がわからなかったもので。

月の形が合ってればだいたいいいかなと。

来週水曜日の7月8日は丁度半月になる予定です。

2026年7月8日は半月

休日の次の日の7月21日は逆半月。

2026年7月21日も半月

 

さてここからが推奨の「C.Basic」専用です。

月齢グラフ「C.Basic」専用プログラム(20260709 00:00)

・背景が黒になり、カレンダーと連動できます。

月を目いっぱい大きくしました。

・月齢グラフ「LUNACALX」転送用g3m
LUNACALX.g3m - Google ドライブ

・テキストファイル
LUNACALX.txt - Google ドライブ

「C.Basic」限定で、「CALENDCX」と「CLOCKCX」と連動できるようにしました。

「F5」キーまたは「F4」キーでカレンダーと月齢グラフをお互いに行ったり来たりできます。

「F6」キーで終了です。

カレンダープログラム(連携用に更新)

本日のカレンダーを表示する「CLOCKCX」転送用g3mファイル

うるう年のバグ修正済(20260728)。
CLOCKCX.g3m - Google ドライブ (必須ファイル)
・同参考用テキストファイル
CLOCKCX.txt - Google ドライブ

こちらは現実の時間で日付が変わると、現在表示の日時にかかわらず、本日マークが起動日より1日繰り上がります。置時計機能用。

 

日付を指定して任意のカレンダーを表示する「CALENDCX」転送用g3mファイル
CALENDCX.g3m - Google ドライブ

・同参考用テキストファイル
CALENDCX.txt - Google ドライブ

こちらはもともと現実の時間で日付が変わっても、「本日」のカギかっこの位置は変わりません

 

以前のファイルでは行ったり来たりはできませんのでこちらをご利用ください。

 

これら3つのファイルはどれから始めても「月齢」と「カレンダー」間を行ったり来たりできるようになっていますが、「CALENDCX」は必須ファイルです。「LUNACALX」中で呼び出しプログラムとして指定しています。3つとも入れておけば便利と思います。

月齢ファイルの時に「F6」で終了すると月齢計算結果のテキスト画面が表示されます。このテキスト画面は「EXE」キーのみで終了できます。ウザイ場合はカレンダー画面で「F6」キーで終了してください。まあ、最後っ屁画面が出るのは同じですが。

眺めてるだけだったただのカレンダープログラムがグッと生きてくる気がしますが、どうでしょうか。

プログラム呼び出しが階層化として認識されているとすると、一回の立ち上げで何十回も行き来を繰り返していると、どっかの段階でエラーが起こる可能性もあります。まだエラーに遭遇したことはありませんが。その場合には、再起動すれば問題ありません。

 

「C.Basic」での起動例「CLOCKCX」(「CALENDCX」でも同じ画面)

「CLOCKCX」を起動
「CALENDCX」でも画面は同じ。

「F5」の上あたりに「MOON」と表示させました。

・「F5」で月齢表示、
・「F6」または「EXIT」または「EXE」で終了です。

カレンダーは十字キーの左右で月単位の移動、上下で年単位の移動します。

ここで「F5」で月齢表示に切り替えると、最後に表示していた「本日」の年月日での月齢を表示します。「F5」を押しました。

 

「F5」で「LUNACALX」に移動

ここでは、十字キーの上下で30日の移動、左右で1日単位の移動します。

・「F4」で置時計「CLOCKCX」に戻り(00:00過ぎると日付が「現在」に変わる)、
・「F5」でカレンダー「CALENDCX」に戻り(00:00を過ぎても日付は変わらない)、
・「F6」で終了します。

ここで置時計やカレンダーに戻ると、最後に表示してた年月日を「本日」にしてから置時計もしくはカレンダーに戻ります。

この月齢表示で日単位での移動が可能になりました。

この月齢表示の画面で終了すると、最後に表示していた年月日で、

JDNとMDN、曜日、月齢計算結果を表示して終了します。

 

月齢数値の修正案に良い案があれば是非ともお知らせください。

元気があれば直します。

現状では紀元後と紀元前を跨いだりすると、「0」年が発生してしまうことがあるので、どちらかの範囲内で日付移動をするように使用してください。

思いつけたら直します。

 

丸いの見てたらアナログ時計も表示させたくなったので作ってしまいました。

gea02330.hatenablog.com

 

PentelのシャープペンシルPG4ばらしてみた

昔、学生時代からだったと思うけど、シャープペンシルが削らなくてよくて便利なので、いろいろと試してこれはいいと思ったのが0.4mmのこれ。0.3mmだと細すぎてすぐプチプチ折れるし、0.5mmだと線や文字が太くて何か気に入らない。ということでベストフィットだったので使い始めてたのですが、気が付いたら、いまでも使い続けていました。

PentelのPG4

といっても、かなり早い段階から製図の成果品は、手書きからパソコンでの製図納品に切り替わり、出番が途中からガクッと減ったため、50年近く経った今でも生き残っているのだと思います。

話は変わり、割と最近までアルバイトでお受験小学生に算数と社会を教えていたのですが、最近の小学生はやたらと人の筆入れを気にする。何かね、と聞いてみると、これが、シャーペン、特にこのPG4に興味があるらしい。

そんな生徒が入れ替わり立ち代わり、最近はお受験小学生の間でシャーペンブームなんだそうで、特にこのPG4は幻の逸品なんだそうです。逸品ったってもう売ってなかろうに。こんなもんに気を取られてないで勉強しなさいっ!とはいいませんが。

確かに、製図を生業としていた当時から、常用している機種が変わっていないということは相当使い勝手が良かったのだと改めて思います。1976年の販売開始だそうです。

そうなの、といいつつ帰ってきてからAmazonで検索してみると、

なな、な、なんじゃ、この値段。14980円ですとな。

これは極端ですが、フリマなんかでも4000~5000円程度はするようです。

こんな経年劣化しかけた中古の文房具になんでそんな値が付くんですかね。

誰が買うんですかね。こんなん。

これ、引き出し探すともっと出てくるかもしんない。と思ってとりあえず見つけたのが3本。そのうち2本が押したときのノック感が空振りっぽい。芯が出てこない。

購入してからもう50年近いのでもうだめですかね。

で、ばらしてみることにしました。

PG4分解

現状でばらせるのはここまでのようです。

この黒いポチが、内部で芯先を固定するゴムで、これがどうもひっくり返っていたらしく、正常な位置に突っ込み直して組み立てたらちゃんとまた使えるようになりました。通常はこの程度のバラシではこのゴムは落ちてきません。先端に固定されています。多分劣化で縮んだのでしょうかね。

もう一つの空振りっぽいノック感の症状は、芯を排出する金具で、普段は本体内部に隠れていますが、ノックをすると、先端がひょいと顔を出します。

芯送り出し先
ノックをすると出てきます。

この先端がねじ込み式になって本体に装着されていて、このネジがしっかりはまってなくて緩んでいると、ノックが空振り感ぽくなります。ネジを締める要領で、押したまんまネジネジとねじ込んでやると、ノック感がそれっぽく回復します。

この2点が芯が出てこない2本とも同じ症状でした。捨てなくてよかったー。

どれもまた使えるようになりました。なるほど。そういうところか。

さすが日本の高度経済成長期の技術は天下逸品!

まだまだ現役で使えそうです。

使い始めて50年近く、ほとんど構造に目を向けたこともありませんでした。

で、今日は、5年生のはじめ頃から足し算の怪しかった頃から約1年半近く、算数を教えてきた6年生の生徒が、例にもれず、相当シャーペンに凝っていて、筆入れの中の総額は軽く万単位のおぼっちゃま。普段は中古品には全く興味がないこのおぼっちゃまなのですが、この私めのシャーペンだけは見つめる目の輝きがいつも異常。

実は本日はアルバイト最後の日となるので、本人には伝えてないのですが、今までのつたない授業に付き合ってくれた感謝を込めて、そろそろ捨てようかとも思ってた1本、クリップの錆びてない状態のいいやつを記念に差し上げました。ノックしてもすぐに芯が出てこなくてイラっときて、そろそろ捨てようかと思ってたので、捨てるよりは大切にしてくれそうな人にもらわれた方が。

中古は嫌いといってたので、まさか「ほしい」というとも思ってなかったのですが、それでもあまりに見るので「あげようか」というと、「ほしい、絶対ほしい」というので「はいどんぞ」とあげました。当時の替え芯のケース(上の写真のひし形断面のやつ)も一緒にセットであげました。

最初、この替え芯のひし形のケースに注目していたので、こんな古いぼろいケースが珍しかったらあげるよと。それだけでもかなり喜んでいたのですが、これはこのシャーペンと一緒に買ったやつだよ、と見せたのがPG4でした。が、まさかそんなに話題になってる機種とはつゆ知らず。

これが所有するシャーペンの中でも最高額の逸品となった、と言っていました。ただでさえ満額筆入れなのに。危ない、捨てるとこだった。大事にしてくれそうです。よかったねえ。

で、こちらはまだ2本あるし。いいや。と思ってAmazonで値段を見たらこの始末ですよ。メルカリでも6000円台ものなら確実に売れているようです。まさかこんなに値がついてるとは。大丈夫かな~。妙なトラブルに発展しないといいけど。

他にも値が付きそうなものがないか、もっぺん本腰いれてやさがししてみるとしますかね。

そうそう、PG4あげた子が過去に作ってくれた作品。なかなかすごいぞ!

恐竜さんとこれは何かな半身獣みたいなやつ

半身獣

わかりにくいですが、片手に剣、片手に盾を持っています。なかなかの迫力。
ケンタウルスでしたか。

半身獣

もういっこ。

鶴かな?

 

CASIO CG50 超絶簡単な設定変更プログラムの例

とにかく、CG50あたりから、メニューというか、関数全般というか、コマンド類が使いづらくなりました。というわけで、よく使う計算時の角度の単位の変更「DEG⇔RAD」変更と、グラフ描画の時の軸設定の自動とマニュアルの「S-WindowAUTO⇔MANUAL」設定を一発で変更してくれるプログラムを作成してみました。究極のジャンクプログラムです。慣れれば不要のプログラムです。

計算モードにいる場合は、いちいちプログラムモードにいってファイルを探すのも面倒ですが、それでも慣れないうちは悩むよりは断然速いです。

下記はその一例です。

・「DEG⇔RAD」設定変更プログラム
DEG~RAD.g3m - Google ドライブ

・同テキスト
DEG~RAD.txt - Google ドライブ

 

・「SWindowAuto⇔Manual」設定変更プログラム
SWINMODE.g3m - Google ドライブ

・同テキスト
SWINMODE.txt - Google ドライブ

 

・「SETAXIS」グラフの座標軸の表示・非表示設定変更プログラム
SETAXIS.g3m - Google ドライブ/

同テキスト
SETAXIS.txt - Google ドライブ


よく使う設定変更の項目はこのようにメニュー化してプログラムにしておけば、深い階層を下っていく必要はありません。一発です。他にもいろいろ作れると思います。

プログラムファイル数が増えると煩雑になるので、覚えたやつから削除していけばいいと思います。

 

 

CASIO CG50の散布図で回帰式を「Graph」に送るプログラム

ばらした記事のまま放置しているのもアレなので、またまたジャンクっぽいプログラムです。

で、何をするプログラムかというと、(x, y)が同じ数だけ揃っているデータでれば、散布図が描けるわけですが、この散布図をジーっと眺めてても全然おもしろくもない。というわけで、いくつかの回帰式を準備して、これに一番合いそうな式を「Graph」で使える「Y1」に送り込んでやろうというプログラムです。

プログラムでできるのはそこまでで、そのあとは「MENU」の「5」にある「Graph」にて操作すれば、いろいろと解析が可能になります。

今回は「List 7」と「List 8」からデータを読み込む仕様にしています。途中計算で「List 9」と「List 10」を使用します。

回帰式には、a, b, c,など、式によっては最大「d」まで定数が付きますが、これはそれぞれ、「A」~「D」に格納されますので、「MENU」間を跨いで共同利用が可能です。

なので、今回も「MENU」の「B:Program」から入るいわゆる「CASIO Basic」限定です。「C.Basic」や「Python」だと「List」のデータが読みこめません。

まずは今回使ったデータですが、CASIOの解説動画でも出てくる、時速とブレーキをかけてからの制動距離のデータを使います。式の都合上、(0, 0)は省きます。

とりあえず、データです。単位などはCASIO動画の方をご参照ください。というのもアレなので、Xは時速(km/h)、Yは制動距離(m)です。

16.1 1.5
32.2 6.1
48.3 13.7
64.4 24.4
96.5 54.9
112.6 74.7
128.7 97.5

SampleBreak.csv - Google ドライブ

この7個のデータをいろんな回帰式で近似してみたいと思います。

プログラムをそのまま使うのであれば、これの1列目を「List 7」、2列目を「List 8」に入れておきます。

もちろん、7行なので、手で打ち込んでも大したことありません。

打ち込んでる途中で、グラフの記号に個別の色をつけることができます。途中でなくても後からでもOKです。

とりあえず、X列指定にしてあるので、X側のデータだけ指定すればOKです。

色をつけたい数字の位置で、「SHIFT」を押しますと、

「Statistics」でデータの入力中「SHIFT」キーを押したところ

Functionキーに「V-WIN」が現れますが、これを無視して、そのまま数字の「5」を押します。すると、

データ打ち込み中の「色指定」設定画面

色選択画面がでるので、いまカーソルのあるセルの数値に色を付けることができます。この色がグラフを描いた時に、同じものだけ、同じ色で表示してくれます。

Xデータに色指定

上の図では、Xの4番目に青、5番目が赤、6番目を緑にしています。

もちろん、色が必要なければ何もしなくて構いません。

で、データの入力が終わったら、一旦「MENU」に戻って、「Program」です。

で、今回は回帰の「Regression」にしようと思ったのですが、文字数が多すぎで、「REGRESSI」になってしまいました。

・転送用散布図ー回帰分析プログラム
REGRESSI.g3m - Google ドライブ

・テキストファイル
REGRESSI.txt - Google ドライブ

これを通常の「Program」用のプログラムフォルダに転送しておきます。

で、「MENU」の「Program」から「REGRESSI」を実行します。

で、実行すると、

起動画面

いつものように、読み込むList 番号とデータの行数の確認画面を表示するので、

ここで、「EXE」を押します。ここは入力方式にしても構いません。

すると、

グラフ表示画面
4番目が青、5番目が赤、6番目が緑です。

散布図グラフの表示画面です。CASIOでは「Scatter」という種類の「線で結ばないグラフ」です。

ここでは、他の拙作グラフプログラムと同じように、十字キーで上下左右移動、「2-5-8」で全体縮小拡大、「1-4-7」でX軸の縮小拡大、「3-6-9」でY軸の縮小拡大が可能です。

「4,5,6」ではいずれも初期値に戻します。

で、ここまでが今までどおりの散布図ですが、しばらくこの状態を保っていたのですが、飽きてきたので、近似曲線を描けないかな~と思い立ち、「F1」ファンクションキーに「回帰分析」の計算ルーチンを入れてみました。

グラフの表示中に「F1」を押すと、

回帰式の選択メニュー画面

回帰式の選択メニュー続き

全部で8個の回帰式が入っていますが、何度でも繰り返し、選択しなおしが可能です。

・1:Y=aX+b
・2:Y=aX^2+bX+c
・3:Y=aX^3+bX^2+cX+d
・4:Y=a+b/x
・5:Y=a+b・ln (X)
・6:Y=a・e^(b・X)
・7:Y=a・b^X
・8:Y=a・X^b

4番目のやつは本機には入っていませんが、「FX-JP700」には入っているので入れました。8番目のやつで代用できそうですが。それ以外は全部関数があるので、引っ張ってくるだけです。4番目は関数が準備されていないので、ここだけプログラムが異常に長くなっています。

ちなみに、LogisticやSinが必要な場合には、どれかをつぶして書き換えると簡単かと思います。使える変数名の制限から、Lblの数の都合上、これ以上増やすのは難しいと思われます。「Lbl」の引数は一桁数字以外は何を入れても「文法エラー」です。何それ、少なすぎ。解決方法があれば増やしてもらって構いません。

 

で、式の選択ですが、無鉄砲よりも、理論的にそれっぽいものを選びます。

ここで使ったデータは確か、出してる速度と制動距離の関係だったと思うので、恐らく2次式が一番近そうな感じです。動画では最初は1次式を入れていましたが、どう見たって直線に見えんでしょ、これ。で、2次式近似の「2」を選択してみました。

 

2次近似の結果

文字列は、上から

「Y=aX^2+bX+c」という式への近似ですよ、という宣言、
2行目が相関係数→変数「R」に代入、
3行目が平方誤差→変数「E」に代入、
4行目が上の式の「a」の値→変数「A」に代入、
5行目が「b」の値→変数「B」に代入、
6行目が「c」の値→変数「C」に代入、

となっていて、以下「d」がある3次式のような場合にはこれに「d」も加わります。

 

アルファベット変数にそれぞれの値が入っており、グラフ変数「Y1」に一番上の式の右辺「"aX^2+bX+c"」が代入されます。

納得いくまで何度でも「F1」を押せば選択しなおせます。

で、これでよければプログラムはここまでで一応終了で、「EXE」キーで終了します。

 

で、ここからは「Graph」での操作となりますので、説明は不要かとは思いますが、軽~く解説すると、

一旦「MENU」に戻って、「5」の「Graph」を選択しますと、「Y1」に先ほどの最後に選択した式が代入されていて、ちなみに「6」の「動的グラフ」にも同時に入りますが、そちらは無視。そちらで削除するとこちらも消えてしまいます。

「Graph」の起動画面に最後に選択した式が入っています。

変数「A」~「C」にはすでに値が入っているので、「EXE」キーか「F6」でいきなりグラフを描いてくれます。

「Graph」での回帰式のグラフ表示画面

これまたつまらん画面ですが、ここで「F1」の下の「SHIFT」キーを押すと、

グラフ画面で「SHIFT」キーを押したところ

ファンクションメニューが登場します。最初気づかず、かなりうざい。最初から出ているといいのですが、出てれば出てるでまた邪魔くさいかも。

ここから先は、マニュアルの「Graph」の項に描いてあるとおりのことができます。

「TRACE」→「F4」から特定の点の接線(Tangent)や法線(Norm)の絵は描けますが、それらの式はでません。なんちゅう中途半端な。使い道あるんですかね。どうやって使うん。

この画面で「SHIFT」の「SETUP」を押すと出てくる設定画面の「Derivative」の項目を「On」にしておくと、接線や法線を描いてるときの接線の傾き(dY/dX)を表示してくれます。これまた法線を描いてる時もとにかく「接線の傾き」という不親切設計です。なんちゅう不都合な仕様や。なんに使うねん。傾きよりもせめて直線の式だけでも欲しいですな。なんかすれば出るんかな??

接線の表示画面

あとは「G-SOLVE」では、式=0のときの解とか、特定の「x」の「y」の値、またはその逆などが出せます。あんまり使い勝手はよくない感じです。

解を求めたところ(Y=0となるXの値のことです)

上の図では、「ROOT」(解)を求めているところで、X=3.569844284のところに選択ポイントがあり、このときのYの値は「0」、接線の傾き(dY/dX)は「-0.04」と表示されています。いらん。十字キーで右に移動させると次の解までポインタが飛びます。

「Graph」での使い方はCASIOのYoutube動画のとおりですが、ちょっと説明がもの足りない感じです。いろいろいじってみるしかありません。

ここで再度入力したデータを重ねてみたい場合には、「MENU」の「2:Statistics」のリスト画面で、「Graph」の「SELECT」で「StatGraph2」と「StatGraph3」を「DrawOn」にして「F6:DRAW」を押せばまた重ね合わせのグラフが描画できます。

ここでも、「CALC」で再度、回帰分析も可能です。回帰分析結果を「COPY」すれば、「Graph」のY1~Y20に登録可能です。要はこの作業をするプログラムです。

 

ちなみに、この「Y1」式は「MENU」で一つ隣の「6:Dyna Graph」の「Y1」にも共通して同じものが入っています。ここでは「a」~「d」の数字を変化させてグラフの形の変化をみるもので、ここで動かしてしまうと「a」~「d」定数の値が変わってしまい、もう二度と元には戻せないので、最初から「6:動的解析」には入らないのが賢明です。興味があればこの限りではありません。

あまり使う頻度もなく、個人的にはジャンクと呼びたいプログラムでした。回帰式を打ち直しするよりは自動で放り込める方が楽かな、と思って作りました。

なお、回帰計算の結果はCASIOのアルゴリズムからそのまま引っ張て来ているだけなので、良くも悪くもCASIOの計算結果どおりです。一通り、EXCELでの確認の検算はしていますが、どれか一つだけ、「R」と「MSE」がかなり怪しいものが混じっていたように記憶しています。5番目だったかなー。

時間があったら是非ともお試しあれ。

 

<Y=a+b/xの計算例>

今回、唯一の自作である上記式(No.4)「Y=a+b/X」の計算結果ですが、FX-JP700と全く同じで結果であることを確認済です。

「Y=a+b/X」の計算結果
JP700めっちゃ見づらい。

ちょっと見づらいですが、a, b, rともに全く同じ結果となっています。

これのグラフはこんな形で、相方が左上の方に見えています。

「Y=a+B/X」のグラフ

左上の方が近似が合いそうに見えますが、こっちなんですかね。

あるいはやり方があるんですかね。

 

CASIO fx-CG50バラしてみた

な~んとなく、方向キーの反応が鈍い気がして、気のせいかもしれませんが、ちょっと中を見てみたくなりました。

決して分解を推奨するものではありません。あくまで個人的備忘録とお考え下さい。バラすときは自己責任です。

バラしただけでもゴミが混入すると新たな接触不良に陥ります。結構大変です。

では分解。

電池ブタを開けると、電池の下に2か所、外側に4か所全部で6か所、ネジ穴があります。黒ネジです。

ネジ穴6か所
黒ネジ

この合計6本を外すと、簡単にばらせます。

特に噛んでる箇所はありません。最初はカッチリついていると思いますが、ディスプレイ側からカポッと外れました。

6本のネジを外したところ
リセットボタンが格納されていて落ちてきません。

青いコンデンサより下半分の基板に白丸で囲んだネジが3か所あります。

基板上部の左右2か所の小さいネジは一応白丸で囲んでありますが、これらは外しません。これはディスプレイの固定用です。多分。恐らく、ディスプレイ側の電極と基板側の電極が櫛状に接触していて、うっかりずれて固定したりすると目も当てられないやつ。これバラすとちょっと組立が容易ではなさそうです。見てのとおり、ネジそのものが非常に小さいので、通常のドライバではまず噛みません。なのでこれは外しません。

で、この状態でコンデンサのついている上側の基板を上端側から持ち上げると、

基板の上側がそっくり返る
基板上部、窓枠のすぐ下に2個、銀ネジ。

ディスプレイごと、基盤が反対側にそっくり返ります。複線ケーブルで繋がっていますので、これを切らないように十分注意です。コンデンサもへし折らないように注意です。

すると、ディスプレイ枠の直下にやはり白丸で囲まれたネジが2本隠れています。

この2本を先に外してから、ディスプレイ基盤を戻して、先ほどの下側の基板の3か所のネジを外します。合計5か所の銀ネジです。

この5本を外すと、やはり最初はカッチリついていますが、ディスプレイの上部あたりの端っこから簡単に基板が外れてきます。最初のカッチリを過ぎるとあとは全く抵抗はありません。fx-5800Pのときのような嚙み合わせは一切ありません。

基板が外れたところ

キーボードのゴム端子が現れます。この方向キーのゴムの小さいこと。

とりあえず、一応、ゴム板を外してみます。

ゴム板を外したところ

キーボード用のボタンが取れやすくて大変。振動ですぐに外れます。ちゃんと向きを合わせておかないと、あとでびっくりします。

さて、キーボード部分のゴム端子ですが、あまりに小さい。小さすぎる。

これは補修が必要だな、ということで、例のfx-5800Pのときに使った導電性銅箔テープ。ところが、このゴムが小さい上に全く粘着テープに相性が悪く、全くつきません。ダメ押しすると、すぐに指にくっついてはがれてきます。窮余の一策でプリット糊をちょとつけるとつきが良くなりました。これ、将来何かの事情で銅箔テープがはがれると、ゴムがかなりの確率で絶縁体になるので、あまりお勧めはできません。またバラせばいいのですが。

方向キーのゴム4か所に銅箔テープを貼ったところ。

とにかくめちゃ付きが悪いのに表面積が小さいので、すぐ動いて面倒ですが、スティック糊でなんとか固定しました。よしよし。では組立、と。ゴムそのものよりゴムの外側にスティック糊をつけてそこに貼り付ける感じです。

ここで、左のキーボードボタン側の一番右上のボタンを見ていただくと、振動で斜めになっています。「F1」のキーです。この時はまだ気づいていません。

そうとは気づかずに、このまま組み立てて、キーの上半分のほとんどが効かなくなってびっくりしましたが、「F1」の文字がお辞儀してたので、ああ、これか、ともっかいばらして組み立てなおしました。やれやれ、ちゃんとキーはきくようになりました。

よかった、よかった、と喜んだのも束の間、これですよ。

なに、この違和感。

後ろカバーまでつけて喜んでいたのですがなんか、微妙な違和感。

おわかりいただけただろうか。

あちゃー、あまりにマヌケなので写真を撮ってしまいました。

気づいた人エライ!

左かっこが右向き。いつの間に。

このままでもレア感満載でいいのですが、やっぱり気になる。

しかたない、またやり直しです。このボタンの修正はまた全部外さないと直せないので、組み立てるときは、下からよく見て確認してから組み立てるようにします。

見たつもりが見てなかったかー。ちょっとの振動でこういった事態に陥ります。

方向キーは断然よくなりました。めちゃ快適。

決してオススメするものではありません。万が一不具合が生じた場合には、正規の修理がまだきくハズなので、極力そちらを利用しましょう。

この機種でもゴムの劣化が始まる時期なんですかねえ。

組立時の注意ですが、ほんのわずかの目に見えるか見えないかの小さいごみでも接点ゴムと電極の間に噛んでしまうと、原因不明の接触不良になります。かなり念入りにゴミを排除してから組み立てます。

決して分解をお勧めするものではありません。

 

 

gea02330.hatenablog.com

 

CG50をカレンダー付置時計化プログラム(C.BASIC限定)

あれから四苦八苦して、

カレンダーを表示しつつ、時を刻む置時計を作成しました。

このタイプの置時計、いざ買おうと思うと結構高いので断念、自作に至りました。

これもCG50での「C.Basic限定」です。

うるう年の2月を見た後に他の年でも2月が「29」日になるバグを修正しました(20260728)。

最初に「C.Basic」の設定で日付と時刻合わせをお忘れなく(前記事参照)。

プログラムファイルはC.Basicの初期値である「CBasic」フォルダに入れておくのが無難と思います。間違って「CASIO BASIC」の「Program」から選択されないようにです。

一番最初はダミーでもいいので、「New」でなんか一つ作成すると、「CBasic」というフォルダがルートの下に自動的に作成されます。

そこに下記の実行用のプログラムを転送します。

 

<カレンダー付置時計化プログラム>

休日・祝日の表示の追加(20260519)

あー、休日が知りたいな~と思ってしまったため、あらかじめ登録した休日・祝日を赤で、本日を→水色反転で表示するようにしました。これに伴い、日曜の赤をピンクにしました。写真とは異なりますが、本日の緑反転は水色反転に変えました(20260715)。

日曜をピンク、祝日・休日を赤で表示、
緑反転だった当日マークを水色反転にしました。

丸い十字キーの上で、年+1,下で年-1、左で月-1,右で月+1移動します。なわけで、秒を更新しつつ、Getkeyで常に入力を待っている状態です。常に右上の稼働中マークがくるくるしている状況です。そういうわけで残念ながら画面スクショソフトを使用してもスクショがとれません。残念。電池の減りも速そうです。

 

ご存じのとおり、本機はネットにつながらないので、休日・祝日のデータは、自動で取得することができません。あらかじめ、プログラム中に登録しておく必要があります。

今年と来年分は入れておきました。来年の年末にご注意。

更新する場合は、プログラムリストの先頭から内閣府などのデータを取得して、下図に示すように、"yyyy/mm/dd"形式で休日・祝日をプログラム中に埋め込みます。
月・日が1桁の場合は先に「0」を入れて2桁にしてください。

この時、「Str変数」の添字は必ず「31」から初めれば、任意の個数を入れられます。

行数の指定はしなくてもよいように修正しました(20260726 23:00)

データ行の次の行で、行列化して行数を数えるので、
データ行数指定は不要になりました。

次の図で、今回の修正で1番最初の行に追加した「'#Str A」はコメント行に見えますが、宣言文なので消さないように注意してください。データはこの次の行から初めて下さい。順不同で大丈夫です。

一番最初のコメント行「'#Str A」を消さないように注意します。

したがって、休日データ行の行数指定は不要です。データだけを追加、削除していただければ、行列の数を数えて30引いて休日の個数と認識します。追加削除を繰り返すうちに、うっかりStrの添字を飛ばしたりて欠番がないようにした方が安全と思います。
最後のデータ行の次の行の先頭、「65-30→F」の「65を必ず添字の最大値と同じにしてください。残念ながら、Str変数はList変数と異なり、添字の最大値を取得する関数がありません。←方法がありましたので、不要となりました

当然ですが、登録で間違えるとそのまま表示されてしまうので慎重に入力します。

名付けて「CLOCKCX」。

単に修正用の一時的なリネームだったのですが、なんか仮面ライダーみたいでかっこいいのでそのまま使用します。

・転送用g3mファイル
CLOCKCX.g3m - Google ドライブ

・テキストファイル
CLOCKCX.txt - Google ドライブ

今年と来年分の祝日はすでに入っていますので、そのまま使って大丈夫かと思います。

休日・祝日の赤と本日の緑が重なる場合は本日の「水色/緑」が優先します。

土・日<祝日<本日の優先順位となっています。

海外駐在の場合は現地での祝日入れてもいいし。駐在当時にこういうのがあったらな~~。
毎年か2年に1回は祝日の更新を忘れないように要注意です。日本だと内閣府のサイトがオススメ。

少し表示がもっさりする感じになりますが、1回押して2回分移動してしまうようなあちゃちゃな事態は激減すると思います。「時刻」が表示されたら表示終了です。

「祝日はいらん、キビキビ動いてほしい」という方は、最初の方のコメント行「'0→F」のコメント命令「'」を外してやると、休日表示ルーチンを飛ばします。

 

特定の日で実行開始させたい場合

のために、新たなプログラムを作り直しました。

ファイル名「CALENDCX」です。

 

「万年カレンダー(休日・祝日対応)」です。

任意の年月日を入力して月カレンダーを表示したい場合はこちら。

「年」・「月」・「日」と順番に聞いてくるので、「2026」とか、「3」とか、数字のみで入力してください(年・月・日は1桁でもOK)。

 

紀元前でもOKだと思います。一応、「JDN」プログラムとの整合は確認しました。

国立天文台の計算サイトとは異なり、「西暦0年」が存在しないカレンダーです。
通常の「紀元前何年」のとおりに入れればOKと思います。

入力時の西暦「0」年は西暦「1」年とみなします。方向キーで移動してきたときは「0」年は現れません。「1」→「-1」もしくは「-1」→「1」年のように「0」を飛ばして切り替わります。

 

で、起動して年月日を入れ終わると、

「CALENDCX」で「年」・「月」・「日」を入力し終わった後の画面
こちらは本日マークと曜日の文字は緑に変えました。

上のClockプログラムと全く同じ画面ですが、休日との兼ね合いもあり、日曜日はピンクに変更しました。写真とは異なりますが、こちらは曜日の略号は緑に変えました。

「上下」キーで「年」移動、「左右」キーで「月」移動は同じです。

こっちはこっちでいろいろ使い道ありそう。

で、「EXIT」キーを押すと、最後っ屁画面。

終了画面

終了画面が出るので、「EXE」か「EXIT」キーを押すとまた通常の画面に戻った上で、ファイルの選択画面に戻ります。先ほどのプログラムとの違いが最後の文字色になっています。こちらは緑。

前のプログラムもそうですが、一応ユリウス暦対応になっているので、かなり昔の日付で試しても面白いと思います。修正ユリウス暦を計算して曜日を決めています。

こちらはいろいろご事情もありましょうから、時間的に日付が変わっても緑色の本日反転マークは変わりません

 

・転送用g3mプログラム
CALENDCX.g3m - Google ドライブ

・プログラムリスト
CALENDCX.txt - Google ドライブ

 

まあ、これだけです。

なんかモヤモヤしたので作ってみました。なんとなくうっとりと眺めております。過去のカレンダーとか結構おもしろい。

電池は食うけどそこそこ使えそうな気がします。たまにですが、カレンダーを見たくなるときもそこそこあるので。

 

今回わけがわからず、大変苦労した点について、下記にメモを残しておきます。

プログラム作成時の色指定コマンドに注意

プログラム中で文字の色を指定する場合は、キーボードから色名を打ち込んでも全然ダメで、シフトを押してから数字の「5」キーで色のコマンドが出てきます。この色コマンドに続けて「Locate〜」と続けて行けばオッケーです。隠しコマンドかいっ!プログラムのテキストファイルから変換すると大丈夫なようです。なじゃそりゃ。

全く、マニュアルなんとかならんすかねえ~~。あ、書いてあったわ。わかりにくーい。

この後に作成した月齢表示プログラム

gea02330.hatenablog.com

 

元になったプログラム

gea02330.hatenablog.com

「C.BASIC」のススメ

gea02330.hatenablog.com

 

CASIO fx-CG50を置時計にするプログラム(C.Basic限定)

今回もジャンクはジャンクなプログラムなのですが、ちょっと面白いと思ったのでご紹介です。

ですが、しかし、今回は残念なことに、CASIO BASICには日付と時間を取得する関数がないため、C.Basic専用です。

置時計と言っても、字は小さいし、電池は食うしで、まさにジャンク中のジャンクプログラムです。使う人いるんかいな。

今回はそういうわけで、「MENU」から「CBCG147」というアイコンを立ち上げます。

「C.Basic」を入れてあることが前提です。

特に作業は必要なく、パソコンからルートディレクトリに「CBCG147.G3A」を転送するだけです。

「C.Basic」は↓ここからダウンロードできます。CG50用の最新が「Ver.1.47」です。

e-Gadget - プログラム関数電卓 アドイン Casio Basic - トップページ

「C.Basic for CG」というのがこの機種用の「C.Basic」です。CG用を選択してください。

CG50での転送先は、アドインなので、一番上のフォルダだったと思います。公式の他のアドインがいろいろ並んでいるところです。

「C.Basic」はとにかく演算が速く、素因数分解のプログラムなどはオリジナルの「Program」で起動する「CASIO BASIC」の10倍近い速さで計算してくれます。

 

うまく入るとこんなアイコンがメニューに追加されます。

CBCG147(C.Basic)のアイコン

で、

で、今回の卓上クロック化プログラムはこれです。

・C.Basic専用電卓卓上クロック化プログラム

CLOCK(CB.g3m - Google ドライブ

・プログラムリスト

CLOCK(CB.txt - Google ドライブ

これを普段よく使うCasio Basic用のプログラムフォルダとは違う「C.BASIC」専用のフォルダーに入れておきます。

「NEW」でダミーのプログラムを作成すれば新しいフォルダー「C.BASIC」がルート直下に作成されると思います。

 

で、転送してから「C.Basic」を立ち上げると、プログラムのリストが表示されるので、

C.Basicの起動画面(ファイル選択画面)

直前に転送した「CLOCK(CB」を選択します。

なんと、C.Basicの場合、ファイル選択画面の一番右上に日付と時計が表示されています。「いらんじゃないか~」と思いますが、さにあらん。

右上のやつは待てど暮らせど表示時間は変わりません。

作成したプログラムは、机上クロックのように、ちゃんと秒が秒単位に表示が変わります。おおお。

で、この「CLOCK(CB」を立ち上げると、

「CLOCK(CB」起動画面

 

写真ではわかりませんが、ちゃんと秒単位が表示が替わります。つけっぱなしにしておくと、ちゃんと分も変わるので、多分時間や日付も正しく更新されると思います。

電池がもったいないので試してませんが。

フォントがでかくなるといいのですが。ないよりはまし程度のクロックです。

「GetKey」でループしているので、そこそこ電池は食うのでない方がましかも。

プログラムの終了

「AC/ON」か「EXE」以外のキーを押すと、「EXE KEY」と出てプログラムが終了します。といっても、終了画面に移行するだけですが、ここで、

終了画面

「EXE」キーか「EXIT」キーで、プログラムを終了してファイル選択画面に戻ります。

 

本プログラムの作動中は「EXE」キーはききません。これを外しておかないと、起動直後に終了してしまうケースが非常に多いので、このキーだけはプログラムの実行中は不本意ながら、きかないようになっています。

「EXIT」キーを押して終了画面にうつり、「EXE KEY」が出たら「EXE」キーが効くようになります。

ちなみに実行中に「AC/ON」を押すとBreak画面がでます。ここでは「F1」(続行)を押しても、Anyなキーが押されているので、プログラムに戻っても「EXE KEY」が出て終了です。
以上です。究極のジャンクプログラムですが、電卓がクロックになるとなんか面白いと思いませんか。音が出ないのでアラームはなりません。なのでタイマーを作っても音は出ません。

プログラム中の関数をうまく使いこなせれば、ストップウォッチはできるかもしれません。

あとは曜日の日曜日を「赤」にして、土曜日を「青」にするとか。月カレンダーと一緒に表示させるとより便利かもです。

シンプルなプログラムですが、「C.Basic」独自の特殊かつ便利な関数を垣間見ることができます。

時の流れを眺めながら、「無」の境地に陥るのもまた、結構贅沢な時間の過ごし方です。電卓で「無」の境地とは。

 

CG50の日付・時間合わせ

肝心なことをご説明し忘れてましたが、「C.Basic」では電卓内時計の日付・時間合わせができます。これをやっとなかいと、正しい日付・時間が表示されません。

C.BASIC」の起動直後のファイル選択画面で、「SHIFT」→「「MENU(SETUP)」で、設定項目がかなりたくさんあるのですが、かなり下の方に、「DATE:」と「TIME:」の設定行があります。下から上げてった方が速いです。

ここで、ファンクションキーを使って、年・月・日と時・分・秒をあらかじめ合わせておきます。電池の交換時毎に時計を合わせる必要があります。

結構正確な時計です。

なんで、「CASIO BASIC」でこの便利な機能を呼び出せるようにしてくれなかったんでしょうかねえ。

ハードを作ってる人とソフトを作ってる人の間でコミュニケーションがほとんどないとか。

 

その後、時計時刻合わせ用のプログラムも作成しました。

・時計合わせプログラム転送用g3m
SETCLOCK.g3m - Google ドライブ

・同テキストファイル
SETCLOCK.txt - Google ドライブ

 

過去の「C.Basic」関連の記事はこれです。

gea02330.hatenablog.com

 

その後の発展プログラム

gea02330.hatenablog.com

 

さらにアナログ化。

gea02330.hatenablog.com

 

 

CASIO fx-5800P及びfx-CG50用のデータ転送用3Pケーブル

CASIOのデータ転送用のケーブルなんてほとんど使うことはないのですが、ちょっと試してみたくなり、Amazonでポチってみました。

CG50用のUSBケーブルは汎用のものでも十分使用可能はわかっているので、3Pの方はどうなんだろう、ということで、調べてみました。

純正品は「CASIO SB-62」という品番らしいですが、現在は販売していません。

最初、Google GeminiにCASIO fx-5800Pの3Pケーブルは?と聞いたら「普通のオーディオ用のステレオストレートケーブルです。」と自信をもって答えられたので、「???」となりながらも、これに従って、両端2.5mmの「ストレートケーブル」を買いましたが、全くだめ。受け側がリセットするまで復帰しない状況となりました。初めてリセットボタンを押しました。Geminiも間違うのかねえ。799円無駄にしましたが、他にも用途はありそうなので別にOKです。しかし高いねえ。こんなケーブル200円ぐらいでしょ、普通。

で、今度は、2.5mmのクロスケーブルを探したのですが、これが、Amazonでは「クロスケーブル」というカテゴリーがないらしく、ストレートばかりが表示されます。カテゴリつくってくれえ。
いろいろと検索してみたところ、以下の商品のレビューで「極性が逆に接続されておる」とプンプン怒ってる方がおられたのでポチって見ました。ポチっとな。

3極しかないケーブルなので、GNDを除けばストレート以外の配線はクロスしかありません。今回きたやつをブチっと切って配線変えすればいいのでしょうが、高かったのでもったいない。別の用途に使います。

ちゃんと一発でfx-5800P同士でデータ転送ができましたので、備忘録がてら、ご報告です。たしかに、どこにも「クロス」とは全く書いていません。こりゃひどい。どっかに書いておけばそれなりに欲しい人もいるだろうに。全く探すのに一苦労でした。

ある日突然ストレートに変わっている可能性も無きにしも非ずで何とも言えんですが。

私が購入したのはこれ↓です。

クロスケーブルです。考えてみれば当然ちゃあ当然なのですが。うかつにもGeminiを信じてしまった・・・。若い頃だったら絶対「クロス」と思っただろうに。歳はとりたかないねえ。

最初は固いので、かなり奥まで、カチッという感触が得られるまで挿入する必要があります。

ストレートの方はそれなりに何かに使えそうなのでとりあえず大事にとっておきます。

前述のとおり、純正品(SB-62)はもう販売していないので、必要な方は上記をどうぞ。翌日配送で708円です。

まあ、ほとんど使ったこともないのですが、機種同士の接続もそれなりにちょっと便利かもしれません。

 

手元に電卓がないときに「ある数nのべき乗根」を割と簡単に小数点以下1~2桁程度で近似する計算方法

またまた算数の話題です。

「簡単に」といっても、少しの鍛錬が必要となります。しかし、一回覚えるとなかなか忘れないので、この際、頑張ってみると算数・数学の実力がぐぐっと向上すること間違いなしです。で、本題です。

関数電卓がないときに、平方根や立方根を知りたい場合にどのようにされていますか。

 

こういう形の近似値を知りたいっ!

とか、とか。4乗根でも5乗根でも。

普通は電卓がないと手も足もでませんね。

かなり荒っぽい近似ですが、最大誤差が小数点以下1~2桁目まで位の近似式をご紹介いたします。ないよりましという感じの近似式です。

簡便法はいろいろとあるようですが、簡便法なので、誤差はそこそこ似たり寄ったりで、その中でも手順と計算がかなり敷居が低いと思ったものをご紹介いたします。私が大人になりかけの頃に覚えた手法で、もう40年以上も前に覚えた手法ですが、いまだにこれに勝る計算法を知らず、これを使っています。歳ばれるで。

 

まずは、最初に結論の式を書いておきます。

nm乗根を小数1桁の誤差で近似する式
a」はに一番近い乗数の乗根
右の式はaを分数に持ってきただけの式

ということなので、n」に一番近いa」のm乗数がわからんことには話になりません。が、平方数や3乗数程度ならなんとか、手計算でも一番近い値が出せそうです。

上の式は「」が大きくなるほど、範囲が広がり、誤差は大きくなる傾向があります。

というわけで、ちょっと1~20までの平方数、立方数、四乗数を表にしてみました。

1~20までの平方数、立方数、4乗数

平方数の100までは九九でおなじみですが、20位まではなんとなく見覚えのある数字もいくつか、結構あるのではないでしょうか。とにかく「20」のときに「400」なので、だいたいの配分はできそうです。「30」だと「900」です。

立方数、四乗数の場合も、「10」と「20」のべき乗数を思い浮かべると、そこから挟み撃ちの範囲を狭めてきて、意外にあたりがつけやすくなると思います。
さらに、「1」の位が「5」の平方数は、
・「10」の位の数字と、その数字に「+1」したものを掛け算して、「100」の位に置き、
・「10」の位と「1」の位に「1」の位どうしの掛け算「5×5=25」の答え「25」をそのまま置けば、平方数となります。
例えば、「25×25」の場合、「2×(2+1)×100+5×5=625」といった具合です。
「35×35」だと、「3×(3+1)×100+25=1225」となります。「45×45」だと「2025」。

真ん中辺「○5」に一個わかりやすいのがあると、かなり範囲が狭くなり、絞り込みがしやすくなります。

今回の話題は、この「a」をまずは、なんとか自力で探し出していただくことから始まります

 

べき乗数なのでグラフにすると、最初はゆっくり上がり、後半でぐぐんと上がってくるあのおなじみのカーブで増加します。次数が大きくなるにしたがって誤差も大きくなりがちになります。

さて、最初の式に戻って、知りたい数を以下のように定義します。

前提とする仮定式

a⋙b

です。

と無理やりおくわけですが、nに最も近いべき乗数のべき乗根とおきます。一番近いのであれば、を超えても構いません。とにかく1番近いものを採用します。「b」については今のところ、全く意識する必要はありません。

この式の両辺をm乗すると、

上式の両辺をm乗

このままでは説明ができないので、とりあえず、=2の場合を考えます。そのあとで=3の場合もやってみます。

 

<平方根:=2の場合>

上の式を=2で書き直します。

m=2の場合

で、右辺を展開して、

右辺の展開

という式はいいですよね。これは中学校の最初の方で習う式です。

ただ、これでもまだ、全く先に進みません。

で、今、「a」は「」に最も近い平方数の平方根と決めました。「b」は平方数と近似した平方数の差ということになります(ab)が、b」に関しては、」より十分小さいとして2乗以上の「」項を廃棄します。ぽいっ。

「b^2」項は「a」より十分小さいとして、捨てる

近似になった部分は「=」ではなく、「」の記号を使います。「厳密には違いますけど」の意味です。

すなわち、

近似式

こういう近似式ができます。

この式を「」の形に変形すると、

「b≒」の形に変形します。

ここまで、小学生レベルでも特に問題ないと思います。

んで、次の発想!これがまた。

この式の両辺に「a」を加えます

すると、

上式の両辺に「a」を加えました。

そうすると、これが答えです。もう「」は必要ありません。(a+b)の部分を最初に仮定した「n」を使った式に直します。すると、

平方根の近似式(誤差小数2桁)が出来上がり

右辺の第一項の「a」が整数部分、分数部分が小数となります。

例えば、「n=67」の平方根が知りたい場合、一番近い平方数は「64」で、その平方根「a=8」となります。「n=67」と「a=8」をこの式に放り込むだけです。

で、やってみると、形を覚えれば小学生でも計算できます。

近似式から√67を手計算

実際に電卓で√67をたたいてみると、

電卓で計算した結果

ないよりまし程度の値にはなっているかと思います。

実に簡単な式なので、慣れるとすぐに使えますが、誤差は小数点以下1~2桁までです。あれやこれやといろんな数字で計算してみたところ、最も遠くても小数点以下1桁は必ず死守できるようです。

あくまで目安値として使えます。

これ、実はもっと数の多いべき乗にも適用可能で、最初の方で提示した以下の式が使えます。

nm乗根を小数1桁の誤差で近似する式
a」はに一番近い乗数の乗根
右の式はaを分数に持ってきただけの式

残念なことには、最初の「」だけはなんとか自力で探し出してくる必要があります。

一応、立方根の方でも見てみますか。

 

<立方根の場合:=3の場合>

立方根の場合も、以下のような前提式を立てます。

立方根の場合の前提式

両辺を3乗すると、

上式の両辺を3乗しました。

このように展開できます。

ここでも、b^2とb^3の項を「a項」に比べると十分小さいとして省略します。

そうしないと式の変形ができないのです。

そうするとこうなります。

無理やり近似式

これをまた、右辺の「」を使って、

近似式の変形

のように変形します。

この両辺にまた、「a」を加えて、

上式の両辺に「a」を加えた式

これが答えです。

(a+b)^3=nに戻す

ということで、立方根の場合も、以下の形になります。

m乗根を近似で求める式

ちょっとわかりにくそうに見えるのですが、微分を少しでも習ったことがあれば、

分子のここの微分形が分母だよ

と覚えておくと覚えやすいと思います。

 

 一応、試しに、「n=223」の立方根でも求めてみます。

上の方で上げたべき乗根の表から、「n=223」に一番近い立方数は「216」で、その立方根は「a=6」です。近ければnを超えてもかまいません。近い方死守です。

では、この「n=223」と「a=6」を上の式に代入してみます(m=3)。

「223」の立方根を近似式で手計算

では、「223」を関数電卓でたたいてみます。

「223」の立方根を電卓で計算

お、こちらの場合はさっきより誤差は少なそうです。

だいたいのオーダー的な数字を知りたいときにのみ、使える手計算ですが、ないよりは全然ましではないかと思います。

何度かやってみると、意外に覚えやすい式ではないかと思います。

何乗になっても、b^2以降を捨てるので、最初の2項だけが残ります。なので、べき乗数が増えても特にややこしくなることはありません。

のように続きます。

パチパチパチパチ。

 

最後にもう一回、決して厳密なものではありません。最大の誤差で小数点以下1~2桁程度の精度です。エクセルで検算したいと思った場合、一番のハードルが「一番近いべき乗数」の見つけ方ですが、「(a)=Round(n^(1/m),0)」で一番近いべき乗数のべき乗根が出てきます。

誤差の範囲を認識した上で使う近似式としては、「ないより全然まし」という感じの式です。

人に自慢したい人は、平方数、立方数の20位までを暗記しておけば、暗算で、「整数値+分数値」と答えても十分びっくりしてもらえると思います。割り算まで暗算で計算する必要はありません。式で見ると複雑ですが、分子の「n-a^m」はそんなに(分母ほどには)大きな数字になることはありません。

 

<立方根平方根のだいたいのアタリを付ける方法>

まずは、平方数、3乗数の基本的な数字を並べて見てみます。

平方数と3乗数

ここでちょっと寄り道して、立方根が整数になるとわかっているときの解き方です。

<立方根が整数になるとわかっているとき>

まずは立方数の1桁目は「1」~「9」まで全部揃っています。
で、立方根の1桁目はこの立方数の1桁目の数字で決まります。

立方数の1桁目は全ての数字が揃っている!

立方数の1桁目が「1」の場合、立方根の1桁目は「1」、
立方数の1桁目が「2」の場合、立方根の1桁目は「8」、
立方数の1桁目が「3」の場合、立方根の1桁目は「7」、
立方数の1桁目が「4」の場合、立方根の1桁目は「4」、
立方数の1桁目が「5」の場合、立方根の1桁目は「5」、
立方数の1桁目が「6」の場合、立方根の1桁目は「6」、
立方数の1桁目が「7」の場合、立方根の1桁目は「3」、
立方数の1桁目が「8」の場合、立方根の1桁目は「2」、
立方数の1桁目が「9」の場合、立方根の1桁目は「9」、

完全な規則性ではない微妙な規則性があります。覚えておくと便利です。

・「1」と「9」、「4」と「6」、「5」が自分と同じ数字、
・「2」と「8」、「3」と「7」、「5」が10から引いた数字、

という規則性になっています。

例えば、立方数の1桁目が「8」であれば立方根の1桁目は「2」、

「4」の場合は「6」ではなく「4」です。

あとは下3桁を取り去って残りの桁で、3乗数に近い、今度は「超えない立方数」を選んで、先ほどの1桁目の上にポンと置けば解になります。

今回の問題は整数解の場合ではなく、小数が出る場合の近似解です。

しかし、先にこの下3桁を取り去って、残りの上の桁を上の表を睨んで、「超えてない3乗数の立方根」を見つける方法だけでも、かなり近い値は見つけられます。で、次に下3桁の方は同様に、今度は「超えても構わない一番近い3乗数」を上の表から見つけ出せば、一番近い3乗根の整数値「a」を見つけられます。

 

<整数にならない場合が今回の問題>

基本的には、「1」~「9」までの平方数、立方数を暗記すれば、切れのいい数字は「0」を2個または3個ずつ増やすことで得られます。

で、とりあえずは上の表の範囲を覚えておけば、範囲はかなり絞れると思います。

で、1桁目が「5」の場合には、平方数のときにやったように、まずは平方数が暗算でも出せます。「10」の位と「10」の位に「1」を足したものを掛け算して100倍して、「1」の位同士の「5」を掛け算して、

平方数は「○5^2=(○;10の位の数)×(10の位の数+1)×100+25)と計算できるので、
これにもう一回「○5」をかければとりあえずの「1」の位が「5」の立方数は計算できます(25だと625,35だと1225,45だと2025、55だと3025です)。慣れるとすぐに暗算できます。
この真ん中の数字「1桁目が5の立方数」が1個あればかなり範囲が絞れます。そこから「1桁目が0の立方数」の近そうな数字と見比べて、「n^3」に近そうな方に向かって「1」ずつずらして3乗数を計算していけば「n^3」に一番近い「a^3」を探すのもそれほど星をつかむほどの苦労はありません。平方数も同じ方法が一番速いと思います。

 

<関係がありそうな過去記事>

↓これにも関連しそうですが、「電卓がないとき」前提なので直接的には関係はありません。

gea02330.hatenablog.com

が、ここで出てきた「連分数」の式にかなり似た印象を受ける式です。

 

CASIO fx-CG50のケース側のゴム取れる

Amazonの中古品や某メルカリの親切な出品者の説明にもよくみかける「滑り止めのゴムが1個落ちて」しまいました。外側のケースの方です。

「使用には全く問題ありません」と言われてもなんとなく、いや絶対買う気がせんやつ。

リュックにいれて携帯していたら、いつの間にか1個が外れて、幸いにも一旦外れてずれた位置にぴたっ。

CG50ほんと、気が付くといつも電源入ってるので、必ずケースでキーボード側を覆うようにして持ち歩かないと、電力消費はんぱないんです。うちにおいておくと電池の持ちがいいという。なんかやだなあ、この仕様。今回の件とはまた別の問題ですが。

計算機本体の方のゴムは紛れもなくゴムで、ケース側のものよりもかなり薄く、角が取れていてなんとなく円弧を描いています。が、何故か外側のケースの滑り止めは明らかにゴムではなく、形状は薄い円柱状というか、円盤状で、角が立っています。引っかかりやすく、取れやすいわけだ。全く違う材質です。

しかし、なんで同じものにしなかったんでしょうか。複数アウトソーシングの弊害でしょうな。「こんなん、ケース側やし適当でいいや」精神丸出し。

他の用途で余った材料の穴あけパンチで打ち抜きっぱなし的な。せめて同じ丸ゴムにして欲しかった。

Amazonで買った中古ですが、まさかの前の所有者による付け替え説かと疑いたくなるくらい安直な作り。これ、他の方のケースはどうなんでしょうか。同じでしょうか。

このままつけておいても時間の問題で残った3個もじき取れそうなので、この際、全部引っぺがしてしまいました。

CASIO fx-CG50の外側ケースの滑り止め
これはひどい。余った材料丸出し。

ゴムではなくて、やや軟質気味なプラスチック樹脂の丸板と考えるとしっくりきます。柔軟性がなく、薄い円柱状なので、写真のように、立てれば立ちます。これはひどい。引っかかるに決まっています。確かに滑りどめには強烈になるんでしょうが、責任感が強すぎて自分ごと外れてしまうという。

で、外された側は何もないと寂しいので、Amazonで滑り止めゴムを調達してみました。

空いた穴とプラスチック板を図ってみたら、穴のサイズは丁度直径6mm、もとの滑り止めの高さは1.6mm程度だったので、直径6mm×高さ2mmの滑り止めを買ってみました。そんなにいらないのですが強制100個。500円超えだったと思いますが、こういうの、ほんと高くなりましたね。嘘みたいに高い。でも背に腹は代えられずポチ。翌日到着。もっと安くて遅いのもあるかもしれません。

汎用滑り止めゴム(Φ6mm×高さ2mm)

厚みはわずかに増えますが、円弧を描いているので、もとの円柱状よりはかなり引っかかりにくいと思います。くわえて接地面積が狭くなるので適度に滑るという。これこれ、こういう配慮がなぜできないんでしょうか。やっぱり多少は滑ってもくれないと。

で、貼ってみました。

汎用滑り止めを張ってみた

もう、涙が出そうなくらいしっくりピッタリはまって、前より全然いいです。

左側の拡大。

下左側の拡大

てかてかがちょい気になります。曲率半径は5mmぐらいでしょうか。もう少し緩いといいのですが。てかてかはすぐに消えてしまいます。

理想を言えば、本体側についてるのが一番いい感じです。

本体側の滑り止めゴム

本体の方のゴムは、どちらかというと円弧というより、端だけ面取りしてる位の感じです。いずれにしても目的に合わせて整形されている感満載です。

恐らく、CASIOの電子辞書もこのサイズだと思います。5mmだと隙間ができるので、貼る位置に戸惑う感じです。6mmだと全く迷いなし。ピッタリ。張り替えようかな。

かなりの満足度です。私が買ったのはこれです。本体側についている形状に近いものをかなり探したのですが見つかりませんでした。

まだ外れてない人は無理にはがす必要はないと思いますが、突然おなくなりになっていると結構ショックを受けると思います。

私の場合はたまたまカバーに頑張ってへばりついて、せっかく生き残ってくれたのですが、これを再度張り付ける気には到底なりませんでした。遅かれ早かれ、他のも角が引っかかって外れます。

将来、万が一、経済的事情からCG50本体を某フリマで売る必要性が出てきたら、その時は元のプラスチックを両面テープで張り付けて出品しようと大切に保管してあります。あくまで万が一の事態ですが。

ほんと、いろんなところで、CASIOの製品はいつも実に惜しい。マニュアルからしてそうなんですが、どうもユーザー目線からほど遠いというか。向いてる視線ベクトルが違うというか。どこ見てるんですか。まずはプログラムコマンドだけでもマニュアル整備してほしいですね。

て、実は前所有者による付け替えだったりするとごめんなさいだけど。いずれにしてもそれならなおさら取れやすかったのは事実で、いや、CASIOならやっぱりありうるか、と迷いが生じる余地のあるところが残念ちゅうんですわ。

 

 

CASIO fx-5800Pでユリウス通日と修正ユリウス通日を計算するプログラム「JDN」

なんだかよくわからん名前ですが、年月日を遥か昔にさかのぼってずーっと連番で表した番号のことです。修正ユリウス通日は、ユリウス通日があまりに長すぎるので、一定数を引き算して短くしたものです。年によっては負の数にもなります。

いったい何に使うんじゃ、と思うなかれ、遥か昔からの日数が連続した数字で表されているので、単純引き算で日数の計算ができる他、遥か昔のある日の曜日まで簡単に計算できる便利な数字です。こういう計算に主に使うのは修正ユリウス通日の方です。

なわけで、まずは、式です。

WIKIPEDIAそのまま引用ですが、一応信頼性は確認しました。

ユリウス通日を計算する式

「Floor関数」

この、上がオープンのカギかっこみたいな記号は、エクセル含む一般には「Floor関数」を表す記号で、「Int関数」に限りなく近いのですが、負の数の場合の小数以下の扱いが異なります。ちなみにこの逆の関数が「Ceil関数」です。「Floor」は「床」、「Ceil」は天井です。数式のカギかっこも下がオープンになります。

「Int関数」は正の数も負の数も小数点以下が切り捨てになります。「Floor」関数は負の数の場合、小数点以下は切り捨てられますが、整数の絶対値に「1」繰り上がります。

西暦1年以降の場合は「Int関数」でもいいのですが、遥か昔、紀元前のマイナスの年号を入れると連続値とは違う値になってしまうので、汎用性を高めるため、「Floor関数」を使います。CASIOでは「Floor関数」がない代わりに「Intg関数」を使います。

 

「紀元1年の前の年の扱い」

紀元0年は存在しないので、その補正もしています。

「紀元1年の前年」は「紀元前1年」です。「国立天文台の計算サイト」は「紀元1年の前は紀元0年」なので、ちょうど1年ずれますので、ご注意です。通常の常識的使用頻度の高い方を採用しました。

国立天文台サイトの数字(紀元1年の前年が紀元0年)に合わせたい場合は、「年月日」の入力直後の「If Y<1:Then Y+1→Y:Ifend」の分を削除すればそちらに合います(確認済)。

 

「ユリウス暦からグレゴリオ暦の切り替わり」

今更ですが、世間一般で使われている西暦年号ですが、1582年の10月4日以前の西暦年号は「ユリウス暦」、この日の次の1582年10月5日を強引に1582年10月15日と改定して、それ以降は「グレゴリウス暦」という年号を使っています。この間で10日突然進んでいます。タイムリープな感じです。

この二つの暦を世間一般で使われている方式に従って、ちゃんと分けて計算するようにプログラムを組んでいます。

二つ並ぶと混乱するので、この日を境に、年号が変わると認識させています。
1582年10月5日~10月14日は実際には存在しない日付ですが、無理やり入力した場合には、10月15日を境目にしているので、ユリウス暦での連番になると思います。

 

「JDNとMJDの半日の違い」

詳細はよそに任すとして、ユリウス通日は、正午が起点で最後に必ず0.5がつき、修正ユリウス通日は真夜中の0時(正子というらしい)が起点になり、整数で扱います。やっかいですが、日数などを数えるときは0.5とか言われても扱いに困るので、通常は計算では修正ユリウス日を使うのが便利です。

なんでも、ソ連のスプートニクの軌道を追跡するために用いられたIBM704コンピュータの記憶容量が小さく、桁数を少なくする必要があったため、スミソニアン天体物理観測所が1957年に5桁に収まるように考案したものだそうです。

 

以前に作成した日数計算プログラムは、まさかの紀元前と紀元後の計算の場合に丁度1年ずれてしまう仕様でしたが(国立天文台方式)、日数計算としては正しくないので、正しい値になるように修正しておきました。

 

前置きが長くなりましたが、

まずはプログラムファイル名ですが、「JDN」としました。

ユリウス通日:Julian Day Number (JDN)です。

ファイル名「JDN」

で、これを選択して「EXE」すると、まずは年号を聞いてきますので、

ここでは、西暦-4713年を入れてみます。

西暦「-4713」年を入れてみます。

で、「EXE」。

次に「月」を聞いてくるので、「1」を入れてい見ます。

月に「1」を入力

で、「EXE」。

すると「日」を聞いてくるので、「1」日を入れてみます。

日付に「1」を入力

で、「EXE」。

するとすぐにユリウス通日の計算結果がでます。ついでに、修正ユリウス通日と曜日も出るようにしました。

なんでこんな無茶な年月日を入れたかというと、これが「ユリウス通日の0点」になるところだからです。

修正ユリウス通日は、Modified Julian Date:MJDより、「MJD」です。

「紀元前4713年1月1日」はユリウス通日の起点です。

上の例では、紀元前4713年1月1日になった瞬間の夜中の0時基準の数字と考えていただくと正解です。

1行目入力値:紀元前4713年1月1日、
2行目ユリウス通日:-0.5日(正午が起点)、
3行目修正ユリウス通日:-2400001日(夜中に日数が増加)、
4行目曜日:(月曜日)(蛇足ですが)。

と結果が出ます。

たったこれだけですが、日数計算などにそのまま使えると思います。

0.5単位で出てくるユリウス通日は整数扱いするときは、「+0.5」します。正の数の場合は切り上げ負の数の場合は切り捨てと覚えておくと便利です。まあ、こちらはあまり日数計算等には使いませんので、特にいじる必要もないかとは思いますが。

ので、上の例ではユリウス通日は「0日」となります。なんと、月曜日だったんですね~~。週の始まりはやはり月曜日がしっくりきますねえ。

というわけで、紀元前のある日の曜日がわかるだけでも、なんかワクワクしませんか。

もう一個、本日の日付を入れてみますか。

本日なので年は「2026」と入力

で「EXE」。

月は「4」月なので「4」。

日付は本日なので、

本日なので、「28」を入力

で、「EXE」。

すると、

結果の出力画面

本日のユリウス通日は、「2461158.5(2461159)」日、修正ユリウス通日は「61158」日、ついでに「火曜日」と、ちゃんと合ってます。

それでは、プログラムです。

・テキストPDFファイル
JDN.pdf - Google ドライブ

・CcEditor用転送ファイル
JDNfx-5800P.zip - Google ドライブ

CG50用

・テキストファイル
JDN.txt - Google ドライブ

・転送用実行ファイル
JDN.txt - Google ドライブ

 

今までのジャンクプログラムの中では結構応用範囲が広い方ではないかという気もします。

曜日まで計算しているので、CG50位の画面であれば、該当月の月カレンダーを表示させるように追記すると面白いかもしれません。

WIKIPEDIAのサンプルにありました。

修正ユリウス日 日付(世界時での正午基準)
-2400001 先発ユリウス暦紀元前4713年1月1日
-605833 ユリウス暦200年3月1日
-100841 ユリウス暦1582年10月4日
-100840 グレゴリオ暦1582年10月15日
0 グレゴリオ暦1858年11月17日
51544 グレゴリオ暦2000年1月1日

「ユリウス暦」とか「グレゴリオ暦」の文字部分は特に意識しないで、数字だけ入力すれば正しく計算できます。

紀元前は年数字の前に「-」を付けるだけで大丈夫です。紀元0年とか意識する必要はありません。

これらに関してはチェック済です。合格でした。めでたし、めでたし。

 

<独り言>

しかし、このfx-5800Pという機種、ほんとにすごい。

私が現役バリバリの若葉マークの影がまだ残っている頃から使い始めて、もう少ししたら孫まで使えそうです。しかもサポートはさておいても大手家電店でまだ売ってるという。こんな機器が他にあるでしょうか。まず、液晶の焼け等、経年劣化による不具合報告を聞いたことがありません。

ボタンはゴム少し劣化するようですが、これは過去記事でもご紹介したとおり、自分でも修繕できる範囲内のものです。液晶さえ行かれなければなんとかなる。まずはちゃんとネジで分解できるというところが今となってはすごい。最近はあなり見ないですね。ネジ止め固定。iPhoneとかiPadなんて両面テープだし。メカニックじゃないですねえ。慣れてない人がムリにはがそうとすると前面ガラスがバリバリバリバリ。ふざけんな。

現時点では数式入力では最も計算しやすいし、プログラムも慣れれば組みやすい。有志によるCcEitorやCcLinkerがあっての話ですが。グラフでも描かない限りは他の機種は全く必要ありません。どうしてCASIOはもう一歩踏み込んで、パソコンとの連携ができるようにしなかったんですかね。それだけが惜しい。実に惜しい。

3Pinケーブルがあれば機種同士でデータのやり取りができるのだから、パソコン連携なんてほとんど障害はないと思うのですが。やっぱりWindowsによる機器ドライバのつまはじきの度重なる対応を厄介だと考えたのでしょうか。気持ちはわかりますが、天下のCASIOなんだからWindowsもその辺は無視できないとは思うのですが。当時はまだUSBは出始めたばっかで、穴があるのは一部のパソコン位で、まだまだRS232C接続が主流だったと思います。OSシステムがMS-DOSからWindowsになってから、ドライバというものが容易に調達できず、RS232C接続は著しく取り扱いづらくなった記憶があります。MACは持っていないのですが、その辺はどうなんでしょうか。

 

これ、ほんと、CASIO博物館に展示されてもおかしくない、歴史に残る名品です。長く久しく、大切に扱いたいと思います。

 

過去記事の日数計算プログラム(紀元前も修正済です。)

gea02330.hatenablog.com

ツェラー式の方も「IntG関数」に修正して紀元前まで使えるようにしました。検証はしようがありませんが、ユリウス通日と整合がとれているので、多分大丈夫でしょう。

gea02330.hatenablog.com

 

gea02330.hatenablog.com