C MAGAZINE - みる会図書館


検索対象: 月刊 C MAGAZINE 1991年6月号
184件見つかりました。

1. 月刊 C MAGAZINE 1991年6月号

ソフト開発用に最適′ 豊富に揃った C 言語用 ライプラリ。 1 . ニ次元グラフィック・ライプラリー Readers' ①① L 〔定価 1 万円〕 BASIC 等でお馴染みのウインドウ機能を 持ったニ次元グラフィックライプラリーで す。特長的機能として、上方向の指定・斜 め方向の楕円描画・曲線描画・多角形塗り つぶし・拡大文字描画およびマウスによる 座標入力機能を持っています。 2. 三次元グラフィック・ライプラリー 〔定価 1 万 2 千円〕 平行投影・透視投影機能等、基本的な 3 次 元グラフィック機能を持ったライフ、ラリー です。直線・円・楕円以外に、指定平面上 の多角形塗りつぶしも可能です。また、マ ウスによる座標入力機能も持っています。 レイアウト等のグラフィック画面表示プロ グラム作成に便利です。 モニタ募集 、綴じ込みの葉書でこ応募ください 電子帳薄 NOTE 財務会計 2 名 C 教授の基礎講座 3 名 提供 : 株創和サイエンス 提供 : 西友ソフトウェア株 製品問い合わせ : TEL 03 ー 3380 ー 7734 製品問い合わせ : TEL03 ー 3316 ー 0555 ( 載授の基礎ーま 電子帳簿 3. キーボード入力ライプラリー 〔定価 7 千円〕 キーボード入力の煩わしさを解消するため のライブラリーです。パラメータの設定に より、カーソルを指定位置に配置し、指定 範囲から出ないようにしたりします。また、 ファンクションキーその他の特殊キーに対 するコード設定等も可能です。 りて学 / 財務会計ソフト 98note 版 C 言語学習ソフト PC ー 9801 用 日本語 Brife Ver. 3 5 名イ COMPUTER LANGUAGE 1 名 提供 : C マガジン編集部 提供 : 日本システム株 製品問い合わせ : TEL 03 ー 3226 ー 3680 ef : 茂をン第・エをイ、一を事第を 4. マルチ画面ライフラリー ( キャラクタータイプ 〔定価 2 万円〕 マルチ画面入力を支援するためのライフ、ラ リーです。マルチ画面を階層的に表示し、 メこュのマウスクイックが可能です。 ■その他、グラフィック・マウス・ RS -232C のドラ イバー・引 OS 等を C 言語からコールするためのラ イプラリーも揃えています。 ■出荷品には取り扱い説明書及びサンプルソフト (C 言語ソース ) が付いています。具体的な使用方法の 確認、テスト等はサンプルソフトで簡単に行えます。 ■上記のライブラリーは NEC の PC -98XA 、 PC- 9801 LV で開発、動作確認しています。ハイリゾモ ード、ノーマルモード両タイプを用意しています。 OS は MS-DOS(Ver3. 3A ) 、開発ツールは MS - DOS マクロアセンブラ ( Ver2.0 ) 及び MS-C (Ver5. 1 ) を使用しています。 PC シリーズの他の 機種での適合性は確認していません。 ☆詳しい資料をこ用意致しております。 お気軽にお申し込みください。 ☆購入後、使用不適合とわかった場合は一週間以内に こ返送ください。 ( おそれ入りますが送料はこ負担願います ) ※ MS-DOS およÜMS-C 、 MS-DOS マクロアセ ンプラはマイクロソフト社の登録商標です。 0 資料請求は「広告資料請求カード」をこ使用するか、 または直接下記住所まで封書にてこ連絡下さい。 ※電話は対応不可能な場合がありますので御遠慮くだ さい。 〒 571 大阪府門真市下島町 9 の 16 石川聖昭 0 解ル ・応募の注意 トなどの形式て編集にこ協力いただきます。 ◇綴じ込みのはがきに必要事項 ( アンケート こ了承ください。 の回答 , 住所 , 氏名 , 電話番号 , 希望モニタ ◇締め切りは 6 月 18 日必着です。 番号 ) を明記のうえこ応募ください。 あて先 ◇記入もれやモニタ番号が複数記入されてい 〒 108 東京都港区高輪 2 ー 19 ー 13 る場合 , 綴じ込み葉書以外でのご応募は無効 NS 高輪ピルソフトバンク株 とさせていただきます。 「 C マガジン」編集部 ◇モニタに当選された方には , 後日アンケー モニタ係 ① Programming on Purpose ⑩ X68k プログラム ②提携翻訳「 C + + で書くマルチタスク」⑩ C 言語フォーラム ③提携翻訳「 M 。 du 2 による」 @ANSI C : more ④フリーソフトウェア最新レポート @ANSI C 言語入門 綴じ込み葉書裏面の ⑩スタートアップ C 十十 ⑤特集知的財産権 記事評価アンケート ⑩ワンポイントプログラミング ⑥ PragmaC には右記の数字をご ⑦アルゴリズムとデータ構造入門 ⑩プログラム添削 記入ください . ⑩ミニインタビュー ⑧ 00P 思考の周辺 ⑩丹羽信夫の発想快発 ⑨新 MS - DOS 入門 ⑩ C マガ電脳クラブ ⑩ X68k 移植法 ⑩応用 C 言語 .Com/iIer Makers 工テイタ DOS マシン March ( TEL0720 ー 81 ー 6687 留守番電話 ) 158 C M AGAZIN E 1 1 6

2. 月刊 C MAGAZINE 1991年6月号

