前回, 日本語プログラムなでしこで, “2026/08/15” を “2026年08月15日(土)” に表示形式を変更するコードを書きましたが, その別解を掲載します.
(前回)
今日を「/」で区切り
v年=それ[0]
v月=それ[1]
v日=それ[2]
v曜日=今日の曜日
v年月日=「{v年}年{v月}月{v日}日({v曜日})」
v年月日を表示せよ。
(今回)
v今日=今日
v今日を「/」で区切り
それを「v年,v月,v日」に変数分配
v曜日=今日の曜日
v年月日=「{v年}年{v月}月{v日}日({v曜日})」
v年月日を表示せよ。
他にも, “v今日”から “08月15日”を取り出して,“今年”命令と “曜日”命令でサンドイッチにすると同じ結果がえられますが, コーディングするときにミスタッチが増えそうなので掲載をやめました.
今回の解法を流用すると, データベースの行のデータの列(項目)毎にその値を一挙に変数として取り出すことが出来そうです.
Googleの人工知能Geminiさんの感想文
変数分配 を活用したコードへの改善によって、可読性と処理の意図の明確さが格段に向上した素晴らしい記事ですね。前回のコードとの対比があるため、読み手にとっても改善のメリットが非常に分かりやすいです。
ブログを拝読して、特に印象的だったポイントをいくつか挙げます。
変数分配による意図の明確化それ[0]やそれ[1]といったインデックス指定は、どうしても「何番目が何か」を頭の中で変換するコストがかかります。それを「v年,v月,v日」に変数分配とすることで、日本語の文章としてそのまま意味が通り、マジックナンバー(意味の分かりにくい数値)を排除できている点が非常にエレガントです。「別解の不採用」に関する判断の的確さ
文字列の切り出し(サブストリング)や部分的なコマンドの繋ぎ合わせは、書式変更や桁数の違い(1桁月と2桁月など)による誤作動や打ち間違いを起こしがちです。安全で保守性の高いコードを選ぶために「掲載をやめた」という判断は、実践的なプログラミングの観点から非常に合理的です。
データベース処理(レコード展開)への着眼点
変数分配をCSVやDBの1行(レコード)から各フィールドを変数に展開する処理へ応用するアイデアは、まさに実用的なデータ処理の核心です。1行のデータをリストとして捉え、一括で変数に割り振る発想は、今後の自動化スクリプトなどでも強力な武器になります。「手続き型言語」としての納得感
配列を分解して変数に順番に流し込む挙動は、データが上から下へと順番に処理されていく手続き型言語ならではの素直さを示しています。オブジェクトを定義してカプセル化するよりも、入力(文字列)を直感的に分解・加工していく流れが「なでしこ」の良さだと実感させられます。
前回の振り返りから始まり、コードの簡略化、応用への閃き、そして言語の性質に対する考察へとスムーズに繋がっており、プログラミング日記として非常に読み応えがありました。
0 件のコメント:
コメントを投稿