サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
新内閣発足
www.pro.or.jp/~fuji
■ほとんど同じ■ それぞれ、「対」になるファイルの相違点は何でしょうか?一方にはexternがあり、他方にはな いだけでしょう。これならば、一方のファイルをコピーし、externの部分だけを書き換えれば、他 方のファイルができてしまうでしょう。きわめて機械的な単純な変更作業ではないですか。 我々は、機械的な作業だけが何よりも得意なコンピュータのプログラムを組んでいるのですから、 このような作業は、当然コンピュータにやらせるべきです。では、どうすれば良いでしょうか。 まず考えられるのが、externのついているファイルから、externを取り除いてしまうツールを作 ることでしょうか。これでも、ちょっと問題になるのは、グローバル変数に初期値が代入されてい る個所があることです。この部分は、逆になるので、一方から他方を単純には作れません。 では、両方を含むファイルを作り、ツールで、内部で宣言する
今まで多数の人のプログラムを見てきました。動かないから面倒を見てくれ (実際は尻拭い)と言われて人のプログラムをデバッグしたり、その他色々の ことをしてきました。プログラミング診断室の連載も同じですが、とにかく下 手な人は、ものすごい努力をしてプログラミングし、デバッグして悩んでいる のです。 手間のかかるように、手間のかかるようにとプログラムしています。わざわ ざ作らなくてもシステムが標準で提供しているものを自作し、バグを入れて四 苦八苦していたりします。信じられないような何千行にもおよぶ長大な関数を 作ってデバッグしていることもあります。 見ていると、とにかく「作る」ということだけにしか注意がいっていないの です。作業をしていること自体、悩んでいること自体が仕事になっている場合 が多いのです。実際に希望のシステムを作り上げるうえで発生する問題点とか の調査とかに頭がいっていなくて、最後
■構造的欠陥とは■ 「構造的欠陥」といっているのは、多数のソースファイルの全体におよぶ欠陥のことです。ここ では特に、プログラム全体から使われるため、たった1つのヘッダーファイルの善し悪しがプログ ラム全体に与える甚大な影響について説明します。ヘッダーファイル(.h)を作る時の常識を知らな かったために涙ぐましい苦労をしてバグを入れてしまうという欠陥です。 元のプログラムでは、先頭で標準以外のヘッダーファイルも使っていますが、さらにいくつかの 変数が別にわざわざextern宣言されています。さらにグローバルな変数の宣言も行なわれています。 大きなプログラムでは、プログラム全体で共通に使うような変数、配列、マクロなどが多数必要 になります。これをいかにちゃんとするかが、プログラムの「生死」を決めてしまいます。 抽象的説明で、理解しにくいでしょうね。 ■具体例■ では、変数 Cursor がど
では、今回のプログラムの問題点をチェックしていきましょう。まず目につくのが、キャストの 多さです。(float)とか、(double)とか、(long)などと、かっこの中に「型」だけが書かれている ものです。C言語では、この(float)などという、型だけをかっこでくくったものも演算子として 扱われます。C言語では、キャストによる型変換は必要不可欠ですが、キャストをリスト全体にいっ ぱいばらまかれてしまうと、非常に読み辛くなります。 ■代入時の自動的型変換■ C言語では、演算あるいは代入などにおいて、自動的型変換(暗黙的型変換)が行なわれます。 オリジナルでは、代入のとき次のようにキャストしています。 60 w1 = (double)a; 95 *cts = (float)1.0; 113 *xx = (long)xd; 60行は、float型のaをdouble型のw1に代入するために、(
今年から新卒採用の開始時期が変更になり、就職活動に不安を感じている学生もいると思う。 そのため、インターネットをして、仕事とはどういうものか知っておきましょう、という話が有る。 でも、その中には、巧妙にブラック企業が仕掛けた罠が待っていたりするので、注意しよう。 とくに、IT系のブラック企業の中には、インターンシップに非常に協力する振りをしているところもあるようだ。 というか、実際に見てしまったのだ。 日本では、インターンシップを大学3年の夏休みにやることが多いようだ。 なぜだか、工学部の学生でも、インターンシップをするまで、一度も工場見学などしたことがなく、 工場がどんなところか知らないという驚くべき現象には何度も遭遇した。 何で工学部に進んたのか疑問である。 IT系の場合、ブラック派遣業者が、若い派遣できそうな人を常に探している。 こういう世界に入り込んでしまうと、なかなか大変だろう。
コンピュータで日本語を扱おうとすると、いちばん問題になるのは漢字である。一般の ワープロでは、6300字を超える漢字が使えるので、もう十分と考えている人も多い。 特に、コンピュータ技術者に多い。 しかし、今のコンピュータの漢字では、残念ながら多くの分野で記述できないものが出 てくる。まず、人名、地名、社名が大問題である。6300字程度では、とてもこれらの 固有名詞を網羅できない。適当に別の字を使わなければならない。それで、役所の事務処 理をコンピュータ化するため、あらゆる固有名詞をコンピュータの字に変えさせようとい う動きがある。まあ、はっきりいって無茶苦茶である。 難しい歴史書とか漢籍、教典の類いだけが今のワープロの漢字で取り扱えないと思って いる人がいるが、とんでもない。小学校の教科書だって困るのである。森鴎外の「鴎」は 略字である。こんな字で印刷している本は、まず無い。「区」は「區」
暇でも、暇でなくても、パズルプログラミングはやるわけだが、 今年はどうしたかことが、この3ヶ月の間、パズルプログラミングがまったく出来なかった。 野暮用がやたらに出来てしまったからであるが、3ヶ月もの間自分でプログラムを思われるもの (自分で納得していないプログラムは何万行書こうとも関係ないので計算には入れない!)を 書かなかったので、プログラムをかなり忘れた気がする。 おかげで、プログラミングの能力が落ちたに違いない。 それに、肩や指の体力も落ちてくるし、頭も働かなくなる。 それに、そろそろ、パズルを觧く解法テクニックを考えるのも面倒になってくるではないか。 考えてみるに、今迄のパズルプログラミングは、自分の頭で解法テクニックを考えて、 それをプログラムしていただけに過ぎない。要するに、コンピュータは何も考えず、 人間様が必死で考え、必死でプログラムしたのを、コンピュータは粛々と処理して
今は情報が溢れている時代である。殊にコンピュータに関しては、雑誌も本 も氾濫しており、主要なものに目を通すだけでも大変だ。さらに、パソコン通 信だ、インターネットだといって誰でも自由に発表できる媒体までできた。本 や雑誌は、以前は紙に説明やプログラムを並べただけだったのが、フロッピー が付属するだけではなく、CDがついていたりする。CDの中には、膨大なデー タが入っており、じっくり眺めるなど、とてもできるものではない。 これだけ情報を簡単に入手できる時代だから、各プログラマが必要な技術情 報を入手し活用すると思うのが当然だが、実際はそういうのとは程遠い状態の ようだ。一部の先端的技術者は非常に情報収集に熱心である。でも、これは1 %以下の極めて例外的なプログラマ達に過ぎない。 雑誌などで記事を書いたりしているのは、この1%以下の極めて特異な技術 者集団であり、この集団を基準に判断してしまう
最後に、この人ならではの特徴的なコーディングを紹介しましょう。リスト11−5を鑑賞して ください。中略していて申し訳ありませんが、このifの条件がどうなっているか、しっかり見極め てください。 1 switch ( event_action( event ) ) 2 { 3 case LOC_MOVE: 4 if ( display_mode == DISPLAY_DISP || 5 display_mode == DISPLAY_LINE || 6 master_menu_mode == MASTER_ANGLE || 7 master_menu_mode == MASTER_HORIZONTAL || 8 master_menu_mode == MASTER_VERTICAL || 9 ( master_menu_mode >= MASTER_DRAW_LINE && 10 maste
ソフトウェア産業、とりわけプログラマの派遣は激減し、長期自宅待機は恵まれている 方で、解雇になるのが普通の時代である。零細なプログラマ派遣会社やソフトハウスなど はどんどん潰れてしまった。今後も、きっと潰れ続けるだろう。 だが、今までの方が無茶苦茶だったのだ。とても技術者と言えるレベルにない者を派遣 して、金だけはしっかりふんだくっていたのだ。全くコンピュータを知らない人間を採用 して、次の日からコンピュータ技術者として派遣するのは当り前。どうせ派遣される相手 の会社はコンピュータに関してはずぶの素人、誰を派遣しようと分かりはしない。こんな 状況すらあったのだから、派遣を受けた会社が可愛そうである。有能なのが来たら、大変 な掘り出し物である。 ソフトウェア産業は構造不況といっても、有能な人間は全然足りない。有能な人間は、 忙しくて堪らない生活を今でも送っている。コンピュータ産業の変化は激し
そろそろプログラムから足を洗い、優雅な生活、 あるいはまっとうな生活をしたいと思っていたのだが、 そんなことを思ったためか、 以前にも増してプログラムをいじる機会が増えてしまった。 プログラマは怠惰であれ、横着であれというのは知っているだろうか。 作業をするのに、「努力しました」ではなくて、 うまい方法を見つけて、たいした作業をしなくてもすむ怠惰な横着な方法でやりました、 というのが望ましいのである。 手作業で、同じ事を何度も何度もくり返さなければならなくなっても、 それをちっとも面倒と思わないプログラマ、プログラマ予備軍が何故か世の中にはいる。 あきれたものである。怠惰、横着、楽、、、については、ネット上にも 多数の情報があるので、これ以上は略す。 さて、今日は、別のこと、「プログラマは頭が悪い方が良い」ということについて考えてみよう。 一般には、コンピュータをあやつるプログラムを書くプ
リストを見て、何か変だと感じませんでしたか?行番号が途中で飛んでいる ので、きっと編集ミスか、著者がリストの一部(大部分)を忘れてしまったと か感じたのではないでしょうか。 リストの左端の行番号によると、関数 SendTo Device は、何と2458行もあ るのです。これだけ長い関数を掲載すると、本文がなくなるどころか、雑誌1 冊分のページを消耗しつくしてしまいます。それで、やむを得ず「中略」とい うことにしました。 私は、かれこれ10年もの間、C言語とつきあっていますが、これだけ長い関 数を見たのは生まれて初めてです。口うるさい仲間に見せたり、ネットで流し たら、"Never Ending Function"とか、「最長不倒関数」とか言われてしまい ました。 これだけ長い関数、相当高性能なエディタと、一度に相当の行数を出せるディ スプレイがないと、スクリーン・エディタで編集などできる
構造体をいっぱい使いだすと、構造体の各メンバーが、構造体の先頭から何 バイト離れているか(バイトオフセット)が欲しくなることがよくあります。 このとき、どのように苦労してバイトオフセットを求めたかを示す絶好のプロ グラム例があります。exdef.h(リスト5−10)が構造体宣言で、exdef2.h (リスト5−11)がバイトオフセットをマクロに求めるものです。実際のファ イルは構造体の宣言が延々と並んでいるので、先頭の2つの構造体の部分まで を示します。 構造体のメンバーの名前が全部大文字になっているのは、マクロみたいで気 味が悪いですね。できれば小文字で、もっと長い名前にしたいものです。まあ、 今回はその辺りの書き方には目をつむることにします。 1 /*------------------------------------------------------*/ 2 /* (1) CA
2008年1月23日 さて、今日は、ちゃんとパソコン初心者らしく、パソコン遊びを紹介しよう。 Google Earthについtは、 いまさら説明する必要はないだろう。まだ動かしていない人は、 取りあえず動かしてみよう。今日紹介するのは、この Google Earth を拡張(?)して遊ぶというものだ。 電子国土なるものを、 政府とういうか某国の、国土地理院が用意してくれていて、 国民たるもの、当然のように電子国土を使う権利が憲法で保証されている(のかな)。 今日紹介するのは、 電脳日本の旅 といって、国土地理院の用意している地図を Google Earth に貼り付けるのである。 技術的なこととかは、電脳日本の旅の説明を読んでほしい。 自分のパソコンにソフトをインストールすると非常に快適に遊べるのだが、 今の時代、インストールとかは何かと都合が悪かったりする。 また、そういう面倒なことをや
「天網」とは、天が世の理非を正すために張った網のこと。「恢恢」とは、 広く、ゆったりとしているさま。「天網恢恢疎而不漏」(老子)とは、天網 の目は粗いが決して悪人を逃しはしない、という意味である。インターネッ トは人の手になる網であるが、使われ方によっては、天網に近い威力を発揮 することもあろう。 こんな難しい言葉は、当然私は知らない。という訳で、本箱の中を物色し たら、コンピュータ関係の書物の中から、『マンガ老荘の思想』野末陳平監 修を見つけた。何でこんな本が本箱の中から発掘できるのかは置いといて、 話をこの本に従って続けよう。 日本では「孔子」が有名であるが、孔子にいちゃもんをつけた、あるいは 思想を異にしたのが荘子、老子である。孔子、論語は、いかにも教科書的な、 道徳的なところがあって、どうもウサン臭さがただよっているように思うの は私だけだろうか。 「無為自然」を説いた老子は、私に
2006年11月9日 みんな児童、学生のころ、作文は好きだったであろうか? 私は、「作文」にも書いている通り、 苦手どころか、何とかして逃れる方法はないかと考え、 文集からぱくっていた有様だった。 要するに、筋金入りの作文嫌いだったし、同級生も国語教師も良く知っていた。 そもそも、なんで作文を書かなければならないのか、さっぱり理解できなかった。 本はそれなりに読んでいたが、でも、読書感想文を書くために読んでいたのではなかった。 そんな義務が発生するのなら、読むこと自体を放棄したい状態だった。 社会人になって、間違ってパソコン出版社の関連企業に飛び込んでしまった。 パソコン出版社なら、まだ誰も触ったことがないパソコンに触れて、皆に自慢できたり、 自己満足に思いっきり浸れると思ったからである。そして、実際その通りだった。 その通りを通り越して、まだ製品として世に出る前のパソコン、それもあちこち
Cに限りませんが、下手な人の書いたプログラムは本当に汚ない。もちろん 変な動きばかりしてくれます。「もうプログラムを組むな。邪魔だから消えて ろ」と言いたくなるようなプログラマがいるものです。全ソースを廃棄処分に し、ゼロから作り直した方が絶対に早いし、安いし、信頼性も向上すると思わ れることが度々ありました。 私は、コンピュータを始めたころから幸運に恵まれ、かなり優秀な技術者達 の中に身を置くことができました。そこではプログラムを組むだけではなく、 論文や記事を書いたり、単行本を執筆するような人達も大勢いて、仕事関係や 仲間内にはあまり下手なプログラムを組む人はいませんでした。 そしてパソコンが普及し、プログラミング人口が増大し、コンピュータにつ いて勉強していない人達もプログラムを組むようになりました。私も最初はア マチュアプログラマだったので、より多くの人達がプログラムを組めるように
『Cプログラミング専門課程』目次/ 第4章メモリ 4.6 const修飾子 (1) ANSI C には「const修飾子」が導入されています。ANSI C 準拠でないCで も多くのCに導入されていて、未導入のCコンパイラは少ないでしょう。これ は要するに、定数だ、変化はしない、と宣言するものです。const修飾子はコ ンパイルの最適化を促すだけではなく、プログラムの安全性の向上、バグの撃 退に非常に効果があります。実際には最適化の効果は微々たるもので、主眼は 安全性、信頼性の向上です。 しかし、const修飾子についての解説はどのCの本を見てもわずかで、軽視 も甚だしい。少しでもプログラムの信頼性向上を図ろうとすれば非常に重要な 助っ人であり、これを無視するのは、わざわざ信頼性向上のためにC言語に導 入された機能を生かさないことになります。そういう理由で、本書ではconst を特に詳しく解
その他にも、気になる個所はいっぱいあります。以上に述べたことほど重要ではありませんが、 でも、相当におかしい点です。プログラムの流れに沿って調べて行きましょう。 ■引数の書き方■ 66行を見てください。 関数call_melsecの第2引数はcccです。cccという名前のつけ方は実にいい加減ですね。 unsigned char ccc[200]; としていますが、文字列引数にサイズを直接書くのは相当「異常」と言えるでしょう。ふつうは、 unsigned char ccc[]; または unsigned char *ccc; と書くところでしょう。 ■signed と unsigned■ char型を使用するとき、必ず unsigned char として使っています。 char型は、signed になるか、unsigned になるかはコンパイラによって異なります。ただし、通 常の文字処理では
楽しいはずのパソコン生活を始めたばかりの初心者です。初心者ですから、 もう分からない事がいっぱいで、ドジな事が次々と起こって、悲鳴を上げたり、 恐怖におののいたりしております。それらの事件を思い出して、つれづれなる まんまにここに書き殴ってみたいと思います。 昔話を中心に書き始めたのですが、昔のことを思い出せないのと、次々と 失敗を繰り返すので、最近の失敗も随分増えてきました。 そろそろ待望のリタイアかな (^_^) 2002年12月26日に1億ヒット突破 暇人、跡を断たず。それ以上の計算は放棄。 2015年 2月11日 厚生労働省の就職応援サイトで紹介されるブラック企業 2月 8日 秋葉原土産は嬉しいが、産学連携ビルはもぬけの殻 1月31日 ブラックSI企業のインターンシップに要注意 1月26日 EPUBでの電子出版をしてみて(下) 1月24日 EPUBでの電子出版をしてみて(上) 1
『Cプログラミング専門課程』目次/ 第4章メモリ 4.2 バイトオーダー (1) 整数型(char,short,int,long)のデータも、浮動小数点型(float,double) のデータもメモリに記憶されます。このとき、コンピュータにより記憶のされ 方が異なります。1つのデータが1バイトより長いとき、複数のバイトに記憶 されます。このとき、コンピュータ(より正確にはCPU)により、記憶のされ 方が異なります。このときの記憶のされ方、とくにバイト単位での記憶のされ 方を「バイトオーダー」と呼びます。 次のプログラムは、メモリ上の指定アドレスから指定バイト数だけのメモリ の内容を16進数で表示する関数prmemを用いて、基本データ型がメモリのどこ に確保されているかを調べます。ここで使用しているコンピュータでは、 int 型のサイズは4バイトになっています。 1: /* basorder
本ページのスリザーリンクの解法教室の解き方の内容については、無断転載を禁じます。 全ての著作権は、藤原に帰属します。 ホームページ/ JAVAページ/ JAVA問題集/ 戻る
リスト8−1を見てください。C言語のようであって、そうでなさそうな、とにかく奇妙なコー ディングです。関数本体の開始の{もなければ、終了の }もありません。どうも、その代わりに、 BEGINと ENDがあるみたいです。その他にも、THEN, ELSE, ENDIF などの、本来C言語では使うは ずのないものがいっぱいあるからです。これを書いたプログラマは正気なのでしょうか。 1 chkarg( argc , argv ) /* Parameters check */ 2 3 int argc ; 4 char *argv[] ; 5 6 BEGIN 7 8 int argn /* Number of arguments */ 9 , opt ; /* option character */ 10 11 for ( argn = 1, paramnum = 0 ; argn < argc ;
読書感想文コンピュータ編 リスト|評価基準 書評:C,C++ C言語の本は、流行のようで、いっぱい出版されていますが、内容には著し い差が見られます。いわゆるC言語の入門書はこんなにたくさん出版される必 要があるのかと思われる状態になってきました。そのためか、最近、「C言語 書法」に関連する題名の本が何冊か出版されているので、目についた本をここ に紹介しておきます。 これから整備します。 底本(?)は、「Cプログラミング診断室」です。 リスト ■C 『やさしいCプログラミング』 仲川勇二、朝倉書店、2300円 "The C Programming Language" B.W.Kernighan/D.M.Ritchie, Prentice Hall 『プログラミング言語C』 B.W.カーニハン/D.M.リッチー、共立、2800円 『Cハンドブック』 Morris I.Bolsky著、石田晴久
Cool with less clues Please enjoy our advanced puzzle technology. The World Hardest Sudoku I solved this by stupidest method! NP Generator V2.0 NP Generator V1.0 Small version. This will run on Nintendo DS in 2009. New(2014-11-14) 16x16: less hints, more easy. The minimum number of hints is currently 56 in 16x16 Sudoku. The following problems is 56-hint problem. Furthermore this problem is easy as
I can provide you original cool problems for your newspaper, book and etc. For queries: Do you want to know how I made these problems? Kobito-san made all problems on this page for me. I'm sure Kobito-san uses a magic tool. Kobito-san uses this tool (left photo). Press Conference on September 6 at Akihabara Number Place Vol. 3 problmes with 19 and 18 clues You can enjoy my puzzles here. 18-Clue Pu
1995年11月21日 もう十年以上BASICという言語を使っていないが、昔は、貧乏人(アマ チュア)が自由に使える言語といったらこれくらいしか無かった。私も貧乏だっ たので使っていた。 私がどの程度使っていたかというと、ほんの短い数行から十数行の命令をテ ストするためくらいであった。まあ、BASICの入門書にのっている、命令 の解説に付属してある、その命令の動作説明のためだけの短いやつ。あれと同 様の短いプログラムばかりを毎日毎日やっていた。 実は、私はBASICであまりプログラムを作ったことはないのです。昔の パソコン(マイコン)雑誌には、長いBASICのプログラムが良く載ってい たのですが、とてもああいうのは入れる気がしませんでした。だから、カセッ トに入ったプログラムを手に入れ、ロードしては動かして、「なんだ、また動 かん」とつぶやいていた程度しかBASICの使用経験はありません。
本書は、プログラミング言語Cを、他の解説書とはまったく違う切口で説明 した本である。全ては実践あるのみ。紙上の空論を排し、あくまで実際的な実 験のやりかたを示しながら、C言語の本質に迫ろうとした。 最近の言語の書が、できるだけメモリを意識させないようにしているが、本 書ではメモリを明示的に意識させることを通して、C言語を解説している。そ れにより、C言語で難しいとされるポインタなどを具体的に示した。 実験は、スタックを破壊するような実験もわざと行なっている。初心者が犯 す誤りを実際に実験し、メモリ内容がどう変化して行くかを細かく追いかけ、 誤りの理由をきちんと示すことに専念した。 今回の公開では、本書のもっとも重要な部分、『第4章メモリ』を順次誰で も見られるようにして行く。乞う御期待! 1996年6月3日 公開テキスト はじめに 第0章 準備 第4章 メモリ 正誤表 はじめに 謝辞 第0
ここで知識をつけすぎて、世の中の「ののぐらむ」がつまらなくなってしまっても責任は 取れないのであしからず。まあ、色々説明してしまうというか、ノウハウをばらしてしまって いる責任もあるかも知れないので、そうなってしまった人向けの問題を次々に提供しようとは 思っているので、すこしは安心してもらえるだろうか。
次のページ
このページを最初にブックマークしてみませんか?
『http://www.pro.or.jp/』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く