SOFT BANK C 十十 A Guide 「 0 Prog 「 0E012rS C プログラマのための実践カイド S. ヘクマトプール著岩谷宏訳 定価 3 , 600 円 C 十十の実践的・具体的なプログラミング技法を提示 ! C をある程度理解した人のために、 C 十十の具体的な機能を実例を挙げて紹介し、 C 十十 による本格的な開発の事例を豊富なコードとともにわかりやすく解説。 C プログラマのための実践ガイド ・・らャラ - ム , ヘクマトプ - ル・・量愛 ノートブック パソコン戦争 長沢光男著 定価 1 , 600 円 各社入り乱れて熾烈化するノートブック型パソコン市場の現状をレホートしながら、今 後、市場のパワーバランスがどのような変化を成し遂げてゆくのかを浮き彫りにした一 冊。ビジネスマン必馬売。 激変する半導体産業 世界のシリコンマップ最前線を行く 高原秀己著 定価 1 , 500 円 日本国内は当然のこと、米国のシリコンバレーをはじめ欧り・アジアなど世界の半導体 拠点の現状を徹底ルホ。取材を通して、 21 世紀に向けた企業戦略や産業トレンドについ て分析するとともに、今後の半導体産業の国際ロケーションビジネスを考察。 Oh!PC BOOK No. 2 入門 W ⅲ dows3.0 を 、 30 日本電気日本語 MS-Windows Ve れ 3.0 み、ジョ . 物罅 - ・を物しこ、 好評発売中◆定価 1 , 300 円 PART 1 ・ Windows3.0 の魅力 PART 2 ・ Windows 活用に欠かせないハードウェアの基礎知識 PART 3 ・ Windows3.0 の組み込み PART 4 ・ Windows3.0 の機能全解説 PART 5 ・対応アプリケーション最新レビュー 1 、第 E ! ・ 1 評ー纏 0 ・は′田物ー パソコン静 ・・ ~ 長沢光男 ′シリコンマップ最前線をみる - 高原秀己 SOFTBANK MOOK 定価はすべて税込みです。

3. 月刊 C MAGAZINE 1991年6月号

COMPUTER PRO-STAFF SYSTEM CREATE 登録彑ー し CPAD O 言当ロジェクトの 関教仕表 ・拡張メモウ 5M バイト以上 く動作環境 > ・ 40M バイト以上のハードディスク ・対応 OS 日本語 MS-DOS Ver. 3.1 く価格 > 98 , 000 円 以上 問い合わせ先株シンフォニ ・対応言品 Lattice C Ver. 4.1 以上 〒 141 東京都品川区東五反田ト 4 ー 1 MS-C Ver. 5 . 1 以上 ー五反田第 2 ビル 5F Pro FORTRAN Ver. 1.2 以 . E TEL 03 ー 3443 ー 0291 < 価格 > 238 , 000 円より 問い合わせ先 #)LIFEBOAT C コンバイラ 〒 101 東京都千代田区神田錦町 3 ー 6 「 LSI C ー 86 」バージョンアップ TEL 03 ー 3293 ー 4711 工ル・エス・アイジャパン株 Windows Ver. 3.0 対応 工ル・エス・アイシャパン株は , C 言語 アプリケーション コンパイラ LSI C ー 86 をバージョンアップす 「 CASE:W 」 Ver. 3.0 る OLSI C ー 86 Ver. 3.3 は ,ANSI C 規格に 株シンフォニ 準拠したフルセットコンパイラ。 リンカ標準装備 株シンフォニーは , 米国 CASE WORKS ・リンカは , EXE ファイルだけて、なくコア 社の開発した ,MS-Windows 3.0 対応アプ イメージ ( バイナリ ) あるいは , intellec リケーション統合開発環境「 CASE : W 」を販 HEX ファイルを生成 売する。 CASE:W は , Windows 3.0 用アプ ・ MS ー LINK と同等のマップファイルを生成 リケーションの開発に必要な数多くのツー プロファイラ標準装備 ルや , 環境の切り換えなどのための統合開 ・プログラムの実行をモニタするツール , 発環境。おもな機能は以下のとおり。 プロファイラを装備。計数型プロファイ プロトタイピングとコードジェネレート ラて、 , プログラムのどの部分を何度実行 ・コンパイルすることなくプロトタイプ したのかをカウントする の動作を確認するテストモード ライプラリ ・ Windows 3.0 のインタフェイスをすべ ・ ANSI 標準規格て、定義された関数のうち , てサポート 多バイト文字関係と locale. h を除くすべて ・プロトタイピングのバックグランドて、 の関数をサポート 動作し , すべての関連ファイルを生成 ROM 化 するジェ . 不レート機能 ・ ROM 化のための初期設定モジュールのソ 開発環境の支援 ースを同梱 ・アプリケーション開発に関するツール く動作環境 > をすべて管理 ・ Windows と MS ー DOS のツールを統合 ・ MS-DOS Ver. 2.11 以上 ・メモリ 384K バイト以上 管理 く価格 > 48 , 000 円 ・ 386 工ンハンスモードメモリの有効利用 問い合わせ先工ル・エス・アイシャパン株 ・ MS-C Ver. 5.1 , 6.0 サポート 〒 151 東京都渋谷区千駄ヶ谷 1 ー 8 ー 14 く動作環境 > TEL 03 ー 3404 ー 1319 ・ Windows Ver. 3.0 ・ 80286 , 80386 の CPU 高品質のュメンテーションを簡単に実現する、 新世代のプロジェクト指向プログラムヘルバーです。 CPAD はこれまて℃言語による開発て、ソフトハウ スが悩んて、いた、開発時の工数短縮及び複数 人数によるプロジ屋クト管理を容易に致します。 また、既存のソースリストの仕様書を自動作成し ますのて : 管理体制を容易に画一化することが 可能となり、また、プログラマーの余分な負担を 軽減する事がて、きます。 0 ト 2 98 シリーズ対応版・・・・・¥ 85 , 000 ( 消費税別 ) 5 大機能 C ソースの解析、援助、学習ツールとして ① C 言語ソのドキュメント管理を自動化、一律化する。 ②カーコ \ ン & リッチーの書式にソースをリフォーム。 ③ PAD 仕様に準する出力機能。 ( 自動出力印刷例参照 ) ④全ドキュメントはエテイタて編集可能。 ⑤豊富な出力機能。 ( 自動出力印刷例参照 ) ソフトウェアインフォメーションセンター く技術的なこ質問・こ相談に電話でお答えします ) TEL. ( 06 ) 634 ー 2563 受付時間 AMIO : 00 ~ PM5 : 00 月曜日 ~ 全曜日 ( 祝日を除ぐ 3 オオッカ商事 / ー、本社 : 〒 760 高松市西内町 5 ー 14 News Square 147

