間違いだらけのseki_yo式C言語

「もしかして 参考になれば」って、ならねーよ。
4
怒らない白井(仮想軒と須雷堕は除く) @tatsuvar

@engeikana 引数として何も意味のあるデータを引き渡していない、単なるローカルな文字バッファを確保する目的であるのが可読性を落としていますね。rev_str()内でchar cを確保するべきですね「

2017-09-02 14:22:14
園芸家 @engeikana

@tatsuvar 「引数をローカル変数の宣言として利用」と好意的に解釈することもできますが、単にseki_yo氏が基本的なことを理解していないだけだと思います。 twitter.com/engeikana/stat… でも同じ間違いをしています。

2017-09-02 14:29:12
園芸家 @engeikana

ここ笑うところな。 関数の引数clengthの値を使わずに、for (clength = 10; って初期化してる。 d.hatena.ne.jp/sekiyo/2004060… pic.twitter.com/dvZUQxPDEj

2017-08-21 23:33:49
園芸家 @engeikana

seki_yo氏が問題なのは、原書のプログラムをちょいちょい改悪しているところ。 原文の変数名celsiusを、"centi_glade"とわざわざスペルミスしてまで書き換える必要があるのか? www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/uDLhV2hypH

2017-09-02 15:42:30
拡大
拡大
園芸家 @engeikana

seki_yo氏による原書改悪の例。else if を知らないのか。 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/pIMSrNkVGo

2017-09-02 15:55:13
拡大
拡大
園芸家 @engeikana

原書にはないseki_yo氏オリジナルコードのダメなパターン。ヘッダファイルで外部変数を初期化すると、インクルードしたモジュールそれぞれにおいて変数が定義されるので、リンク時にエラーになるwww4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/i6JsCRTL95

2017-09-02 16:07:51
拡大
園芸家 @engeikana

原文にあった、文字列の初期化と文字列によるポインタの初期化との違いに関する重要な説明や、strcmp実装のC言語らしい省略化の過程が、ごっそり抜け落ちている。K&Rを読む意味ないじゃん。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten…

2017-09-02 16:51:58
園芸家 @engeikana

原書にない実装すな。変数 i が未使用。てか、配列版とごっちゃ。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/x06C5tM8cU

2017-09-02 17:05:41
拡大
園芸家 @engeikana

原書にない間違いを書くな。「ポインタの配列」は「ポインタのポインタ」ではないよ。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/1H0d65Dlrf

2017-09-02 17:14:55
拡大
拡大
園芸家 @engeikana

Illegalを "Illigal" とするスペルミスを繰り返す、の巻。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/ZGXWnY5yQE

2017-09-02 17:23:57
拡大
拡大
怒らない白井(仮想軒と須雷堕は除く) @tatsuvar

@engeikana 仰る通りです。動きはすれどもmain()の変数sのせいでワーニングが出る筈です。再帰呼び出しの美しさを理解していればローカル変数を宣言する筈です。勿体無い。

2017-09-02 18:06:11
園芸家 @engeikana

@tatsuvar ともあれ、seki_yo氏のC言語に関するノートをちょっと読めば、「はぁ?」「おいおい」「ちょっwwww」の連発になること請け合いです。

2017-09-02 18:19:55
怒らない白井(仮想軒と須雷堕は除く) @tatsuvar

@engeikana 電子計算機から、きちんと体系的に学ぶ機会がなかったのでしょうねぇ。でも(移植するなど)人のプログラムを読んで学ぶチャンスもあった筈なので、同情はしません。

2017-09-02 19:35:20
魔系犬/西保男・自称シャカニセッポニスト @ronja_yty

@tatsuvar @engeikana プログラミング言語は門外漢、というかかつて挫折した身なんですけど、こういうおかしなプログラムって実行したらソレがわかるモンではないんですか?

2017-09-02 20:07:00
園芸家 @engeikana

@tatsuvar 独学だとしても、2004年ごろには、C言語の入門書は、すでに時代遅れなほど成熟していましたし、オンラインの無料の記事も豊富でした。

2017-09-02 22:26:01
園芸家 @engeikana

@ronja_yty @tatsuvar すぐに問題がわかるものならまだいいのですが、特定の条件(例えば、1行が長すぎる場合とか、想定外のデータが入ったときとか)に動作がおかしくなったり、不正終了する場合が困ります。seki_yo氏みたいなシッタカで真摯に反省しない人が、一番たちが悪いバグを作り込みます

2017-09-02 22:28:11
魔系犬/西保男・自称シャカニセッポニスト @ronja_yty

@engeikana @tatsuvar なるほど…という事は、偽ミッキー氏は現場で実働した事はない、蘊蓄をたれる資格などない、その程度の人間と断定していいようですね

2017-09-02 22:36:44
園芸家 @engeikana

ものすごいデタラメが書いてある。 間違いだらけのseki_yo式C言語。 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/Out9rlbbSx

2017-09-03 02:55:54
拡大
園芸家 @engeikana

元の課題6.3(wakhok.ac.jp/%7Ekanayama/C/…)を、なぜか「返り値」が真という設問に勝手に改変。 ちなみに条件式として真になるのは「(2)0」以外なので、プログラムも間違い。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/Vcr5napcLU

2017-09-03 03:37:21
拡大
拡大
園芸家 @engeikana

それにしても、「正解ならループを中断。それ以外ならループを継続」という単純なロジックを、わざわざ「不正解ならループを継続。それ以外ならループを中断」とわかりにくいロジックにして実装するのって、曲解力旺盛で論理的思考が苦手なseki_yo氏らしいpic.twitter.com/V6aJ9baWsq

2017-09-03 03:43:25
拡大
園芸家 @engeikana

(break は余分だったかなあ) って、あのぉ、余分なのはfor文ですから。てか、条件式を1と比較するのはキモい。これは元の教材(wakhok.ac.jp/%7Ekanayama/C/…)が問題。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/3TINfJYcy0

2017-09-03 03:55:28
拡大
園芸家 @engeikana

謎の場合分け。 for (sum = 0, i = n; i < max; sum += i, i += n) ; で済む簡単な計算なのに。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/WFJ0NJF06n

2017-09-03 04:15:19
拡大
園芸家 @engeikana

ま、本人もすぐあとで気づいてるみたいだが。 ただ、i=0からスタートしているので1回余分にループを回るのがマヌケpic.twitter.com/Ud8eRqCsKm

2017-09-03 04:23:28
拡大
園芸家 @engeikana

入力値aをチェックする前に b = b + a; で使っちゃってるわぁ。てか、scanfのエラーチェックは戻り値でやるんだけど。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/ZvS8PMCIZr

2017-09-03 04:34:02
拡大
園芸家 @engeikana

c++; した直後に c - 1 として使うのは、控えめに言ってもマヌケだぞ。 間違いだらけのseki_yo式C言語 www4.kcn.ne.jp/~yoitiro/haten… pic.twitter.com/AOHhG0A9g7

2017-09-03 04:40:29
拡大