まつたろうの歩み

PythonやCの勉強中に「指し示す」いう表現がありました。それを知りたくて今はコンピュータシステムを勉強しています。

独習C 第9章まで終わりました。

 C言語の学習は時間がかかります。ようやく第8章コンソールI/O、第9章ファイル入出力まで終わりました。旧版の本ではANSI Cが変わっていることもあり、いろいろ別に調べなくてはいけません。やはり、新版の本を買うべきでした。あと12章までは、残り3章になりました。「コンピュータシステムの理論と実装(途中で断念していますが)」「CASL2」アセンブラも学習も学習してきたので、雲を掴むような難しさではありません。しかし、表現がPythonのようにシンプルではないので、何回も意味を考えながら学習しなければなりません。やはり、ポインタを使いこなすためにはかなりの慣れが必要なようです。これまでの学習内容で、ラズパイやM5Stackは使えるような気がします。しかし、全部一通りやっておこうと思います。また戻って学習を再開するには、時間が余計にかかりそうな気がします。今は写経のようなつもりで、修行をしているところです。今年中に終わらせることは無理かも知れません。

 いろいろ調べている中で、とても良いウェブサイトを見つけました。記事は古いですが、説明が丁寧でとてもわかりやすいです。関数やポインタのところは、特に参考になりました。興味のある方は見て下さい。

C言語で始めるプログラミングの基礎---目次 | 日経クロステック(xTECH) (nikkei.com)

この12回分も、すべて印刷して実行しました。数週間かかりました。でも、理解が深まりました。お勧めです。

---じいじの工作---

 前に紹介したブロック建機のおもちゃを分解して、大型の建機にしました。

じいじの工作

 この後ろに、3機つながります。孫には、その上に乗る小さい建機3個を作ってもらおうと考えています。明日、孫と「ヤンマーの建機の感謝祭」を見に行きます。帰ってきて時間があれば、始めようと思います。

---11月26日追記---

 昨日、ヤンマー建機感謝祭に行きました。たくさんの人(おそらく4千人くらい)が来ていました。建機の実演ショーに、孫は最前列で見入っていました。建機のパフォーマンスはおもしろかったです。工場も広く、見学にもかなり歩きました。ヤンマーの帽子ももらいました。動いている工場が見たいと思いました。孫は小型のショベルカーに乗り、ボールすくいをしました。私もしてみたかったですが、子どもが後ろに並んでいたのでしませんでした。焼きそばやたこ焼きポップコーン綿あめなども自由にもらえました。終了して、建機が行列をつくって走ってる様子は見ているだけで楽しかったです。

絶景!阿蘇 (箸休め)

 先週、阿蘇に行ってきました。バイクのツーリングで良く来たところです。10回くらいは、来ていると思います。その中でも最高の眺望でした。大観峰からは、阿蘇五岳はもちろん瀬の本高原の先には久住連山もクッキリ見えました。

阿蘇五岳

久住連山、一番右側が久住山です。

久住連山

宿泊する「南阿蘇」からの眺めです。根子岳です。少し紅葉が始まっています。肥後の赤牛のステーキが美味しかったです。

根子岳

高森の湧水トンネルです。

湧水トンネル

中に作られている滝です。玉の水玉が出ます。

玉の滝

丸い水玉

まん丸の水玉

南阿蘇鉄道にも乗りました。かなり熊本地震から回復しました。

復興工事完了?

返りは運良く、修学旅行のために運行するトロッコ列車に乗れました。サスペンションは付いていないのか、ガタガタと振動がじかにお尻に伝わりました。

トロッコ列車

ワンピースの車両も到着しました。ちょっと覗いたら、中の方もワンピースだらけでした。

ワンピースの車両

帰りの「道の駅くぎの」からの、眺望です。南阿蘇からの眺望の方が、阿蘇は優しく見えます。

阿蘇から

--- 今日の一言 ---

 久しぶりの阿蘇でした。天気が良く空気も澄んでいるのか、最高でした。勉強の方はちょっと一休みしましたが、少しずつ進めていきます。