4. 月刊 C MAGAZINE 1991年6月号

、引マは を , なんとインストールから始めて約 1 週 間 , やっとて、きたのて、す。再帰ってものを 肌て、感じるいい練習がて、きました , と大喜 びの私て、す。 のはやめました。 て , この分数が整数になるかどうかを調べ 実際 , コンパイルして実行してみると , ている。 X68000 GCC Ver. 1 . 37.1 て、オプチマイズし ・正解者からのメッセージ て実行時間が 21 秒て、した。これなら許せる と思ったのて、 , 高速化は考えるのをやめま 順列をいかに簡単に求めるか , 苦労しま した。これからこの連載がつづくかぎり欠 軽い気持ちて、作り始めて , すんなりて、き かさず投稿しようと思いますのて、 , がんば てしまったのて、 , これて、よいのか少々不安 って出題してください て、す。 芳賀耕一さんの解答 ( プログラムは付録ティスク puzz 厄 02. c ) 最初に作成したプログラムて、 18 秒 , ちょ っと改良して 9 秒になりました ( PC ー 286L V30 10MHz)0 もう少し考えれば速くなるのて、し 応募の規定 ようが , まあよしとしました。 数年前 , 流行に遅れてはならじと始めた 単純なアルゴリズムなのて、説明は省略し パズルの解答を導き出すプログラムを作 C て、すが , なんだかよくわからないまま , め ますが , 桁違いに速い方法を考える人がい 成し , 次の応募規定に従い , ディスクて、下 んどくさいまま途中ズル休みしたりして今 るんて、しようね。 日にいたり , 半年以上も前に購入した QuickC 記の宛先 , または電子メールて、 R & R ( 157 参考文献は Turbo C と Power C のマニュ 頁 ) に記されている ID 宛にお送りくださ アルて、す。参考プログラムはとくにありま い。締め切りは 6 月 18 日必着とします。 せん。 ・パズルの標題 , 解答の明記 こて、 , 芳賀さんの解答にアルゴリズム ・作成するプログラムは C 言語のみ の説明がないのて、簡単に付け加えておく。 ・使用機種 , コンパイラおよびオプショ 順列の求め方だが , 再帰て関数を呼び出 ンスイッチの明記 すとき , まだ使っていない数字を文字列と ・プログラム作成に参考とした文献 , プ して渡してやり , その中から次の数字を選 ロクヾラム 択している。 ・ 800 字以内のプログラムの説明と感想 枝切りの方法は , まず , ・連絡先 ( 住所 , 電話番号 ) ・上記をすべてテキストファイルにする 十 ロロ ( 春日井市塩野芳夫 ) お詫び 4 月号に掲載した【 1 月号のパズル】 ( 小松市菅波浩 ) の例題に誤りがありました。式の右辺 において , 10 乗、、 10 〃が通常の数字と混同 もっと高速にしたいと思ったが , 前回・ こにお詫びいた してしまいました。 前々回よりもプログラム作成にかなり時間 します。 がかかってしまったのて、 , これくらいて、降 参する。解の個数も、、 9 〃個だったら美しいの になあ , と思うのは贅沢かな。 ( 川崎市石垣一典 ) 今月の問題 りば一す・リバース 741 という数に注目してみよう。まず 3 て、割る。 741 3 274 この 247 を逆から読む。 247 ( 逆転 ) → 742 そして , 1 を引く。 742 741 なお , お送りいただいたディスクなどは なんともとの 741 に戻ってしまった。 返却て、きません。ご了承ください。 , こて、問題。ヾある数を 3 て、割り , そ の結果の数字を逆転して , それから 1 を 宛先〒 108 東京都港区高輪 2 ー 19 ー 13 引いたらもとの数と一致する〃という正 NS 高輪ビル ソフトノヾンク株 の数を , この 741 以外にひとつ見つけて C マガジン編集部「 C マガ電脳クラブ」係 もちろん 3 桁とは限らない ください ロロ ロロ ロロロ 9 を , 1 9 十 とする。この式を変形して , b X c b x 9 十 とすると , 右辺と , 左辺の第 1 項は整数なの て , 左辺の第 2 項も整数てなければならない ことがわかる。そこ <b, c, d を先に求め C マガ電脳クラブ 145

5. 月刊 C MAGAZINE 1991年6月号

