検索 - みる会図書館

検索対象: 月刊 C MAGAZINE 2001年6月号

月刊 C MAGAZINE 2001年6月号から 138件ヒットしました。

月刊 C MAGAZINE 2001年6月号


ア ル ゴ リ ズ ム て き た リ ニ ア サ ー チ と バ イ ナ リ サ ー チ の 2 ひ と つ , お も し ろ い 工 夫 を 紹 介 し ま し よ う 。 た 書 類 は 卓 上 の 山 の 1 番 上 に 放 り 投 げ て お つ が 中 心 に な り ま す 。 バ イ ナ リ サ ー チ を 用 た と え ば , ず ば ら な 人 の 仕 事 場 の 机 ( 学 く だ け で す 。 す る と 不 思 議 な こ と に , 上 の い れ ば 検 索 は と て も 高 速 に な り ま す が , そ 生 な ら ば 勉 強 机 ) を 考 え て み ま し よ う 。 こ ほ う に よ く 使 う 書 類 が た ま っ て い き ま す 。 の 代 わ り に 前 も っ て 配 列 を ソ ー ト し て お く の 人 は ず ば ら な の で , 机 の 上 を 整 理 す る こ 書 類 は 上 か ら 探 す の で , 書 類 を 整 理 し て い 必 要 が あ り ま す 。 と は あ り ま せ ん 。 自 然 と 机 に は 書 類 ( 学 生 な い に も か か わ ら ず , 比 較 的 早 く 目 的 の 書 十 分 洗 練 さ れ た ア ル ゴ リ ズ ム で は 一 般 的 な ら 参 考 書 や プ リ ン ト ) が 積 ま れ て い く こ 類 が 見 つ か る こ と に な り ま す 。 め っ た に 使 に , 処 理 の 高 速 化 に は 何 ら か の 代 償 が 必 要 と で し よ う 。 仕 事 中 に 書 類 が 必 要 に な っ た わ な い 書 類 を 探 す の に は 時 間 が か か り ま す に な り ま す 。 メ モ リ を 多 く 消 費 し た り , デ ら , 山 と 積 ま れ た 書 類 の 中 か ら 目 的 の 書 類 が , そ の こ と 自 体 が め っ た に 起 こ ら な い こ ー タ に 何 ら か の 構 造 上 の 特 徴 が 必 要 で あ っ を 探 し 出 す こ と に な り ま す 。 し か し , 「 あ る と な の で さ ほ ど 気 に は し ま せ ん 。 い わ ゆ る た り , そ の 条 件 は さ ま ざ ま で す 。 逆 に 何 か 仕 事 中 に は 同 じ 書 類 を 頻 繁 に 必 要 と す る こ 「 超 整 理 法 」 に 近 い ( ? ) や り 方 で す (Fig. 5 ) 。 し ら の 条 件 が 前 も っ て 与 え ら れ て い れ ば , と が よ く あ る 」 も の で す 。 こ の 人 も , 何 度 も こ の 例 で は , そ の 条 件 を 利 用 し て 処 理 を 高 速 化 す る こ と 「 あ る 仕 事 中 に は 同 じ 書 類 を 頻 繁 に 必 何 度 も 書 類 の 山 の 中 か ら 同 じ 書 類 を 探 す こ が 可 能 な 場 合 も 多 々 あ り ま す 。 こ こ で も う と に な り ま す 。 不 精 な こ の 人 , 使 い 終 わ っ 要 と す る こ と が よ く あ る 」 蔵 書 検 索 プ ロ グ ラ ム ( C + + 版 ) ・ / / く c + + 版 蔵 書 検 索 > / / ※ イ ン ク ル ー ド フ ァ イ ル や main ( ) 関 数 は c 言 語 版 と 同 じ 。 / / 蔵 書 ク ラ ス cl ass CBook 面 は c : char * t 土 凵 char * au し ho て int 加 okl 男 / * 貸 し 出 し 中 な ら 0 、 そ う で な け れ ば 1 * / i れ し available; / / 比 較 演 算 子 の オ ー バ ー ロ ド 0 て 0 て く ( CB00k & ok ) 〃 so て t ok ( ) の 中 で CB00k 同 士 を 比 較 return bookID く ok. okl 男 operato て > ( 00k & ok ) 〃 同 上 return bookID 〉 ok. okl 男 〃 土 nt 型 へ の キ ャ ス ト を オ ー バ ー ロ ー ド operator int( ) return okl List 6 0 / * 蔵 書 デ ー タ の メ モ リ を 解 放 * / void cleanupdata( ) 1n れ 一 fo て ( n = の れ く 十 切 ) delete 0k 矼 て ay [ n 、 / * 本 の デ ー タ を okID の 順 に 昇 順 で ク イ ッ ク ソ ー ト す る 。 void sortbook(int 鴕 0 叫 int top) 土 n セ lower,upper; CBOOk *div, *temp; if ( om > = top ) return ・ d 土 v = ok て ay [ 比 om / * 適 当 な 基 準 値 を 選 択 * / fO て い 0 e て = bottom , uppe て = セ op 卩 owe て く up ) / / オ ブ ジ ェ ク ト の 大 小 を 直 接 比 較 while(*bookarray[lower]<*div) 十 十 一 owe て 一 while(*bookarraytupperl>*div) / / 同 上 -upper; if い ower く 叩 て ) / * デ ー タ ( へ の ポ イ ン タ ) の 順 番 を 入 れ 替 え る * / temp=bookarraytlower]; bookarray[lowerl=bookarray[upperl; ok て ay [ up て ] = tem 店 十 十 一 ower ・ —upper; / / searchbook( ) 中 で key と okID を 比 較 #define N 5 / * 蔵 書 デ ー タ の ポ イ ン タ の 配 列 * / CBook* bookarray[NJ; / * 蔵 書 の デ ー タ を 初 期 化 す る * / void initdata( ) 土 れ セ n for(n の n く 十 十 n ) so て t 0k ( bottom, up て so て t 0 日 upper 十 1 , top); bookarray[nl = new CBOO 0ka て て ay [ 0 ト > t 土 日 e = ″ 20k Oka て て ay [ 1 ト 北 土 凵 e = ″ 0k1 ” b00karray[2 ト >title ま ” 0k2 ” ・ Oka て て ay [ 3 ト > t 土 日 e = 新 20k3 ″ bookarray[4 ト >title = ” 0k4 ” ・ b00karray[O ト >author = % uth0 て 0 ” Okar て a ⅵ 1 ト > au に hO て ま % uthO て 1 ” 加0kaててaY[2] → author = % uth0 て 2 ″ 0ka て て a ⅵ 3 ト 〉 au に h0 て = ” auth0 て 3 ” b00karray[4 ト >author = ” auth0 て 4 ″ 0ka て て ay [ 0 ト 〉 0kID = 100 bookarray[l ト >b00kID = 50 b00karray[2 ト >b00kID = 73 0ka て て ay [ 3 ト > 0kID = 62 Oka て て ay [ 4 ト > 加 OkID = 1 ・ b00karrayt0 ト >available = bookarray[l ト >available = の 跖0kaててaⅵ2 ト >available = の b00karray[3 ト >available = bookarray[4 ト >available = / * oks の 中 か ら okID が key と 一 致 す る デ ー タ を バ イ ナ リ サ ー チ で 検 索 し て 、 そ の 添 え 字 を 返 す 。 見 つ か ら な け れ ば -1 を 返 す 。 * / 土 n セ searchb00k(CB00k *books[ ] , int size, int key) int left, mid, right; left=0; right=size; while(left<right) mid= い eft 十 right ) / if(*books[midl<key) left=mid 十 se right=mid; if(*books[left]ä=key) て et れ 厄 f 場 return ー 1 ー / / CBook の okID と key を 比 較 〃 同 上 / * 見 つ か ら な か っ た 場 合 * / 0 103 プ ロ グ ラ ミ ン グ の 宝 箱

月刊 C MAGAZINE 2001年6月号


ー チ や ソ ー ト を す る 対 象 が 構 造 体 に な っ て い る 点 で す 。 そ の ほ か は 今 ま で と ま っ た く 同 じ で す 。 構 造 体 同 士 で 大 小 関 係 の 比 較 を す る こ と で , int 型 も 構 造 体 も 同 じ よ う に 簡 単 に 処 理 で き る こ と が わ か る で し よ う 。 な お , 数 値 だ け で な く 文 字 列 で も s 仕 cmp ( ) な ど を 利 用 し て 大 小 ( 前 後 ) 関 係 を 比 較 で き る 蔵 書 検 索 プ ロ グ ラ ム ( C 版 ) #include く stdio.h> #include «stdlib. h> #define N 5 , / * 蔵 書 を 表 す デ ー タ * / = 蓬 typedef struct( char * セ 土 目 char *author; int okl int available; / * 貸 し 出 し 中 な ら 0 、 そ う で な け れ ば 1 * / } 0 塒 ok * ok 矼 て ay [ N な 蔵 書 デ ー タ の ポ イ ン タ の 配 列 * / / * 蔵 書 の デ ー タ を 初 期 化 す る * / void initdata( ) int n; fo て ( n = n く N 廴 十 十 n ) ok て a ⅵ n ] = ( ok * ) Ⅱ oc ( s 土 zeof ( ok ) 0 な ay [ 2 ト 乢 言 、 宿 乢 れ 0r2 叮 加 ok て a ⅵ 3 ト 北 、 を 0k3 を い free(bookarray[nl); fO て ( n = の n く N; 十 十 n ) int 碑 void cleanupdata() ・ , / * 蔵 書 デ ー タ の メ モ リ を 解 放 * / 20k て a ⅵ 3 ト va 気 曲 厄 = ト は 。 ok 社 ね ⅵ の ava 曲 第 洋 、 欲 Y [ 4 ト 80 灯 0 耳 加 ok 工 a ⅵ 引 20k の 62 Ok 社 ね ⅵ 01 ら Ok 加 言 ユ 00 叮 、 加 ok ⅵ 4 = ト ね 社 ね u 新 return; 迂 ( bottom top ) Ok *temp; int lower,upperßiv; void so て t Ok ( i 北 bottom, 土 北 し OP ) / * 本 の デ ー タ を ok 旧 の 順 に 昇 順 で ク イ ッ ク ソ ー ト す る 。 の で , List5 は 本 の タ イ ト ル か ら 検 索 す る よ う に 変 更 す る こ と も 可 能 で す 。 List5 を C + + を 使 用 し て 書 き 換 え る と , ず い ぶ ん と す っ き り し た も の に な り ま す (Lis (6)0 「 演 算 子 の オ ー バ ロ ー ド 」 を 使 う こ と に よ り , 構 造 体 同 士 の 比 較 が シ ン プ ル に 書 け る よ う に な る た め で す 。 こ れ は 本 稿 の 趣 List 5 旨 か ら 少 し 外 れ る の で 深 く 説 明 は し ま せ ん が , こ の 場 合 , bo 。 k 構 造 体 を オ プ ジ ェ ク ト と し て 扱 っ て い る と 考 え ら れ ま す 。 「 超 整 理 法 」 ? 配 列 の 探 索 は 基 本 的 に こ ま で 説 明 し ok て ay 日 0 て ] = ok て ay [ up て bookarray[upper]=temp; 十 十 lower; —UPPe て す so て tb00k ( tto 叫 uppe て so て tbook ( upper 十 1, top); / * oks の 中 か ら 20 灯 D が key と 一 致 す る デ ー タ を バ イ ナ リ サ ー チ で 検 索 し て 、 そ の 添 え 字 を 返 す 。 見 つ か ら な け れ ば -1 を 返 す 。 * / 土 n し searchbook(book * b00ks 冂 , 土 北 size, int key) left=0; int 厄 f ら mid, right; right=size; ⅷ e い eft<right ) mid=(left + 辷ghセ)ノ第 if(books[mid ト >bookID<key) 厄 f m 土 d + 引 se て 地 ht 剛 の if(books[left ト >b00kID==key) て e 加 て n 厄 f 場 / * ok 旧 の 大 小 を 比 較 * / return ー 1 ー int 土 n ( vo 土 d ) / * 見 つ か ら な か っ た 場 合 * / int key, posit 土 0 丐 initdata ( so て t ok ( 0 を N -1 / * 最 初 に 、 管 理 番 号 順 に ソ ー ト し て お く * / / * 検 索 キ ー と し て 本 の 管 理 番 号 を 入 力 * / e ( 1 ) p て intf に 一 次 の 本 が 見 つ か り ま し た 一 心 土 f ( POS 辻 土 on ! ー エ ) position=searchbook(bookarray, N-I, key); / * 検 索 し て 結 果 を 表 示 * / b て 田 / * 0 が 入 力 さ れ た ら 終 了 * / if(key==0) scanf("%d", &key); p て intf ( ” 検 索 す る 本 の 番 号 を 入 力 し て 下 さ い ( 0 で 終 了 ) : つ ; return cleanupdata( else p 乢 s に お 探 し の 本 は 見 つ か り ま せ ん で し た 。 跏 ” puts に 申 し 訳 あ り ま せ ん が 、 こ の 本 は 貸 し 出 し 中 で す 。 跏 っ 引 se puts ( ” こ の 本 は 貸 し 出 し 可 能 で す 。 跏 ″ 迂 ( 0k 矼 て a ⅵ pos 址 ion ] → ava 厄 ! = 0 ) b00karray[position]->bookID); 加 0k 矼 て ay [ pos 土 t 土 on ト 〉 auth0 て ′ bookarray[position ト >title, [ タ イ ト ル ] 宅 s [ 著 者 ] 宅 s 跏 [ 管 理 番 号 釀 div=bookarray[bottom ト >bookID; / * 適 当 な 基 準 値 を 選 択 * / f0てい0Wer=2tt0叫uP8て=セ0P靆0Wer く upper; ) while(/*lower«upper & & * / 80kaててaYいgeて1 → bookID く div) 十 十 一 owe て ・ while(/*lower く upper & & * / bookarray[upper ト >bookID>div) 迂 い 0 r く 叩 て ) / * デ ー タ ( へ の ポ イ ン タ ) の 順 番 を 入 れ 替 え る * / temp=bookarray[lower]; 0 102 C MAGMINE 2001 6

月刊 C MAGAZINE 2001年6月号


JUNE 2001 Cover 月 ん s ケ 秋 山 育 /Design 持 田 哲 新 連 載 特 別 記 事 最 新 開 発 環 境 レ ポ ー ト ニ ュ ー ス Enter The 3D P 「 og 「 amming く 第 9 回 > ラ ジ オ シ テ ィ ( 後 編 ) 久 保 裕 一 郎 / 宇 治 社 中 Windows Programming Tips く 第 18 回 > メ ッ セ ー ジ の フ ッ ク ( pa 市 ) tatsuya Linux Programming Tips く 第 9 回 > GLib プ ロ グ ラ ミ ン グ ( 前 編 ) 吉 井 一 友 く 第 1 回 > Moz Ⅲ a を 利 用 し た ア プ リ ケ ー シ ョ ン 開 発 岩 本 正 弘 / 矢 次 則 昭 ( 有 限 会 社 シ ン フ ォ ニ ー ) ネ ッ ト ワ ー ク プ ロ グ ラ ミ ン グ の ア ト リ エ 技 術 を 知 っ て 実 践 し よ う inwholeorinpa ′ 1, inanyformwithoutpermission. PrintedinJapan. 丸 切 9 わ 給 resetved. NO ″ e 朝 ⅱ h thispub/ication maybe reproduced, CQ 〃 ⅵ 9 ◎ 2007 SO し ankR カ / ツ hg 偽 c. , 0. Editoria/: P わ one ( 03 ) 5549 ・ 7 743 SaIes: R わ one ( 03 ) 5549-1200 Advertising: Phone ( 03 丿 5549-7220 EditorialandBusiness 〇 用 ces : 4-7 & 73 紿 ka , M / わ - k は 一 〇 K ゾ 〇 . 70 / -0052. JAPAN R ノ 励 S わ e 「 ・ TOS わ / 0 lnaba R / 居 わ ⅵ 9 Director. ・ TakefumiArai Editor-in-Chief: Jun-ichi Watanabe CMAGAZ/NE そ の 他 各 種 開 発 ツ ー ル Java2 SDK Standard Edition Ver. 1.3. O ー 02 Windows/Linux/SOIaris 版 Mozilla 0.8.1 & 日 本 語 化 バ ッ ク に Forte for Java release 1.0.2 Community Edition Forte for Java release 2.0 Community Edition 特 別 付 録 CD-ROM ・ 本 誌 お よ び 付 録 CD - 日 OM に 掲 載 さ れ た す べ て の プ ロ グ ラ ム は 著 作 権 法 上 . 個 人 で 使 用 す る 目 的 以 外 で 無 断 で 複 製 す る こ と は 禁 じ ら れ て い ま す 。 ・ 本 記 事 中 の プ ロ グ ラ ム 名 , シ ス テ ム 名 , CPU 名 は 一 般 に 各 メ ー カ ー の 登 録 商 標 で す 。 と く に 事 情 が な い 限 り . 本 文 中 で は TM , ⑨ マ ー ク は 明 記 し て い ま せ ん 。 EDITORS' ROOM CD-ROM Contents READERS' ROOM C マ ガ 電 脳 ク ラ ブ く 第 123 回 > 六 角 形 の 超 線 上 吉 柄 責 樹 フ ィ ン ロ ー ダ の あ つ ば れ ご 意 見 番 く 第 108 回 > 宛 先 不 明 学 問 の ス ス メ 千 言 万 語 く 第 七 十 八 語 > Lisp と Scheme き だ あ き ら C MAGA Bookends MONTHLY HEADLINE Forte for Java release 2. O Community Edition ひ ぐ べ ん 工 房 Forte for Java と J2ME WireIess SDK for DOJa に よ る i ア プ リ の 作 成 KIT-M 真 紀 俊 男 の ロ ー テ ク 講 座 Low Technique Course< 第 64 回 >0bjective-C の 巻 Java Programming Tips く 第 11 回 > ス レ ッ ド と タ イ マ で 実 現 す る ア ニ メ ー シ ョ ン ア プ レ ッ ト ひ ぐ べ ん 工 房 114 120 129 133 137 142 147 152 157 161 164 166 168 170 172 174

月刊 C MAGAZINE 2001年6月号


始 ま る 最 新 開 発 環 境 レ ポ ー ト が あ り ま す 。 あ わ せ て ご 覧 く だ さ い 。 Ruby 1.6.3 せ ら れ た み な さ ま に 感 謝 い た し ま す 。 ア と し て 公 開 し ま す 。 ご 意 見 ・ ご 要 望 を 寄 改 変 を 自 由 に 行 う こ と の で き る フ リ ー ウ ェ プ ロ グ ラ ム ( ソ ー ス コ ー ド も 含 む ) は 配 布 や ProfessionaI で 作 成 し ま し た 。 ま た , こ の こ の プ ロ グ ラ ム は Borland C + + Builder 5 ィ レ ク ト リ に あ る readme. ⅸ t を ご 覧 く だ さ ン ス ト ー ル に 関 し て は , <YtoolYsetbcc> デ を ウ イ ザ ー ド 形 式 で 行 え る ツ ー ル で す 。 イ 1 を イ ン ス ト ー ル す る 際 に 必 要 な 環 境 設 定 支 援 ツ ー ル 」 は , Borland C + + Complier 5.5. 「 BorIand C + + Compiler 5.5 イ ン ス ト ー ル イ ン ス ト ー ル 支 援 ツ ー ル Borland C + + Compiler 5.5 レ ク ト リ に 収 録 し ま し た 。 ( 株 ) の ご 協 力 に よ り く 耜 orland cc55 > デ ィ ン ド ラ イ ン コ ン パ イ ラ で す 。 ポ ー ラ ン ド し , ラ イ プ ラ リ と と も に 無 料 公 開 し た コ マ dC + + 5.5 の コ ン パ イ ラ モ ジ ュ ー ル を 抜 き 出 「 Borland C + + Compiler 5.5.1 」 は , Borlan Borland C + + Compiler 5.5.1 ス タ ー へ の 道 」 も あ わ せ て ご 覧 く だ さ い 。 ま た , 本 誌 93 ペ ー ジ か ら の 連 載 「 Ruby マ フ ァ イ ル を ご 覧 く だ さ い 。 し て は , 展 開 後 に 生 成 さ れ る ド キ ュ メ ン ト そ れ ぞ れ の イ ン ス ト ー ル 方 法 や 詳 細 に 関 し ま し た 。 に よ り , く }ruby}rbcw> デ ィ レ ク ト リ に 収 録 ジ ュ ー ル を , 作 成 者 で あ る 有 馬 氏 の ご 協 力 ま た , Windows 環 境 で 利 用 す る た め の モ 6.3 を く \ ruby > デ ィ レ ク ト リ に 収 録 し ま し た 。 言 語 で す 。 同 氏 の ご 協 力 に よ り 3 最 新 版 1. し た 純 国 産 の オ プ ジ ェ ク ト 指 向 ス ク リ プ ト 「 Ruby 」 は , ま つ も と ゆ き ひ ろ 氏 が 開 発 ・ 特 別 イ 寸 録 CD - ROM の デ ィ レ ク ト リ 構 成 fo el 02 ~ , ト = 、 い ” ・ ~ 1 ~ ~ FO れ e fo 「 Java release 10.2 Community Ed1tion ー 0 は e20 い 三 ツ 三 三 ~ 、 ~ FO 0 fO 「 Java release 2.0 eommunity Edition index,html CD - ROM 収 録 プ ロ グ ラ ム の 紹 介 ( HTML フ ァ イ ル ) 聶 jdk 、 ” ~ ~ ~ ” “ ~ Java2 SDK 、 Standard Edition Vere : 1.3.0 2 mozilla 、 ~ ~ ~ 、 “ 簽 : ” ・ Moz Ⅲ a 0 8 1 & 日 本 語 化 パ ッ ク Window/Linux/Solaris 版 BorIand [ 0-86 ve 朝 .30C 試 食 版 BCC55 、 ~ ・ BorIand C + + CompiIer 5.5.1 Lhasa 三 ツ 三 , , ~ ” ・ ・ は h / 2ip 解 凍 ッ プ ル _Vhasa" Tools Ruby 1.6.3 RubY SETBCC 第 ” 、 ・ ~ ” い 、 , Borland C + + compiler 5.5 イ ン ス ト ル 支 援 ツ ル Ver. は .5a CMAGA Cpp ~ ツ ~ ~ 、 ・ C プ ロ グ ラ マ の た め の C + + 入 門 、 実 践 C + + ゼ ミ ナ ー ル O 、 ” ~ “ ~ ~ “ ~ = ℃ et lnto C wo ! ! ー C 員 語 入 門 講 座 一 TOk リ 2 ・ 特 集 2 「 Mac OS X ア プ リ ケ ー シ ョ ッ 開 発 ガ イ ド 」 Java ~ , ・ ~ ~ ス タ ← ト ア 。 ッ プ Java Java 言 語 事 始 , Soudan : ~ ~ “ 、 ・ プ ロ グ ラ ミ ン グ 相 談 室 STDCCPP Standard C/C + + マ ス タ へ の 道 Pe 市 ト ~ 三 ~ ・ ・ perl プ ロ グ ラ ン グ の 楽 し み Object ~ ” ~ 一 ” を ー び て ク ク の オ プ ジ ェ ク ト 工 房 L—tech ~ ” ~ 、 。 ~ ” ・ ・ 真 紀 俊 夫 の ロ ア ク 講 座 Javatips Java Programming Tips Wintips Windows P 「 ogramming Tips Linux Programming Tips Linuxtips ネ ッ ト ワ ー ク プ ロ グ ラ ミ ン グ の ア ト リ エ 周 go 、 画 像 処 理 を 極 め る 一 ア ル ゴ リ ズ ム ラ 永 ア ル ゴ リ ズ ム 入 門 、 プ ロ グ ラ ミ ン グ の 宝 箱 DoJa ・ FO れ e fo 「 Java と J2ME WireIess SDK fo 「 DoJa に よ る i ア プ リ の 作 成 PuzzIe ー C マ ガ 電 脳 ク ラ ブ CD-ROM Contents ・ LHASA Ver. 0.17 , [email protected] Takemura. AII Rights Reserved. ・ 日 uby 1.6.3 , ( 01993-2001 Yukihiro Matsumoto. AII Rights Reserved. ・ LSI C -86 Ver. 3.3 試 食 版 、 [email protected] LSIJAPAN CO. ,LTD. 則 Rights Reserved. ・ Borland C + + Compiler 5.5.1 , Copy 「 ight ( 02000-2001 BorIand Software Corporation. AII Rights Reserved. Microsystems,Inc. AII Rights Reserved. ・ Java2 SDK Standard Edition Ver. 1 、 3.0 ー 02 Windows/Linux/SOIaris 版 、 Copy 「 ight ⑥ r994-2001 Sun Rights Reserved. ・ Mozilla 0.8.1 & 日 本 語 化 パ ッ ク , Copy ⅱ ghtC 998 , 1999 Netscape Communications Corporation. AII Reserved. ・ Forte fO 「 Java 「 elease 1.0.2 Community Editions Copy ⅱ ghK02000-2001 Sun Microsystems,lnc. AII Rights Reserved. ・ Forte fO 「 Java release 2.0 Community Édition, Copy 「 igh さ 02000-2001 Sun Microsystems,lnc. AII Rights 1 / 3

月刊 C MAGAZINE 2001年6月号


。 ′ 解 部 ? モ バ イ ル ウ ォ ー ル 6 月 号 好 評 発 売 中 ! ! ー ク 聴 携 帯 機 器 が 創 る も う 1 つ の イ ン タ ー ネ ッ ト ク ア イ ヤ テ ク ノ ロ ジ ー 徹 底 理 解 セ キ ュ リ テ ィ の 要 を 知 る 徹 底 企 画 。 最 新 フ ァ イ ヤ ウ ォ ー ル も 1 1 製 品 紹 介 ス タ ー ト & 第 基 礎 カ 養 成 & ス テ ッ プ ノ ブ ! 充 実 の 7 ス テ ッ プ ア ッ プ ク の 基 礎 ・ 見 逃 し が ち な ポ イ ン ト を 再 確 認 LAN] ・ 図 解 で 学 ・ 3 堺 ツ ー テ シ タ ル 解 書 ネ ッ ト ト ラ ブ ル の 原 因 を 探 せ ! 、 、 キ リ 分 か し AN は じ め て 講 座 有 線 / 無 線 接 続 上 手 ・ 合 格 ま で の ス テ ッ プ を 1 歩 1 歩 確 実 に ク リ ア 目 指 せ ! 情 報 セ キ ュ リ テ ィ ・ 叢 新 機 器 の 仕 組 み と 働 き を 丸 ご と 解 剖 ! に な る コ ツ 50 図 解 ・ デ ジ タ ル キ , ア ド ミ ニ ス ト レ ー タ ・ デ ジ タ ル 通 信 の 基 笨 を し か り 身 に つ け る ・ 資 格 に 挑 戦 し て 自 分 自 身 を レ ベ ル ア ッ プ 求 め ら れ た 要 件 を ク リ ア す る 、 詳 解 ・ デ ジ ツ ル 通 信 挑 戦 ! シ ス コ CCNA2.O LAN 設 計 の コ ッ と 構 築 の 実 践 ノ ウ ハ ウ い よ い よ 開 催 迫 っ た ア ジ ア 最 大 の ネ ッ ト ワ ー ク 展 示 会 第 ー 0 お 得 な 8 大 物 物 寸 き ! そ の 見 所 を 一 足 先 に お 見 せ し ま す NetworId + 十 一 す 第 OP 会 期 展 示 会 : 6 月 6 日 ( 水 ) ~ 8 日 ( 金 ) lnterop コ ン フ ァ レ ン ス : 6 月 4 日 ( 月 ) ~ 8 日 ( 金 ) 会 場 幕 張 メ ッ セ 旧 本 コ ン べ ン ジ ョ ン セ ン タ ー ) 2001 す OKYO 主 催 NetWorld + ⅲ te 「 0P2001T0kY 。 実 行 委 員 会 T0kY02001 ス へ シ ャ ル フ レ ヒ ュ ー ・ お 近 く の 書 店 に て お 求 め ・ ご 注 文 下 さ い 。 ( 表 示 価 格 は 税 込 ) 。 。 ノ フ ト ノ ク バ ブ リ ッ シ ン グ 株 式 会 社 ・ ご 不 明 な 点 は 、 SOFTBANK BOOKS サ ポ ー ト ま で お 問 い あ わ せ 下 さ い 。 ※ 土 , 日 ・ 祝 日 を 除 く 10 : 00 ~ 12 : 00 13 : 00 ~ 17 : 00 : / / WW. softbankpub. CO. JP/ E メ ー ル :[email protected] 〒 107-0052 東 京 都 港 区 赤 坂 4-13-13 TEL : 03-5549-1201 FAX : 03-5549-1212 PubIishing 980 円 【 毎 月 18 日 発 売 】 特 別 定 価 第 1 特 集 0 ・ ◎ 1 テ ー マ 徹 底 学 習 第 5 特 集 0 ア ジ ア 最 大 の ネ ッ ト ワ ー ク ・ コ ン ピ ュ ー テ ィ ン グ ・ イ ベ ン ト ー 特 別 企 画 http://www.sbforums.co.jp/interop

