すのものの「いろいろ」(その492)


「四分音符」は「しぶ〜」だから「四分の三拍子」は「しぶんの〜」?

「四分音符」wa "sibu..." da kara「四分の三拍子」wa "sibuñ no ..."?

「まいにちドイツ語応用編」8 月 20 日放送分に出てきたが、 ご担当の藤井明彦先生は「よんぶんのさんびょうし」と読まれた。

2021-08-29 (0) 21:43:40 +0900


赤羽線に端から端まで乗って、n 編成とすれ違ったと数えたことがあった

Akabane-señ ni hasi kara hasi made noqte, n heñsei to surecigaqta to kazoeta koto ga aqta

その話を母方の祖母にしたら、 だったら赤羽線は全部で (n+1) 編成で運行していると言われ、 物の理屈はわかる年齢に達していたが、すぐには理解できなかったのを思い出した。

赤羽線が池袋駅と赤羽駅との間で往復運転をしていたころの話である。

2021-08-29 (0) 17:54:59 +0900


スクリーンエディタ>「カーソル戻る」をつける……は出鼻でくじかれた

sukuriiñ edita>"kâsoru modoru" o cukeru ... wa debana de kuzikareta

キーは Ctrl+S である。指を折って数値を計算する。0x13 である。

バッファ冒頭だったら警告音を出して return, とだけ書く。 しかしオトがしない。数値を間違えたかと思い、0x03 に変えてみる。 プログラムが終了する! Ctrl+C を中止と解釈するのか。 0x02, すなわち Ctrl+B にしたらうまくいった。

Ctrl+C, Ctrl+S を特殊な意味に解釈されないようにしなくては。

次は https://www.webcyou.com/?p=10625 で教わったのをもとに書いてみたものだが、 Ctrl+C, Ctrl+S を入力するとうまくない。

#include <stdio.h>

#include <termios.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
  int ch;
  struct termios oldattr, newattr;  /* echo なし入力に必要 */

  tcgetattr( STDIN_FILENO, &oldattr ); /* echo なし入力の準備 */
  newattr = oldattr;
  newattr.c_lflag &= ~( ICANON | ECHO );
  tcsetattr( STDIN_FILENO, TCSANOW, &newattr );

  while ((ch = getchar()) != '\033') {
    putchar(ch | 0x40);
  }

  tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );  /* echo なし入力の終わり */
}

include ファイルの位置がわからず、find を使う。 よくぞ、指がコマンドラインオプションを覚えていたものだ。

termios.h を見たが、わからないや。

別サイトを調べてみよう。本日これまで。

実はきのうまでで頭がかなり疲れていたので、よいお休みになった。

2021-08-29 (0) 15:31:44 +0900


職場のとある部屋、およそ 30 ℃

sjokuba no to aru heja, ojoso 30 °C

風があって涼しい。

2021-08-29 (0) 15:26:17 +0900


偶奇によるフェルマーの最終定理の証明 6

gûki (= gûsû ka kisû ka) ni joru Fermat no saisjû teiri no sjômei 6

細部まで追う気力はないが、壊れてきているのは明らかである。

偶奇によるフェルマーの最終定理の証明.6
2021/08/29 07:37
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおく。x,yは有理数とする。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
A=(y-1),B=(y^(p-1)+y^(p-2)+…+1),C=p,D=x(x^(p-2)+…+1)とおく。
AB=CDならば、A=Cのとき、B=Dとなる。A=Cとすると、(y-1)=p,y=p+1となる。
B=Dは、{(p+1)^(p-1)+(p+1)^(p-2)+…+1}=x(x^(p-2)+…+1))…(3)となる。
(3)の左辺は奇数、右辺は偶数となる。よって、AB≠CDとなる。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。

2021-08-29 (0) 07:52:44 +0900

続き

cuzuki

完全に壊れている。


A=CかつB=Dとはならない、を示しただけに見えますが、これで証明完了ですか?
2021/08/29(14:36) URL 編集

No title
>A=CかつB=Dとはならない、を示しただけに見えますが、これで証明完了ですか?

はい。これで、証明完了です。
AB=CDならば、A=Cのとき、B=Dとなる。は、
一つ残らず成立するからです。
x,yが他の有理数の場合は、検討する必要がありません。
2021/08/29(15:49) 日高 URL 編集

2021-08-29 (0) 16:42:04 +0900


桜田です!>先日の目の不自由な人とブラインドサッカーをするが誤解される

Sakurada desu!>señzicu no me no huzijû na hito to *blind soccer* o suru ga gokai sareru

きょうづけ毎日新聞掲載分。きょうじゅうならネットの上でも読める。

(1) 先日の目の不自由なおじさんに、 ハルと鼻のとがった級友、ブラインドサッカーをしようと言う。 ボールからオトがする。 (2) 目隠しをしたハルと鼻のとがった級友、方角がわからない。 なぜか地面に置かれたボールがシャランとオトをたてている。 (3) ハルがシュートするとおじさんのおでこに当たる。「あいた〜」。 教育ママ風のおばさん、「コラあなたたち!」。 (4) そのおばさん「目の悪い人をいじめちゃダメでしょ!」 “もっと大切にしなさい”。しょぼんとする二人。 おじさん「あ…いや…」。

このあと、このおじさんがきちんと説明すればすべて解決するはず。

実際のブラインドサッカーではゴールキーパーには視力の制限はなく、 健常者がつとめることが多いとウィキペディアにある。 ボールには鈴がはいっているそうだが、地面に置いただけで鳴るのだろうか。

誰もマスクをしていない。

1 コマめ、ボールが「シャカシャカ」と鳴っているが、 「シ」の字体が変なのは前からのとおり。

ハルは飼いネコ正太郎の顔の柄のTシャツを着ている。

野中君が登場しないのは、 めがねをはずさないとアイマスクができないため?  彼がめがねをはずした顔は用意されていなかったと思う。

よく、アイマスクを持っていたね。ハルたち。

全体に見て、パラリンピックの時期らしいものを書こうとして、 設定に無理を重ねたように思う。

2021-08-29 (0) 00:02:48 +0900


サンダーバード2号の足は、撮影の際、本当に伸縮していた?

Thunderbird 2 gô no asi wa, sacuei no sai, hoñtô ni siñsjuku site ita?

伸縮するシーンでは、足のついている部分だけ地面に穴が開いていて、 足は伸び縮みするのではなく、 地面の下から出てきたり、地面の下に隠れたりしているように見える。 地面の下に、平行にもう一つの平面があって、 そこに足で2号は固定され、その平面が上がったり下がったりしていたのでは。

出先で足を伸ばすところで、 足がポッドのかげにかくれていて見えないものが YouTube にあった。 それでは基地でボッドが2号の下を通過できないのは有名な話だが、 それはさておき、足が写ると伸縮していないのがバレるからではなかろうか。