アルゴリズム 0 テータ構造入門 分割した部分に対して , 再帰的に処理 て、 , 列 b から要素 15 を取り出して列 c に入れ 同じ再帰的アルゴリズムて、も , クイック ると Fig. 2 ②になります。再び先頭どうしを を行う ソートて、は , 重要な処理は分割のステップ 比較すると , 今度も列 b の先頭の要素 26 のほ となっていたのに対して , マージソートは , て、行われていました。そして , 再帰呼び出 うが小さいのて、 , 要素 26 を列 b から取り出し 分割した部分に対して , 再帰的に処理 しをした後には , 何も処理をする必要はあ を行う て列 c に入れます ( Fig. 2 ③ ) 。 りません。 仕事をする 同様にして , 列 a から要素 30 と要素 46 を取 つまり , クイックソートて、は , り出し , その次に列 a から要素 75 を取り出し 仕事をする ます。この時点 ( Fig. 2 ⑥ ) て列 a は空になり Fig. 2 マージ処理 ます。そこて、最後に , 列 b に残された要素 90 を列 c に追加してマージ処理が終了します (Fig. 2 ⑦ ) 。 ジソートの しコリズム マージを利用して整列を行う手順は次の ようになります。 ①データ列を真ん中でニつの部分列 a , 列 b に分割する ②部分列 a と列 b を , それぞれなんらかの 方法で整列する ③整列ずみの部分列 a , 列 b をマージする ステップ②て、は , この手順を再帰的に適 用して部分列を整列します。この手順を再 帰的に適用するたびに部分列の大きさは半 ただーっの要素になったとき再 分になり , 帰呼び出しは終了します。 このようにデータを分割して , 分割され た個々の部分を個別に処理するというのは , クイックソートのときに利用した分割統治 法の典型的なものて、す。マージソートのア ルゴリズムを , Fig. 3 に疑似コーディングて、 示しましよう。 Fig. 3 は , たったいま説明し た手順をそのまま書き下ろしたものて、す。 最初の if 文は再帰呼び出しが停止する条件に なっています。 マージソートのアルゴリズムて、は , 二つ に分割した部分列を再帰呼び出しによって 整列してから , マージ処理を行います。ク イックソートは異なり , 分割のステップ (Fig. 3 ② ) は与えられた列を二つの部分列に分け るだけて、 , とくに意味のある処理は行いま せん。実際の仕事は , マージのステップ ( Fig. 3 ⑤ ) て、実行されます。 ① ( 2 ) C 15 b 26 90 15 26 C b 90 a 46 7 5 ④ C 15 26 30 26 30 46 15 b 90 15 26 30 46 7 5 C b 90 26 30 15 46 7 5 90 アルゴリズムとデータ構造入門 59

6. 月刊 C MAGAZINE 1991年6月号