月刊 C MAGAZINE 2001年6月号


可 OY PerI Programming モ ジ ュ レ を 活 用 は う Fig. 9 List 9 の 実 行 例 C :*WORK> per ー get link. pl h p : / / げ http: / / 址 セ p : / / h 忱 p : / / 糶 http: / / 鼎 http://杯稲 http://鼎璽 h 忱 p : / / http://books.softbank.co.jp/pq/ http: //books. softbank. co. jp/ http://backno.mag2.com/reader/Back?id=0000062489 ← 実 行 http. ht tp. ht tp http. http. http. http. http. http. ht tp. ht tp. ht tp. http. List . aozo て a. g て . jp/ .genpaku.org . geocities. CO. jp/HeartLand-Suzuran/3937/ .geocities.com/Heartland/River/4748/Mail—Mag/ ・ goog 厄.com/search?q=site :杯稲.hyuki.com/ 宅 97 宅 F6 & h ト ja 引 r = lang—ja ・ goog 尾.com/search?q=site :褫明.hyuki.com/ 宅 90 8A 宅 D4 宅 8A D6 8CW & h ja 引 r = lang•a ・ goog 厄.com/search?q=site :Ⅷ冊.hyuki.com/ 宅 88 宅 A4 & h ト ja & け = lang—ja . goog 厄 . com/search?q=site%3Awww.hyuki.com十 %90M%8B%C2&hI=ja&safe=off& に = lang—ja ・ goog 厄 . com/search?q=site%3Awww.hyuki.com十 %8Ed%8E%96&hI=ja&safe=off&btnG=Goog 厄 十 8C 9F 8D 宅 F5 引 て ang ー ja . goog 厄 . com/search?q=site%3Awww.hyuki.com十 宅 8A F3 宅 96 5D & h l=ja&safe=off& に = lang—ja . webring. ne. jp/cgi-bin/webring?ring=christian; id=9 ;random . webring. ne. jp/cgi-bin/webring?ring=christian; id=9 ;prev . webring. ne. jp/cgi-bin/webring?ring=christian; id=9 ;next . webring. ne. jp/cgi-bin/webring?ring=christian;id=9 ist . webring. ne. jp/cgi-bin/webring?ring=christian;home .textfile.org/ . st. rim. or. jp/¯hyuki/preq/ .hyuk土.com/po Ⅱ / ? 96213 .hyuki.com/po 日 / ? 31005 .hyuki.com/catl ink/?mycmd= link&mykey= 翻 訳 .hyuki.com/catl ink/?mycmd= link&mykey= 読 み 物 .hyuki.com/catl ink/?mycmd= link&mykey= キ リ ス ト 教 複 数 の HTML フ ァ イ ル の イ ン デ ッ ク ス を 作 る (Makelndex1. pl) List Web ペ ー ジ か ら 外 に 出 て い る リ ン ク を 収 集 (getlink. pl) package MakeIndex1; use HTML : : HeadParser ー @ISA=qw (HTML: :HeadParser) use strict ー print qql<html>*nl; print qql<ul>%nl; while ( く *. html>) { 叫 $filename = $— ・ my $0bj = new MakeIndex1; $obj->parse-file ($filename) ー my $title = $obj->header ( 'Titlei) print qql<li><a href="$filename">$title く /a>く/は>基れk print qql</ul>%nl; print qql</html>%nl; List タ イ ト ル で ソ ー ト す る ( Mak 引 ndex2. pl) package MakeIndex2; use HTML: :HeadParser; @ISA=qw(HTML: :HeadParser); use strict ー my @page; while (く*. html>) { 叫 $filename = $— ・ my $0bj = new MakeIndex2; $obj->parse—file($filename); my $title = $obj->header( 'Title' push(@page, [ $title, $filename ] print qql</html>%nl; print qql</ul>%nl; foreach (@sorted) { print qql<ul>%nl; print qql<html>%nl; my ② so て t = so て セ ( $ a -70 ] cmp $b->[01 } @page; print qql<li><a 耻 ef = ー っ [ 1 ] ">$ ー → [ 0 ] く / a > く / は > I; package GetLink; use LWP: :Simple; ー use HTML: :Filte て 咢 ② I SA=qw (HTML: : Fi 肚 e て ) use StriCt ー sub dec laration { my ($self, $declaration) = sub start { my ($self ′ $tag, $attr, $attrseq, $origtext) if ($tag ゞ /*a$/) if ($attr-> { 社 e 創 ま ~ /Ahttp:/) $ {$self-> Ⅲ {$attr-> {href}} sub end { my ($self, $tag, $origtext) = sub comment { my ($self, $comment) = 釭 ・ sub text ー my ($self, $text) = 釭 ・ sub output { my $url = ' 耻 tp ://糶襴.h料ki.com だ my $content = get ($url) ー my $0bj = new GetLink; $obj → parse ( $content) foreach (sort keys obj → Ⅲ ) p て 土 北 $— = 1 ・ Enjoy PerI P 「 ogramming モ シ ュ ー ル を 活 用 し よ う 91