脱成長 朝日地球会議をみて

 10月9日から12日、朝日地球会議が開催されました。私は遠方の東京には行けないので、Webでみました。哲学者のマルクス・ガブリエル氏、人類学者のエマニュエル・トッド氏、政治学者のフランシス・フクヤマ氏との対談、「半導体三国志~日本は生き残れるか」、困難な課題が山積していることを、改めて感じました。

 それから今日「地球沸騰?!~1.5度上昇の世界 私たちはどう生きるか」をみました。先日紹介した「ゼロからの資本論」の著者 斎藤幸平氏がパネリストとして出席されていました。先生が提唱されている「脱成長」に、全く同感です。これしか地球を救う道は無いと信じています。そのためには、現在のような貧富の格差が大きすぎる資本主義は終わりにして、新しい国家体制を作る必要があると思います。利潤を追求してやまない経済至上主義では、温暖化の問題も解決できません。どなたかの引用で印象に残った言葉があります。「新しい社会主義なしに、民主主義の発展はない」ということです。今の現状を変革しようとすると、お金持ちの人たち(資本家)は大いに攻撃してくると予想されます。しかし、何か良い方法があるはずです。脱成長の考え方を広め、選挙でそうした政権をつくることです。皆さん!どう考えられますか?

www.asahi.com

---地道に---

 今私ができること、不要なものを買わない。できるだけゴミにせず、リサイクルショップに持って行ったり資源回収にだす。選挙には必ず行く。こうして、ブログなどで発信する。ことくらいかな?

独習C 第7章まで終わりました。

 独習C、第6章のポインタと第7章関数まで終わりました。率直な感想は、アセンブラの方が分かりやすいような気がしています。C言語は複雑に感じています。未だにポインタの*と&をどう使うか、練習が足りないのか深く理解はできていません。関数は複雑です。特に回帰はどうなっているんだろうという印象です。関数の学習では VisualStudio が役立ちました。回帰関数では1行ずつ実行させるステップインで、前の呼び出し元に戻ったり、先に進んだりする動作の確認ができました。メモリの値の変化が確認できないようなので、ちょっと残念です。これから復習を重ね、深く理解できるようにしていきたいと思います。

--- ChatGPTは便利です---

 geany で sqrt が使えなかったので、ChatGPTに聞きました。教えてもらって、使えるようになりました。そのやり取りを、お伝えします。

Geanyを使って答えてください
ChatGPT
もちろんです。Geanyを使用してC言語プログラムを書き、libm.so.6数学ライブラリを使う方法を説明します。

Geanyを開く: 最初にGeanyを開きます。

新しいファイルを作成: ファイル -> 新規作成を選択して新しいCファイルを作成します。
ファイル名をmain.cなどとして保存します。

Cプログラムの書き込み: main.cファイルに、先程示したCプログラムのコードを書き込んで保存します。

コンパイルオプションの設定: プログラムをコンパイルする際に、libm.so.6をリンクするオプションを設定する必要があります。
Geanyでこれを行う方法は、ビルドメニュー -> 設定を開いて、"コンパイラ" タブを選択し、
"追加のコンパイラオプション" の欄に -lm を追加することです。これにより、数学ライブラリがリンクされます。

プログラムの実行: メニューバーのビルド -> コンパイルを選択してコードをコンパイルし、
次にビルド -> 実行を選択してプログラムを実行できます。
コンパイル時にlibm.so.6が正しくリンクされていれば、プログラムは正常に実行されるはずです。

以上で、Geanyを使用してCプログラムにlibm.so.6数学ライブラリをリンクして実行する方法が完了です。

User
コンパイルオプションの設定:をもう少し詳しく説明してください。
ChatGPT
申し訳ありません、Geanyは比較的シンプルなIDEで、設定オプションが他のIDEに比べると少なめです。
しかし、Geanyを使ってコンパイルオプションを設定する方法をより詳しく説明いたします。

Geanyを開く: 最初にGeanyを開きます。

ビルド設定を開く: メニューバーから「ビルド」をクリックし、その後「設定」を選択します。

ビルドコマンドとコンパイラオプションの設定:

「ビルドコマンド」の欄には、通常 gcc -o %e %f -lm と入力します。これは、gccコンパイラを使ってプログラムをコンパイルする際の基本的なコマンドです。-lmは数学ライブラリをリンクするオプションです。%eは実行可能ファイルの名前、%fは現在開いているファイルの名前を表します。これにより、現在のファイルをコンパイルして実行可能ファイルを生成します。
追加のコンパイラオプション」の欄には、必要な場合に追加のコンパイラオプションを入力できます。例えば、数学ライブラリをリンクする場合は、ここに -lm を入力します。***これで解決しました***
設定の保存: 設定を入力したら、画面下部にある「OK」ボタンをクリックして設定を保存します。