のベス人 すわ e C ′ es だけプログラムして、あとはライプラリを使えばいい。面白い。 The C Lib 「 a 「 ies - C のベストバートナー ・ソースコード付属 / 組み込みロイヤルティ無料・ 価格 59 クク BGM / クラフ作成プロクラム 00F / 総合コンソ - ルコントロ - ルライフラリ CCF/EX BGM/EX 価格ア 9 りクク キーボード、テキスト画面、グラフィック、マウ 12 種類のグラフ作成機能を提供するバッケージ。 ス、ウインドウ、メニュー、プリンタ、拡張関数 例えば、必要なバラメータを設定し、関数を呼び 出すだけで円グラフや棒グラフを簡単に描画する 等 200 以上の関数で構成される総合コンソールコ ントロールライプラリてす。 ことができます。さらに、タイルバターン、ライ ■『G 「 aphic & Mouse(/EX)Js Window ンバターンとの対応、日本語コード文字列をグラ & Menu(/EX)A rKey & DisDlaYJ に フィック画面に表示する機能をサホートしている ついては各製品の説明をこ覧ください。 のて、ビジネスアプリケーションで必要とされる ■プリンタ関数は日旧 S を介してプリンタに文字 あらゆるグラフ情報を表現てきます。 コード、制御コード送り、各種アルファベット ■必要なバラメータを設定し、関数を呼び出すだ の文字印字、拡大、キャラクタモードの切り替え等の処理を行うことができます。 けで簡単にグラフを描画できます。円グラフの例 cg(vlist 、 vcnt 、 cx 、 cy 、「、 ◆ fCCF/EXJC は XL 、 XL2 、日 L の八イレゾリューション / ノーマルの両モードに対 scalel 、 scale2); ・ 12 種類のグラフ作成機能 応し、一部の関数を除いて、どちらのモードても動作するプログラムを開発することが ◆ fBGM/EXJC は XL 、 XL2 、日 L の八イレゾリューション / ノーマルの両モードに対 応。さらにどちらのモードても動作する互換モード ( 自動判別 ) もあります。 てきます。 価格ア 29 クク 価格ア 29 ク Graphic & Mouse Graphic & Mouse/EX 価格ア 4 クク 価格ア 5 0 N88BAS 旧相当のグラフィック機能とマウス機 能を提供するライプラリ。グラフィック機能はグ ラフィック画面に点、線、四方形、円、文字等を 描画する機能、指定領域を切り出す / 貼り戻す等 の機能と表示モードの設定を行う制御機能て構成 され、マウス関数はマウスカーソルの表示 / 非表 示、色指定、ホタンの押下状態の検査、移動範囲 の指定、移動距離の検査等の関数かあります。 ■ N88 日 ASIC 相当のグラフィック関数 ■拡張グラフィック関数は日 EPLACE / CLEA 日 / 0 日 / XO 日のラスタオペレーショ ンか可能 ( ノーマルモードのみ ) ◆ G 「 aphic & Mouse/EX 」では XL 、 XL2 、 RL のハイレゾリューション / ノーマルの両 モードに対応しており、どちらのモードても動作する互換モード ( 自動判別 ) の設定も可能。 価格ア 49 クク 価格ア 2 クク Key & Di 叩ね y 価格ア 9 クク Key & Dis ay はソフト開発て欠かせないファンクションキー及び ANK 、漢字の入力、 V 日 AM を直接アクセスしての文字表示等 100 を越える関数で構成されています。ファンク ションキー自身には一切特別な値や文字列を設定せすに、 B ー OS レベルの処理で行ってい るため、どのレベルの関数ても同し処理でファンクションキーの取得も可能てす。また、 V 日 AM を直接アクセスして表示するのて、 25 行目に文字列を表示してもスクロールしてし まうことはなく、すべての 1 バイトキャラクタコード ( 0x 田一 0xf7 ) を表示することがてき ます。文字表示、文字属性の設定 ( 色 / 属性 ) 、 V 日 AM 上の指定領域の切取り、貼り戻し、 表 / 裏画面の切り替え表示、全画面 / 部分スクロール、ファンクョンキー表示等の機能を 持っています。 価格 価格 ー第は : 第騫ー ー耋ニ物一一 Window & Menu Window & Menu/EX テキストウインドウ、メニュー関数のライプラリ バッケージ。簡単な説明や操作カイドをへルプウ インドウを開いて表示するためのマルチウインド ウ機能とウインドウを利用したメニュー選択機能 を提供します。 ・ 20 個まてのウインドウがオープンできる ・オーバーラップ / 切り替え機能・移動機能ウ インドウを指定された座標へ移動■表示行を 指定する関数と、上下スクロールを伴った文字 列表示・スクロール・ V 日 AM をアクセスしたウインドウ操作て高速化。■用途に 応した表示が可能な 3 種類のメニュー ◆ tWindow & Menu/EXJ は XL 、 XL2 、日 L の八イレゾリューション / ノーマルの 両モードに対応。互換モード ( 自動判別 ) も装備。 B e ー t G 「 a p h 2 ] ロ 口 2 ロ“ 一引 RS -2320 Library RS -2320 Library/EX MS ー C から呼び出すことのてきる日 S ー 232C コミュニケーションライプラリです。「日 S ー 232C Lib 「 a 「 Y 』は OS を利用して日 S ー 232C の制御 / 送受信を行っています。これに 9861K 用とマルチサーバ用テパイスドライ八版を追加拡張した「日 S ー 232C Lib 「 a 「 Y/ EXJ の 2 種類があります。どちらも 2 、 3 回線もサポートしています。オートダイアル / モ テムコントロール関数、時間関係関数、および簡易ターミナルエミュレータ、 XMODEM 送受信プログラム等かサンプルプログラムとして提供されています。製品にはテパイスド ライバを含むすべてのソースコードか含まれています。 ◆「日 S ー 232C 凵 b 「 a 「 y 』 ( ¥ 49.800 ) では MS - DOS のヴァージョン、型番に制限あり。 CodeBase 4 価格ア 9 ククク GP ・旧「町価格 4 クク CodeBase 4 は C 言語から dBASE Ⅲ、 dBASEIII plus 、 C ⅱ P ロ e 「のファイルシス テム ( データベース、インテックス、メモ ) とコンバチプルなテータベースライプラリてす。 これらのテータベース言語にコンバチプルな関数を用意しているのて dBASE Ⅲ / P 旧 s からの移植も簡単にてきます。 dBASE Ⅳと比較してテータアクセスは 5 倍、ループでは なんと 300 倍も速くなります。■高速処理・最大 L022 フィールド、 2.000.000 , 000 レコー ド ( 論理値 ) ・メモリモテル S ( 一部機能か限定 ) / M / L ・ PC ー 9800 シリーズではテ ータベースライプラリで漢字の使用は可能・旧 M ー PC 版ではウインドウ、メニュー関数 も付属・英文マニュアル◆対応 C 言語 : Mic 「 osoft-C 5.1 / 6.0 または Tu 「 bo - C 2.0 用 GP - 旧インターフェイスポード ( PC -980 ト 29K.N ) を C 言語から利用するためのライプ ラリ。本体はテパイスドライバで供給され、インターフェイスライプラリを介してテパイ スドライバの制御を行うタイプです。詳しくは資料をこ請求ください。 ■走行環境等 ・ NEC PC ー 9800 シリーズ ( LT を除く ) * 製品によっては XL 、 XL2 、日 L の八 ・機種 イレゾリューション / ノーマルの両モードに対応。 ・対象 C 言語・ Mic 「 osoft-C 5.1 / 6.0 Quick-C 2.0 Tu 「 bO-C 2.0 ・ MS-DOS ・・・ Ve 「 sion 3.1 / 3.3 ・メティア・・・・ 5 ″ 2HD 、 3.5 ″ 2HD ※すべての表示価格には消費税は含まれておりません。※各製品は C 言語毎の対応になっています。 の株式会社ァイッフス ・〒 111 東京都台東区蔵前 2 ー 8 ー 10 クイック資料送イ寸サービス 詳しい資料を用意しています。お急きの方には FAX てもお送りいたします。 ー 03 ・ 3866-8635 ・ PHONE 03 ー 3866 ー 8635 03 ー 3866 ー 8637 ・ FAX く資料請求番号 164 〉

7. 月刊 C MAGAZINE 1991年6月号

