1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

文章題で身に付くプログラミング思考入門️ by TheWaggleAdvent Calendar 2024

Day 10

『吾輩は猫である』をプログラム構造にしてみる〜前編〜|文章題で身に付くプログラミング思考入門️(10/25)

Last updated at Posted at 2024-12-09

はじめに

あなたは、『吾輩は猫である』の猫の名前を知っていますか?

小説は、最も想像力が掻き立てられるコンテンツなのではないかと思っています。
そして、小説ほどの余白がある情報をプログラムに起こせたら、この先どんなプログラムでも書けるのではないかと。

『文章題で身に付くプログラミング思考入門️』は、日常や文章問題からプログラミング思考を身に付けていく、簡単で身近で、あなたをちょっと輝かせてくれるシリーズです。

今回は、『吾輩は猫である』を題材に文章の構造をプログラムにしてみます。

これまでのまとめ

対象者

  • プログラミングの考え方を学びたい人
  • プログラミングに挫折したことのある人
  • 論理的思考を鍛えたい人
  • 文系の人
  • エンジニアの思考を理解したい人

概要

早速やっていきましょう。
『吾輩は猫である』夏目漱石(青空文庫)から借りてきました。

吾輩は猫である。
名前はまだ無い。
どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
吾輩はここで始めて人間というものを見た。
しかもあとで聞くとそれは書生という人間中で一番どうだかこうだか分からない種族であったそうだ。
この書生というのは時々我々を捕えて煮て食うという話である。
しかしその当時は何という考もなかったから別段恐しいとも思わなかった。

一行ずつ分解します。

吾輩は猫である。

【猫】
一人称:吾輩

ここで、主従を間違えてはいけません。
プログラム上では「吾輩(主)が猫(従)である」のではなく、「猫(主)である吾輩(従)が存在している」です。
こうすると今後、また別の猫が出てきたとしても「猫」の概念を一つのデータ型として、つまり同じ情報の種類として使いまわすことができます。
神の目線で考えましょう。

名前はまだ無い。

【猫】
一人称:吾輩
名前:(まだ無い)

うーん、困りましたね。
プログラム上では名前がないと呼び出せないので、この主人公の猫に名前をつける必要があります。
「吾輩猫」とでも付けましょうか。同じ名前は使えないので、2度出てこないような名前を選びましょう。

【猫】
名前:吾輩猫
一人称:吾輩

どこで生れたかとんと見当がつかぬ。

【猫】
名前:吾輩猫
一人称:吾輩
生まれ:見当がつかない場所

生まれているからには必ずどこかの場所で生まれているので、一旦「見当がつかない場所」にしておきましょうか。
吾輩猫の情報がどんどん追加されていきますね。次にいきましょう。

何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。

【猫:データ】
名前:吾輩猫
一人称:吾輩
生まれ:見当がつかない場所
鳴き声:ニャーニャー

【猫:行動】
- 泣く

行動が出てきましたね。「泣く」という行動は猫に共通するものでしょう。
そして「泣く」ときには鳴き声「ニャーニャー」を使います。
行動の対比として、行動以外の情報をデータとして括っておきましょう。

そして、「泣いていた事」を「記憶している」とのことなので、「記憶する」という行動も取れるということがわかりますね。

【猫:データ】
名前:吾輩猫
一人称:吾輩
生まれ:見当がつかない場所
鳴き声:ニャーニャー

【猫:行動】
- 泣く
- 記憶する(泣いていた事)

次に進みましょうか。

吾輩はここで始めて人間というものを見た。

なるほど、「猫」と言うデータ型の他に「人間」と言うデータ型が存在するということですね。

しかもあとで聞くとそれは書生という人間中で一番どうだかこうだか分からない種族であったそうだ。

なるほど、「人間」を分類すると「書生」という種類があるんですね。

この書生というのは時々我々を捕えて煮て食うという話である。

よし、この辺りで「書生」について一気に分解しましょうか。
困ったことにこの書生にも名前がないので、「初エンカ書生」にしましょう。

【書生:データ】
名前:初エンカ書生

【書生:行動】
- 捕える(猫を)
- 煮る(猫を)
- 食う(猫を)

こうしてみると、書生が捕えたり煮たり食ったりするのは猫だけか?と言う疑問が湧いてきましたね。
捕えるのは生物、煮るのは食材、食うのは食べ物、が妥当な気がしますね。
ちょっと疑問を残したまま次へ進みましょう。

しかしその当時は何という考もなかったから別段恐しいとも思わなかった。

この文章は主語が抜けているようです。誰が「別段恐しいとも思わなかった」んでしょうか?
あなたなら、文脈から自然と主語を理解できるかもしれませんね。でもコンピュータは理解してくれませんから、コンピュータに寄り添って一緒に紐解いていきましょう。

それでは、文章自体を分解して紐付けてみましょう。

しかし/その当時は/何という考もなかったから/別段/恐しいとも/思わなかった。

その当時は → 思わなかった。
何という考もなかったから → 思わなかった。
別段 → 思わなかった。
恐しいとも → 思わなかった。

やはり主語がないですね。
主語を特定するために、文章を少し遡って探してみましょうか。

...と、ここで一旦今回の記事は切りましょう。
続きは明日。
「別段恐ろしいとも思わなかった」の主語を、感覚ではなく文章の分解から導いていきます。

こちら↓

最後に

ここまで読んでくださってありがとうございます!
よかったらぜひ「いいね」をください。続ける励みになります!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?