ファン
検索
<< 2017年07月 >>
1
2 3 4 5 6 7 8
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
最新記事
最新コメント
眼科の定期検査 〜 散歩 by コトタマ (02/15)
眼科の定期検査 by 三文字寄れば文殊のヒフミヨ (09/21)
本を読んで過ごす by 底彦 (12/13)
本を読んで過ごす by ねこ (12/12)
数学の計算をする by 底彦 (12/04)
タグクラウド
カテゴリアーカイブ
仕事 (59)
社会復帰 (22)
(44)
コンピューター (211)
(1460)
借金 (8)
勉強 (13)
(13)
数学 (97)
運動 (8)
日常生活 (1407)
(204)
健康 (38)
読書 (21)
プロフィール

ブログランキング・にほんブログ村へ
にほんブログ村
にほんブログ村 メンタルヘルスブログ うつ病(鬱病)へ
にほんブログ村
にほんブログ村 科学ブログ 数学へ
にほんブログ村
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

2017年07月31日

暑さにやられる

10 時半起床.
昨晩, 就寝前に飲んだ薬がまた効き過ぎたようで体がふらふらする.
しかも部屋が暑いせいか, 午前中からすでにばててしまっている.

昼食に野菜スープを作る.
茄子とトマトとエリンギと玉葱をブイヨンで味付けして煮込むだけでできる.
美味しい.

午後は数学をやる.
任意の圏が連結な部分圏に一意的に分解されることを証明する問題を考える.
証明できたと思う. 明日また見直してみる.

ご飯を炊いた. 炊き上がる時間で Emacs の設定を少し変更する.

夕食は昼間の野菜スープの残りと納豆と卵かけご飯.
posted by 底彦 at 21:02 | Comment(2) | TrackBack(0) | 日常生活

Emacs: Multi-term で Control-u (universal-argument) を有効にする.

Emacs では multi-term という端末エミュレータープログラムでシェルを起動させて使っている.
現在のところは, プログラムを書いたりデバッグしたりはしていないので, シェルの対話機能を深く使うことはまだない.

今日, 偶然に multi-term のシェル端末バッファー "*terminal<1>*" 上からシェル端末をもう一つ起動しようとしたら Control-u (以下 C-u) が使えないことに気がついた.

自分の Emacs の設定では C-\ でシェル端末の起動または既存のシェル端末バッファーへの移動, C-u C-\ で新しいシェル端末の起動を行う設定にしてある.

実際にシェル端末のバッファー以外では C-u C-\ で新しいシェル端末が起動する.
この場合は C-u が universal-argument という関数に割り当てられていて, 次の C-\ で起動される multi-term-new という自作の関数へ引数が渡されて新しいシェル端末が起動することになる.

端末バッファー上で C-u は term-send-raw という関数に割り当てられている. これは入力されたキーを直接端末エミュレーターに送る関数で, したがってそのキー入力は Emacs には渡らない.

とりあえず, 端末エミュレーター上でも C-u を universal-argument として使いたいので Emacs の設定を次のように変更した.

$HOME/.emacs.d/init.el を次のように編集する.
(1) term-mode におけるキーバインドの設定
C-p: ヒストリーバッファー内の移動 ── 一つ前のコマンドへ.
C-n: ヒストリーバッファー内の移動 ── 一つ後ろのコマンドへ.
C-\: multi-term-new 関数 (後述) の起動.
C-,: 一つ前の端末エミュレーターバッファーに移動.
C-.: 一つ後ろの端末エミュレーターバッファーに移動.
C-u: universal-argument 関数の起動.
C-o: SKK のオン/オフ