テックソフト & サービス ・ lnformation from Compiler Makers 今回は , High-C 386 て、の割り込 みハンドラの登録について紹介し ます。割り込みにはキーポードな どによるハードウェア割り込みと , プログラム中て、行う int 命令による ソフトウェア割り込みの 2 種類があ ります。 MS-C などは int86 などの関数を 使って割り込みハンドラの登録が 行えましたが , High ー C て、はリアル モードだけて、なくプロテクトモー ドて、も実行されるのて、 , それぞれ の動作モード用に割り込みハンド ラを用意しなければなりません。 残念ながら , High-C Ver. 1.6 の マニュアルには DOS ー EXTEN DER E て、の割り込みハンドラの登 録に関する説明がなく , また DOS -EXTENDER のマニュアルには , アセンプラて、の使用を前提とした 記述しか見られません。そこて、 , DOS-EXTENDER て、用意されて いる処理を High-C Ver. 1.6 てど のように利用て、きるかを示しなが ら割り込みハンドラの登録につい て説明します。 割り込みハンドラとは 割り込みハンドラとは , キ ーやキーが押されたときに動 き出すルーチンのことて、す。よく 使われる割り込みハンドラは , 何 もせずに iret ( リアルモード ) または iretd ( プロテクトモード ) を行うも のがあります。たとえば , 実行を 中断されたくないプログラムには , 処理中の皿十回の割り込み ( MS ー DOS て、は皿 + 回を受け 付けると , 実行中のプログラムを 終「する処理が登録されています ) を無効にするため , 先に述べた何 もしないルーチンを皿十回の 割り込みハンドラとして登録しま す。 プロテクト / リアルモードでの 割り込み処理 通常 MS-DOS だけて、は ,CPU が 80386 て、も 8086 としてのリアルモー ドて、の割り込み処理しか行えませ んが , DOS-EXTENDER を使うこ とにより 80386 本来のプロテクトモ ードて、の割り込み処理も可能とな ります。て、は , プロテクト / リアル モードて、の割り込み処理にはどの ような違いがあるのて、しようか ? リアルモードの割り込み処理は , 割り込みべクタテープル (MS-DOS て、は 00000h ~ 003FFh におかれ , 割 り込みハンドラのアドレスがセグ メントとオフセットて、書かれる ) を 通してリアルモードて、実行されま す。したがって , リアルモード用 の割り込みハンドラ自身は IM バイ ト以ドのアドレス内に存在する必 要があり , かっハンドラ内の処理 は IM バイト以 E のアドレスにはア クセスて、きません。プロテクトモ ード用のプログラムの中て、リアル モード用の割り込みハンドラを作 成するのは骨の折れる作業て、す。 DOS-EXTENDER て、は , つねにプ ロテクトモードて、動作する割り込 みハンドラの登録がて、きます。 DOS-EXTENDER て、はプロテ クトモードて、実行中に int 21h など のソフトウェア割り込みが実行さ れると , 必要な処理 ( 引数を 32 ビッ トから 16 ビットに変換するなど ) を 行った後 , リアルモードに切り換 え , もう一度 int 21h を実行してお り , プロテクトモードて、も標準的 な MS-DOS のファンクションコー ルは実行て、きます。 次に , プロテクトモードて、の割 り込み処理は , 割り込みディスク リプタテープル ( IDT ) を通して実行 されます。 IDT には割り込みハンド ラを示すセレクタとオフセットが 書き込まれており , そのセレクタ を使ってグローノヾルディスクリプ タテープル ( GDT ) , またはローカル ディスクリプタテープル ( LDT ) から べースアドレスを得てオフセット とともに割り込みハンドラが実行 されます。 DOS-EXTENDER のプロテク トモード実行中て、も , MS-DOS の ファンクションコールの実行時に は , いったんリアルモードに切り 換わってファンクションコールを 実行し , 終「するとまたプロテク トモードに戻ります。この状態て、 ードウェア割り込みが発生する と , プロテクトモードて、の割り込 み , リアルモードて、の割り込み , 両者になる場合があります。つま り , ハードウェア割り込みについ ては , 必ずプロテクト / リアル両モ ードに対して割り込みハンドラを 設定する必要があります。たとえ ば , samplel. c ( 付録ディスク収録 ) て、はプロテクトモードて、の割り込 みハンドラの登録しか行っていな いために , 正しくキーの割り 込み処理がて、きていませんが , sample2. c ( 付録ディスク収録 ) て、 は , つねにプロテクトモードて、動 作する割り込みハンドラを登録し て , プロテクト / リアル両モードに 対する割り込みハンドラを設定し ており , 正しくキーの割り込 み処理がてきています。 High-C 386 Ver. 1.6 lnformation from Compiler Makers 155 ます。 らのファンクションを使用してい samplel. c, sample2. c< は , これ を参照してください。なお , DOS-EXTENDER のマニュアル 各ファンクションについては の割り込みべクタの設定 ( 2507 ・プロテクト / リアル両モードて 定 ( 2506h ) 動作する割り込みべクタの設 ・つねにプロテクトモード下て タの設定 ( 2505h ) ・リアルモードの割り込みべク べクタの設定 ( 2504h ) ・プロテクトモードの割り込み タの取得 ( 2503h ) ・リアルモードの割り込みべク べクタの取得 ( 2502h ) ・プロテクトモードの割り込み は次の 6 つがあります。 DER の用意したファンクションに ンドラに関連する DOS-EXTEN 使う必要があります。割り込みハ EXTENDER のファンクションを ンドラの取得や設定には DOS ー プロテクトモードて、の割り込みハ リアルモードて、しか動作しません。 ( 割り込みハンドラの設定 ) を使い ラの取得 ) とファンクション 25H アンクション 35H ( 割り込みハンド います。この関数は MS ー DOS のフ dos setvect のふたつが用意されて を行う関数として dos getvect と ハンドラのアドレスの取得と設定 High-C Ver. 1.6 には割り込み の設定 での割り込みハンドラ High-C Ver. 1.6

8. 月刊 C MAGAZINE 1991年6月号

すでに「 C 」言語ユーサー 標準ツール 各入力項目毎にデータの形式、 35 種類の完了条件 が設定できます。プログラム実行時には、これらのチェ ックを終えたデータのみをユーザープログラムに引き / 度すので、プログラム作成の負担が大幅に軽減します。 B ー FO 日 P で予めに 0 種類を用意してあり、好みのバタ ーンで塗込が可能。さらに、ユーザー定義バターンを に 0 種類までサポート。表現できない色はない程の機 能です。 B-F 0 日 P で予め 24 種類のバターン備。さらに 120 0 ◆種類までユーザー定義可能。罫線色も 8 色 ( 黒色を 含む ) サポート。そして斜線を引くことも可能です。 V 一日 AM を直接アクセスすることにより、ウインドウの 高速処理を実現、メモリーに取り込んだ複数の画面 を個別に範囲指定して表示・消去が可能。リリース 関数を併用すれば田 0 画面でも 200 画面でも O K です。 マルチウインドウ実行例 「 B - FORP 」は、 printf 、 scanf を使わずに画面の設計制御を可能にした画 期的なツールです。汎用機のレベルをパソコン上で実現した、まさに「 C 」 ユーサーが待ち望んでいたツールです。 ※資料ご希望の方は電話にても受付ております。下記弊社営業部までご連絡下さい。 NEC PC -9800 シリーズ ・本体 NEC PC -9800 シリーズ ・本体 ・ B - FO 日 p ( レイアウトエデイタ + ランタイム関数 ) 89.05 MS-DOS ve 「 . 3 1 以上 ・ OS M S -D 0 S ver. 3 1 以上 ・レイアウトエデイタ ( 3 を 2HD 、 5 ?HD) 59 .05 ・ OS 39. 00 ( 各種日本語入力 FEP 使用可 ・漢字入力 ・ランタイム関数 ( 3.5 2HD 、 5 ?HD) ・対応言語 MIC 「 0S0 れ C/TURBO C Lattlce C PC -P R201 シリーズ ( レイアウト印刷用 ) ・プリンタ 各種日本語入力 FEP 使用可 ※ M S -D O S 及び日本語入力フロントプロセノサは付属しておりません ・漢字入力 * MS - DOS 、 MIC 「 0S0 い C は米国 MIC 「 0S0 社の登録商で B ー FO 日 P を使って作成したフログラムに対するライセンス料は不要です。 *TURBO C は米国 80 ⅱ and 社の登録商標です ネ LattIce C は米国 LattIce 社の登録商標です 本社 / 〒田 5 東京都港区東新橋 2 ート 7 ( 住友生命東新橋ビル 6F ) 谷東京 ( 03 ) 3432 ー田 77 ( 営業部直通 ) ( 03 ) 3432 ー 03 引 ( 代表 ) く資料請求番号 004 〉 B-FORPver 2 当行目町呷第 画面設計制御ツール この商品はマイコンショー ' 91 に出展いたします 東泉流通センター・プース N 。 .3 ーに ( 第 3 会場 ) ・ 5 月 8 日 ~ 5 月凵日 Forrrøt P 「 8e7 「 B—F(W ve 「 .2.2 (c) Copyright 1 , , BITS 8. , Ltd. Japan タイルバターン登録画面 フィールド属性定義画面 工主 「コ 1 望 ラインバターン登録画面 「 B-FORP 」システムフロー ルーい屯 画面レイアウト 工デイタ 画面情報 ファイル 画面制御ライプラリ ( ランタイム関数 C 言語 標準ライプラリ ユーザ プログラム 実行モジュ 実行 ランタイム関数動作環境 レイアウトエテイタ・・動作環境 価格 ( 社 ) 日本システ乙ハウス協会会員 株弌にリ

9. 月刊 C MAGAZINE 1991年6月号

C あ磁 情報の省エ匕は standa 「 d に至る (?) 第の回 耳むずかしなカドジりました standard で versatile なもの たとえば「本」を例にとると , 当然のこと ながら , 本自体 , つまり本の内容は大切て、 すが , 本の入れ物て、ある本棚なんかは , 比 較的どうて、もよいと思うのて、す。 そこて、 , 私は , 本棚といえば , 長年 , カ ラーボックスを使っています。スーノヾーマ ーケットのバーゲンのちらしなんかに と きどき , [ 980 円 ! ] と出てたりするやって、 すが , 普通の置き方をタテ〃と呼ぶなら , あれを、、ヨコ〃に何段か積み重ねると , 結構 堅牢て、すし , 本の収容容量も意外と大きい のて、す。もうちょっと具体的にいうと , つのノヾーティションの , 奧を archive ないし semi-archive, そして手前ないし上部を temporary, という具合に , 常時ノヾラレルに 利用しています。 日用品は , カラーポックスに代表される ような , standard て、 versatile なものが好き て、す , 私は。たとえば , 衣類は , いわゆる 量阪店品の無名のシャッ , パンツ , ジャケ ットなどといったものが , もっとあらゆる 意味て、良質て、着やすく , 10 代から 60 , 70 代 まて、のすべての人を , 性別にかかわりなく , 岩谷宏 かわいく見せるものになってほしい。する と , 男女入り乱れた三世代家族て、すら , 部の日常衣料品に関しては , 完全なコミュ ニズムが実現するわけなのだ ! standard なものに対しては , 人間は気を ほとんど空気のように 使うことが少なく , 接することが可能になります。いわゆる高 度情報化社会において , 人間がより高度な 仕事に取り組んて、いくためには , 低レベル なものはどんどん標準化されて , それに対 して用いる意識の量の「省エネ化」が図られ ることが必要だと思います。 そういう意味て、 , やはり , マイクロプロ セッサ ( マイクロコンヒ。ュータ ) は , 理想を いえば , i80x86CPU て、はなくて , MC680X0 CPU を使っていたいて、すよ。 i80x86CPU は , ューザに要求されるチップ特有の特殊 知識の量が多すぎるんて、すよ , 意味もなく。 もちろん , せつかくのシンプルて、ストレー トて、パワフルな 680X0 の世界を , 奇妙にねじ まげてしまった ( = プログラミングに際して 制約や特殊知識の要請量が多すぎる ) Macintosh 国には , 絶対に移民したくはあり ませんがね ! また , いわゆる GUI ( グラフィカルユーザ インタフェイス ) が , ここて、いっている意味 て、の , ューザインタフェイスの、、標準化〃に なりえるかというと , 私は大いに疑問だと 思っています。このことについては , また 別の機会にお話したいと思います。 なぜ main( ) 関数が 必要なのか 今回の主テーマは , 「 C の標準ライプラリ 関数と文字列操作機能」のつもりなのて、す が , 最初にそれとは別の , 短い話題を片づ けます。 C をいじり始めてまだ 3 日目 ( はちょっとお おげさ ) というような人から , 「 C て、書くプロ グラムには , なぜ , main( ) という名の関数 が必要なのか」と聞かれました。私も , C を 使い始めてまだ 3 日目という段階て、は , この 質間に答えられなかったて、しよう。 昔々 , 今はなき某誌の C 言語入門連載記事 て、は , 筆者が「 main ( ) は , C のプログラムに は必ず必要な , オマジナイみたいなものだ と思ってください」と書いていました ( だい たいこの手の記事には , 似たような説明が 多い ) 。この話題にかぎらず , 入門書や入門 記事の , こういうタイプの書き方ってよく ない と私は思うのて、あります。こんな答 えて、は , 当の物事に対する , 生徒 ( 読者 ) の 理解にぜんぜんつながらないて、すから。 C 言語フォーラム 101

10. 月刊 C MAGAZINE 1991年6月号

シャープ X クループ lnformation from Compiler Makers 前回に引き続き , CCompilerPRO ー 68K ( XC ) のバージョンアップによ る XC ver. 1.01 から ver. 2.0 への 変更点 ( おもに ANSI C 準拠にとも なう変更点など ) をご紹介します。 プログラミング時の参考にしてく ださい 局所的な配列 , 構造体 , 共用体の初期化 内部レベルの変数宣言に使用す る auto 記憶クラス指定子によって 宣言された配列 , 構造体 , 共用体 ( 内部レベルて、記憶クラス指定子を 省略した場合は , すべて auto 変数 として扱われます ) の初期化が XC ver. 2.0 においては可能になりまし 32K バイト以上の auto 変数の使用 XC ver. 1.01 て、は , 32K バイト 以上の auto 変数を使用するとコン パイラて、 $AUTO 変数が 32Kbytes を越えました〃というワーニングの 後 , アセンプラてヾ over flow error というエラーが発生します。しか し , Ver. ・ 2.0 て、は , 32K バイト以上 の auto 変数の使用が可能になりま ただし , 32K バイト以上の auto 変 数を使用する場合 , コンパイル時 に / Na スイッチをつけることが必要 てす。 このスイッチを省略したときに は , 、、 aut0 variable 32KbYtes over 〃のエラーが発生します。 なお , 32K バイト以上の auto 変数 を使用したプログラムを / Na スイツ チをつけてコンパイルした場合に 浮動小数点演算 ライプラリの搭載 あらたに浮動小数点演算ライプ ラリが追加されました 0FLOATF NC. L と FLOATEML. L の 2 種類て、 す。 FLOATFNC. L を使用した場合 は , デバイスドライバとして登録 している FLOAT * . X(FLOAT2. X など ) を使用することにより , プ ログラムのサイズを小さくするこ とがて、きます。ただし , FLOATF NC. L を使用して作成された実行フ アイルは , FLOAT* . X が組み込 まれていなければ実行て、きません。 FLOATEML. L を使用すると , FLOAT * . X が組み込まれていな くても実行可能なファイルが作成 されます。 FLOATEML. L 自身が 浮動小数点演算ルーチンをもって おり , それを利用して演算を行う ためて、すが , プログラムのサイズ は大きくなります。 コンパイルするとき , デフォル トて、は FLOATFNC. L が使用され ます。浮動小数点演算ライプラリ として FLOATEML. L を使用する ように変更する場合は , / Nf スイツ チをつけてコンパイルします。 プリプロセッサ命令 # 演算子と # # 演算子のプリプロセ ッサ命令を新たに導入しました。 プリプロセッサの引数に , # , # # の オペレータを使用することにより トークンの加工を行うことがて、き ます。 、、 # トークン〃て、トークンの文字列 化を行い , 、、トークン # # トークン〃 て、トークンを連結します。たとえ ば , #define sample(str) #str 、、コ ンパイラ〃と定義されたマクロは次 のように展開されます。 sample(XC) →、、 XC 〃ヾコンパ イラク→、、 XC コンパイラク , また #define sample2(), b) a##b と定 義されたマクロは sample2(ABC, DEF) → ABCDEF と展開されます。 ■ scanf 関数の注意点 scanf 関数の format string 変換 書式中に使用した空白文字は読み とばされ , 次の入力処理を行いま 3 : main() 2 : 1 : #include く stdio. h> List 1 C CompiIer PPO-68K ver. 2. O が行えます。 3 のように一度に複数のデータ入力 正することが必要て、す。また , List 理を行いません。 List 2 のように修 るため , 期待したとおりの入力処 は空白文字が変換書式の最後にあ す 0List 1 のサンプルプログラムて、 タブ ) , 、、 \ f 〃 ( 改真 ) , 、、 \ r ク ( 復帰 ) て、 空自文字とは , 空白文字をつけてはいけません。 入力の場合は , 変換書式の最後に す。そのため続けて 1 データだけの 7 : 8 : 9 : 10 : char c; i nt i : scanf("%cYn ” ,&c) : printf("%cYn" scanf("%dYn",&i) : printf("XdYn", i) : List 2 1 : #include く stdio. h> 2 : 3 : ma i n ( ) 5 : 6 : 7 : 8 : 9 : 10 : Char c; i nt i : printf("XdYn". i); printf("%cYn",c); List 3 1 : #include く stdio. h> 2 : 3 : ma i n ( ) 5 : 7 : 8 : char c; int i; scanf("%cyn%d",&c,&i); printf("%cYnXdYn",c,i); も , す。 154 ワーニングメッセージは出ま 1 1 6 C M AGAZIN E