そういえば、プラモデルでは、足は伸縮するのではなく 90 度うしろに曲がったような記憶が。

2021-08-28 (6) 22:19:51 +0900


筆を加えた項目 [hude o kuwaeta *ɦɔŋmɪuk*]

2021-08-28 (6) 20:45:53 +0900


体重 64.0 kg まで減った

taizjû 64.0 kg made heqta

体重をはかってから、おやつの柿の種を食べる。

2021-08-28 (6) 20:09:55 +0900


偶奇によるフェルマーの最終定理の証明 3, 4, 5

gûki (= gûsû ka kisû ka) ni joru Fermat no saisjû teiri no sjômei 3, 4, 5

また出た。

偶奇によるフェルマーの最終定理の証明.3
2021/08/28 16:27
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおいて、有理数解を求める。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
A=(y-1),B=(y^(p-1)+y^(p-2)+…+1),C=p,D=x(x^(p-2)+…+1)とおく。
AB=CDならば、A=Cのとき、B=Dとなる。
x,yを通分する。yの分子は奇数、xの分子は偶数とする。
Bの分子は奇数、Dの分子は偶数となる。
A=Cとするために、B{(y-1)/3}…(E)とする。(E)の分子は偶数とならない。
よって、E=Dとならない。(1)は有理数解を持たない。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
偶奇によるフェルマーの最終定理の証明.5
2021/08/28 17:31
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおいて、有理数解を求める。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
A=(y-1),B=(y^(p-1)+y^(p-2)+…+1),C=p,D=x(x^(p-2)+…+1)とおく。
AB=CDならば、A=Cのとき、B=Dとなる。
x,yが整数の場合は、yは偶数、xは奇数とする。
x,yが分数の場合は、x,yを通分して、yの分子は奇数、xの分子は偶数とする。
Bの分子は奇数、Dの分子は偶数となる。
A=Cとするために、B{(y-1)/3}…(E)とする。(E)の分子は偶数とならない。
よって、E=Dとならない。(1)は有理数解を持たない。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。

「4」は 「数学ナビゲーター掲示板」 に出た。本文は 3 と全く同一である。

2021-08-28 (6) 16:44:39 +0900


地下鉄硫酸事件>「東京メトロ南北線白金高輪駅」とするメディアがあるが

cikatecu rjûsañ zikeñ>「東京メトロ南北線白金高輪駅」to suru media ga aru ga

都営地下鉄三田線も乗り入れているが、東京メトロの管轄なのでこう書いたものか。

2021 年 8 月 26 日水曜日づけ朝日新聞大阪本社版社会面も 《東京メトロ白金高輪(しろかねたかなわ)駅》だ。

2021-08-28 (6) 16:02:15 +0900


vi にもだいぶ慣れてきた。エラーのオトが鳴るのが減ってきている

*vi* ni mo daibu narete kita. erâ no oto ga naru no ga heqte kite iru

それでもまだときどき鳴る。

あ、「テキストエディット」を使う手もあったんだー!  いままでの苦労はなんだったんだ……。 でも、こうなったら vi でゆくぞ!

2021-08-28 (6) 15:43:41 +0900


スクリーンエディタ>「カーソル進む」はできたと思う

sukuriiñ edita>"kâsoru susumu" wa dekita to omou

これで、一度の起動でくり返し実験ができるようになった。 カーソルを進め、次の行の頭へ行ったらカーソル上げ、を実行するのである。

全角文字とタブがあるだけで、こんなに大変だ。 unicode 対応のエディタを作る人はどれだけ大変か。

いままた一つバグをとった。

まだあった。とった。

2021-08-28 (6) 15:21:26 +0900


偶奇によるフェルマーの最終定理の証明 2, 3

gûki (= gûsû ka kisû ka) ni joru Fermat no saisjû teiri no sjômei 2, 3

またまた新しいのが。

偶奇によるフェルマーの最終定理の証明.2
2021/08/28 07:58
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおいて、有理数解を求める。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
A=(y-1),B=(y^(p-1)+y^(p-2)+…+1),C=p,D=x(x^(p-2)+…+1)とおく。
AB=CDならば、A=Cのとき、B=Dとなる。
x,yの分母を払う。yは偶数、xは奇数とする。Bは奇数、Dは偶数となる。
A=Cとするために、B{(y-1)/3}…(E)とする。(E)は偶数とならない。
よって、E=Dとならない。(1)は有理数解を持たない。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
偶奇によるフェルマーの最終定理の証明.3
2021/08/28 13:14
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおいて、有理数解を求める。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
A=(y-1),B=(y^(p-1)+y^(p-2)+…+1),C=p,D=x(x^(p-2)+…+1)とおく。
AB=CDならば、A=Cのとき、B=Dとなる。
x,yを通分する。yの分子は偶数、xの分子は奇数とする。
Bの分子は奇数、Dの分子は偶数となる。
A=Cとするために、B{(y-1)/3}…(E)とする。(E)の分子は偶数とならない。
よって、E=Dとならない。(1)は有理数解を持たない。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。

2021-08-28 (6) 13:14:55 +0900


職場のとある部屋、28 ℃ぐらい

sjokuba no to aru heja, 28 °C gurai

風もあって涼しい。

2021-08-28 (6) 12:35:53 +0900


偶奇によるフェルマーの最終定理の証明

gûki (= gûsû ka kisû ka) ni joru Fermat no saisjû teiri no sjômei

また新しいのが出た。

偶奇によるフェルマーの最終定理の証明
2021/08/28 06:00
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおいて、有理数解を求める。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
A=(y-1),B=(y^(p-1)+y^(p-2)+…+1),C=p,D=x(x^(p-2)+…+1)とおく。
AB=CDならば、A=Cのとき、B=Dとなる。x,yの分母を払う。
Bはyの偶奇に関係なく奇数となる。Dはxの偶奇に関係なく偶数となる。
A=Cとするために、B{3/(y-1)}…(E)とする。(E)は偶数とならない。
よって、E=Dとならない。(1)は有理数解を持たない。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。

2021-08-28 (6) 06:04:26 +0900


山のかげから太陽が現れたら温度が上がり始めた

jama no kage kara taijô ga arawaretara oñdo ga agari hazimeta

朝は涼しいと思ったのに。

2021-08-28 (6) 06:01:33 +0900


メモ帳>Ctrl+右Shift で右ぞろえに。Ctrl+左Shirt で左ぞろえに

memocjô>Ctrl+migiShift de migizoroe ni. Ctrl+hidariShift de hidarizoroe ni

知らなかった。

2021-08-28 (6) 00:50:56 +0900

単なる「右ぞろえ」ではなかった。右から左への横書きか?

tañnaru "migizoroe" de wa nakaqta. migi kara hidari e no jokogaki ka?

2021-08-28 (6) 10:10:06 +0900


