ブログトップ

電子工作やってみたよ

HP電卓を操作しやすくするために、写真のような台を発砲スチロールで作って見ました。
HP電卓の液晶画面は見る角度があまり斜めになると数字以外の記号などが表れて見ずらくなるのですが、
すこし角度を付けてやると見やすくなり且つキー操作もやりやすくなりました。

c0335218_18194215.jpg
さて 本題はこれではありません。
山梨にいる友達から以下のプログラムコンテストのチラシをもらいました。

c0335218_18183228.jpg

コンピュータ言語は C, Java, VBA から選択となっていました。賞金は20万円 
裏にサンプルプの問題が載っていました。

c0335218_18190557.jpg
本番にでる気はありませんが、この問題ならそんなにメモリーも必要とせずHP電卓で解くにはちょうどいいのでないかと思い挑戦してみました。
答えを先に言ってしまうと

きつね蕎麦  286
山菜蕎麦     3
鴨南蛮蕎麦   12

計算は数の大きい方からスキャンしていき答えも大きい方にあったので、計算時間はHP32Sで5分ほどだったと思います。
片手間に農作業をやりながらの製作で一日半かかりました。 こんなに時間かかってはコンテスト参加は無理ですね。
CやVBAなど他の言語で作ればもっと早く出来ると思いますが、やはりHP電卓でやるところに意味があると思います。( なぜなら わたしはHP電卓のファンだから ただそれだけですけど )
最初は連立方程式を作れば解けると思っていたのですが、やはりプログラムで一つづつ値を変えながら試すしか方法が無いようです。
それなりに苦労をした結果を載せてみます。


全プログラムリスト (HP32S を使用)


A01 LBL A
A02 RCL E 全合計目標金額
A03 RCL X  きつね蕎麦の単価
A04 ÷    きつね蕎麦での最大皿数
A05 LP (INTのこと)  整数部のみ取り出す
A06 STO A  きつね蕎麦での全皿数をしまう

B01 LBL B
B02 1
B03 STO -A きつね蕎麦の全皿数を一つ減らす
B04 XEQ C  この状態で山菜蕎麦と鴨南蛮蕎麦の数を計算する
B05 RCL A きつね蕎麦の数を読み込む
B06 PSE 現在計算中のきつね蕎麦の数を表示
B07 GTO B 次の数のきつね蕎麦を計算

C01 LBL C
C02 RCL A きつね蕎麦の数
C03 RCL X きつね蕎麦の単価
C04 X きつね蕎麦の合計金額
C05 RCL E 全合計金額目標
C06 X<>Y 全合計金額目標ときつね蕎麦の合計金額の比較
C07 -   きつね蕎麦の残金
C08 STO F きつね蕎麦の残金
C09 RCL Y 山菜蕎麦の単価
C10 ÷   山菜蕎麦の数
C11 IP (INTのこと) 整数部のみ
C12 STO B 山菜蕎麦の数

R01 LBL R
R02 RCL B 山菜蕎麦の数
R03 RCL Y 山菜蕎麦の単価
R04 ✖   山菜蕎麦の全額
R05 RCL F きつね蕎麦の残金
R06 X<>Y きつね蕎麦の残金ときつね蕎麦の残金の比較
R07 -   山菜蕎麦、きつね蕎麦の残金
R08 STO G
R09 RCL Z 鴨南蛮蕎麦の単価
R10 ÷   鴨南蛮蕎麦の単価で割る
R11 STO C
R12 FP (FRACのこと)少数点以下を取り出す
R13 X=0 ? 鴨南蛮蕎麦の単価で割り切れるか
R14 STOP 割り切れたら終了
R15 1
R16 STO -B 山菜蕎麦を一つ減らす
R17 RCL B  山菜蕎麦の数を読み込む。
R18 X キ 0 ? 山菜蕎麦の残数がゼロでないか
R19 GTO R  ゼロでないなら減らした山菜蕎麦で計算しなおす
R20 RTN   ゼロならばきつね蕎麦の数を減らして計算をやり直す


変数表
A きつね蕎麦の数
B 山菜蕎麦の数
C 鴨南蛮の数
D
E 全合計目標値 ( 200,000 ) 初期値入力しておく
F きつね蕎麦の残金
G きつね蕎麦と山菜蕎麦を取ったあとの残金
L ループ表示カウンター
X きつね蕎麦の単価 ( 650 ) 初期値入力しておく
Y 山菜蕎麦の単価  ( 780 ) 初期値入力しておく
Z 鴨南蛮の単価   ( 980 ) 初期値入力しておく

これで終わりです。


それなりにある程度頑張れば出来るという、このくらいの問題が丁度いいですね。
ちょうどバズルを解く楽しみなんでしょうか。
そうそう 今回この問題が解けた理由がまだありました。
一週間以内に解けなければ一杯おごると約束をしたからです。
私が何か行動を起こすには、適度なプレッシャーが必要みたいです。
べつに解けない方でも良いのですけれどね。


次 現在の畑の状況です。
白菜は一個50円の苗を20個買ってきて植えて19個が大きく育ちました。