月刊 C MAGAZINE 2001年6月号


ア ル ゴ リ ズ ム 。 入 門 番 兵 を 使 っ た 高 速 版 線 形 探 索 #include く stdio. #include く d は b > #include く 巨 2. #define NCT ー F052 ( -1 ) ( 10 ) #define N int search(int x,int* a,int num) は n し n = 0 洋 一 / * 最 後 の 値 を 茎 に 入 れ 替 え る ( 番 兵 ) セ = a [ n -1 嵭 a [ n -1 ] = / * 目 的 の 値 を 探 す * / while(a[n]!=x) / * 配 列 最 後 の 値 を 元 に 戻 す a [ れ ー 1 ト 迂 ( n«n ー 1 ) な 一 番 最 後 以 外 で 一 致 * / return れ 一 if(x==t) / * 一 番 最 後 が 一 致 * / return n; return NO で 一 FO [ D ー Fig. 2 バ イ ナ リ サ ー チ C628 " を 探 す 例 ) ( 1 ) ソ ー ト 済 み 配 列 の 中 央 の 要 素 を 調 べ る 13 1 7 1 973 981 1000 503 439 に ・ ′ を ・ 二 を チ ェ ッ ク ( 2 ) 502 > 628 > 1000 な の で 後 半 に 注 目 1000 502 こ の 範 囲 の ど こ か に あ る ( 3 ) 502 と 1000 の 中 央 の 要 素 を 調 べ る 1000 502 土 北 main(voidY 土 n し 第 土 洋 , て ay [ N 嵭 srand((unsigned セ ) 日 ( ) / * 適 当 な 配 列 を 作 る * / printf("array ” to て ( i=0; i<N + 十 ) p て 土 f ( ” は d ] d % 土 , て ay は ] = て d ( ) 宅 20 pr 土 n セ f ( n 何 を 探 し ま す か : 滝 r=search(i,array,N); 土 f ( て = = NOT ー FO [ の ) p て 土 n ( d は 見 つ か り ま せ ん ” は else printf("%d は 宅 d 番 目 で す % i 洋 return EXIT—SUCCESS; し く は 「 線 形 探 索 ( リ ニ ア サ ー チ ) 」 と 呼 ば れ て い ま す 。 計 算 量 は O ( N ) で す 。 単 純 な だ け に 応 用 範 囲 は 広 く , 意 外 に 頻 繁 に 使 わ れ る サ ー チ ア ル ゴ リ ズ ム で す 。 C + + 標 準 ラ イ プ ラ リ の 血 d ( ) と い う 関 数 が , リ ニ ア サ ー チ に 相 当 し ま す 。 兵 を 使 ら た 高 速 { チ ェ ッ ク ( 4 ) 502 > 628 > 731 な の で 前 半 に 注 目 731 502 こ の 範 囲 の ど こ か に あ る 目 的 の 要 素 が 見 つ か る ま で 絞 り 込 み を 続 け る ( 5 ) 探 索 範 囲 を 絞 り 込 ん で 目 的 の 要 素 を 見 つ け る 625 631 628 を 発 見 ※ 探 索 範 囲 が な く な っ て し ま っ た ら 指 定 さ れ た 要 素 が 見 つ か ら な か っ た こ と を 意 味 す る 境 で プ ロ フ ァ イ ル [ 注 1 ] を し た と こ ろ , 約 1 割 人 が い る か も し れ ま せ ん 。 し か し , List 2 強 の ス ピ ー ド ア ッ プ に な り ま し た ( も ち ろ で は そ れ を 防 ぐ た め に , 探 索 を 始 め る 直 前 ん , 探 索 に か か る 時 間 が そ れ ほ ど 重 要 で な に 配 列 の 最 後 の 値 を 目 的 の 値 (x) に 入 れ 替 い 場 合 は ソ ー ス の 見 や す さ を 考 え て List1 え て い ま す 。 こ う す れ ば , た と え 元 の 配 列 Ⅱ stl の リ ニ ア サ ー チ は , 実 装 自 体 は と て の よ う な 記 述 を 選 択 す る の も 適 切 な 判 断 で 中 に x が 入 っ て い な く て も , 最 後 に 必 ず x が も 簡 単 で す が , サ ー チ プ ロ グ ラ ム と し て は し よ う ) 。 こ の よ う な 手 法 は 「 番 兵 」 も し く 見 つ か り ま す 。 検 索 が 最 後 ま で 到 達 し た 場 ち ょ っ と ム ダ が あ り ま す 。 改 良 版 の コ ー ド は 「 番 人 」 な ど と 呼 ば れ ま す 。 合 , も し も 入 れ 替 え る 前 の 値 と x が 同 じ で を List2 に 示 し ま す 。 あ れ ば 「 配 列 の 最 後 に x が 見 つ か っ た 」 と い List 2 で は , while ル ー プ の 中 で 添 字 の 範 [ 注 1 ] 「 プ ロ フ ァ イ ラ 」 と い う ツ ー ル を 用 い て プ ロ グ ラ ム の 一 部 、 あ る い は 全 体 の 実 行 時 間 う こ と に な り , そ う で な け れ ば 「 配 列 の 中 囲 チ ェ ッ ク を 行 わ ず , 目 的 の 値 ( x ) が 現 れ を 測 定 す る こ と 。 ど の 部 分 が 処 理 の 遅 延 部 分 る か ど う か だ け を 調 べ て い ま す 。 「 こ れ で に x は 見 つ か ら な か っ た 」 と い う こ と を 意 味 ( ポ ト ル ネ ッ ク ) に な っ て い る の か を 知 る た め に , 中 規 模 以 上 の プ ロ グ ラ ム で は よ く 利 用 さ は , も し も 配 列 a の 中 に 目 的 の 値 が 現 れ な す る わ け で す 。 こ の ひ と 工 夫 を す る だ け で れ る 。 往 々 に し て 人 間 が 思 い も よ ら ぬ さ さ い な 部 分 が 全 体 の ポ ト ル ネ ッ ク に な っ て い る こ か っ た 場 合 に , 配 列 の 範 囲 を 超 え て ク ラ ッ 毎 回 添 字 の 範 囲 チ ェ ッ ク を す る 必 要 が な く と も あ り , そ う し た 箇 所 を 発 見 す る た め に 重 な り , 探 索 時 間 が 節 約 さ れ ま す 。 筆 者 の 環 シ ュ し て し ま う の で は な い か 」 と 心 配 す る 要 な 役 割 を 果 た す 。 プ ロ グ ラ ミ ン グ の 宝 箱 99