これで、Geanyは指定したコンパイラオプションを使ってCプログラムをコンパイルします。ファイルを保存した後、ビルド -> コンパイルを選択すると、Geanyは設定したコンパイラオプションを使ってプログラムをコンパイルします。

User
できました。ありがとうございました。助かりました。
ChatGPT
どういたしまして!お役に立てて嬉しいです。もしご質問があれば、どうぞお気軽にお聞きください。成功をお祈りしています!

***ウェブサイトでかなり調べたのですが、時間の無駄でした。ChatGPTですぐにわかりました。これからも使っていこうと思いました。***

下がその画像です。

Geany で sqrt が使えるようになった。

---じいじの工作---

 ブロックのおもちゃがやっと12個、揃いました。次は最後に入手した「つかみ機」をBタイプに変えるように、孫に言われています。それが終わったら、「超BIGトレーラー」を組み立てることができます。当初はどんなものか分からないので、2個くらい買って試していました。少しずつ増やしていくと、大きなものにチャレンジしたくなりました。ところが、ダイソーの店舗ではなかなか入手できません。ダイソーのウェブショップでは、12個セットしか販売していません。何回も店舗に問い合わせて、ようやく入手できました。もし作りたい方がおられたら、セットの購入をお勧めします。

勢揃いした建設車たち

---今日の一言---

 イスラエルでも戦争が始まりました。なぜ、戦争がなくならないのでしょうか?一般の国民は、絶対平和を望んでいると思います。一部の支配者・為政者が戦争を始めます。私たちは日頃から、「平和を望んでいる事」を意思表示していかなければいけないと思います。私はタバコを吸っています。タバコ増税のお金を防衛費の当てることを聞き、「禁煙」することにしました。今、吸う本数が半分くらいになったところです。

独習C 第5章まで終わりました。

 第5章は「配列と文字列」でした。配列も前に学習していました。それでも忘れてしまっているので、結構難しかったです。特に文字列の操作には時間をとられました。1問解答するのに、2日かかったりしました。古い本の記述が使っている jeany のコンパイラに合わなかったりしたこともあり、相当回り道をしました。うまくいかないときは、デスクトップの Visual Studio 2022を使って試しました。それでも分からないところは、Webで調べたり、AI にも聞きました。全く違うコードを提案してきたりしましたが、AIは結構使えそうな気がしました。

 長時間ディスプレイを見ていると、目が疲れます。それで、画面の反転をすることにしました。 jeany の設定からはできませんでした。Webで調べると、ありました。

qiita.com

 少し難易度が高くすぐにはできませんでしたが、頑張って反転させることができました。FuRuYa7 様には感謝しています。少し見づらい気もしますが、疲れかたが全くちがいます。

jeany の画面を反転しました。

 次は前回先送りにしていた、第6章「ポインター」です。これはかなり難しいと思いますが、頑張ります。

----今日の日記----

 朝・夜は少し涼しくなりましたが、昼はまだ暑さが厳しすぎます。早朝1時間ほど散歩は続けてきました。しかし、それだけでは運動不足で体重が激増してしまいました。それで、数日前から夕方にも散歩を始めました。40分ほど歩きます。1日何グラムかは、減少しているようです。コロナも終わったわけではありません。健康に気をつけて、生きていたいです。

/9月18日追記

 今朝の散歩では、彼岸花が咲いているのを見かけました。まもなく彼岸です。稲刈りが終わった田もあります。最近秋雨前線のため、天候が不安定です。散歩中、よく雨に降られます。

独習C 第2章まで終わりました。

 先日から、C言語の勉強に戻りました。今使っているテキストは「独習C」です。

独習C

 第3版で古いのですが、ブックオフで安かったので購入しました。現在推奨されていない書き方(実行できない、エラーメッセージが出る)もありますが、私にとっては十分使えます。初めての入門書として「やさしいC」も学習済みです。「独習C」はその後のレベルアップには、とても良い本だと思います。お勧めします、良書です。

 かなり前に、この第4章まで勉強しています。今日、第2章が終わったところです。1回学習しているのですが、完全に忘れてしまってました。でも、少しずつ思い出してきています。以前ポインターのところで、その動作やしくみを知りたくなりました。そこで、「コンピュータシステムの理論と実装」の勉強を始めました。これは中断していますが、アセンブラの勉強もしたのでかなり理解できるようになりました。プログラミングの勉強はアセンブラから始めるべきだと思います。

 使用環境はかなり以前に記事にした、ラズベリーパイ・デスクトップです。