c0335218_21164680.jpg


チンゲン菜は 種をまきすぎたので一杯生えすぎました。 間引きながら食べてます。
やはり 種をまくときに計算しておかないといけないのですね。
チンゲン菜 二度目だと思うのですが、なかなか学べないです。

c0335218_21173644.jpg










by telmic-gunma | 2017-10-09 21:30 | HP電卓 | Trackback | Comments(2)

税金の確定申告でHP97を使って領収書を足していたら、なぜか計算するたびに結果が違ってくるんですよ。
そこで領収書1枚入力するごとに電卓の表示を確認していったら”3”のキーを押したとき3回に1回くらい”33”と表示されることが分かりました。
キーのチャタリングは通常ソフトで対応していると思われますが、なんせ作られてから40年ほどたったものなのでキーの接点がどうなっているか分かりません。
早速 分解してみました。

分解まえの完成した形。 
どうか元に戻りますようにとお祈りをしてからばらします。

c0335218_10213363.jpg

分解したキーの接点受け側です。 金メッキされています。
錆びは全くなく汚れもほとんど分かりません。
適当な洗浄液も無かったので、テッシュで何回か拭きました。

c0335218_10221255.jpg


上記 キー接点基板の反対の面です。 こちらも金メッキ、当たり前ですか。
c0335218_10224592.jpg

キーの裏側です。 
キーが押されるとこの面の接点が飛び出して接点の受け側に接触します。 
ここも拭きました。

c0335218_10231564.jpg

計算するICです。わずかこれだけです。
c0335218_10234817.jpg


さて 組み立てて 動作させて
その結果は

正常に直った、バンザイ






by telmic-gunma | 2017-02-25 10:51 | HP電卓 | Trackback | Comments(4)

人間コンパイラでHP電卓

前回思いついた人間コンパイラ手順書を作ってみました。
最初はBASICで考えて、あとは機械的に置き換えていくだけです。
構造化のループ処理のみですが、これさえあれば、楽になるのでないですか。
使い込んでいくうちに良くなると思います。
最初 BASICで書いてあります。
次に 同等のものを HP電卓の逆ポーランド法でかきました。

*************************************
if  ~ then ~ endif

if X=0 then ----------- Xがゼロならば以下を実行
A = 1 -------------- Xがゼロの時実行する
endif ------------------ エンド


X キ 0 ------------Xをチェック
GTO 5 ------------Xがゼロならば以下を実行
1 ------------------ループ内処理
STO 1 -------------ループ内処理
LBL 5 -------------エンド

*************************************
For ~ Next

for i = 1 to 3
  print i
next



3 ---------ループ回数の3をセット
STO 0 ----同上
LBL 5 ------ループ処理ルーチンの先頭
RCL 0------ループ内処理
PAUSE------ループ内処理
DSZ---------カウンターを1減算してゼロでないならLBL 5へ戻る
GTO 5 -----処理のエンド

*************************************
while ~ wend

a=0 ---------------初期値をゼロとする
while( a<7) -------aが7以下の時ループを回す
a=a+1 ------------aを1つインクリメントする
print a -------------aをプリントする
wend --------------ループの終わり



STO 3
LBL 1 --------------ループの先頭
1
STO +3 ------------カウンターを1つインクリメント
----------------------ここにループ内処理を置く
RCL 3 --------------カウンターを表示する
PAUSE --------------カウンターを表示する
7 --------------------比較する数値をセット
X > Y ---------------比較する
GTO 1 --------------未到達なら LBL 1 へ行く





c0335218_06050533.jpg

















by telmic-gunma | 2016-10-30 17:46 | HP電卓 | Trackback | Comments(2)

HP電卓 勝手に美人コンテスト

この中でいちばん働いてくれたのはHP97ですね。
マイコンで使用する熱電対の電圧、温度変換テーブルの計算に使いました。
いかにテーブルデータを少なくして精度を上げるかやりました。
最初は直線近似でテーブルの量がとても多かったのですが、後にマイコンでの高次式の演算ルーチンを作って精度は上がってテーブルの量が劇的にさがりました。あと10進16進変換をソフトで作ってデバッグが便利になりましたね。
でも今は電源が入らなくなり静かに余生をすごしています。
このなかでは 働き者の美熟女といったところですか。
そのあとは HP15Cですね。これは今でも一番の現役です。
ちょっとクールで美人で女優でいうとーーーみたいです。
下側の4台はコレクションかな。 たまに気が向いたとき使ってます。
HP42S は機能は上ですが使っていると電池がすぐなくなります。

じゃあ どれが一番? と言われるとやっぱり 使った時間は短かったけれど
初恋のHP29Cでしょうか。
いいじゃないですか かわいければすべてがゆるされます。
(今 こういう発言すると逮捕されるんでしたっけ?)

上左から  HP29C HP97 HP15C(旧)
下左から HP32Sⅱ HP42S HP48G HP35S(新)

c0335218_16111696.jpg


by telmic-gunma | 2016-08-16 17:40 | HP電卓 | Trackback | Comments(2)