メモ帳>「Ctrl + →」で次の単語冒頭へ移動。「Ctrl + ←」は前の単語冒頭

memocjô>«Ctrl + →» de cugi no tañgo bôtô e idô. «Ctrl + ←» wa mae no tañgo bôtô

知らなかった。

2021-08-28 (6) 00:46:47 +0900


桜田です!>村田さんの奥さん、「あちらのかたから」と寿司をおごられる

Sakurada desu!>Murata sañ no okusañ, "acira no kata kara" to susi o ogorareru

きょうづけ毎日新聞掲載分。きょうじゅうならネットの上でも読める。

(1) バー。若い女性に向けて、 バーテンダーがカクテルを“シュッ”とテーブルの上に滑らせる。 その女性「あら…」。 (2) それはテレビジョン放送の一シーンだった。 バーテンダーは「あちらのかたから」と言っている。 見ていたお母さん「こんなことホントにあるのかなー」“経験なーい”。 村田さんの奥さん「‥‥」。 (3) お母さん「え…あるの!?」“どんなシチュエーション!?”。 飼いネコの正太郎が汗をかいている。 (4) 寿司屋のカウンター。 寿司職人が「あちらのかたから」と言って寿司を「シュッ」と滑らせる。 「ここの大トロサイコーだよー!」と隣のおじさんが村田さんの奥さんに話しかける。

寿司がすべるかいな。

しかし、気前のよいおじさんだな。

前に出た、村田さんの奥さんの合衆国留学時代の話かと思わせてのフェイントか。

寿司職人は滑らせずに目の前に置くだろう。

「シュッ」の「シ」と「ッ」の字体がおかしいのは前からのとおり。

2021-08-28 (6) 00:18:02 +0900


桜田です!>パラ、「子供たちには観戦させる」を「感染させる」と聞き違う

Sakurada desu!>para, "kodomo taci ni wa 観戦 saseru" o "感染 saseru" to kikicigau

きょうづけ毎日新聞掲載分。きょうじゅうならネットの上でも読める。

(1) パラ無観客、と話し合うお母さんとお祖母さん。 (2) 子どもたちには観戦させるみたい、とお母さん。 大丈夫なのかねえ、とお祖母さん。 (3) 恐怖におびえているハル。 (4) ハル、僕たち感染させられちゃうみたいだよ〜、 と野中君と鼻のとがった級友に話す。 え〜〜、人体実験!? と二人。

「観戦」と「感染」が同音なのを利用したダジャレネタ。 そうでなく、観戦に伴う感染をハルが恐れた、ととれなくもないが。

前者だとすれば、 ハルがお母さんお祖母さんによく話を聞けば済んだこと。 今回はハルの思慮が足りない。

お祖母さんがもっと古い人だったら、 「くゎんせん」と「かんせん」で発音しわけたかも。

2021-08-27 (5) 23:46:52 +0900


桜田です!>迫力ある競技をあげる中、車いすバタフライと言って却下される

Sakurada desu!>hakurjoku aru kjôgi o ageru naka, kurumaisu batahurai to iqte kjaqka sareru

26 日づけ毎日新聞掲載分。

ハルと野中君と鼻のとがった級友がパラリンピックについて話し合っている。 車いすバスケについて、迫力ある、格闘技っぽい、カッコいいと話し合う。 車いすラグビーも迫力スゴイ、という話になる。 野中君、迫力だったら車いすバタフライも! と言うが、 二人に「それはない」と却下される。

もしも車いすバタフライがあったら、と考えたのだろうが、 小学生でも思いつくネタである。

2021-08-27 (5) 23:39:33 +0900


桜田です!>お母さんたち、別人を黒井先生と思い込んでさんざんからかう

Sakurada desu!>okâsañ taci, becuziñ o Kuroi señsei to omoikoñde sañzañ karakau

25 日づけ毎日新聞掲載分。

(1) 屋外。お母さんと、たぶん近所の主婦。まだまだマスクは外せない、 マスクをしているとだれだかよくわからない、と話し合っている。 (2) 黒井先生、ニットの帽子をかぶり、パーカーを着て、スケボーを手にしている。 声をかけるお母さん。 (3) お母さん「なんだか若作りしちゃって」“キャー♡”と言いながらバン、バンとたたく。 もう一人の主婦“このこのー”「歯医者とデートでしょ」“アハハハ”とつつく。 (4) 右半分。さっきの男。マスクを取ると実は別人の若者だった。 左半分。黒い上着を着た、いつもの黒井先生。あら…? と不審に思うお母さん。

単なる人違いネタ。この若い男が、 人違いではないでしょうかと言ってマスクを外して見せれば済んだこと。

お母さんは、息子の担任の先生をこんな風にからかうものだろうか。

このマンガは思慮の足りない登場人物が多いことで成り立っているようだ。

2021-08-27 (5) 23:28:13 +0900


桜田です!>ハル、菅総理ではなく尾身会長を総理大臣と間違う

Sakurada desu!>Haru, Suga sjusjô de wa naku Omi kaicjô o sôri daiziñ to macigau

24 日づけ毎日新聞掲載分。

(1) テレビジョン受像機を指さし「菅さんと尾身会長の会見やってるよ」というお父さん。 (2) お父さん「菅さんは相変わらず原稿棒読みなんだよなー」。 お母さん「気持ちが伝わってこないよねー」。 (3) お父さん「尾身さんはなにを伝えるかハッキリしててわかりやすいよ」。 (4) ハル、尾身さんを指して「さすが日本のソーリダイジンだね!」。 お父さん「あ…いや…この人は…‥」“分科会の会長”。

ハルの口を借りての首相批判。それが悪いというわけではないが、 マンガとして特におもしろいとも思えない。

「菅首相」という言い方はラジオやテレビで聞くと思うが、 「首相」が「総理大臣」とは思わなかったのかな。ハルは。

小さい子の前では政治家の批判はしないほうが無難。 外でしゃべるかもしれないから。

2021-08-27 (5) 23:18:34 +0900


NHK>チャイコフスキー「ピアノ協奏曲第一番」を「交響曲第五番」と間違う

NHK>Tchaikovsky "piano kjôsôkjoku dai 1 bañ" o "kôkjôkjoku dai 5 bañ" to macigau

いま訂正があった。パラリンピックのニュースの中。 有名な冒頭だったから、間違えようがないと思うがな。

2021-08-27 (5) 22:57:03 +0900


「相手の反則負けで勝ちました」はわかりやすいな

"aite no hañsoku make de kacimasita" wa wakarijasui na

いま、パラリンピックのニュースを聞き流していて。

大相撲ではそういうとき「反則」で勝ったことになるんだったと思うが、 ズルをして勝ったと誤解されるかもしれない。 このカナ漢字変換は「はんそくがち」を「反則勝ち」に変換しない。

2021-08-27 (5) 22:43:54 +0900