;; Key bindings
(add-hook 'term-mode-hook
'(lambda ()
(let* ((key-and-func
`((,(kbd "C-p") term-send-up)
(,(kbd "C-n") term-send-down)
(,(kbd "C-\\") multi-term-new)
(,(kbd "C-\,") multi-term-prev)
(,(kbd "C-\.") multi-term-next)
(,(kbd "C-u") universal-argument)
(,(kbd "C-o") skk-mode)
)))
(loop for (keybind function) in key-and-func do
(define-key term-raw-map keybind function)))))


(2) 端末エミュレーター起動の関数 multi-term-new の書き直し
対話形式 (M-x での起動) で使えるように interactive 関数を使う.
この関数では引数の有無だけが意味を持ち, 評価は必要ないので interactive への引数は "P" とする (引数は raw データとして interactive に渡る).

(interactive "P")

引数の判別を行う cond 節を以下のように変更した:
条件 1: 引数が無く, 端末エミュレーターのリスト multi-term-buffer-list が空リストである.
新しい端末エミュレーターを起動する.
作成されたバッファーの名前は "*terminal<1>*" となり, 端末エミュレーターのリスト multi-term-buffer-list は

multi-term-bufre-list: (#<buffer *terminal<1>*>)

となる.
条件 2 : 引数が無く, 端末エミュレーターのリストが空でない.
端末エミュレーターのリスト multi-term-buffer-list の先頭にあるバッファーに移動し, カーソルをその最後尾に置く.
条件 3: それ以外 (引数がある場合)
新しい端末エミュレーターを起動する.

(defun multi-term-new (&optional arg)
"Switch to the first terminal buffer, that normally has the name
``*terminal<1>*'', if it exists. Otherwise create a new terminal
buffer."
(interactive "P")
(cond ((and (null arg) (null multi-term-buffer-list))
(multi-term))
((and (null arg) multi-term-buffer-list)
(switch-to-buffer (car multi-term-buffer-list))
(goto-char (point-max)))
(t
(multi-term))))


場当たり的なコードだがひとまず動いた.
もし問題があれば (多分あるだろうが) 使っているうちに出てくるだろうと思う (†).

†: 現在の自分程度の Emacs の使い方では複数の端末エミュレーターが必要になるケースはほぼ無い.
シェルのジョブコントロール機能と pushd, popd で足りている.
けれども準備をしておくことは大切だ.

2017年07月30日

HP-42S: スタック ── ENTER キーの役割

HP-42S の " ENTER " キーの役割について, マニュアルには次のように説明されている.

ENTER は X レジスタの内容を Y レジスタにコピーし, スタックの上昇を禁止するので, 後から入力した数値は, X レジスタにある初めに入力した数値の上から重ね書きされます。このようにして, 続けて入力された 2 つの数値を区分しているのです。

例: 2 つの数値 17, 23 を入力するとき,
(1) 最初に入力した数値 17 は X レジスターに書き込まれる. スタックが上昇する.
(2) " ENTER " を押す. X レジスターの内容 17 を Y レジスターにコピーし (コピー操作を "→" で表わすと正確には Z → T, Y → Z, X → Y), (次に数値が入力されたときに) スタックの上昇を禁止する.
(3) 2 番目に入力した数値 23 は X レジスターに書き込まれる. スタックは上昇しない.
初期状態を (0) とすると, 上記の (1), (2), (3) により以下のようにスタックの状態が遷移する.
\begin{align*}
& ~ & &\mathbf{17} & &\mathbf{ENTER} & &\mathbf{23} \\
&\mathrm{T}: 4 & &\mathrm{T}: 3 & &\mathrm{T}: 2 & &\mathrm{T}: 2 \\
&\mathrm{Z}: 3 & &\mathrm{Z}: 2 & &\mathrm{Z}: 1 & &\mathrm{Z}: 1 \\
&\mathrm{Y}: 2 & &\mathrm{Y}: 1 & &\mathrm{Y}: 17 & &\mathrm{Y}: 17 \\
&\mathrm{X}: 1 & &\mathrm{X}: 17 & &\mathrm{X}: 17 & &\mathrm{X}: 23
\end{align*}
このように計算対象の 17, 23 がスタックの Y レジスターと X レジスターに保持されることになる.

(3) において X レジスターの内容 23 を修正したいときには "$\blacktriangleleft$" キーを用いて修正を行う. たとえば 23 を 8 に修正するには次のように "$\blacktriangleleft$" を 2 回押して入力した 23 を消去してから 8 を入力する.
\begin{align*}
& ~ & &\blacktriangleleft\blacktriangleleft\ & &\mathbf{8} \\
&\mathrm{T}: 2 & &\mathrm{T}: 2 & &\mathrm{T}: 2 \\
&\mathrm{Z}: 1 & &\mathrm{Z}: 2 & &\mathrm{Z}: 1 \\
&\mathrm{Y}: 17 & &\mathrm{Y}: 17 & &\mathrm{Y}: 17 \\
&\mathrm{X}: 23 & &\mathrm{X}: & &\mathrm{X}: 8
\end{align*}

"$\blacktriangleleft$" キーを押したときにもスタックは上昇しない.

午前中寝込む 〜 数学をやる

抑鬱感と疲労感がやや強い.

昨日の夕方の鬱は, おそらく買い物先のスーパーでの雰囲気で体調を崩した結果だと思う.
周囲の人たちが買い物をしているのについていけなかった.
買い物をする途中で, 他の人の邪魔をしてはいけない, 迷惑をかけてはいけないという思いで必死になってしまった.

昼過ぎに頓服を飲んで何とか起きる.

午後は数学をやって過ごす.
圏の骨格の問題は見直しが終わって修正も終わったので証明を印刷してしまっておく.
日が経ったらまた見直す. 紙で見直すと違った視点で読めるので何か見逃した問題が見つかる可能性がある.

先日クリニックの待ち合い室で書き始めた新しい問題を考える. 今度の問題は圏の連結性に関するもの.



圏は, その圏の任意の対象から任意の対象まで, "結合可能 (composable)" な射の経路を前後に辿って到達できるとき 連結 (connected)であると言う. この定義を正確に行って, 任意の圏は互いに交わらない連結な部分圏の和として一意的に表わされることを証明せよ.



解いているとこの問題はトポロジーの問題のように感じる.

夕食は冷奴と焼き鮭, ほうれん草のお浸し, 納豆とご飯.

夕食後に数学の続きを少しやって休む.
posted by 底彦 at 14:16 | Comment(0) | TrackBack(0) | 日常生活

2017年07月29日

家計簿をつける 〜 チラシ配り・買い出し 〜 夕方から体調を崩す

9 時起床.
少し鬱が苦しい. 頓服を飲んで起きる.

家計簿をつける.
計算はプログラミングの勉強を兼ねて HP-42S という電卓を使う.
この電卓は逆ポーランド記法 (RPN: Reverse Polish Notation) という計算方法で操作を行う.
たとえば $1317 - 591$ という計算は

1317 ENTER 591 -

と入力することにより行われる.
最後のマイナス記号 " - " を入力すると計算結果 $726$ が求まる. " = " キーは存在しない.
最近やっと " ENTER " キーの役割 (†) が少しわかってきたので確認しながら計算する.
†: " ENTER " により最初に入力した X レジスターの内容 ($1317$) が Y レジスターにコピーされてスタックが上昇し, 次の操作で数値が入力されたときにスタックが上昇するのを禁止する.

昼食は納豆と卵かけご飯.

今日は陽射しが弱そうなので食後すぐにチラシ配りに出かけた.
曇ってはいたがしかし暑い. 猛暑と言っていいくらいで 1 時間ちょっとでふらふらになってしまい配るのをやめた.

一旦帰宅して今度は買い出しに出かける.
キャベツ, レタス, トマト, 玉葱, 茄子, それから納豆, 卵, 豚肉などいろいろ買う.

買い物から戻ってシャワーを浴びた.

一休みして夕飯の支度をしている途中で少し気分が沈んでくる.
スーパーで買い物をしているときにかなり緊張したのが良くなかったのかも知れない.
とにかく良くない.

頓服を飲んで横になる. しばらくして眠ってしまった.
深夜になって目が覚めた. こんな時間ではもう何もできないのでそのまま休む.
posted by 底彦 at 23:30 | Comment(0) | TrackBack(0) | 日常生活

2017年07月28日

数学: 圏の骨格が圏になることの証明 ── 見直し

数学のノート ,
数学: ばたばたする ,
数学: 圏の骨格の構成
数学: 圏の骨格が圏になることの証明
数学: 圏の骨格が圏になることの証明 (続き)
の続き.

先日できた圏の骨格が圏になることの証明を見直す.
今のところ大きな問題は無い. 誤字やおかしな文章はところどころにある.

証明を見直しながら思ったことが二つある. 傍らで漠然と思っただけなので愚問かも知れない.

一つは証明の仕方そのものについて.

自分の証明はほとんどを圏論的な議論によって行っている.
しかし集合論的な議論を用いて証明しているところが 2 箇所ある. その 2 箇所は圏論的に証明することがおそらくできない.

圏 $\mathscr{C}$ の骨格 $\mathrm{sk}(\mathscr{C})$ をそれぞれ 6 つ組として
\begin{align*}
\mathscr{C} &= (A_{0}, O_{0}, {d_{0}}^{0}, {d_{0}}^{1}, u_{0}, m_{0}), \\
\mathrm{sk}(\mathscr{C}) &= (A, O, d^{0}, d^{1}, u, m)
\end{align*}
と表わす.
$\mathscr{C}$ について:
・ $A_{0}$, $O_{0}$ は $\mathscr{C}$ の射と対象の集まり;
・ ${d_{0}}^{0}, {d_{0}}^{1} : A_{0} \to O_{0}$ は $\mathscr{C}$ の各々の射にそのソースとターゲットを対応させる関数;
・ $u_{0} : O_{0} \to A_{0}$ は $\mathscr{C}$ の各々の対象にその上の恒等射を対応させる関数;
・ $m_{0} : P_{0} \to A_{0}$ は合成可能な射の対の集合
\begin{equation*}
P_{0} = \{\, (f, g) \mid f, g \in A_{0},\, {d_{0}}^{0}(f) = {d_{0}}^{1}(g) \,\}
\end{equation*}
に対してその合成 $f \circ g$ を対応させる関数.
$\mathrm{sk}(\mathscr{C})$ についても同様:
・ $A$, $O$ は $\mathrm{sk}(\mathscr{C})$ の射と対象の集まり;
・ $d^{0}, d^{1} : A \to O$ は $\mathrm{sk}(\mathscr{C})$ の各々の射にそのソースとターゲットを対応させる関数;
・ $u : O \to A$ は $\mathscr{C}$ の各々の対象にその上の恒等射を対応させる関数;
・ $m : P \to A$ は合成可能な射の対の集合
\begin{equation*}
P = \{\, (f, g) \mid f, g \in A,\, d^{0}(f) = d^{1}(g) \,\}
\end{equation*}
に対してその合成 $f \circ g$ を対応させる関数.

ここで, $\mathrm{sk}(\mathscr{C})$ の対象の集まり $O$ と射の集まり $A$ は, $\mathscr{C}$ の対象の集まり $O_{0}$ と射の集まり $A_{0}$ から恣意的に元を選んで構成したものであり, その方法は元の性質を使った集合論的なものである.
言い換えれば $\mathscr{C}$ の圏としての性質のみから導いたものではない.
また, やり方によって異なる $A$, $O$ が構成されることになる.

今回の, $\mathscr{C}$ の骨格 $\mathrm{sk}(\mathscr{C})$ が圏になることの証明の中で, 図式
\begin{equation*}
\xymatrix@=48pt {
A_{0} \ar[d]_{s_{1}} \ar[r]^{{d_{0}}^{0}} & O_{0} \ar[d]^{s_{0}} & A_{0} \ar[d]_{s_{1}} \ar[r]^{{d_{0}}^{1}} & O_{0} \ar[d]^{s_{0}} \\
A \ar[r]_{d^{0}} & O & A \ar[r]_{d^{1}} & O
}
\end{equation*}
の可換性を証明する箇所がある.
ただし, ここで $s_{0} : O_{0} \to O$ は $\mathscr{C}$ の各々の対象 $X_{0} \in O_{0}$ に, その対象と同値な $\mathrm{sk}(\mathscr{C})$ の対象 $X \in O$ を対応させる関数であり, $s_{1} : A_{0} \to A$ は $\mathscr{C}$ の各々の射 $f_{0} \in A_{0}$ に, その射と同値な $\mathrm{sk}(\mathscr{C})$ の射 $f \in A$ を対応させる関数である.

この可換性は具体的な任意の射 $(f_{0} : X_{0} \to Y_{0}) \in A_{0}$ を一つ取って ${d_{0}}^{0}, {d_{0}}^{1}$, $s_{0}$, $s_{1}$ の定義を使って計算しないと示すことができない. これらの関数の定義が, 集合である $O$ と $A$ の構成方法に依存しているからである.

$\mathrm{sk}(\mathscr{C})$ の構成方法を集合論的な議論を用いずに行うことはできるのだろうか?
そうすれば集合の元を使わない純圏論的な証明ができる.
すぐにはわからないが興味を惹かれる.

もう一つは圏の骨格の具体例について.

(a) 任意の群 $G$ を対象を $G$ のみとする圏として捉えたとき, その骨格 $\mathrm{sk}(G)$ は何になるか.
(b) 有限集合の圏 $\mathbf{FinSet}$ の骨格 $\mathrm{sk}(\mathbf{FinSet})$ は何になるか.
(c) すべての集合の圏 $\mathbf{Set}$ の骨格 $\mathrm{sk}(\mathbf{Set})$ は何になるか.
(d) 群の圏 $\mathbf{Grp}$ の骨格 $\mathrm{sk}(\mathbf{Grp})$ は何になるか.
  . . . .

(a) はすぐにわかって面白い結果になった.
(b), (c), (d) はまだあまり考えていないのだが, 予想外に相当難しい問題に感じた.

一つ歩みを進めた先に暗い未知の混沌が広がっているというのは, 自分が数学に惹かれる理由の一つでもある.
posted by 底彦 at 21:04 | Comment(0) | TrackBack(0) | 数学

昼過ぎまで寝込む

朝から抑鬱感が強い.
頭の中に重たい灰色の靄だか石のようなものが入っていて何も考えられない. どんよりとひたすら苦しい.
身体が硬く強張っていて動けない. だから枕元の頓服に手を伸ばすことができない.

昼過ぎに頓服を飲むことができた. 飲んでしばらくしたら気分が上向きになったので起きる.
体調の波なのだろうが苦しかった.

何処かに出かけた翌日は必ずと言っていいほど体調不良に陥る.
半日という時間を無駄にしてしまったことで気分が凹むが...
こういう体調が今の自分なのだろう. これだけはどうしようも無い.
主治医がいつも言うように, また自分の経験からも, 焦らず無理をせず流れに任せて自然に回復するのを待つ以外に無いのだと思う.

午後 4 時くらいになって心と体のぼんやりした感覚から抜けて普通に動いたり考えたりできるようになった.
この時間に体が目覚めると何か一つのことしかできない.

数学をやる.

それからシャワーを浴びて夕食をとる.
豚肉と大根の中華風炒め. これは大根が余っていたので使った.
あと納豆と卵かけご飯.

またそろそろ買い出しに出かけないといけない.
posted by 底彦 at 14:50 | Comment(0) | TrackBack(0) | 日常生活

2017年07月27日

クリニックで診察を受ける 〜 チラシ配り

7 時半起床.
今日はクリニックに行って診察を受けるつもりである.
手元の薬が明日で切れてしまうのだ.

鬱の薬は無くなると本当に困るので, どうしても今日出してもらわないといけない.
ついでにヨドバシカメラに寄って, 古い Wi-Fi ルーターのサービスの解約手続きをしたい.

時間には余裕があった方がいいので, 午前中に診察を受けることにした.
クリニックが開く午前 10 時前に着けるように早めに家を出る.

診察の際に, 体調は良くなってきていること, ただまだ波があって午前中の鬱と無気力が苦しい日があることを話した.
そうしたら, 気力が出る薬を試してみてはどうかと言われ, ジプレキサという薬を処方してもらうことになった.
医師の説明によるとジプレキサ ── これは商品名で薬本来のの名前はオランザピン ── は元々統合失調症の治療に使われる薬だったらしいが, 現在では鬱病にも使われているとのこと.
副作用として眠気を招くことがあり, 合わなかったら止めるように言われる.
もし合うようなら, 現在服用しているトレドミンの代わりに使うのがいいかも知れないとも.

10 時前に待ち合い室に入ったが, 診察が終わって薬を出してもらえたのは昼過ぎだった.
待っている間は新しい数学の問題を解いて過ごす.
任意の圏は連結 (connected) な部分圏の和に一意的に分解されることを証明せよという問題である.
以前すでに証明したつもりだが, いろいろあったし, あらためて解き直す.

帰りにヨドバシカメラに寄って古い Wi-Fi ルーターのサービスを解約する.

家に帰って昼食をとる. 納豆と卵かけご飯.

一休みしてチラシ配りに出かける. 今日は涼しいので気持ちよく配れそうだ.
実際にその通りで, それなりの枚数を配ることができた.
一人で気楽にできるし, 絵とか数学を考えながらできるし, チラシ配りはいい.

帰宅してシャワーを浴びて夕食.
トマトとレタスのサラダ, 大根の塩焼き, ベーコンエッグ, 牛乳.
posted by 底彦 at 20:23 | Comment(0) | TrackBack(0) | 日常生活

2017年07月26日

スケジュールを考える ── 論理的思考が困難な作業

9 時半起床.
抑鬱感が強い. 雨が降っているせいかとも思うがわからない.
頓服を飲んで起きる.

今現在の自分は, 定期的に外出する機会が 5 つある.

・ クリニックで診察を受ける.
・ 認知療法を受ける.
・ デイケアのセッションに参加する.
・ 作業療法に行って絵を描く.
・ アルコール依存症の自助グループのミーティングに参加する.

最後の自助グループを除いて, 後の 4 つはこれから 8 月にかけて夏休みがある.
それぞれ間が空いたりするとあまり良くないし, 特に診察は薬が無くならないように行く日をうまく決めておきたい.
それで 8 月にかけてのこれらの大まかなスケジュールを立てることにした.

それぞれをどこかの日にうまく当て嵌めればいいのだ.
ただし, その際, 薬が切れないようにする, それぞれの夏休みに当たる日を避ける, できればなるべく均等に予定を割り振る, などの条件を考慮する.
これらの条件をうまく整理してスケジュールを組む.

これができなかった.

何に苦労したのかと言うと...

たとえば診察を受けるためには, クリニックの夏休みを避けて, 手元の薬が無くならないように診察に行ける日を選ぶ.
デイケアに行くのは, デイケアのセッションで自分が参加したいものを選び, その日に予定を入れる.
こんなことを行う.

しかし, このような条件を満足する候補日がカレンダー上のどの日, どの期間になるのかを考えるのが現在の自分には非常に難しいことがわかった.
いろいろな (と言ってもそんなにたくさんではない) 条件や項目が頭の中に収まり切らず, 混乱してしまうのだ.
どの条件がどの事柄に対する制約になっているのかを割り出せない.

2 時間ほどかけて大雑把にスケジュールを決めることはできたが, これでいいのかどうかわからない.
脳味噌があまりにも疲れてしまったのでそのまま横になって眠った.
ショックだった.

論理的な思考力の回復の状態については以前の文章でも書いたことがある.

本が読めるようになった.
数学をより深く考えることができるようになった. たとえば, well-defined という概念が理解できた.
アルゴリズム的な思考を行うことが非常に難しい.
特にデータ構造を頭の中に思い描くことが非常に難しい.

これに, 複数の事柄をスケジュールにまとめることが非常に難しい, というのも加えないといけないかも知れない.
posted by 底彦 at 22:28 | Comment(0) | TrackBack(0) |

2017年07月25日

HP-42S: スタック (修正版)

以前書いた HP-42S: スタック に間違いがあったので修正する.
間違っていたのはスタックの動作についての理解で, 具体的には "Enter" ボタンを押したときに引き起されるスタックの動作 である.

以下, 修正した文章を記しておく.



12 + 7 を計算するとき, HP-42S では次のような操作を行う.

12 ENTER 7 +

ここで, 12 , 7 は数字ボタンを使って入力する. ENTER は "Enter" ボタンを押すことを意味する. + は "+" ボタンを押すことを意味する.

このとき HP-42S はスタック X, Y, Z, T (下から順) を使って次の処理を行う.
※: 各行の |XXXX の右側が以前の文章で書いた間違った記述である.

(0) 最初のスタックの内容が次のようになっていると仮定する (任意でよい).

T: 8128
Z: 496
Y: 28
X: 6

(1) " 12 " が入力された時点で X レジスター (スタックの最下段) の内容が 12 となる.
スタックが 1 段上昇する.
これにより, (0) のスタックの内容は次のように変化する.

・ T レジスターの元の内容 8128 は失われる.
・ T レジスターの新しい内容は Z レジスターの元の内容 496 になる.
・ Z レジスターの新しい内容は Y レジスターの元の内容 28 になる.
・ Y レジスターの新しい内容は X レジスターの元の内容 6 になる.
・ X レジスターの新しい内容は入力された数値 12 になる.


T: 496 |XXXX T: 8128
Z: 28 |XXXX Z: 496
Y: 6 |XXXX Y: 28
X: 12 |XXXX X: 12


(2) "Enter" ボタンが押されて " ENTER " 操作が実行される. 次の 3 つの処理が引き起こされる.
 (2-1) スタックを 1 段上昇する;
 (2-2) X レジスターの内容を Y レジスターにコピーする;
 (2-3) 次に数値が入力されたときにスタックが上昇することを禁止する.
これにより, (1) のスタックの内容は次のように変化する.

T: 28 |XXXX T: 496
Z: 6 |XXXX Z: 28
Y: 12 |XXXX Y: 12
X: 12 |XXXX X: 12


(3) " 7 " を入力した時点で X レジスターの内容が 7 に書き換えられる. (2-3) によりスタックは上昇しない.
これにより, (3) のスタックの内容は次のように変化する.

T: 28 |XXXX T: 496
Z: 6 |XXXX Z: 28
Y: 12 |XXXX Y: 12
X: 7 |XXXX X: 7


(4) "+" ボタンが押されると加算操作が実行されて, スタックが 1 段下降する.
これにより, スタックの内容は次のように変化する.

・ X レジスターの内容 (= 7) に Y レジスターの内容 (= 12) が加算された結果 (= 19) が X レジスターの新しい内容になる.
・ Y レジスターに Z レジスターの内容 (= 6) がコピーされる.
・ Z レジスターに T レジスターの内容 (= 28) がコピーされる.
・ T レジスターの内容 (= 28) は保持される.


T: 28 |XXXX T: 496
Z: 28 |XXXX Z: 496
Y: 6 |XXXX Y: 28
X: 19 |XXXX X: 19

以上.

頭の中だけでとうとう理解したなどと思って喜んでいたのが馬鹿みたいだ.
しかし間違いに気が付いてよかった.

そういうことなので, 今回が本当に正しいかどうかは数日 HP-42S を確認しながら使ってみないとわからない.
理解するということは難しい.
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: