検索 - みる会図書館

検索対象: 月刊 C MAGAZINE 1992年5月号

月刊 C MAGAZINE 1992年5月号から 128件ヒットしました。

月刊 C MAGAZINE 1992年5月号


SOFTBANK BOOKS 印 、 O 全 て の C プ ロ グ ラ マ に 贈 る ア ル ゴ リ ズ ム 解 説 書 の 決 定 版 C プ ロ グ ラ マ の た め の 近 藤 点 雪 = 著 近 藤 嘉 雪 著 定 価 2 , 200 円 ( 税 込 ) 「 C MAGAZIN 動 連 載 記 事 を 大 幅 加 筆 。 プ ロ グ ラ ミ ン グ 上 達 に 必 要 な ア ル コ ッ ズ ム と デ ー タ 構 造 に つ い て 、 C 言 譓 ユ る 実 例 凾 し て 明 解 に 解 説 / [CONTENTS] 第 1 部 ア ル ゴ リ ズ ム と デ ー タ 構 造 の 基 本 ア ル ゴ リ ズ ム と は ? / 計 算 量 / デ ー タ 構 造 と は ? 第 2 部 基 本 的 な デ ー タ 構 造 配 列 / 連 結 リ ス ト / 木 構 造 第 3 部 探 索 探 策 と は ? / ハ ッ シ ュ 法 / ニ 分 探 索 木 / 平 衡 木 第 4 部 整 列 整 列 と は ? / 単 純 な 整 列 ア ル ゴ リ ズ ム / シ ェ ル ソ ー ト / ク イ ッ ク ソ ー ト / マ ー ジ ソ ー ト ・ お 近 く の 書 店 で お 求 め 下 さ い 万 ト バ ン ク 出 版 事 業 部 ー ー テ ー タ 構 造 と . ア ル コ リ ズ ム

月刊 C MAGAZINE 1992年5月号


U I X E R 、 7 月 8 日 , 創 刊 実 現 を 目 指 し ま 魂 UNI)( の レ 屮 フ ッ オ —L 環 境 の T L. 03 ( 5488 ) 60 〒 108 東 京 都 , 区 高 輪 2 ー 19-13 N! 高 輪 ヒ 丿 ソ ハ ン ク 出 版 事 部 日 K SOFT

月刊 C MAGAZINE 1992年5月号


の 高 速 版 を 作 る の は 容 易 て 、 す 。 こ れ に 平 均 と い っ て も , テ キ ス ト の 統 計 デ ー タ 例 に よ っ て , 呼 び 出 し グ ラ フ を 使 っ て , 再 つ い を 持 っ て い る わ け て 、 は な い て , 以 下 の よ う 帰 呼 び 出 し の よ う す を 追 い か け て み る こ と て は , プ ロ グ ラ ム を List 7 に 紹 介 す る に と ど な や や 「 悲 観 的 な 」 見 積 り を す る こ と に し ま め ま す 。 す 。 悲 観 的 な 見 積 り は , 「 安 全 サ イ ド の 見 方 」 最 初 の 例 は , 、 、 BbB ク の 4 バ イ ト 目 ( 0 か ら 効 率 に つ い て と も い わ れ , 工 ン ジ ニ ア リ ン グ の 世 界 て 、 は 数 え て ) が , 「 漢 字 の 1 バ イ ト 目 」 か ど う を 判 「 高 速 版 」 nthctype が て 、 き た の て 、 , そ の 効 基 本 的 な 判 断 基 準 の ひ と っ て 、 す 。 定 す る も の て 、 す 。 0 か ら 数 え て 4 バ イ ト 目 は , 率 に つ い て 検 討 す る こ と に し ま す 。 、 、 B 〃 の 先 頭 て 、 す か ら , 結 果 は 1 が 返 る は ず 「 悲 観 的 な 」 見 積 り を 行 う に あ た っ て , 「 テ ま ず コ ン パ イ ラ 添 付 の nthctype の 効 率 に て 、 す 。 キ ス ト は す べ て 全 角 文 字 か ら な っ て い る 」 , つ い て 考 え ま す 。 先 に も 述 べ た よ う に , LS や っ て み ま し よ う 。 Fig. 8 に 呼 び 出 し グ ラ と い う 条 件 を つ け る こ と に し ま す 。 実 際 の フ を 示 し ま す 。 図 の 説 明 に あ る よ う に , 串 テ キ ス ト に は , 半 角 の 英 字 や カ タ カ ナ な ど I Cー86 や Turbo C な ど の nthctype 関 数 は , 刺 し ダ ン ゴ の 中 の 数 字 は , 引 数 n と , n 番 目 文 字 列 の 先 頭 か ら 順 に 文 字 種 を 調 べ て い く が 含 ま れ て お り , こ れ ら の 文 字 に ぶ つ か れ と い う ア ル ゴ リ ズ ム を 採 用 し て い ま す 。 し ば ス キ ャ ン が 即 座 に 止 ま る わ け て 、 す が , 全 の 文 字 sCn] を 示 し て い ま す 。 あ と は 見 て の と お り て 、 す が , 再 帰 呼 び 出 し て 、 文 字 列 を た が っ て , nthctype(), n) と い う 関 数 呼 び 角 と 半 角 の 文 字 の 割 り 合 い な ど 簡 単 に は わ 逆 向 き に ス キ ャ ン し て い き , n= 1 て 、 漢 字 1 バ 出 し に 要 す る 計 算 量 は , O (n) に な り ま す 。 か ら な い の て 、 , す べ て 全 角 と 考 え て お け ば イ ト 目 に な り 得 な い コ ー ド が あ る の て 、 , 次 に , 「 高 速 版 」 の 計 算 量 に つ い て 考 え ま 悲 観 的 す な わ ち 安 全 側 に 判 断 し て い る こ と こ て 、 再 帰 が 止 ま り ま す 。 以 下 , 戻 り 値 が 交 し よ う 。 に な り ま す 。 互 に 0 と 1 の 間 を 往 来 し な が ら , 最 後 は 無 事 最 悪 の ケ ー ス を 考 え る と , 高 速 版 と い え 全 角 文 字 ば か り か ら な る テ キ ス ト て 、 , 関 に 1 を 返 し ま す 。 め て 、 た し め て 、 た し ど も , 文 字 列 の 先 頭 ま て 、 戻 ら な い と 文 字 種 数 nth kanji が 再 帰 な い し ル ー プ を 止 め る の 次 の 例 は , 、 、 Bba ク の 3 バ イ ト 目 ( 0 か ら 数 え 判 定 が て 、 き な い こ と に な り ま す 。 こ の よ う は , 漢 字 2 バ イ ト 目 で , か っ , 漢 字 1 バ イ ト て ) て 、 す 。 Fig. 9 に 示 す 呼 び 出 し グ ラ フ を 見 な た ち の 悪 い 例 と し て は , 、 、 bbbbb ・ ・ ・ 〃 と い 目 に は な り 得 な い 文 字 に ぶ つ か っ た と て い た だ け れ ば わ か る の て 、 す が , Fig. 8 と 非 う 文 字 列 を あ げ る こ と が て 、 き ま す 。 常 に 似 た デ ー タ 並 び に な っ て い ま す 。 そ れ し か し , 通 常 の テ キ ス ト を 対 象 に し て い き て 、 す 。 こ の よ う な 文 字 に ぶ つ か る 確 率 を 考 て 、 い て , 返 す 値 は 0 て 、 す 。 こ の 両 者 の 違 い に る か ぎ り は , 上 記 の よ う な 例 は ま ず 出 て こ つ い て 考 察 す る こ と に し ま す 。 な い と 考 え て よ い て 、 し よ う 。 し た が っ て , え て み ま す 。 漢 字 2 バ イ ト 目 の 取 り 得 る 文 字 平 均 的 な ケ ー ス の 計 算 量 を 見 積 る こ と に し は , 全 部 て 188 種 て 、 , こ の 中 て 、 漢 字 1 バ イ ト 関 数 nth kanji の 呼 び 出 し グ ラ フ を 見 る と , 次 の こ と が わ か り ま す 。 先 に も 説 明 し ま す 。 目 に も な り 得 る 文 字 は 60 種 て 、 す 。 し た が っ た よ う に , 関 数 nth kanji は , 再 帰 が 深 ま る に つ れ て 文 字 列 を 左 に 左 に と 見 て い っ て , sCn] が 漢 字 第 レ ヾ イ ト に な り 得 な い 文 字 に ぶ つ か っ た ら ス キ ャ ン を 停 止 し て い ま す 。 ス キ ャ ン を 停 止 す る ま て 、 は , 漢 字 1 バ イ ト 目 に な り 得 る 文 字 ば か り が 並 ん て 、 い る わ け て 、 す か ら , そ の 並 び の 先 頭 か ら 順 に , 漢 字 レ ヾ イ ト 目 と 漢 字 2 バ イ ト 目 が 交 互 に 並 ん て 、 い る こ と に な り ま す 。 以 上 を 図 示 し た の が Fig. 10 て 、 す 。 Fig. 1 0 の ア ル ゴ リ ズ ム を C 言 語 に 落 と す と , List 6 に 示 す よ う に , 非 再 帰 版 の nth kanji 関 数 を 作 る こ と が て 、 き ま す 。 再 帰 版 と 非 再 帰 版 の 違 い ・ 得 失 に つ い て は 次 節 て 、 検 討 す る こ と に し ま す 。 nth kanji 関 数 が て 、 き た な ら ば , nthctype Fig. 10 非 再 帰 版 文 字 種 判 定 ア ル ゴ リ ズ ム 漢 字 1 八 イ ト 目 漢 字 1 八 イ ト 目 に な り 得 る に な り 得 な い ↓ ↑ ↑ こ の 次 か 漢 字 の 始 ま り (K) 基 点 ( N ) N ー K の 奇 偶 に よ り , 基 点 N の 文 字 か 漢 字 1 バ イ ト 目 か ど う か 判 断 で き る N—K= 奇 数 漢 字 1 バ イ ト 目 N—K= 偶 数 漢 字 2 バ イ ト 目 76 C MAGAZINE 1992 5

月刊 C MAGAZINE 1992年5月号


特 集 ℃ プ ロ グ ラ マ の た め の 993 ロ 住 List 2 78 : 79 : 80 : 82 : 83 : 84 : 85 : 88 : 89 : { 90 : 92 : 93 : 94 : 95 : 96 : } 97 : 98 : 99 : ( 100 : 101 : 102 : 103 : 104 : 105 : 106 : 107 : 108 : 109 : 110 : { 111 : 112 : 113 : 114 : 115 : 116 : 117 : 118 : } int i nt return ( V i deo ) : if ( _dosv—getvramadr() ! = NULL ) return( VIDEOdosv ー video ) ; return( v i deo ) ; if ( istowns() ) return ( V I DE0towns ) : return( VIDE098 ) ; istowns( VOid ) int data; data ニ inpw( 0X30 ) ; / * DOS/V ヒ ・ テ ・ オ ・ を ト ・ / * IBM-PC 互 換 機 ヒ ・ テ ・ オ ・ モ ー ト ・ * / / * FM-TOWNS / * 一 9801 シ リ ー ス ・ / * CPU 識 別 レ シ ・ ス タ / * FM-TOWNS の 判 定 / * ト ・ ラ イ フ ・ ・ ス イ ッ チ ・ レ シ ・ ス タ inp( 0X20e ) & 0xfe ) = return ( 1 ← ( unsigned char )data ( unsigned char )data く 一 ー 7 ) & & ( data & Oxff00 ) ! ニ 0xff00 ) ; ibm—getvideo( void ) union REGS iregs ; iregs. h. ah ニ Ox0f; int86( 0X10 , &iregs, &iregs ) ; if ( iregs. h. ah = 0x0f ) return( VIDE098 ) ; return( iregs. h. al ) : / * ビ テ ・ オ ・ モ ー ト ・ の 取 得 / * ヒ ・ デ オ 情 報 の 読 み 出 し / * 一 9801 シ リ ー ス ・ / * IBM-PC 互 換 機 ヒ ・ デ オ ・ を ト ・ void far *—dosv-getvramadr( void ) union REGS iregs ; struct SREGS segs; iregs. X. di segs. iregs. h. ah = Oxfe; int86x( 0X10 , &iregs, &iregs, コ ラ ム I DOS / V の 情 報 公 開 / * 疑 似 ヒ ・ テ ・ オ ・ ハ ・ ツ フ ア ア ト ・ レ ス の 取 得 * / &segs ) ; return( MK FP( segs. es, iregs. x. di ) ) ; / * 疑 似 ヒ ・ テ ・ オ ・ ハ ・ ツ フ ア ア ト ・ レ ス / * 疑 似 ヒ ・ テ ・ オ ・ ハ ・ ツ フ ア ア ト ・ レ ス の 取 得 * / IBM-PC は か な り の 情 報 が 公 開 さ れ て い る た め , プ ロ グ ラ ミ ン グ の 際 に 結 構 役 に 立 ち ま す 。 し か し , 国 内 て 、 は DOS / V に し て も ニ ュ ア ル が 単 行 本 と し て 数 種 類 出 版 さ れ て す 。 現 に PC ー 9801 シ リ ー ズ て は テ ク ニ カ ル マ 情 報 を 欲 し て い る 人 は 少 な く な い と 思 い ま し か し , 一 般 ュ ー ザ の 中 に も テ ク ニ カ ル な い と い う 考 え な の か も し れ ま せ ん 。 一 般 ュ ー ザ に 対 し て 情 報 公 開 を す る 必 要 は ザ は ア プ リ ケ ー シ ョ ン ユ ー ザ て 、 あ る た め , 般 ュ - ー ザ に は 配 布 さ れ ま せ ん 。 大 半 の ユ ー め , 情 報 公 開 は 行 わ れ て い る の て す が , れ ば テ ク ニ カ ル マ ニ ュ ア ル が 配 布 さ れ る た 確 か に OADG や AX 協 議 会 に 加 盟 し て い 極 的 て す 。 AX マ シ ン に し て も 情 報 公 開 が も う ひ と つ 消 い ま す し , 雑 誌 て も 年 に 何 回 か は ユ ザ が 解 析 し た 新 機 種 に 関 す る 非 公 開 情 報 を 目 に し ま す 。 プ ロ グ ラ ミ ン グ て き る 人 は パ ソ コ ン に 関 し て キ ー マ ン て あ る 場 合 も 少 な く な く , ア プ リ ケ ー シ ョ ン ユ ー ザ か ら マ シ ン に つ い て 質 問 さ れ れ ば ( 最 近 は , お も な ア プ リ ケ ー シ ョ ン は ほ と ん ど , ど の マ シ ン て 、 も サ ポ ー ト さ れ て い ま す か ら ) , も っ と も 内 容 を 把 握 し て い る マ シ ン を 薦 め る 可 能 性 が 高 い の て は な い て 、 し よ う か 。 DOS / V や AX マ シ ン は 一 般 ユ ー ザ に も ど ん ど ん 情 報 を 公 開 し て く だ さ い ( 私 に 公 開 し て く れ れ ば ど ん ど ん 雑 誌 や 単 行 本 て 紹 介 し て あ げ ま す よ ! ! ) 。 て 判 定 す る 可 能 性 は 低 く な る て 、 し よ う (Sup erVGA て 、 100 字 X37 行 と い う の は PC ー 9801 ユ ー ザ と し て は 羨 ま し い か ぎ り て 、 す ね ) 。 IBM ー PC 互 換 機 て 、 あ れ ば ビ デ オ BIOS OF h て 、 ビ デ オ モ ー ド を 取 得 し て い ま す ( ibm g etvi deo ) 。 余 談 て 、 す が , ビデ オ BIOS INT 10h は , PC ー 9801 シ リ ー ズ て 、 は プ リ ン タ の ハ ー ド ウ ェ ア 割 り 込 み に 割 り 当 て ら れ て い ま す が , 使 用 さ れ て い ま せ ん 。 ハ ー ド ウ ェ ア 割 り 込 み な の て 、 , す べ て の レ ジ ス タ が 保 存 さ れ る た め ,ビデ オ BIOS 0Fh を 呼 び 出 し た と き に A H レ ジ ス タ は 0Fh の ま ま て 、 す 。 そ の た め , P C ー 9801 シ リ ー ズ と IBM ー PC 互 換 機 だ け の 判 定 て 、 あ れ ば , ibm getvideo 関 数 て 機 種 判 別 を 行 う こ と が て 、 き ま す 。 IBM-PC 互 換 機 が DOS/V マ シ ン か ど う か は , ビ デ オ BIOSFEh (TabIe 11 ) て 、 疑 似 ビ デ オ バ ッ フ ア ア ド レ ス が 取 得 て 、 き る か ど う か て 、 判 定 し て い ま す 。 英 語 モ ー ド て 、 は 何 も 割 り 当 て ら れ て い な い た め , 呼 び 出 し 前 の レ ジ ス タ が 保 存 さ れ ま す 。 FM-TOWNS て 、 は , CPU 識 別 レ ジ ス タ が Fig. 3 の よ う に I/O'*— ト に 割 り 付 け ら れ て お り , FM-TOWNS と FMR の 機 種 を 判 別 す る こ と が て 、 き る よ う に な っ て い ま す 。 IBM-PC 互 換 機 て 、 は I/O*— ト 30h , 31h は マ ス タ 8259A ( 20H , 21H ) の イ メ ー ジ に な っ て お り , PC ー 9801 シ リ ー ズ て 、 は I / O ポ ー ト 30h が 8251A の デ ー タ レ ジ ス タ , 31h が デ ィ ッ プ ス イ ッ チ SW2 の 設 定 状 態 と な っ て い ま す 。 IBM ー PC 互 換 機 や PC ー 9801 シ リ ー ズ て 、 は , I/O*— ト 30h , 31h は バ イ ト ボ ー ト と な っ て お り , ワ ー ド て 、 読 み 取 る と 上 位 バ イ ト が FF h と な る は ず て 、 す 。 こ の CPU 識 別 レ ジ ス タ の 値 は FM-TOWNS(80386) て 、 は 0101h ま た は 0201h と な っ て い る た め , こ の 値 を チ ェ ッ ク し て い る の て 、 す が , す て 、 に 販 売 さ れ て い る 新 機 種 を 考 慮 す れ ば , 特 集 ビ ッ ト 7 ~ 3 C プ ロ グ ラ マ の た め の DOS 基 礎 学 41 ビ ッ ト 15 ~ 8 半 FFh 00h

月刊 C MAGAZINE 1992年5月号


2 の 階 乗 は 1X2 = 2 3 の 階 乗 は 1 >< 2 >< 3 = 6 4 の 階 乗 は 1 >< 2 >< 3 >< 4 = 24 て 、 す 。 100 の 階 乗 ま て 、 の 表 を 出 力 す る プ ロ グ 13 : } EC ロ グ ラ ミ ン グ ラ ム を 作 っ て み ま し よ う 。 も っ と も 簡 単 な 方 法 は printf()l の 階 乗 は %g*n", 1 ) ; printf ( " 2 の 階 乗 は %g*n", 1 * 2 ) ; List 100 の 階 乗 ま で の 表 を 出 力 す る プ ロ グ ラ ム (listl 0. c ) 1 : #include く stdio. h 〉 2 : main() int i; double x; 4 : 5 : 6 : 8 : 9 : 10 : 11 : 12 : Fig. 8 for (i = 1 : return 0 : ristl 0. exe の 出 力 例 1 OOØ 階 乗 は 99 の 階 乗 は 98 の 階 乗 は 97 の 階 乗 は 96 の 階 乗 は 95 の 階 乗 は 94 の 階 乗 は 93 の 階 乗 は 92 の 階 乗 は 91 の 階 乗 は 90 の 階 乗 は 1 8 の 階 乗 は 1 7 の 階 乗 は 1 6 の 階 乗 は 1 5 の 階 乗 は 1 4 の 階 乗 は 1 3 の 階 乗 は 1 2 の 階 乗 は 1 1 の 階 乗 は 1 0 の 階 乗 は 9 の 階 乗 は 8 の 階 乗 は 7 の 階 乗 は 6 の 階 乗 は 5 の 階 乗 は 4 の 階 乗 は 3 の 階 乗 は 2 の 階 乗 は 1 の 階 乗 は i ← 100 : i + + ) { printf("X3d の 階 乗 は % 22.15 n ” , i, x); / * i = 1 か ら 1 圓 に つ い て * / / * x を i 倍 す る (x = x * i ; と 同 じ ) * / / * i と x を 出 力 * / 1 2 6 24 120 720 5040 40320 362880 3628800 1 .03299784882391 e 十 148 1 ℃ 8736615665674e 十 146 1 .15677250708164e 十 144 1 .24384140546413e 十 142 1 .3520015276784e 十 140 1 .48571596448176e 十 138 6.402373705728e 十 1 5 355687428096000 20922789888000 1307674368000 87178291200 6227020800 479001600 39916800 9.33262154439441 e 十 1 57 9.33262154439441 e 十 1 55 9.42689044888324e 十 1 53 9.61927596824821e 十 151 9.91677934870949e 十 149 旧 'i 住 れ 3.0 Full Screen Editor 日 本 語 版 ′ ief フ ロ グ ラ ミ ン ク ・ エ テ イ タ ー 日 卒 新 版 日 山 SC en Ed 0 「 朝 新 発 売 / 新 機 能 新 機 能 実 践 c プ ロ グ ラ ミ ン グ 入 門 107 く 資 料 請 求 番 号 10 / 〉 TEL. 0425 ー 23 ー 4469 FAX. 0425 ー 27 ー 引 27 立 川 事 業 所 ユ ー ザ ・ サ ポ ー ト 係 ・ お 問 合 せ は 東 京 都 立 川 市 曙 町 ト 田 一 2 ー 清 ビ ル 日 本 シ ス テ ム 槽 式 会 社 対 応 機 種 J ー 引 00 、 J ー 3300 シ リ ー ズ 価 格 19 , 88 円 ( 税 別 ) な い 人 で も OK/ 簡 単 操 作 の 能 力 開 発 ソ フ ト ウ ェ ア で す 。 格 試 験 等 に 最 適 で す 。 「 ダ イ ナ ブ ッ ク 速 読 」 は DOS を 知 ら で 能 力 が ア ッ プ し ま す 。 情 報 収 集 、 受 験 、 資 読 書 速 度 が 3 ~ 5 倍 に な り 、 右 脳 の 刺 激 タ イ ナ ブ ッ ク 速 読 た だ 今 、 と っ て も 便 利 な 習 け ef マ ク ロ 集 を 公 開 中 ザ ・ サ ポ ー ト 係 ま で こ 連 絡 下 さ い 。 方 、 セ ッ ト 販 売 希 望 の 方 、 ま た サ イ ト ラ イ セ ン ス 希 望 の 方 は ユ ー も い た し て お り ま す 。 ・ お 急 ぎ の 方 、 上 記 以 外 の メ デ ィ ア 希 望 の ・ 英 語 DOS で は 使 用 で き ま せ ん が 、 Brief 英 語 版 と の セ ッ ト 販 売 ・ 5 ・ 2DD 、 3.5 ・ 2DD デ ュ ア ル メ デ ィ ア ・ MS ー DOS3 」 以 降 に 対 応 東 芝 、 NEC 、 AX 協 議 会 、 旧 M 、 富 士 通 、 DOS/V ・ 6 機 種 対 応 パ ッ ケ ー ジ C Users Journal) ア ン ド ゥ だ - ー ー お も わ ず 問 違 う の を 期 待 し て し ま い そ う だ 。 (The に 不 満 を 覚 え た ら 、 こ れ し か な い 。 ( Oh / FM ) ・ ま る で 夢 の よ う な 300 回 の ア ン ド ウ は 大 き な 特 徴 。 ( 日 経 バ イ ト ) ・ 既 存 の エ デ イ タ な い 。 ( 」 e 「 ry Pournelle/BYTE) ・ ソ フ ト 開 発 に は 強 力 な ツ ー ル 、 ・ プ ロ グ ラ ミ ン グ 向 き ェ デ イ タ を 探 し て い る 人 は 、 も う 探 す 必 要 は ア メ リ カ で も 日 本 で も 高 い 評 価 ョ ン ) 、 メ ニ ュ ー ( オ プ シ ョ ン ) etc. 数 を 拡 張 、 リ ジ ュ ー ム 機 能 、 CtrI キ ー ・ ア サ イ ン ( オ プ シ キ ー 操 作 の フ ァ イ ル へ の セ ー プ と リ プ レ イ 、 処 理 可 能 行 ・ そ の 他 の 主 な 新 機 能 切 れ て も 安 心 で す 。 容 を フ ァ イ ル に 自 動 保 存 し ま す 。 だ か ら 編 集 中 に 電 源 が Brief は 、 一 定 時 間 、 キ ー を 操 作 し な い と 最 新 の 編 集 内 ・ 安 全 編 集 ま す 。 ま す の で 、 や り 直 し の 面 倒 を 気 に せ ず 、 安 心 し て 編 集 で き 各 フ ァ イ ル こ ・ と に 300 ま で の 操 作 を 元 に も ど す こ と が で き ・ 300 回 も の ア ン ド ゥ 構 文 を 自 動 生 成 し ま す 。 C 、 Ada 、 Basic 、 COBOL 、 FORTRAN 、 MODULA2 、 Pascal で く 構 文 の 自 動 生 成 > ・ テ ン プ レ ー ト 機 能 ト や ウ ォ ッ チ ・ ド ッ グ も セ ッ ト で き ま す 。 ソ ー ス コ ー ド で デ バ ッ グ で き ま す 。 も ち ろ ん プ レ ー ク ポ イ ン ・ マ ク ロ の ス ク リ ー ン ・ デ バ ッ ガ 簡 単 で カ ス タ マ イ ズ も 思 い の ま ま で す 。 使 い 慣 れ て い る C 言 語 で マ ク ロ が 組 め ま す か ら 、 習 得 が ・ C 言 語 で 組 め る マ ク ロ プ ロ グ ラ ミ ン グ ・ エ テ イ タ ( 消 費 税 は 含 ま ず ) 定 価 48 , 000 円

月刊 C MAGAZINE 1992年5月号


: 知 り た い 時 が 欲 し い 時 情 ・ 報 ・ を ・ お ・ ・ が ・ し ・ ま ・ す こ ち ら の ハ ガ キ お 申 し 込 さ い 。 広 告 資 料 請 求 カ ー ド 記 入 例 ( ! い ハ ト 広 告 資 料 請 求 カ ー ド MAGAZINE 広 告 資 料 請 求 シ ス テ ム 郵 使 は が き ー 0 8-0 0 産 県 分 野 ) ・ れ 人 ・ 物 . 第 ・ 一 ・ ・ 0 を あ け ( た コ ン ビ ュ ー タ 2. 農 杯 業 ・ 襄 ・ 鉱 襄 3. 建 設 4. 製 造 業 5. 商 社 ・ 売 り 6. 小 売 襄 7. 融 お . 諸 券 ・ 保 険 業 イ 、 動 産 業 IO. 運 業 . サ ー ビ ス に . 公 務 . 教 関 係 日 . 療 関 係 ソ 2 東 . 放 送 ・ 出 版 川 . そ の 他 1804 ( 験 覆 ) I. 企 文 経 営 2. 商 サ ー ビ ス ・ 自 営 3. 理 職 の 専 門 員 5. 技 術 職 広 出 ト . 6.1 、 務 職 7 級 売 職 8. サ ー ビ ス 職 9. 教 師 川 . ・ 7 ・ 生 . そ カ 他 差 出 有 効 期 間 1 3 港 告 版 く 、 ( 主 に 使 用 す る コ ン ビ ュ - タ ) 円 92 年 8 月 引 日 ま で 営 事 ク 盟 覆 名 s 高 高 輪 業 業 部 部 ・ 服 求 し た い 番 号 を 選 び A ・ 日 ・ C の 希 望 の 項 目 に 0 印 を 付 け て 下 さ い 。 行 ( ( ^. カ タ ロ グ 送 付 希 望 . B. 直 接 説 网 を き た い . c. 賜 人 希 ) ・ ・ ポ ー ラ ン ド ジ ャ ・ ル C 185 ・ ・ ・ シ ス チ ム リ ン ク A 8 C F03 又 ル エ ス ア ー ジ ャ ′ : ン 0 8 C 186 ・ ラ ン ハ ー ド A 8 0 ・ ・ ナ ・ ′ ク ゾ フ ト & サ ー ビ ス A 8 C 187 " l: ジ フ ト ウ ェ ア A 8 ー C A 8 C 30 い ・ ・ ・ 電 気 A 8 C ・ ・ ビ ッ ト ラ ン A ・ 0. C 302 ・ ・ マ グ 。 ウ ヒ ル 出 版 A ー 8 0 ・ 富 t. セ ・ 。 報 冫 ム AIB ・ C 303 " ・ 代 什 ・ い A B ー 0 B C 3 図 " 富 l: ゾ フ ト ウ ェ ア ト ッ ′ 、 ン A 8 C 175 ・ ナ { ッ フ ス 0 B_C 305 A ・ 8 C ・ ア ー ル 生 : 旦 、 9 190 ・ ビ し ッ ジ セ ン タ ー A 8 C 179 ・ 京 マ イ ク 。 コ ン に ユ ー A 0 C 195 ・ Ⅲ 事 十 レ ッ ジ ・ ポ ッ ス ・ 8 ・ ・ ・ ツ ー ル グ ラ フ ト A ・ 8 0 1 % ア フ リ ッ ク ス A 8 C " 工 1 ・ エ - ・ ハ : ん ゞ 1 ン , A B 0 7 ー ・ ・ 〒 ト ・ ・ ら 1 ド 十 -1 : 冫 ト : -1 て A 8 182 ・ 冫 ス チ ム A 8 C 85 ・ ・ オ 寸 ッ カ 商 1 、 A B 183 " ・ 仕 な セ ル ト 冫 ス 衂 開 望 A 8 C 99 ・ ・ ・ 幟 れ 理 研 た 所 A 8 C ・ ・ ツ ー + ッ ク A 8 C 料 金 受 取 人 払 高 惱 ホ 認 広 告 を こ 覧 に な っ て 、 よ り 詳 し い 製 品 内 容 を 知 り た い 、 直 接 商 品 説 明 を 聞 き た い 、 商 品 を 購 入 し た い ・ ・ 。 そ の よ う な こ 要 望 を お 持 ち に な っ た 方 は 、 こ の 広 告 資 料 請 求 シ ス テ ム を こ 利 用 下 さ い 。 ス ピ ー テ ィ に 、 広 告 主 か ら ノ ヾ ン フ レ ッ ト 等 こ 要 望 に 基 づ い て 情 報 提 供 が 受 け ら れ ま 魂 本 誌 と じ 込 み の 広 告 資 料 請 求 カ ー ド に 、 必 要 事 項 を こ 記 入 の 上 、 こ 投 函 下 さ い 。 広 告 資 料 青 求 カ ー ド ( 沖 、 Ⅵ 、 ト 4 月 号 こ の カ ー ト の 有 効 期 限 は 一 知 年 6 月 慴 日 ま で て す . フ リ ガ ナ マ す 名 よ ね : 年 齢 03 ぐ 新 を / 36 ! 覊 高 愉 / 9 ・ / 3 ソ 7 ト バ 、 ン ク 曜 0 引 送 付 先 , 応 用 技 て く た さ い . 広 告 主 広 告 主 広 告 主 ・ 広 告 資 料 請 求 番 号 は 各 頁 の 下 欄 に ・ 氏 名 の フ リ ガ ナ 、 電 話 番 号 、 こ 住 己 し て あ り ま す 。 所 の 番 地 ま で 、 正 確 に こ 記 入 下 さ ・ 広 告 資 料 請 求 カ ー ド は 、 お 手 数 で い 。 資 料 か 正 し く お 届 け 出 来 な い 宛 名 シ ー ル を 提 供 も 全 項 目 に こ 記 入 下 さ い 。 場 合 も こ さ い ま す 。 ソ フ ト ^ ン ク 株 式 会 社 〒 / 0 8 と 送 り 先 - 三 ロ 読 者 の 皆 様 ]. 会 社 名 資 料 送 付 ソ フ ト バ ン ク 出 版 事 業 部 = = ロ

月刊 C MAGAZINE 1992年5月号


は あ る と 納 得 し て い た だ け る と 思 い ま す 。 ま と め が 非 再 帰 版 の nth ー kanji 関 数 を 書 い た と き そ 確 認 て 、 き に く い の が 普 通 て 、 す 。 現 に , 筆 者 か し て み た り し な い と , 正 し く 動 く こ と を し た 場 合 , 絵 を 書 い た り , プ ロ グ ラ ム を 動 一 方 , 同 じ こ と を 再 帰 を 使 わ な い て 、 記 述 こ と を 証 明 す る こ と も 容 易 て 、 す 。 な く て も 書 く こ と が て 、 き , 正 し く 動 作 す る 帰 ア ル ゴ リ ズ ム は , 動 作 を お っ か け ま わ さ ま し た 。 こ の こ と か ら も わ か る よ う に , 再 版 の 動 作 を 図 解 し て 初 め て 作 る こ と が て 、 き き た の に 対 し て , 非 再 帰 版 の ほ う は , 再 帰 た だ ち に プ ロ グ ラ ム を 書 き 上 げ る こ と が て 、 再 帰 版 の ア ル ゴ リ ズ ム は 問 題 の 考 察 か ら を 作 り , 続 い て 非 再 帰 版 を 示 し ま し た 。 thctype に 着 目 し , ま す 再 帰 を 用 い た 高 速 版 漢 字 を 含 む 文 字 の 種 類 を 判 別 す る 関 数 n う て 、 し た 。 は い き ま せ ん 。 再 帰 を マ ス タ ー す る た め に を 設 計 す る 上 て 、 は 再 帰 を 避 け て 通 る わ け に 連 載 第 1 回 て 、 述 べ た よ う に , ア ル ゴ リ ズ ム に て 、 き る か ら て 、 す 。 動 作 を 追 っ か け な く て も 記 述 ・ 検 証 が 容 易 多 い の て 、 す が , 再 帰 ア ル ゴ リ ズ ム て 、 あ れ ば , る と , 動 作 を 追 う こ と 自 体 が 困 難 な 場 合 も ゴ リ ズ ム が 断 然 有 利 て 、 す 。 複 雑 な 間 題 に な な ア ル ゴ リ ズ ム に な っ て く る と , 再 帰 ア ル て も た い し て 難 し く は あ り ま せ ん が , 複 雑 今 回 の 例 く ら い て 、 あ れ ば , 非 再 帰 て 、 書 い 高 速 て 、 あ る と い え ま す 。 に 比 べ れ ば , 再 帰 版 ・ 非 再 帰 版 と も 十 分 に 速 い と は い っ て も , コ ン パ イ ラ 添 付 の も の 一 方 効 率 に つ い て は , 非 再 帰 版 の ほ う が C M AGAZ INE 1992 5 は , 身 の 回 り の 問 題 を 手 あ た り し だ い に 78 2 : #include く stdlib. h> 4 : #include く jctype. h> 11 : { 22 : } 26 : { 41 : { 52 : } 56 : { 70 : { キ ス ト て 、 す 。 こ の た め , 1 行 あ た り の 文 字 数 が 多 く な り , 「 高 速 版 」 に 有 利 な デ ー タ て 、 あ る こ と を お 断 わ り し て お き ま す 。 こ の こ と を 割 り 引 い て 考 え て も , 「 高 速 版 」 は 文 字 ど お り 高 速 て 、 あ り , 手 間 を か け た だ け の こ と 各 種 nthctype の べ ン チ マ ー ク テ ス ト プ ロ グ ラ ム List 8 1 : #include く stdio. h 〉 3 : #include く string. h> 5 : #include く time. h> 6 : 7 : #define BUFSIZE 2048 8 : 10 : 12 : 13 : 14 : 15 : 16 : 18 : 19 : 20 : 21 : 23 : 25 : 27 : 28 : 29 : 30 : 31 : 32 : 33 : 34 : 35 : 36 : 38 : 40 : 42 : 43 : 44 : 45 : 46 : 48 : 49 : 50 : 51 : 53 : 55 : 57 : 58 : 59 : 61 : 62 : 63 : 64 : 65 : 66 : 68 : 69 : 73 : int nth_kanji (const char *s, int n) 9 : / * 文 字 列 s の n 文 字 目 が 漢 字 1 バ イ ト 目 で あ れ ば 1 を 返 す : 再 帰 版 * / return 1 ; こ ま で 来 た ら 漢 字 1 バ イ ト 目 と 認 定 で き る * / return 0 ; if (n 〉 0 & & nth-kanji(), n ー I)) / * n の 範 囲 に 注 意 * / / * 直 前 の 文 字 が 漢 字 1 パ イ ト 目 の 場 合 、 や は り 0 を 返 す * / return 0 ; if ( ! iskanji(sCn])) / * 漢 字 1 バ イ ト 目 に な り え な い 場 合 、 即 座 に 0 を 返 す * / int my_nthctype (const char *s, int n) 24 : / * nthctype の 高 速 ・ 再 帰 版 * / return CT ILGL; return CT KJ2 ; if (iskanji2(sCn])) / * 漢 字 2 バ イ ト 目 か ? * / / * 左 隣 が 漢 字 1 バ イ ト 目 で あ る 場 合 * / if (n 〉 0 & & nth—kanji(), n ー 1 ) ) { int nth-kanji-nonrec(const char *S, int n) / * 非 再 帰 版 * / 39 : / * 文 字 列 s の n 文 字 目 が 漢 字 1 バ イ ト 目 で あ れ ば 1 を 返 す * / return CT ANK; e 1 se return CT KJI ; ) else if (iskanji(sCn])) return (n ー k) & 1 ; / * n ー k の 奇 偶 に よ り 漢 字 1 バ イ ト 目 か ど う か が 分 か る * / while (--k 〉 = 0 & & iskanji(s[k])) return 0 ; if ( ! iskanji(sCn])) / * 漢 字 1 バ イ ト 目 に な り え な い 場 合 、 即 座 に 0 を 返 す * / int k; int my_nthctype2(const char *s, int n) 54 : / * nthctype の 高 速 ・ 非 再 帰 版 * / if (iskanji2(s[n])) / * 漢 字 2 バ イ ト 目 か ? * / / * 左 隣 が 漢 字 1 パ イ ト 目 で あ る 場 合 * / if (n 〉 0 & & nth_kanji-nonrec(), n ー 1 ) ) { return CT_ILGL; return CT_KJ2 : } else if (iskanji(sCn])) return CT KJI ; else return CT_ANK; int dummy(const char *s, int n) long test(int func(const char *s, int n), char *fname)

月刊 C MAGAZINE 1992年5月号


000M EDITORS 次 号 予 告 >6 月 号 ( 5 月 18 日 発 売 ) 第 3 の 標 準 JIS C ANS い SO か ら 日 本 工 業 規 格 C 言 語 へ Part 1 C 言 語 標 準 化 の 流 れ 亀 , ・ DJGCC バ ー ジ ョ ン ア ッ プ 差 分 フ ァ イ ル ② Pa 「 t2 日 本 語 対 応 の 問 題 点 特 別 付 録 ・ logo イ ン タ ブ リ タ 「 LOGOMOT ℃ N 」 Part3 今 後 の 課 題 5 : 2H0 ・ 本 誌 掲 載 ソ ー ス プ ロ グ ラ ム EGNU C compder Ver. 2. O 別 記 事 NEC AI 仮 名 漢 字 変 換 の 改 良 好 評 連 載 プ ロ グ ラ ミ ン グ の 工 ッ セ ン ス ・ 実 践 C プ ロ グ ラ ミ ン グ 入 門 く 第 5 回 > 「 集 め る ( 2 ) 」 ・ 新 MS ー DOS プ ロ グ ラ ミ ン グ 入 門 ・ ア ル ゴ リ ズ ム と テ ー タ 構 造 入 門 COMPUTER LANGUAGE 提 携 記 事 ・ ANSI Cmore Easy Error Reporting in C 十 十 編 集 後 記 ◇ よ う や く と い う か , い ま ◇ 編 集 部 に は , ま ん が 雑 誌 ◇ う ち の オ ヤ ジ は 機 械 が 苦 ◇ 自 宅 の マ シ ン 環 境 が 限 界 ◇ 日 本 IBM は 一 貫 し て 「 世 さ ら と い う か , 編 集 部 に L や コ ミ ッ ク ス が た く さ ん 転 手 。 好 き な ボ ク シ ン グ 中 継 界 標 準 」 を パ ソ コ ン 販 売 の 謳 状 態 に な っ て き た 。 外 部 記 A N が 導 入 さ れ た 。 今 ま て て 、 も 録 画 し て 見 れ ば と ビ デ が っ て い る 。 雑 誌 は 担 当 制 い 文 旬 に し , 日 本 標 準 の 壁 憶 は も ち ろ ん だ が , 主 記 憶 フ ロ ッ ピ ー て 、 手 渡 し し て い て 、 購 入 し , 週 に 6 ~ 7 冊 に な オ デ ッ キ を プ レ ゼ ン ト し た の 容 量 が 足 り な く て , メ モ を 乗 り 越 え ら れ な か っ た 。 た 原 稿 を サ ー バ に UP す る る 。 1 か 月 も す る と , 処 分 す が , 録 画 の 設 定 は 私 や 弟 ま そ し て , DOS/V ノ ー ト の テ リ の 使 用 状 況 に よ っ て は , だ け て 、 済 む 。 確 か に 効 率 的 る の も た い へ ん だ 。 話 は 変 か せ , ど ち ら も い な け れ ば レ ビ CF て 、 も 「 世 界 標 準 」 。 英 通 信 ソ フ ト か ら の コ プ ロ セ て 、 は あ る が , 「 サ ー バ に UP 触 り も し な い 。 私 の ビ デ オ わ っ て , 我 が 家 に も た く さ 語 の て 、 き な い 俺 に 必 要 な の ス の 起 動 も ま ま な ら な い し て く れ な い と 困 り ま す ! 」 ん の コ ミ ッ ク ス や 文 庫 の 小 が 調 子 悪 い の て 、 自 分 の 部 屋 は 世 界 標 準 て 、 は な く , 快 適 XGCC の 動 作 に も 支 障 を き と , 今 月 か ら 進 行 担 当 に な に 持 っ て い っ た ら 「 マ ニ ュ ア 説 が 転 が っ て い る 。 整 理 し な 日 本 語 環 境 な の だ , と テ た し て い る 現 状 か ら 早 く 脱 っ た 旧 新 人 W が 偉 ば る 。 日 ル を 読 ん て 、 使 い 方 を 覚 え る な が ら デ ー タ ベ ー ス を 作 っ レ ビ CF を 見 な が ら 叫 ん て 、 い 出 し な く て は な ら な い 。 本 頃 か ら 、 、 強 気 の W 〃 と 異 名 を 気 て 、 増 設 を 考 え る カ か ら 」 と 返 還 要 求 。 父 も マ ニ た ら , 最 近 「 世 界 標 準 」 と い ・ , ま て み る と , 合 わ せ て 1 , 000 冊 と る W は , LAN 導 入 て 、 ま す 以 上 あ っ た 。 か け た 金 額 を ュ ア ル を 読 む 重 要 性 ( 必 要 性 ) わ な く な っ た 。 今 後 が 期 侍 た マ シ ン の た め に 数 万 の 金 ま す 強 気 に な っ た 。 ( ホ ) 考 え る と ・ ・ を 認 識 し た の だ ろ う 。 ( 洋 ) て 、 き そ う だ 。 が 出 て い っ て し ま う 。 (Yas) (JUN) (TEN) 発 行 人 孫 正 義 月 刊 編 集 人 橋 本 五 郎 発 行 所 ソ フ ト バ ン ク 株 式 会 社 出 版 事 業 部 〒 田 8 東 京 都 港 区 高 輪 2- 円 一 口 NS 高 輸 ビ ル 編 集 部 ・ TEL03 ( 5488 月 引 8 / 出 版 営 業 部 ・ TEL03 ( 5488 ) ロ 60 / 広 告 営 業 部 ・ TEL03 ( 5488 ) ロ 65 編 集 長 星 野 慎 ー 副 編 集 長 宮 田 洋 一 流 王 天 編 集 渡 辺 淳 一 高 森 昭 安 広 告 丹 羽 弘 祐 斎 藤 誠 一 郎 安 枝 奈 穂 子 校 正 ( 有 ) ア レ フ デ ザ イ ン 持 田 哲 花 本 浩 一 赤 井 晴 美 機 部 進 監 修 石 田 晴 久 印 刷 凸 版 印 刷 株 式 会 社 / 写 植 株 式 会 社 風 芽 0 円 92 雑 誌 図 325-5 な お , 予 告 内 容 を 変 更 す る 場 合 か あ り ま す 。 プ ロ グ ラ ム ・ ノ ヾ グ の お 問 い 合 わ せ MAGAZINE 谷 03 ( 5488 ) 1325 5 月 号 平 成 4 年 5 月 一 日 発 行 ・ 掲 載 記 事 , プ ロ グ ラ ム に つ い て の ご 質 問 は , 月 曜 日 か ら 金 曜 日 の 午 後 4 時 か ら 6 時 ま て 受 け 付 け て お り ま す 。 そ の 他 の 時 間 帯 は ご 容 赦 く だ さ い 164 C MAGAZINE 1992 5

月刊 C MAGAZINE 1992年5月号


ア レ ン ス ・ マ ニ ュ ア ル 』 V01.1 , V01. 2 , NEC [25]fMS-DOS 3.3B ュ ー ザ ー ズ ・ リ フ ァ レ ン ス ・ マ ニ ュ ア ル 』 , NEC [ 26 ] fMicrosoft C 5.10 Optimizing Com piler User's Guide 』 , Microsoft [ 27 ] fMicrosoft C 5.10 Optimizing Com piler Language Reference 』 , Micros oft [ 28 ] fMicrosoft C 5.10 Optimizing Com piler Mixed Language Programming Guide 』 , Microsoft [ 29 ] 『 Microsoft C 5.10 Optimizing Com piler Run-Time Library Reference 1 , 2 』 , Microsoft [ 10 ] 『 AX テ ク ニ カ ル レ ポ ー ト 』 , 翔 泳 社 [ 30 ] C 6.00A ProfessionaI De 機 種 判 別 を 行 っ て サ ポ ー ト し て い け ば パ ソ [ 11 ] 『 J ー 3100 シ リ ー ズ テ ク ニ コ ン の 機 種 の 勉 強 に な っ て お も し ろ い の て 、 カ ノ レ マ ニ ュ ア ノ レ velopment System Programming Gu は な い か と 思 い ま す 。 皆 さ ん , 頑 張 っ て バ ( ソ フ ト ウ ェ ア 編 ) V3.1 』 , 東 芝 ide 』 , Microsoft [ 12 ] 『 J ー 3100 シ リ ー ズ テ ク ニ ー シ ョ ン ア ッ プ に チ ャ レ ン ジ し て く だ さ い [ 31 ] fMicrosoft C 6.00A ProfessionaI De カ ノ レ マ ニ ュ ア ノ レ ( ソ フ ト ウ ェ ア 編 ) V2.11 』 , 東 芝 vel opment System Reference , Mic [ 参 考 文 献 ] [ 13 ] 『 J ー 3100 テ ク ニ カ ル マ ニ ュ ア ル ( ハ rosoft [ 1 ] 中 島 信 行 , 「 C プ ロ グ ラ マ の た め の DOS [ 32 ] fMicrosoft Macro Assembler 5.10 ウ ェ ア 編 ) 』 , 東 芝 基 礎 学 」 ℃ マ ガ ジ ン 』 1992 年 5 月 号 [ 14 ] 『 J ー 3100SGT テ ク ニ カ ル マ ニ ュ ア ル ( ハ Programmer's Guide 』 , Microsoft [ 2 ] 中 島 信 行 , 『 MS ー DOS 完 全 活 用 法 ( 別 冊 [ 33 ] fTURBO C 2.0 USER'S GUIDE 』 , ー ド ウ ェ ア 編 ) 』 , 東 芝 [ 15 ] 『 PC ー 9801 シ リ ー ズ テ ク ニ カ ル デ ー タ ブ イ ン タ ー フ ェ ー ス ) 』 , CQ 出 版 社 BORLAND [ 3 ] 『 MS-DOS Version 5.0 Programme [ 34 ] TTURBO C 2.0 REFERENCE GUI ッ ク 』 , ア ス キ ー 出 版 局 [ 16 ] 『 PC ー 9801 シ リ ー ズ テ ク ニ カ ル デ ー タ ブ r' s Reference 』 , Microsoft PRESS DE 』 , BORLAND [ 4 ] 『 MS-DOS 工 ン サ イ ク ロ ペ デ ィ ア Volu [ 35 ] TTURBO ASSEMBLER USER'S G ッ ク 増 補 版 』 , ア ス キ ー 出 版 局 [ 17 ] 『 PC ー 9801 シ リ ー ズ テ ク ニ カ ル デ ー タ ブ me 1 , Volume 2 』 , ア ス キ ー UIDE 』 , BORLAND [ 5 ] 矢 沢 宏 行 , 「 PC ー 9801 シ リ ー ズ 用 MS-D ッ ク 増 補 改 定 版 』 , ア ス キ ー 出 版 局 [ 36 ] TTURBO ASSEMBLER REFEREN [ 18 ] 『 PC ー 9801 シ リ ー ズ テ ク ニ カ ル デ ー タ ブ OS の 内 部 ワ ー ク エ リ ア を 公 開 す る 」 『 T CE GUIDE 』 , BORLAND [ 37 ] TTURBO C 十 十 1.0 INTRODUCTI ッ ク 増 補 改 定 2 版 』 , ア ス キ ー 出 版 局 he BASIC 』 1990 年 11 月 号 [ 6 ] 中 野 弾 , 「 PC ー 9801 シ リ ー ズ の シ ス テ ム [ 19 ] 千 葉 憲 昭 , fFM-TOWNS テ ク ニ カ ル デ ON 』 , BORLAND 管 理 領 域 を 追 う 」 , 『 プ ロ セ ッ サ 』 1990 ー タ ブ ッ ク 』 , ア ス キ ー 出 版 局 [ 38 ] VI'URBO C 十 十 1.0 USER'S GUID [ 20 ] 『 富 士 通 FMR シ リ ー ズ 徹 底 解 析 マ ニ ュ 年 10 月 号 E 』 , BORLAND [ 7 ]Peter Norton & Richard Wilton, ア ル 』 , BNN [ 39 ] TTURBO C 十 十 1.0 PROGRAMME fTHEIBMPC & PS / 2 プ ロ グ ラ マ ー C21]TMS-DOS 3.1 プ ロ グ ラ マ ー ズ ・ リ フ ァ R'S GUIDE 』 , BORLAND ズ ガ イ ド 』 , 翔 泳 社 [ 40 ] TTURBO C 十 十 1.0 LIBRARY RE レ ン ス ・ マ ニ ュ ア ル 』 , NEC [ 8 ] RICHARD WILTON, 『 PC&PS/2 ビ [22] 『 MS-DOS 3.1 マ ク ロ ・ ア セ ン プ ラ ・ マ FERENCE V01. 1 , V01. 2 』 , BORLA デ オ シ ス テ ム プ ロ グ ラ マ ー ズ ガ イ ド 』 , ニ ュ ア ル 』 , NEC ND [23]fMS-DOS 3.1 ュ ー ザ ー ズ ・ リ フ ァ レ ン [ 41 ] 『 LSI C ー 86 Ver 3.20 / 3.30 試 食 版 ュ ー 翔 泳 社 [ 9 ] 山 崎 美 保 ・ 青 島 純 一 , 『 AX て 、 プ ロ グ ラ ス ・ マ ニ ュ ア ル 』 , NEC ザ ー ズ マ ニ ュ ア ル 』 , 工 ル ・ エ ス ・ ア イ [24]fMS-DOS 3.3B プ ロ グ ラ マ ー ズ ・ リ フ ミ ン グ 』 , ダ イ ヤ モ ン ド 社 シ ャ ノ ヾ ン TabIe 3 各 キ ー の 機 能 CTRL キ ー テ ン キ ー フ ァ ン ク シ ョ ン ・ キ ー 8 2 4 6 9 3 機 能 カ ー ソ ル を 上 へ 移 動 カ ー ソ ル を 下 へ 移 動 カ ー ソ ル を 左 へ 移 動 カ ー ソ ル を 右 へ 移 動 1 画 面 ス ク ロ ー ル ア ッ プ ROLL UP 1 画 面 ス ク ロ ー ル ダ ウ ン ROLL DOWN 半 画 面 ス ク ロ ー ル ア ッ プ SHIFT 十 ROLLUP 半 画 面 ス ク ロ ー ル ダ ウ ン SHIFT 十 ROLLDOWN カ ー ソ ル を フ ァ イ ル 先 頭 へ 移 動 H 0 M E カ ー ソ ル を フ ァ イ ル 最 後 へ 移 動 SHIFT 十 HOME カ ー ソ ル を 次 行 の 行 頭 へ 移 動 日 ETU R N ヘ ル プ メ ッ セ ー ジ の 表 示 f ・ 1 HELP 後 方 ↑ 文 字 列 検 索 SHIFT 十 f ・ 3 前 方 ↓ 文 字 列 検 索 後 方 ↑ 文 字 列 検 索 続 行 SHIFT 十 f ・ 5 前 方 ↓ 文 字 列 検 索 続 行 Quit ↑ ↓ X c.D O SHIFT 十 AR SHIFT 十 7 88 C MAGAZINE 1992 5

月刊 C MAGAZINE 1992年5月号


d c 詳 解 講 座 ・ Ⅷ 0 刪 て い ま す 。 し か し , 通 常 の ア ク セ ス て 、 は 一 様 の オ ー バ ヘ ッ ド が あ り ま す 。 ス タ ッ ク ス タ ッ ク と し て は 4 種 類 の バ ー ジ ョ ン の ク ラ ス Vstack, FPStack, XPSatck, SLSta ck が あ り ま す 。 こ れ ら の 働 き は , ほ と ん ど 同 じ て 、 す が , 内 部 の デ ー タ 構 造 が 異 な り ま す 。 ふ つ う の 固 定 長 の 配 列 を 使 っ た も の が ク ラ ス VStack て 、 , FPlex 配 列 あ る い は XPI ex 配 列 を 使 っ た の が ク ラ ス FPStack と XPS atck て 、 す 。 ク ラ ス SLStack は , 単 方 向 リ ス ト SLList を 使 っ て い ま す 。 キ ュ ー の ク ラ ス も , 先 の ス タ ッ ク の ク ラ ス 同 様 , そ の 内 部 デ ー タ 構 造 に よ り , 4 種 類 の ノ ヾ ー シ ョ ン の ク ラ ス VQueue, FQueue, XQueue, SLQueue が あ り ま す 。 内 部 デ ー タ 構 造 に 使 わ れ て い る も の は , ク ラ ス Stack と 同 じ て 、 す 。 ま た 両 方 向 キ ュ ー (DoubIe End Queue) を 実 装 し た も の と し て は , そ の 内 部 デ ー タ 構 造 に よ り , ク ラ ス XPDeque, DLDeque と い う も の が あ り ま す 。 ク ラ ス DLDeque は , 双 方 向 リ ス ト DLLis t を 使 っ て い ま す 。 さ ら に , 優 先 度 っ き キ ュ ー の 実 装 と し て は , ク ラ ス XPPQ, SplayPQ, PHPQ が あ り ま す 。 ク ラ ス XPPQ は XPlex を , ク ラ ス S playPQ は Sleater と Tarjan の 「 simple topd own splaying 」 ア ル ゴ リ ズ ム に よ る Splay* を , ク ラ ス PHPQ は Fredman, Segdewick ら の 「 Pairing Heap 」 を 使 っ て 実 装 し て い ま す 。 集 合 集 合 の 実 装 と し て は ク ラ ス Set と Bag が あ り ま す 。 ク ラ ス Set は , 要 素 の 制 限 の な い 集 合 を 実 装 し た も の て 、 す 。 集 合 は , 同 じ 要 素 が 重 複 し て 収 集 さ れ る こ と は あ り ま せ ん 。 現 在 , Set に は 10 種 類 の バ ー ジ ョ ン が あ り ま す 。 ク ラ ス XPSet と OXPSet は XPlex を , SLSet と OSLSet は SLList を , AVLSet は A VL 木 ( 別 名 「 高 さ 平 衡 木 」 と 呼 ば れ る ) を , B STSet は 二 分 探 索 木 (BST) を , SpIaySet は Splay 木 を , VHSet と VOHSet は 配 列 の ハ ッ シ ュ 表 を , CHSet は 鎖 状 の ハ ッ シ ュ 表 を 使 っ て い ま す 。 XPSet と OXPSet, SLSet と OSLSet, あ る い は VHSet と VOHSet の 違 い は , 要 素 が 順 序 に な っ て い る か ど う か の 違 い て 、 す 。 ク ラ ス 名 に O が 含 ま れ る ほ う (VOHSet な ど ) は , 順 序 に な っ て い ま す 。 ク ラ ス Bag も , 要 素 の 制 限 の な い 集 合 を 実 装 し た も の て 、 す が , ク ラ ス Set と 異 な り , 同 じ 要 素 の 重 複 を 許 し ま す 。 ク ラ ス Set に 比 。 , AVL 木 や 二 進 探 索 木 ( BST ) を 使 っ た バ ー ジ ョ ン が あ り ま せ ん が , 7 種 類 の バ ー ジ ョ ン の ク ラ ス XPBag, OXPBag, SLBag, OSLBag, SplayBag, VHBag, CHBag が 連 想 配 列 あ り ま す 。 は , ク ラ ス Set, Bag な ど と 同 じ て 、 す 。 Map が あ り ま す 。 そ れ ぞ れ の デ ー タ 構 造 ラ ス AVLMap, SplayMap, VHMap, CH ク ラ ス Map に は , 4 種 類 の ノ ヾ ー ジ ョ ン の ク ふ た つ の 型 パ ラ メ ー タ が 必 要 て す 。 ロ ト タ イ プ か ら の genclass に よ る 生 成 て 、 は , 使 う こ と を 考 え て く だ さ い 。 そ の た め , プ に 自 然 数 を 使 う 代 わ り に , 文 字 列 や 実 数 を 配 列 の こ と て 、 , 普 通 の 配 列 て 、 イ ン デ ッ ク ス 配 列 に イ ン デ ッ ク ス を つ け る こ と が て 、 き る て 、 す 。 連 想 配 列 と い う の は , あ る キ ー て 、 , ク ラ ス Map は , 連 想 配 列 を 実 装 し た も の を 認 め ま す 。 eneral Public License に 基 づ い た 再 配 布 こ の 連 載 の ペ ー ジ に か ぎ っ て , GNU G COMPUTER PRO-STAFF SYSTEM CREATE 0 装 第 64 倍 角 登 商 標 で ヴ 。 株 ボ ー ラ ン ト ジ ャ パ ン の ・ 上 記 の 言 語 は BORLAND Ctt ve 「 2 ℃ 、 TIJR 日 OC 材 、 対 応 C 言 語 . TIJR 日 0 C ve 「 15 、 添 付 ' C 言 語 ソ ナ プ リ コ は ・ ・ ラ ム プ ロ ジ ェ ク ト の 開 発 工 数 を 軽 減 し ま 本 ソ フ ト は こ の 開 発 段 階 て 、 の 問 題 点 を 解 決 し 、 プ ロ グ す る 必 要 が あ り 、 多 大 な 時 間 を 消 費 す る の が 現 状 て 、 し た 。 グ ラ ム を 開 発 す る 場 合 、 新 た に 全 オ プ シ ェ ク ト を 再 構 築 こ れ ま て は 、 メ ー カ ー 固 有 の ネ イ テ イ プ コ ー ド 専 用 プ ロ す る 新 指 向 プ ロ グ ラ ム 開 発 支 援 ツ ー ル て 、 す 。 作 し 、 ネ イ テ イ プ の す ぐ れ た 高 品 質 印 刷 を パ ワ フ ル 制 御 レ ー ザ ー プ リ ン タ を 完 全 ネ イ テ イ プ モ ー ド て 、 自 在 に 操 ナ プ 標 準 小 売 価 格 リ コ ¥ 52 , 800 ( 消 費 税 は 含 み ま せ ん ) 再 販 ラ イ セ ン ス パ ッ ク ( 数 量 制 限 な し ) ・ ・ ・ ¥ 300 , 000 ① 印 字 制 御 構 築 バ ー ツ ② バ ネ ル 遠 隔 操 作 構 築 バ ー ツ ③ 市 販 ソ フ ト に も 有 効 な 常 駐 機 能 ④ 華 麗 な 装 飾 書 体 と 超 拡 大 文 字 の サ ポ ー ト ⑤ ア ウ ト ラ イ ン フ ォ ン ト 自 動 設 定 機 能 5 大 機 能 リ コ ー 製 レ ー サ プ リ ン タ 対 応 版 キ ヤ ノ ン 製 レ ー サ シ ョ ッ ト 対 応 版 NEC 製 対 応 版 ゼ ロ ッ ワ ス 製 対 応 版 対 応 プ リ ン タ 発 売 中 近 日 発 売 近 日 発 売 近 日 発 売 上 記 印 字 は 実 際 リ コ ー 製 レ ー ザ プ リ ン タ LP3320SP4mkII で 印 し た も の で す 。 ソ フ ト ウ ェ ア イ ン フ ォ メ ー シ ョ ン セ ン タ ー ( 技 術 的 な こ 質 問 ・ こ 相 談 に お 電 話 で お 答 え し ま す 。 ) TEL. 0878-51-1807 受 付 時 間 / 10 : 00 ~ 5 : 00 月 曜 ~ 金 曜 ( 祝 日 除 く ) djgcc 詳 解 講 座 ・ HelIo GCC World 83 く 資 料 請 求 番 号 083 〉 本 社 . 〒 760 高 松 市 西 内 町 5 ー 14 の : オ オ ッ カ 商 事