アナウンサーは「金メダル」を「き」に力を入れて発音しているようだ

anaunsâ wa "kiñ*medal*" o "ki" ni cikara o irete hacuoñ site iru jô da

「銀メダル」とまぎれないため?

2021-08-27 (5) 22:33:02 +0900


きのう、直射日光でソーラー電波腕時計の表示が復活した

kinô, cjokusja niqkô de *solar* deñpa udedokei no hjôzi ga huqkacu sita

25 日午前 3 時すぎが最後の受信だった。

2021-08-27 (5) 21:39:50 +0900


筆を加えた項目 [hude o kuwaeta *ɦɔŋmɪuk*]

2021-08-27 (5) 21:28:30 +0900


「金メダル」と「銀メダル」が聞き分けづらいならいっそのこと英語にしては

"kiñ*medal*" to "giñ*medal*" ga kikiwakezurai nara iqso no koto eigo ni site wa

「ゴールドメダル」と「シルバーメダル」である。

ついでに「銅メダル」も「ブロンズメダル」にしたら、かっこいいかもしれない。

2021-08-27 (5) 21:16:33 +0900


モデルナ製のワクチン異物が磁石につくという話からまたデマが流れないか

Moderna-sei no wakuciñ ibucu ga zisjaku ni cuku to iu hanasi kara mata dema ga nagarenai ka

ワクチンを打つとからだが磁石に吸いつくようになるというデマ。

2021-08-27 (5) 21:09:40 +0900


「二瓶(にへい)」という姓は日本語の音名だけからなる

"Nihei" to iu sei wa nihoñgo no oñmei dake kara naru

ニ短調の主和音である。

2021-08-27 (5) 21:07:36 +0900


スクリーンエディタ>「カーソル進む」をつけようとしてバグがみつかる

sukuriiñ edita>"kâsoru susumu" o cukejô to site bagu ga micukaru

「カーソル下げ」「カーソル上げ」しかないので、 カーソルの初期位置はソースファイルの中で変えてコンパイルし直してデバッグしていた。 (そうでなくもできるけど。)

「カーソル進む」をつけようとし、 テスト用ファイルを改変して実験したら、「カーソル下げ」にバグがみつかった。

もちろん直すが、「カーソル戻る」までつけて、 四つまとめてデバッグした方が効率がよいかもしれない。

2021-08-27 (5) 20:49:34 +0900


しかし -â- でも、jaqtâââââ のような書き方ができるのであった

sikasi -â- de mo, jaqtâââââ no jô na kakikata ga dekiru no de aqta

前の項の続き。

2021-08-27 (5) 20:44:59 +0900


長い母音を -aa- のようにかくと jaqtaaaaaaaaaa のようにも書けるという利点

nagai boiñ o -aa- no jô ni kaku to jaqtaaaaaaaaaa no jô ni mo kakeru to iu riteñ

2021-08-27 (5) 20:41:12 +0900


やったー! 体重 64.5 kg まで減った!

jaqtâ! taizjû 64.5 kg made heqta!

2021-08-27 (5) 20:38:07 +0900


きょうの Google 検索 [kjô no Google *kɪɛmsak*]

"気まぐれベルドン" は 6 件。 「もしかして: "気まぐれペルドン"」と出る。

"軍部関連業界" はみつからない。

"おびやされかねない" は 1 件。

"軍部内部資料" はみつからない。

"一研究者、教育者ブログ" は 9 件。実在するならもっとヒットすると思う。

"カロリン カリコ" はみつからない。

2021-08-27 (5) 20:29:29 +0900


因数分解によるフェルマーの最終定理の証明 2

iñsû buñkai ni joru Fermat no saisjû teiri no sjômei 2

フェルマーの最終定理の簡単な証明より。

因数分解によるフェルマーの最終定理の証明.2
2021/08/27 18:45
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおいて、有理数解を求める。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
A=(y-1),B=(y^(p-1)+y^(p-2)+…+1),C=p,D=x(x^(p-2)+…+1)とおく。
AB=CDならば、A=Cのとき、B=Dとなる。
Bはyの偶奇に関係なく奇数となる。Dはxの偶奇に関係なく偶数となる。
A=Cとするために、B{3/(y-1)}…(E)とする。(E)は偶数とならない。
よって、E=Dとならない。(1)は有理数解を持たない。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。

2021-08-27 (5) 20:06:30 +0900


因数分解によるフェルマーの最終定理の証明

iñsû buñkai ni joru Fermat no saisjû teiri no sjômei

フェルマーの最終定理の簡単な証明より。

因数分解によるフェルマーの最終定理の証明
2021/08/27 08:26
【定理】pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。
【証明】x^p+y^p=z^pを、x^p+y^p=(x+1)^p…(1)とおいて、有理数解を求める。
(1)を(y-1)(y^(p-1)+y^(p-2)+…+1)=px(x^(p-2)+…+1)…(2)と変形する。
AB=CDならば、A=Cのとき、B=Dとなる。A=(y-1),C=pとおくと、y=p+1となる。
(2)に代入する。p{(p+1)^(p-1)+(p+1)^(p-2)+…+1}=px(x^(p-2)+…+1)…(3)となる。
(3)の左辺は奇数、右辺は偶数となる。よって、(1)は有理数解を持たない。
∴pが奇素数のとき、x^p+y^p=z^pは自然数解を持たない。

2021-08-27 (5) 20:04:17 +0900


フェルマーの最終定理の簡単な証明 6

Fermat no saisjû teiri no kañtañ na sjômei 6

新しい【証明】。

フェルマーの最終定理の簡単な証明.6
2021/08/25 06:09
【定理】n≧3のとき、x^n+y^n=z^nは自然数解を持たない。
【証明】x^n+y^n=z^nを、x^n+y^n=(x+1)^n…(1)として、有理数解を求める。
(1)をy^n-1=nx(x^(n-2)+…+1)…(2)と変形する。
(2)の左辺は、(y-1)(y^(n-1)+y^(n-2)+…+1)と、一通りにしか因数分解できない。
よって、(y-1)(y^(n-1)+y^(n-2)+…+1)=nx(x^(n-2)+…+1)は有理数解を持たない。
∴n≧3のとき、x^n+y^n=z^nは自然数解を持たない。

コメントがついて議論が進むと項目ごと消してしまうため、 とうとうコメントがつかなくなった。 そうしたら、 コメントがつかなくても新しい【証明】に取り換えるようになった。

2021-08-27 (5) 19:56:54 +0900


朝日新聞>金融情報面>「この欄の  は大型株で…」を見てしばらく考えた

2021 年 8 月 24 日火曜日づけ大阪本社版。 体調がよくなくて新聞を開く気にならず、隅だけをめくっていて気がついた。

この欄の  は大型株で構成される「TOPIX100」です》とあるのだ。 この空白はなんだろう、とよく見たら、地の色がうっすらと灰色になっている。 この地色のものは、の意味なのだろう。慣れないとわからない。