月刊 C MAGAZINE 2001年6月号


2 Turb01inux Workstation 日 本 3 名 A . NET ボ ー ル ペ ン 8 名 B i ア プ リ の 作 り 方 1 名 語 版 6.0 リ ミ テ ッ ド エ デ ィ シ ョ ン NTTDOCOMO DoJa 編 提 供 マ イ ク ロ ソ フ ト ( 株 ) 提 供 ソ フ ト バ ン ク バ ブ リ ッ 提 供 タ ー ポ リ ナ ッ ク ス シ ン グ ( 株 ) ジ ャ パ ン ( 株 ) TEL 03 ( 5454 ) 2300 TEL 03 ( 5549 ) 1200 URL http://www.turbolinux. CO. jp/ リ ! み を よ 〒 リ R 日 LINUX ロ RKSTATI ロ - 、 ン 0 日 仮 6. NTT DaCaMo DouaZ 3 名 1 Borland C + + Builder 5 提 供 ポ ー ラ ン ド ( 株 ) TEL 03 ( 5350 ) 9380 Wind0 、 、、 い \ い 獅 曲 印 orm 聞 員 N 引 よ ⅵ 叩 ment With 0 訓 曲 ase and ern 01s を 慢 い 鱧 す し ゼ リ 1 ア ル 問 発 宿 第 ・ は 0 以 上 の コ ン ホ ー 第 ン ト ・ メ そ 第 、 グ を ト 引 を 0 、 、 ・ 第 な デ ー タ 、 一 ス 当 3 物 ま ま 性 茎 り ; 多 様 な 以 に み 0 メ で 実 現 ー た ピ な ア を 開 ツ ル 新 第 B 面 Ljmited Edition 円 0 花 、 引 0 宿 謝 Borland C + + Bu ⅱ der の 最 新 版 。 デ バ ッ コ ン パ ク ト な 構 成 を 持 つ LinuxOS 。 グ 機 能 を 強 化 し , 最 新 の A 円 や ANSI プ ロ グ ラ ミ ン グ な ど さ ま ざ ま な シ ー 規 格 に 対 応 し た ビ ジ ュ ア ル 開 発 環 境 ン に 対 応 す る 【 モ ニ タ 募 集 要 項 】 ◇ 応 募 資 格 : プ ロ グ ラ ミ ン グ 経 験 者 , お よ ROOM モ ニ タ 係 」 宛 に 投 函 い た だ く か , び プ ロ グ ラ ミ ン グ 学 習 者 。 あ る い は e - ma ⅱ ア ド レ ス 宛 に 電 子 メ ー ル ◇ モ ニ タ 期 間 : 商 品 受 領 よ り 3 か 月 間 ( モ を 送 信 く だ さ い 。 ◇ レ ポ ー ト 発 表 : 提 出 い た だ い た レ ポ ー ト ニ タ 商 品 に よ っ て は 発 送 に 日 時 を 要 す る も の が あ る こ と を ご 了 承 く だ さ い ) 。 は , 編 集 部 到 着 月 日 か ら 2 か 月 後 に 発 売 ◇ モ ニ タ レ ポ ー ト : モ ニ タ 期 間 中 に 最 低 2 す る 本 誌 上 , ま た は 付 録 CD - ROM に て 掲 載 収 録 す る 予 定 で す 。 回 の モ ニ タ レ ポ ー ト を 提 出 し て い た だ き ◇ 選 考 発 表 : こ の 号 の モ ニ タ 選 考 結 果 は ま す 。 レ ポ ー ト は テ キ ス ト フ ァ イ ル と し , フ ロ ッ ピ ー デ ィ ス ク に て 「 READERS ' 2001 年 10 月 号 に て 発 表 い た し ま す 。 モ ニ タ 応 募 の 注 意 2001 年 2 月 号 モ ニ タ 選 考 発 表 ◇ 綴 じ 込 み の は が き に 必 要 事 項 を 明 記 の う え ご 応 ( 敬 称 略 ) ( 1 ) Borland C + + Builder 5 募 く だ さ い 。 早 川 毅 ( 大 阪 府 ) ◇ 記 入 も れ や モ ニ タ 番 号 が 複 数 記 入 さ れ て い る 場 , 綴 じ 込 み は が き 以 外 で の ご 応 募 は 無 効 と さ 2001 年 2 月 号 せ て い た だ き ま す 。 プ レ ゼ ン ト 当 選 者 発 表 ( 敬 称 略 ) ◇ 締 め 切 り は 6 月 18 日 必 着 で す 。 (A) Borland Delphi バ ッ グ 読 者 プ レ ゼ ン ト 応 募 の 注 意 中 川 龍 ー ( 神 奈 川 県 ) ◇ 綴 じ 込 み の は が き に 必 要 事 項 を 明 記 の う え ご 応 密 井 政 直 ( 福 岡 県 ) ほ か 3 名 募 く だ さ い 。 (B) Excel 2000 VBA の 応 用 80 例 ◇ 雑 誌 公 正 競 争 規 約 の 定 め に よ り , 懸 賞 当 選 者 , 井 口 善 文 ( 神 奈 川 県 ) モ ニ タ 該 当 者 は こ の 号 の ほ か の 懸 賞 に 応 募 で き 大 栢 良 介 ( 千 葉 県 ) な い 場 合 が あ り ま す 。 (C) VisuaI C + + 6.0 プ ロ グ ラ ミ ン グ 入 門 編 ◇ 締 め 切 り は 6 月 18 日 必 着 で す 。 当 選 結 果 は 2001 若 林 大 輔 ( 群 馬 県 ) 安 田 浩 人 ( 愛 知 県 ) 年 10 月 号 に て 発 表 い た し ま す 。 た , 原 文 を 手 直 し さ せ て い た た く READERS'ROOM で は み な さ 場 合 も あ り ま す 。 ご 了 承 く だ ま の ご 意 見 ・ ご 感 想 を お 待 ち し て さ し 、 0 [ 宛 先 ] お り ま す 。 ほ か に も , コ ン ピ ュ ー タ を め ぐ る さ ま ざ ま な こ し 何 で 〒 107 ー 0052 も け っ こ う で す 。 質 問 も ど し ど し 東 京 都 港 区 赤 坂 4 ー 13 ー 13 ソ フ ト バ ン ク バ ブ リ ッ シ ン グ ( 株 ) お 寄 せ く だ さ い 。 C マ ガ ジ ン 編 集 部 「 R & R 」 係 投 稿 原 稿 , 自 作 ソ フ ト も 受 け 付 [e-mail 宛 先 ] け て お り ま す 。 採 用 ぶ ん に は 弊 社 規 定 の 薄 謝 を 進 呈 い た し ま す 。 お [email protected] CO. jp [Web/X ー ジ ] 送 り い た だ い た 原 稿 ・ ソ フ ト は , 原 則 と し て 返 却 い た し ま せ ん 。 ま http://cmaga.zdnet. CO. jp/ N 幵 ド コ モ が 公 開 し た SDK を 使 用 し て i ア プ リ を 作 成 す る 方 法 を 解 説 し た 書 籍 MSDN を 記 念 し て 作 成 さ れ た Micros 0 升 . NET の ロ ゴ が 書 か れ て い る 首 か ら か け ら れ る ポ ー ル ペ ン バ ッ ク ナ ン バ ー 情 報 03-5549-1200 ( 2 1 年 4 月 24 日 現 在 の 在 庫 状 況 で す 。 品 切 れ の 際 は ご 容 赦 願 い ま す ) 2001 年 特 集 1 「 C # 言 語 仕 様 と プ ロ グ ラ ミ ン グ 」 特 集 2 「 wave 回 の 新 ア ル ゴ リ ズ ム 」 . NET Framework SDK 版 ,Borland JBuilder 4 Foundation 日 本 語 版 ほ か 特 集 1 「 XML 入 門 」 特 集 2 「 Direc Ⅸ 8 の 徹 底 解 説 」 特 集 3 「 最 新 の DirectMusic を 使 う 」 新 連 載 「 Enjoy perl Programming 」 ほ か 特 集 「 実 力 チ ェ ッ ク プ ロ グ ラ ミ ン グ 期 末 試 験 3 月 号 〇 C ℃ + + /Java/Pe 「 l/Ruby 」 レ ビ ュ ー 「 C + + Test 」 ほ か 「 恒 例 ! 新 人 応 援 モ ニ タ 大 会 」 特 集 「 プ ロ グ ラ ミ ン グ 入 門 プ ロ グ ラ ミ ン グ 事 始 め , C ℃ + + /Java/DOS/ デ ー タ ベ ー ス 入 門 」 特 別 記 事 日 T の 森 を 育 て る 」 ほ か 特 集 1 「 プ ロ グ ラ マ 必 見 ハ ー ド ウ ェ ア 入 門 」 〇 特 集 2 「 チ ャ レ ン ジ ! i ア プ リ プ ロ グ ラ ミ ン グ 」 5 月 号 レ ポ ー ト 「 K ⅵ ⅸ 事 前 テ ス ト プ ロ グ ラ ム 」 ほ か 0 ・ ・ 在 庫 あ り . △ ・ ・ ・ 在 庫 僅 少 , X ・ ・ ・ 在 庫 な し ※ lnside Windows の 在 庫 に つ い て は , 上 記 の 電 話 番 号 ま で ご 連 絡 く だ さ い 。 綴 じ 込 み は が き 裏 面 の 記 事 評 価 ア ン ケ ー ト に は 下 記 の 数 字 を ご 記 入 く だ さ い 。 ① 特 集 1 「 使 い や す い ユ ー ザ イ ン タ フ @9Linux P 「 ogramming Tips $Wlndows Programming Tips ェ イ ス を 求 め て 」 ② 特 集 2 「 MacOSX ア プ リ ケ ー シ ョ OJava Programming Tips ⑩ ロ ー テ ク 講 座 ン 開 発 ガ イ ド 」 ⑩ 特 別 記 事 「 i ア プ リ の 作 成 」 @Get 旧 to C World C 言 語 入 門 講 座 ⑩ 最 新 開 発 環 境 レ ポ ー ト 「 Fo e fo 「 ④ 実 践 C + + ゼ ミ ナ ー ル ⑤ ス タ ー ト ア ッ プ Java Java 2.0 」 ⑥ プ ロ グ ラ ミ ン グ 相 談 室 OMONTHLY HEADLINE @C MAGA Bookends ⑦ Standard C ℃ + + ⑧ ど 0 て ク ク の オ ブ ジ ェ ク ト 工 房 の 学 問 の ス ス メ ⑨ Enjoy perl Programming あ つ ば れ ご 意 見 番 $C マ ガ 電 脳 ク ラ ブ ⑩ Ruby マ ス タ ー へ の 道 ⑩ ア ル ゴ リ ズ ム 入 門 プ ロ グ ラ ミ ン $READERS' ROOM グ の 宝 箱 ⑩ ア ル ゴ リ ズ ム ラ ボ @3Enter The 3D Programming ⑩ ネ ッ ト ワ ー ク プ ロ グ ラ ミ ン グ の ア ト リ エ 1 月 号 2 月 号 4 月 号 〇 1 刀 READERS' ROOM