kmatsutaro.hatenablog.com

15年くらい前のバイオです。ラズパイそのものも軽くて、サクサク動きます。同梱してある「geany」でC言語の勉強をしています。軽くて使いやすいです。Python は同じく同梱してある、 thonny が使いやすいです。

ラズベリーパイ・デスクトップ

 デスクトップパソコンには「geany」がインストールできなかったので、VisualStudio2022をインストールしました。プロの方にはVSが必要でしょうが、重く、たくさんの機能があり使いづらいです。素人の私には「geany」で十分です。この本が終わったら、ラズパイで C や Python を使っての工作をしようと考えています。その後は、M5Stack です。やることがたくさん残っています。

---今日の日記---

 とても暑い日が続きます。皆様お元気でしょうか?

自宅では朝からエアコン付けっぱなしです。仕事もしてないので、健康維持のために、散歩は必須と思っています。9時頃散歩していたら、暑くて熱中症になりそうになりました。そこで最近は、遅くとも6時までには散歩に出発するようにしています。幸いにも1月には古希を迎えるので、元気で長生きできるように努めます。

「ハードウェア技術」の学習が終わりました。

 実教出版の「ハードウェア技術」の勉強が終わりました。前の記事から、40日ほどかかりました。この間、お盆で孫たちも来ました。三国志のDVDを観たりしたので、期間は長くなってしまいました。勉強で特に印象に残っていることは、D-A(A-C)コンバータの必要性とその回路構成です。コンピュータで何かを動かそうとする時は必須の回路です。機会をみて、そういう回路を作ってみたいと思います。また、組み込みマイコン基本的なことがつかめました。これは、その後やろうと思っていたことです。事前勉強になりました。

 これから、「コンピュータシステムの理論と実装」に戻りたいと思います。しかし、重大なミスで全く進めないかもしれません。その原因は、SDカードをフォーマットしようとウインドウズ付属の「ディスクの管理」を使いました。その際誤って保存用に使っていた「Dドライブ」全てをフォーマットしてしまったのです。作成したファイル全てが無くなってしまいました。バックアップは以前とってはいたのですが、そのハードディスクはノートパソコンをバックアップするのに使いました。もう、どうすることもできないのであきらめました。どうなるでしょうか?

 翌日、久しぶりに「コンピュータシステムの理論と実装」開いてみました。前は第7章の途中で終わっていました。第7章を読み返してみました。以前、数回読んでノートにもまとめています。しかし、難しいです。レベルが高すぎます。中断していた頭の中には、何も浮かんできません。第7章はバーチャルマシンを作成します。その後、OSを作成するまで続きます。多くの時間がかかりそうです。これまで間にアセンブラなどを勉強して、目標にしていた「指し示すという意味」がかなり明確にわかりました。この本では、NAND回路に始まってメモリやALUやコンピュータまで構成しました。それだけで十分満足しています。もう、これ以上時間をかけるのはやめようと決めました。中断します。また、機会があればチャレンジしようと思います。これからは、これも中断している「C」の勉強を続けたいと思います。

---三国志---

 7月末、コロナが落ち着いてきたので、昔の同僚と久しぶりに飲みました。その頃、吉川英治著の三国志を読んでいました。三国志は面白いと話していたら、「DVD持っているよ」と貸してくれました。後日、48巻の「DVD三国志」を持ってきてくれました。全てを見るのに、3週間くらいかかりました。戦闘シーンはあまり好きではないのですが、話の流れがおもしろく見応えがありました。千年以上も昔に、紙とか十分無かった時代、こんな長編物語をよく書けたものだと感心します。

---じいじの工作---

働く仲間が増えました。

 孫もかなり、組み立てができるようになってきました。最後の押さえつけは、じいじがやります。

---今日の一言---

 英語の学習、半年くらい続けてきました。散歩中に録音した英会話を、ICレコーダーで聞いています。平均すると、一日1時間くらい勉強しています。最近、少し英語が聞こえてくるようになりました。今年1年は続けようと思っています。