2021-08-27 (5) 17:28:10 +0900


「龍角散」を裏返したら「飛馬…」と書いてあった、ってことはないよな

「龍角散」o uragaesitara「飛馬…」to kaite aqta, qte koto wa nai jo na

将棋の駒。

2021-08-26 (4) 21:10:21 +0900


NHK ラジオ>高校野球中継>“観客席からの中継”がないので疲れない

NHK razio>kôkô jakjû cjûkei>"kañkjakuseki kara no cjûkei" ga nai no de cukarenai

副反応が少しおさまってからは、寝ながら、NHK ラジオで高校野球中継を聞いていた。 例年と比べて疲れないなと思ったら、“観客席からの中継”がないからであった。 あれは聞いていて疲れる。

2021-08-26 (4) 20:19:36 +0900

それと、視聴者からのメッセージもない

sore to, sicjôsja kara no *message* mo nai

あれも疲れる。ないと助かる。

2021-08-27 (5) 20:00:12 +0900


野球>3 点を取っていて「2 点を返しました」と言ったら 1 点になる?!

jakjû>3 teñ o toqte ite "2 teñ o kaesimasita" to iqtara 1 teñ ni naru?!

3 - 2 = 1 と考えた。 実際はそういう意味ではないが、ではこの「返す」の意味は?  相手が 6 点以上を取っていないとこの言い方はないな。 「借りを返す」といった意味か。

2021-08-26 (4) 20:12:15 +0900


新型コロナウイルスのワクチンによる副反応で熱が出て、寝込んでいました

siñgata korona uirusu no wakuciñ ni joru hukuhañnô de necu ga dete, nekoñde imasita

ようやく復活しました。

2021-08-26 (4) 20:04:24 +0900


フェルマーの最終定理の簡単な証明 6

Fermat no saisjû teiri no kañtañ na sjômei 6

フェルマーの最終定理の簡単な証明.6
2021/08/23 21:55
【定理】n≧3のとき、x^n+y^n=z^nは自然数解を持たない。
【証明】x^n+y^n=z^nを、x^n+y^n=(x+1)^n…(1)とする。
(1)のyを有理数、x=b/aとおく。
(1)を(y^n-1)/n={b^(n-1)+ab^(n-2)+…+1}/a^(n-1)…(2)と変形する。
(2)の分母はn=a^(n-1)となるので、a=n^{1/(n-1)}となる。
(2)の分子は(y^n-1)={b^(n-1)+n^{1/(n-1)}b^(n-2)+…+1}…(3)となる。
(3)のbは、aの有理数倍ではない無理数となるので、xは無理数となる。
∴n≧3のとき、x^n+y^n=z^nは自然数解を持たない。

2021-08-23 (1) 21:58:46 +0900


「線状降水帯」と「洗浄コース、遺体」の発音が同じ(?)

「線状降水帯」to「洗浄コース、遺体」no hacuoñ ga onazi (?)

2021-08-23 (1) 21:25:28 +0900


きょうの Google 検索 [kjô no Google *kɪɛmsak*]

"妨害文章" は 129 件。日本語のサイトに限ると 18 件。 あとは中国語のサイトのようだ。

2021-08-23 (1) 20:38:26 +0900


新型コロナウイルスのワクチン接種(二度目)を受けてきた

siñgata korona uirusu no wakuciñ seqsju (nidome) o ukete kita

きょうのお昼前。 腕を上げると筋肉痛を感じるが、いまのところそれだけだ。

2021-08-23 (1) 20:35:03 +0900


桜田です!>先日の目の不自由な人、みごとに曲がり角で曲がる

Sakurada desu!>señzicu no me no huzijû na hito, migoto ni magarikado de magaru

きょうづけ毎日新聞掲載分。きょうじゅうならネットの上でも読める。

(1) ハルと小夏、もうすぐ始まるパラリンピックにどんな競技があるんだろうと話し合っている。 (2) ハル「あ…こないだの目の悪い人」。白杖をついて歩いている。 (3) いぼいぼのブロックに白杖が当たると、くるりと 90 度曲がる。 (4) ハル「スゴー! パラリンピック優勝!」“なんで曲がり角わかるの!?”。 小夏「金メダル!」。白杖の人“おやその声は”。

先日の 《桜田です!>ハルと小夏、白杖の人を助けて横断歩道を渡ったが逆戻りだった》 を読んでいないとわかりづらいかも。

おそらく、この人は道を覚えていて、 いぼいぼのブロックを目印に左折したものと思われる。

白杖のオト「カツ」の「ツ」の字体がおかしいのは前からのとおり。

「目の悪い人」は、いまでは推奨される言い方ではなかろう。

2021-08-23 (1) 20:21:13 +0900


スマフォへのメール転送は一時的に停止した

sumafo e no mêru teñsô wa iciziteki ni teisi sita

お昼に docomo ショップで設定し直してもらったが、 やはり biglobe からの転送ができない。

いま、biglobe から直接スマフォに送ろうとしたら、送れた。

2021-08-23 (1) 18:20:51 +0900


朝日新聞>フォーラム>「漢字、どう思う?」はあまりおもしろくなかった

Asahi siñbuñ>*forum*>"kañzi, dô omou?" wa amari omosiroku nakaqta

2021 年 8 月 22 日づけ大阪本社版オピニオン面。 識者 (?) 三人の意見は無難。 アンケートに答えた人は二百人もいなかった。(私は参加せず。)

2021-08-23 (1) 18:07:53 +0900


フェルマーの最終定理の簡単な証明 5

Fermat no saisjû teiri no kañtañ na sjômei 5

新しい【証明】。壊れかたがひどくなっている。

フェルマーの最終定理の簡単な証明.5
2021/08/23 09:19
【定理】n≧3のとき、x^n+y^n=z^nは自然数解を持たない。
【証明】x^n+y^n=z^nを、z=x+1とおくと、x^n+y^n=(x+1)^n…(1)となる。
(1)はy=2のとき、xは無理数となるので、有理数解を持たない。
∴n≧3のとき、x^n+y^n=z^nは自然数解を持たない。

2021-08-23 (1) 17:36:44 +0900


スクリーンエディタ>「カーソル下げ」は完成。「カーソル上げ」が途中まで

sukuriiñ edita>"kâsoru sage" wa kañsei. "kâsoru age" ga tocjû made

ここらでいったん整理したほうがよさそうだ。

2021-08-23 (1) 17:26:22 +0900


仁鶴氏死去>朝日は「まぁーるく」、毎日は「ま〜るく」。

仁鶴 si sikjo>朝日 wa「まぁーるく」、毎日 wa「ま〜るく」。