月刊 C MAGAZINE 2001年6月号


Java programmingTips ひ ぐ べ ん 工 房 第 1 1 回 ス レ ッ ド と タ イ マ で 実 現 す る ア ニ メ ー シ ョ ン ア プ レ ッ ト ア ニ メ ー シ ョ ン は も っ と も 代 表 的 な ア プ レ ッ ト の 題 材 で す 。 ア ニ メ ー シ ョ ン を 実 現 す る に は ス レ ッ ド を 使 う の が 普 通 で す が , Swing の タ イ マ を 使 う 方 法 も あ り ま す 。 ま た 今 回 は , Java P 旧 g - in を 利 用 し て 一 般 の Web ブ ラ ウ ザ で Java の 最 新 機 能 を 用 い た ア プ レ ッ ト を 動 か す 方 法 も 解 説 し ま す 。 DOS プ ロ ン プ ト ) で 以 下 の コ マ ン ド を 入 力 ウ イ ン ド ウ ( フ レ ー ム ) が ふ た つ 出 現 し ま す 。 ス レ ッ ド 版 ア ニ メ ー シ ョ ン し ま す 。 コ ン パ イ ル は , 一 方 が ス レ ッ ド 版 , 他 方 が タ イ マ 版 で す 。 ア プ レ ッ ト 一 般 の Web プ ラ ウ ザ (lnternet ExpIorer や javac ThreadAnim. java ま ず は ス レ ッ ド を 使 っ た お な じ み の 方 法 Netscape Navigator) で Anim. html を 開 い た で す 。 AnimComponent.java は ffreadAnim. で ア ニ メ ー シ ョ ン を 行 う ア プ レ ッ ト で す (F java の 中 か ら 参 照 し て い る た め , 自 動 的 に 場 合 , web プ ラ ウ ザ の バ ー ジ ョ ン に も よ り ig. 1)。 プ ロ グ ラ ム は List1 と List2 で す 。 Li ま す が , ア プ レ ッ ト が 起 動 し な い 場 合 が 多 コ ン パ イ ル さ れ ま す 。 実 行 は , い と 思 い ま す 。 こ れ は Java の 比 較 的 新 し い st 1 は javax. swing パ ッ ケ ー ジ の JComponent appletviewer Anim. html ク ラ ス を サ プ ク ラ ス 化 し た 画 像 描 画 用 の コ で す 。 lim. html に は ス レ ッ ド 版 ・ タ イ マ 機 能 を 使 っ た ア プ レ ッ ト に よ く 見 ら れ る 現 ン ポ ー ネ ン ト で す 。 List2 は ス レ ッ ド 版 ア ニ 版 の 各 ア ニ メ ー シ ョ ン ア プ レ ッ ト 用 の く 叩 象 で す 。 通 常 の Web プ ラ ウ ザ で こ の よ う な メ ー シ ョ ン ア プ レ ッ ト の 本 体 で す 。 List 1 plet > タ グ が 書 い て あ り ま す 。 ス レ ッ ド 版 ・ ア プ レ ッ ト を 動 か す に は JavaPIug - in を 利 用 は , List2 と 後 述 す る List4 ( タ イ マ を 用 い た タ イ マ 版 の 両 方 を コ ン パ イ ル し て お く と , し ま す 。 そ の 方 法 は 後 ほ ど 詳 し く 解 説 し ま ア ニ メ ー シ ョ ン ア プ レ ッ ト ) の 両 方 か ら 利 List 画 像 描 画 用 の コ ン ポ ー ネ ン ト (AnimComponent. java, List 2 と List 4 か ら 利 用 ) 用 し ま す 。 ま た , ア プ レ ッ ト に は HTML フ ァ イ ル も - ア ニ メ ー シ ョ ン 用 の コ ン ポ ー ネ ン ト 必 要 で す 。 HTML フ ァ イ ル は List3 で , ス レ impo て t java. awt. * ー lmport java ・ awt. geom. ッ ド 版 ・ タ イ マ 版 に 共 通 で す 。 import javax. swing. * ー ス レ ッ ド 版 ア ニ メ ー シ ョ ン ア プ レ ッ ト を コ ン ポ ー ネ ン ト の ク ラ ス コ ン パ イ ル ・ 実 行 す る 方 法 を 説 明 し ま す 。 / / 画 像 lmage image; / / 画 像 を 表 示 す る 角 度 double theta=0. の 使 用 す る 処 理 系 は Java 2 SDK, Standard Ed コ ン ス ト ラ ク タ public AnimComponent(Image —image) { ition, Ver. 1.3 ( 以 下 JDKI. 3 ) で す 。 コ ン パ イ / / 画 像 を 設 定 image=—image ー ル ・ 実 行 に は コ マ ン ド プ ロ ン プ ト ( ま た は 一 角 度 の 設 定 public void rotate(double —theta) { / / 角 度 を 設 定 theta=—theta; Fig. 1 ア ニ メ ー シ ョ ン ア プ レ ッ ト - 表 示 public void paint(Graphics gra) { / / Graphics2D オ ブ ジ ェ ク ト Graphics2D g2d; / / 回 転 用 の ア フ ィ ン 変 換 行 列 AffineTransform at; (gra れ s に ceof Graphics2D & & image!=null)€ て g2d=(Graphics2D)gra;// Gr 叩 h 土 cs を Gra ics2D に 変 換 ( キ ャ ス ト ) す る / / ア フ ィ ン 変 換 行 列 の 作 成 / / ま ず 画 像 の 中 心 で 回 転 し 、 次 に 画 像 の 中 心 を i ompone 北 の 中 心 に 合 わ せ る a セ = ぬ e 曾 AffineTrangform( at.translate(getwidth( ) / 2 , getHeight( ) / 2 at. rotate ( theta at. translate(-image. getWidth(this)/2, -image. getHeight(this)/2); / / 画 像 の 表 示 g2d. drawlmage(image, a も 、 this); 再 同 新 -1 し ッ ト し 」 一 广 T れ 自 川 m ア プ レ ッ ト な ~ さ れ ま し た 。 137 Java Programming Tips

月刊 C MAGAZINE 2001年6月号


前 RO e t あ わ せ て ご 覧 く だ さ い 。 Forte fo 「 Java release 1.0.2 Community Edition Forte for Java release 1.0.2 Community E dition は , 先 ほ ど 紹 介 し た Fo れ e forJava rel ease 2.0 Community Edi ⅱ on の 則 の バ ー ジ ョ ッ ト ワ ー ク プ ロ グ ラ ミ ン グ の ア ト リ エ 」 は , 新 連 載 「 技 術 を 知 っ て 実 践 し よ う ! ネ 日 本 語 化 バ ッ ク MoziIla 0.8.1 & さ い 。 に な り ま す こ と を , あ ら か じ め ご 了 承 く だ か ら ダ ウ ン ロ ー ド し て お 使 い い た だ く こ と ゆ: 〃 www.nttdocomo.co.jp/i/java/tool.html 付 録 CD - ROM に は 収 録 さ れ て い ま せ ん 。 ht 用 し て い る J2ME Wireless SDK for DoJa は , わ せ て ご 覧 く だ さ い 。 な お , こ の 記 事 で 使 (http://www.血d0C0m0 ・ co.jp/i/java/) も あ N"IT ド コ モ の i ア プ リ に 関 す る Web ペ ー ジ ま た , 本 誌 147 ペ ー ジ か ら の 特 別 記 事 や ト リ に 収 録 し ま し た 。 Community Edition を く\f0rte102> デ ィ レ ク の ご 協 力 に よ り , Forte forJava release 1.0.2 そ こ で , サ ン ・ マ イ ク ロ シ ス テ ム ズ ( 株 ) ま す 。 Community Ed ⅲ on の 利 用 が 推 奨 さ れ て い て い な い た め , Forte for Java release 1.0.2 2.0 CommunitY Edition で の 動 作 確 認 が さ れ コ モ の 発 表 に よ る と Fo e for Java release 成 す る 方 法 を 紹 介 し て い ま す ( 株 )NTP ド on 」 , そ し て 「 F 。 れ e forJava 」 で i ア プ リ を 作 SDK for DoJa 」 と 「 Java2 SDK Standard Editi ・ 発 用 の い わ ば 純 正 の キ ッ ト 「 J2ME Wireless NIT ド コ モ か ら 提 供 さ れ て い る , i ア プ リ 開 で は な い で し よ う か 。 特 別 記 事 で は , ( 株 ) る i ア プ リ の 作 成 」 は 非 常 に 興 味 の あ る 記 事 for Java と J2ME W1reless SDK for DoJa に よ プ ロ グ ラ ミ ン グ 」 と 今 月 号 の 特 別 記 事 「 F 。 血 は , 5 月 号 の 特 集 「 チ ャ レ ン ジ ! i ア プ リ i ア プ リ の 開 発 に 関 心 の あ る 方 に と っ て ン に あ た り ま す 。 毎 回 ネ ッ ト ワ ー ク プ ロ グ ラ ミ ン グ に 関 す る 話 題 を 取 り 上 げ て い き ま す 。 今 回 は Mozilla を 利 用 し た ア プ リ ケ ー シ ョ ン の 開 発 に つ い て 解 説 し て い ま す 。 Mozilla は , オ ー プ ン ソ ー ス の Web プ ラ ウ ザ , メ ー ル ク ラ イ ア ン ト , HTML 工 デ ィ タ , ニ ュ ー ス プ ラ ウ ザ で , Windows/Linux /Macintosh/FreeBSD に 対 応 し て い ま す 。 Netscape Communications Corporation の ご 協 力 に よ り , <YmoziIIa> デ ィ レ ク ト リ に 各 OS 用 の MoziIIa 0.8.1 と 日 本 語 化 に 必 要 な モ ジ ュ ー ル を 収 録 し ま し た 。 各 パ ッ ケ ー ジ フ ァ イ ル に 含 ま れ る ド キ ュ メ ン ト フ ァ イ ル , ラ イ セ ン ス フ ァ イ ル を ご 覧 い た だ き , 同 意 い た だ い た う え で ご 利 用 く だ さ い 。 ま た , 本 誌 120 べ ー ジ か ら 始 ま る 新 連 載 「 ネ ッ ト ワ ー ク プ ロ グ ラ ミ ン グ の ア ト リ エ 」 も あ わ せ て ご 覧 く だ さ い 。 Java2 SDK Standard Edition Ver. 1.3.0 02 Windows/Linux/SOIaris 版 fJava2 SDK Standard Edition 」 は , Java の ア プ リ ケ ー シ ョ ン 開 発 の 基 礎 と な る キ ッ ト で す 。 サ ン ・ マ イ ク ロ シ ス テ ム ズ ( 株 ) の ご 協 力 に よ り , 各 プ ラ ッ ト ホ ー ム の 最 新 バ ー ジ ョ ン 1.3.0 ー 02 を く \ JDK > デ ィ レ ク ト リ に 収 録 し ま し た ま た , あ わ せ て 日 本 語 ド キ ュ メ ン ト も 収 録 し ま し た よ 、 今 回 提 供 す る モ ジ ュ ー ル は , 4 月 18 日 現 在 サ ン ・ マ イ ク ロ シ ス テ ム ズ ( 株 ) の Web サ イ ト よ り 提 供 さ れ て い る も の と 同 じ で す 。 ご 使 用 に あ た っ て は , Web か ら の ダ ウ ン ロ ー ド と 同 様 , ラ イ セ ン ス 条 項 に 同 意 す る 必 要 が あ り ま す 。 く YJDK> デ ィ レ ク ト リ に あ る 各 デ ィ レ ク ト リ の license. txt を ご 覧 い た だ き , 同 意 し た 場 合 に の み ご 利 用 く だ さ な お , Java2 SDK Standard Edition に 関 連 す る 本 誌 の 記 事 は , 65 ペ ー ジ か ら 始 ま る 連 載 「 ス タ ー ト ア ッ プ Java 」 と 137 べ ー ジ か ら 始 ま る 「 Java Programming Tips 」 , 147 ペ ー ジ か ら 始 ま る 特 別 記 事 , 152 ペ ー ジ か ら 1 / 2 2001 年 6 月 号 特 別 付 録 CD - ROM に は , 次 の プ ロ グ ラ ム が 収 録 さ れ て い ま す 。 ご 使 用 に あ た っ て は , 各 プ ロ グ ラ ム に 添 付 さ れ て い る ド キ ュ メ ン ト フ ァ イ ル , お よ び 付 録 C D-ROM の ル ー ト デ ィ レ ク ト リ に 収 録 さ れ て い る ⅲ dex. h ⅱ を ご 覧 く だ さ い 。 Forte fO 「 Java release 2.0 Community Edition 最 新 開 発 環 境 レ ポ ー ト は ご 覧 い た だ け た で し よ う か 。 今 回 の 最 新 開 発 環 境 レ ポ ー ト で 紹 介 し て い る 「 Fo れ e for Java release 2.0 」 は , サ ン ・ マ イ ク ロ シ ス テ ム ズ ( 株 ) が 提 供 し て い る Java の 統 合 開 発 環 境 で す 。 Java 2 SDK Standard Edition Ver. 。 1.3 を ベ ー ス と し て Windows/Linux/S01aris の 3 種 類 の OS 上 で 動 作 し ま す 。 サ ン ・ マ イ ク ロ シ ス テ ム ズ ( 株 ) の ご 協 力 に よ り , 無 償 で 利 用 で き る Forte for Java release 2.0 Community Edi ⅱ on を く \ forte20 > デ ィ レ ク ト リ に 収 録 し ま イ ン ス ト ー ル 方 法 な ど は , く \ forte20 > デ ィ レ ク ト リ に あ る 806-7750-01. Pt Ⅱ . JA. FFJ. I nsta Ⅱ . pdf フ ァ イ ル の イ ン ス ト ー ル ガ イ ド の 中 か ら , 利 用 す る OS の 部 分 の ド キ ュ メ ン ト を ご 覧 く だ さ い ( こ の フ ァ イ ル を ご 覧 に な る に は PDF フ ァ イ ル を 表 示 す る た め の Acrobat Reader が 必 要 で す 。 Acrobat Read er は , ア ド ビ シ ス テ ム ズ ( 株 ) の Web ペ ー ジ (http://www.adobe.co.jp/) か ら ダ ウ ン ロ ー ド で き る , 無 償 で 利 用 で き る ソ フ ト ウ ェ ア で す ) 。 ま た , 本 誌 152 ペ ー ジ か ら の 最 新 開 発 環 境 レ ポ ー ト や サ ン ・ マ イ ク ロ シ ス テ ム ズ ( 株 ) の Fo れ e for Java の Web'X ー ジ (http: 〃 www. sun. co .jp/software/tools/ffi /index. html) も C MAGAZINE 2001 6