笑福亭仁鶴氏死去のニュース。 朝日は《「四角い仁鶴がまぁーるくおさめまっせ〜」》、 毎日は《「四角い仁鶴がま〜るく、おさめまっせ!」》だった。

2021-08-23 (1) 17:22:08 +0900


ノースリーブに腕章をつけるときはどうすればよいのか

nô suriibu ni wañsjô o cukeru toki wa dô sureba joi no ka

私は着ないから関係ないが。

2021-08-23 (1) 17:21:29 +0900


「特命教授」を「匿名教授」とカン違いしているやつはいないか

「特命教授」o「匿名教授」to kañcigai site iru jacu wa inai ka

2021-08-23 (1) 17:20:51 +0900


まいにちフランス語応用編>「槍で」を「低高(低)」のアクセントで発音

まいにちフランス語応用編>「槍で」o "hiku-taka(-hiku)" no akuseñto de hacuoñ

ご担当の井上櫻子先生はときどき標準語と違うアクセントで日本語を発音される。 8 月 12 日放送分(前の週の再放送)では「槍で」を 「低い高い低い」のアクセントで発音された。

「値段を」を「低高低(低)」のアクセントで発音された。

「不安にかられた」の「かられた」を「低高低低」のアクセントで発音された。

「稼いだ」を「かせえだ」と発音された。

「軽い」を「悪い」のアクセントで発音された。

その翌日分では「腕のいい」を一語でなく「低高低高低」のアクセントで発音された。

疲れたので日本語の聞き取りはこれでやめ。

2021-08-22 (0) 22:45:47 +0900


まいにちドイツ語応用編>「オペレッタ」の「タ」にアクセントをおいて発音

まいにちドイツ語応用編>「オペレッタ」no「タ」ni akuseñto o oite hacuoñ

ご担当の藤井明彦先生の、 最後の拍にアクセントをおく独特な日本語にもだいぶ慣れたが、 8 月 12 日放送分(前の週の再放送)では 「オペレッタ」の「タ」にアクセントがあって、ちょっと驚いた。

2021-08-22 (0) 22:19:27 +0900


英語で日付を書くと 21st, 22nd, 23rd, 24th とうしろが変わる

日本語で「何分」を書くとき 15 huñ, 20 puñ と 「分」が変わるのもこれと同じと考えられないか。

2021-08-22 (0) 21:29:58 +0900


やっぱりスマフォへのメール転送がおかしい。docomo ショップへゆこう。

jaqpari sumafo e no mêru teñsô ga okasii. docomo *shop* e jukô

2021-08-22 (0) 21:24:14 +0900


新日曜名作座>地の文とせりふとで、「松平」のアクセントが違ったようだ

siñ-nicijô-meisaku-za>zi no buñ to serihu to de, "Macudaira" no akuseñto ga cigaqta jô da

いま NHK ラジオ第一放送で。

2021-08-22 (0) 19:49:55 +0900

「聴き逃し」で聞き直してみたら、違った

"kikinogasi" de kikinaosite mitara, cigaqta

松平家の家老、松平ゆきえ》、《高松の松平といえば》と、 途中、地の文に出たが、 一度目は標準アクセント、二度目と三度目が「ま」にアクセント。 いずれも、語っているのは竹下景子である。 一定していないということか。

2021-08-28 (6) 19:34:26 +0900


今月 23 日は処暑、来月 23 日は秋分、再来月 23 日は霜降

koñgecu 23 nici wa sjosjo, raigecu 23 nici wa sjûbuñ, saraigecu 23 nici wa sôkô

職場のとある部屋には三か月分のカレンダーが貼ってある。それを見ていて。

2021-08-22 (0) 17:53:16 +0900


桜田です!>ハル、金メダルをかじった市長を交換すると思い込んでいる

Sakurada desu!>Haru, kiñ*medal* o kaziqta sicjô o kôkañ suru to omoikoñde iru

きょうづけ毎日新聞掲載分。きょうじゅうならネットの上でも読める。

(1) お母さん、(たぶん)近所の主婦にかじった金メダルの話を持ちかける。 その主婦、交換することになったみたいと言う。 (2) お母さん、選手の子、ほんとに交換を望んでたのかな、と言う。 その主婦、あの市長は罪が深い、とりあえず交換よ、と言う。 ハルがそれを聞いている。 (3) 家で。お父さん、あの金メダルどうなったかな、ともらす。 ハル、知ってると答える。 (4) ハル、かじった市長を交換することになったと答える。お母さん、言ってた、と。 そうだっけ、というお父さん。飼いネコの正太郎が顔を出している。

メダルの交換を市長の交換とハルが誤解したのがオチだが、 最初の二コマをよく読み直してみて、ハルがそう誤解するかな、と思った。 無理があると思う。市長を交換、とはふつう言わないし。

2021-08-22 (0) 15:01:13 +0900


スクリーンエディタ>echo なし入力を利用してメインループをつけた

sukuriiñ edita>echo nasi njûrjoku o rijô site *mail loop* o cuketa

と言っても、文字入力はまだできない。q で終了するのみ。

それから、カーソルを現在位置に表示するようにした。

それから、Ctrl+X が押されるとそれを感知するところまで書いた。

2021-08-22 (0) 14:54:58 +0900


職場のとある部屋、およそ 31 ℃

sjokuba no to aru heja, ojoso 31 °C

2021-08-22 (0) 13:37:17 +0900


サンダーバード1号の加速度はどのくらいという設定なのだろうか?

Thunderbird 1 gô no kasokudo wa dono kurai to iu seqtei na no darô ka?

あれだけ速いと、加速度も相当なものになるのでは? それと、 最初のうちは、乗組員から見て真上に上昇してゆくわけで、 加速度は頭の上からかかることになる。

2021-08-21 (6) 22:20:44 +0900


職場の植え込みのユリ、きのう白い花が咲いた

sjokuba no uekomi no juri, kinô siroi hana ga saita

2021-08-21 (6) 22:08:44 +0900


8 月 12, 13 日の NHK ラジオ語学講座は前の週の再放送だった

8 gacu 12, 13 nici no NHK razio gogaku kôza wa mae no sjû no saihôsô daqta

私が聞いているのは 「まいにちドイツ語 応用編」と「まいにちフランス語 応用編」。

2021-08-21 (6) 20:47:46 +0900


桜田です!>お祖母さんとカメちゃん、お盆の“送り”を忘れていた

Sakurada desu!>obâsañ to Kamecjañ, oboñ no "okuri" o wasurete ita

きょうづけ毎日新聞掲載分。きょうじゅうならネットの上でも読める。

よくわからないので詳述する。

(1) お祖母さん、お茶を手に、カタというオトに上を見上げる。 (2) カメちゃんもいる。お祖母さん、ネズミかね‥‥。 (3) カタカタカタ。お祖母さん、そういえば、と何かを思い出す。 (4) お祖母さん、コロナに紛れて送るのを忘れてたよ、お盆終わってた。 カメちゃん、ナマンダブ…。キュウリとナスの乗り物が。パカパカパカ‥‥。

どこがおもしろいのかわからない。

うちの実家では、お盆の終わる日には必ず送り火をたく。忘れるはずがない。 忘れたら仏さまがずっといてくれるなら、送り火をたかない家ばかりになるはずだ。

カメちゃんとお祖母さんは同居しているのか。ますますわからない。

2021-08-21 (6) 19:41:29 +0900


フェルマーの最終定理の簡単な証明 4

Fermat no saisjû teiri no kañtañ na sjômei 4

新しい【証明】。

フェルマーの最終定理の簡単な証明.4
2021/08/21 17:35
【定理】n≧3のとき、x^n+y^n=z^nは自然数解を持たない。
【証明】x^n+y^n=z^nを、z=x+rとおくと、x^n+y^n=(x+r)^n…(1)となる。
(1)はr^(n-1){(y/r)^n-1}=an{x^(n-1)+…+r^(n-2)x}(1/a)…(2)となる。
(2)はa=1、r^(n-1)=nのとき、x^n+y^n=(x+n^{1/(n-1)})^n…(3)となる。
(2)はa=1以外、r^(n-1)=anのとき、x^n+y^n=(x+(an)^{1/(n-1)})^n…(4)となる。
(3)はrが無理数なので、xを有理数とすると、yは無理数となる。x,yは整数比とならない。
(4)の解は、(3)の解のa^{1/(n-1)}倍となるので、x,rが有理数のとき、yは無理数となる。
∴n≧3のとき、x^n+y^n=z^nは自然数解を持たない。

2021-08-21 (6) 17:38:46 +0900


スクリーンエディタ>gotoxy() を使って正しく表示されるところまでできた

sukuriiñ edita>gotoxy() o cukaqte tadasiku hjôzi sareru tokoro made kita

Web メールを使って Windows PC との間でファイルのやり取りができることも確認した。

2021-08-21 (6) 17:22:02 +0900


リードしている側が五回裏の攻撃中に降雨中止の場合、コールドにならない?

*lead* site iru gawa ga gokai ura no kôgekicjû ni kôu cjûsi no baai, *called* ni naranai?

2021 年 8 月 20 日金曜日づけ朝日新聞大阪本社版スポーツ面によると、 前日の高校野球、日大東北(福島)と近江(滋賀)の試合は 《五回裏2死満塁、降雨ノーゲーム》とことだが、 後攻の近江が 1 対 0 でリードしていた。この場合、 五回裏を終えても近江がリードしているはずなので、 五回終了とみなしてコールドゲーム、近江の勝ちになるんじゃなかったっけ?

2021-08-21 (6) 16:09:19 +0900


職場のとある部屋、29 ℃台

sjokuba no to aru heja, 29 °C dai

くもり。あまり暑く感じない。

2021-08-21 (6) 15:11:54 +0900


ふだんと違う PC, ふだんと違うエディタを使うと疲れるので少しお休み

hudañ to cigau PC, hudañ to cigau edita o cukau to cukareru no de sukosi ojasumi

MacBook Air と vi。

2021-08-21 (6) 14:58:25 +0900


Mac>カーソル移動の ESC[n;mH が使えることがわかってホッとした

Mac>kâsoru idô no ESC[n;mH ga cukaeru koto ga wakaqte hoq to sita

画面制御エスケープシーケンスで色づけができるのは何カ月か前に確認した。 だからカーソル移動もできるに決まっていると思い込んでいたが、 つまらぬミスでなかなかできず、あせった。

これができないとスクリーンエディタ計画は“おじゃん”なので。

2021-08-21 (6) 14:29:54 +0900


スクリーンエディタ>Mac の gcc は Shift JIS の文字列に警告を出す

sukuriiñ edita>Mac no gcc wa Shift JIS no mozirecu ni keikoku o dasu

Mac の gcc は EUC を期待しているのか、 Shift JIS 固有の文字列に対し警告が出る。

エラーメッセージ、デバッグ用文字列を英語にして警告が出ないようにした。

2021-08-21 (6) 14:27:29 +0900


スクリーンエディタ開発>Mac にもっていったら「\」が「\」に化けた

sukuriiñ edita kaihacu>Mac ni moqte iqtara "\" が "\" ni baketa

この「いろいろ」の画面から vi の中に貼り付けたら。

次の項目で述べるように、警告が出る。もちろん、意味が違ってくる。 vi での置換コマンドを覚えていないので手作業で直した。

2021-08-21 (6) 13:48:53 +0900


ファミリーマート、ビールはポイントで交換できなくなっていた

FamilyMart, biiru wa poiñto de kôkañ dekinaku naqte ita

2021-08-21 (6) 13:43:24 +0900


筆を加えた項目 [hude o kuwaeta *ɦɔŋmɪuk*]

2021-08-21 (6) 01:48:55 +0900


スクリーンエディタへの最後の習作 --- 次は本物を書き始める予定

sukuriiñ edita e no saigo no sjûsaku --- cugi wa hoñmono o kakihazimeru jotei

適当なテキストファイルを読み込ませ、 冒頭から何バイトの位置が画面上のどこ、とプログラム内で指定すると、 そのように表示するプログラムである。 Windows PC では画面制御エスケープシーケンスが使えないので、 順に書きだすだけである。

「表示開始行の行頭までさかのぼる」がむずかしかった。

#include <stdio.h>
#include <stdlib.h>

#define uchar unsigned char
#define iszenkaku1(X)	((X) > 0x80 && (X) < 0xa0 || (X) >= 0xe0 && (X) < 0xf0) /* Shift JIS 1バイトめ? */
#define min(X, Y) ((X) < (Y) ? (X) : (Y))

#define BUFSIZE 1024

struct Buffer {
  char *fname;         /* ファイル名 */

  int win_row_start;   /* 表示エリアの開始行(注意:行は 1 から始まる。)*/
  int win_col_start;   /* 表示エリアの開始カラム(注意:カラムは 0 から始まる。)*/
  int win_row_end;     /* 表示エリアの終了行 */
  int win_col_end;     /* 表示エリアの終了カラム */

  uchar *buffer;       /* バッファへのポインタ */
  int buf_size;        /* バッファ最大サイズ */
  int text_size;       /* テキストのサイズ(バイト数)*/
  uchar *curpos;       /* バッファ内の現在位置 */
  int curlin;          /* 現在行番号 */

  int tab_stop;        /* タブを何カラムに展開するか */

  int cursor_row;      /* カーソル位置(行)*/
  int cursor_col;      /* カーソル位置(カラム)*/
};

void display(struct Buffer *bp);
int pos2col(uchar *str, uchar* pos, int tab_stop);
void disp(struct Buffer *bp, uchar *str, int disp_start, int disp_end, int tab_stop);

int main(int argc, char *argv[]) {
  int i, ch;
  FILE *fp;
  struct Buffer *bp;

  if (argc == 1) {
    fprintf(stderr, "ファイル名をつけて起動してください.\n");
    exit(1);
  }
  if ((fp = fopen(argv[1], "r")) == NULL) {
    fprintf(stderr, "ファイル %s が開けません.\n", argv[1]);
    exit(1);
  }
  if ((bp = malloc(sizeof(struct Buffer))) == NULL) {
    fprintf(stderr, "メモリ不足です.\n");
    exit(1);
  }
  bp->fname = argv[1];
  bp->buf_size = BUFSIZE;
  if ((bp->buffer = malloc(bp->buf_size)) == NULL) {
    free(bp);
    fprintf(stderr, "メモリ不足です.\n");
  }
  for (i = 0; i < bp->buf_size && (ch = fgetc(fp)) != EOF; i++) {  /* ファイル読み込み */
    bp->buffer[i] = ch;
  }
  if (i == bp->buf_size) {
    fprintf(stderr, "ファイルが大きすぎます.\n");
    exit(1);
  }
  bp->text_size = i;
  fclose(fp);

  printf("ファイル名:%s\n", bp->fname);            /* デバッグ用出力 */
  printf("バッファサイズ:%d\n", bp->buf_size);
  printf("テキストサイズ:%d\n", bp->text_size);
  for (i = 0; i < bp->text_size; i++) {
    putchar(bp->buffer[i]);
  }
  putchar('\n');

  bp->win_row_start = 1; bp->win_col_start = 0;
  bp->win_row_end = 4; bp->win_col_end = 11;

  bp->tab_stop = 4;

  bp->curpos = bp->buffer + 0;                      /* ここの数値をいろいろ変えてデバッグする。ただし */
  bp->cursor_row = 1; bp->cursor_col = 0;           /* あり得ない組み合わせだと結果は保証されません。 */

  display(bp);
}


/* 全体を画面表示。現在位置とカーソル位置があり得ない位置だと、無意味な結果になるかも */
void display(struct Buffer *bp) {
  int i, j, hidden;
  uchar *p;

  /* まず、左に何カラム隠れているか計算する */
  for (p = bp->curpos; p > bp->buffer && *(p-1) != '\n'; p--) {  /* 戻って行頭をさがす */
    ;
  }
  hidden = pos2col(p, bp->curpos, bp->tab_stop) - bp->cursor_col; /* 何カラム、左に隠れているか? */

  p = bp->curpos;
  for (i = 0; i < bp->cursor_row; i++) {         /* 表示開始行の行頭までさかのぼる */
    while (p > bp->buffer && *(p-1) != '\n') {
      p--;
    }
    p--;  /* ここで p は bp->buffer - 1 になることもあるが、C 言語の規約により OK(だったはず)*/
  }
  p++;

  for (i = bp->win_row_start; i <= bp->win_row_end; i++) {
    if (p >= bp->buffer + bp->text_size) {  /* テキストの終わりを超えた場合 */
      for (   ; i <= bp->win_row_end; i++) {  /* 残りは空行で表示する */
        for (j = bp->win_col_start; j <= bp->win_col_end; j++) {
          putchar('&');
        }
        putchar('\n');
      }
      break;
    }
    disp(bp, p, hidden, hidden + bp->win_col_end - bp->win_col_start + 1, bp->tab_stop);
    putchar('\n');
    while (p <= bp->buffer + bp->text_size && *p != '\n') {  /* 次の行へ */
      p++;
    }
    p++;
  }
}


/* 文字列 str 内の pos が何カラム目かを返す。ただし tab は tab_stop ごとに                   */
/* 展開されるものとする。*pos が全角文字 2 バイト目の場合は無意味な値を返す。                */
/* 【ノート】void disp(uchar *str, int disp_start, int disp_end, int tab_stop) の一部と似る。*/
int pos2col(uchar *str, uchar* pos, int tab_stop) {
  int col = 0;
  uchar *p = str;

  while (p < pos) {
    if (iszenkaku1(*p) == 1) {
      col++; p++; col++; p++;
    } else if (*p == '\t') {
      col = (col / tab_stop + 1) * tab_stop; p++;
    } else {
      col++; p++;
    }
  }
  return col;
}


/* str を画面に表示。ただし disp_start カラムめから disp_end カラムめまで。       */
/* 半角文字、全角文字、tab に対応。tab は tab_stop おきに設定されているものとする */
/* ('@', '#', '!' などはのちにはスペースで置き換える予定。)                     */
void disp(struct Buffer *bp, uchar *str, int disp_start, int disp_end, int tab_stop) {
  int col;
  uchar *p;
  int spaces;  /* 冒頭に置かれるスペースの数 */

  p = str; spaces = 0;
  col = 0;

  while (col < disp_start && p <= bp->buffer + bp->text_size && *p != '\n') {   /* 隠れている部分をスキップ */
    if (iszenkaku1(*p) == 1) {
      col++; p++;
      spaces = (col == disp_start) ? 1 : 0;
      col++; p++;
    } else if (*p == '\t') {
      int tmpcol = (col / tab_stop + 1) * tab_stop;
      spaces = (col > disp_start - tab_stop && tmpcol > disp_start) ? min(tmpcol - disp_start, disp_end - disp_start) : 0;
      col = tmpcol; p++;
    } else {
      col++, p++;
    }
  }

  while (spaces--) {                              /* 行頭のスペースを出力 */
    putchar('@');  /* ここに col++ は不要。上ですでに増やしてあるので */
  }

  while (col < disp_end && p <= bp->buffer + bp->text_size - 1 && *p != '\n') {   /* 文字の表示 */
    if (iszenkaku1(*p)) {
      if (col != disp_end - 1) {
        putchar(*p++); col++; putchar(*p++); col++;
      } else {
        putchar('#'); return;
      }
    } else if (*p == '\t') {
      int tmpcol = (col / tab_stop + 1) * tab_stop;
      while (col < tmpcol && col < disp_end) {
        putchar('@'); col++;
      }
      p++;
    } else {
      putchar(*p++); col++;
    }
  }
  if (col > disp_start) {                     /* 残りのスペース出力、途中まで表示した場合 */
    while (col++ < disp_end) {
      putchar('!');
    }
  } else {                                    /* スペース出力、完全に左に隠れている場合 */
    int i;
    for (i = disp_start; i < disp_end; i++) {
      putchar('$');
    }
  }
}

2021-08-20 (5) 23:31:14 +0900

出力例(一部)

sjucurjokurei (icibu)

abc!!!!!!!!!
あいうえお!!
0@@@123!!!!!
&&&&&&&&&&&&

テキストは「abc\nあいうえお\n0\t123\n」である。

2021-08-21 (6) 01:04:13 +0900


すのもの Sunomono