サブルーチン - みる会図書館


検索対象: 学習コンピュータ 1979年12月号
14件見つかりました。

1. 学習コンピュータ 1979年12月号

0 ワンホイント征服、 FORTRANÄ イ 7 文関数定義文と関数副プログラムの違い どのように使い分けるか 今月はサプルーチンの使い方についてみ直して 静岡大学工業短期大学部士 みます。論理的な正しさと , よいプログラムの関 田敬 情報工学科ロ 係はどうなっているか , 評価の 1 つの方法を示し 沢祥治 日本電気 ( 株 ) 教育部成 てみます。 1. 予備知識ーークローズ・サブルーチンとオープン・サブルーチン ひとつのフ。ログラムの中で , 同じ計算を何度も行う必要があるときはサブルーチンを用いる と便利である一一一というのはよくご存知のことと思います。このサプルーチンにはクローズ・ サブルーチンとオープン・サプルーチンの 2 種類があります。 クローズ・サブルーチンというのは , 主プログラムでサブルーチンを必要とするたびごと にそのサプルーチンジャンプして実行する形式のものです。この形 主プログラム 式ではサブルーチンが主フ。ログラムの中にはないので , サブルーチン を必要とするたびにそこジャンフ。しなければなりません ( 図 1 参 照 ) 。そしてサプルーチンを実行し終わったら , また主フ。ログラムに もどってきます。もどってくるときは今さっき飛び出していった行の 次の行にもどってこなければなりません。そのため , クローズ・サプ ルーチン形式のときは , 主プログラムからサプルーチンとび出すと 図 1 クローズ・サブル きに自分がもどってくるべき場所を設定しておく必要があります。 主フ。ログラムの〇印のとこ れを戻り番地の設定といいます。もっとも , このようなやっかいな仕 ろでサブルーチンが呼ばれ 事はコンパイラがすべてやってくれるので , プログラマは主プログラ るとその時点で制御がサプ ルーチンへ移る。 ム , サプルーチンを独立して作成すればよいわけです。図 2 のよう に , 独立した 2 つのプログラムを作ってコンパイルすると , コンパイ ル時に戻り番地の設定などは自動的にやってくれます。この形式のサ プルーチンは主プログラムからとび出したり戻ってきたりという作業 がはいるので , 実行時間はオープン・サプルーチン形式よりも長くか かるという欠点があります。 つぎに , オープン・サブルーチンですが , この形式では主フ。ログラ 図 2 プログラムの作成 ムがサプルーチンを必要とするたびにサプルーチンが主プログラムの 主フ。ログラムの中では , サ プルーチンを必要とする個 中に組み込まれます。図 3 のような形式になるわけです。この形式で 所にその旨指示を記入する だけでよい。 は , 主プログラムの中に何度もサプルーチンが組み込まれる可能性が あるので , 記憶容量を多く必要とする欠点があります。そのかわり , 戻り番地の設定などの必 サプルーチン サプルーチン 主プログラム

2. 学習コンピュータ 1979年12月号

70 く片方善治の誌上マイコン・スクール > ソフトウェアの基礎 D : 分散 実は , この応用問題のために考えている加減乗除 の計算サプルーチンに , 次のような前提がありま す。 つまり , これらのサプルーチンで扱える数値デ ータは , 整数であり , 日常われわれが取り扱う小 数などを含んだ実数ではありません。ということ は , 小数点以下をもっているデータは扱うことが できず , 演算の結果小数が発生しても切り捨てら れることになります。 このことから , の一のように減算回数が多く なる演算方法では , 誤差が多くなります。これ は , このサブルーチン以外を使用する場合でも少 なからず問題となるところです。 そこで , ①式を次のように展開してみます。 1 1 1 分散 = ー ( 一の 2 ー野ーー工面十一嵳 ー ( 2 ー 2 工面十 2 ) ー 2 ー 2 十一 2 YES B = B 十 A を求める テを求める B = 0 START. ・ ¯N 注 ) = 1 から誘導 ②式をみると , 減算は 1 回ですみ , なおかっ , と各データ値が必要であり , 出力としては , 分散 図 4 に示すように , 入力としては , データ個数 か整理してみましよう。 ( 図 4 ) まず , 入出力データとしてどんなものがあるの みます。 は , データの入出力等の外まわりについて考えて ーチャートにより表されていますので , フ。ログラムの内部構造については , 図 3 のフロ 3. 1 プログラム設計 ストの各手順がありました。 フローチャート化 , コーディング , デバッグ・テ プログラミングの手順には , プログラム設計 , グしてみましよう。 図 3 のフローチャートに基づき , プログラミン プログラミング 図 3 にそのフローチャートを示します。 ②式をプログラム化してみましよう。 誤差が少なくなりそうです。 新とも 2 乗されますので数値は大きくなり , 入力 : データの個数 : 各データの値 ーは N か ? 0 ま = ま十 1 分散 プログラム 出力 分散値 図 4 必要な サブルーチン ・加算サブルーチン ・減算サブルーチン ・乗算サブルーチン ・除算サブルーチン C =B/N D = C ーエ 2 STOP 図 3 分散を求めるフローチャート② 入出力データ

3. 学習コンピュータ 1979年12月号

48 2. < 言語講座・ワンポイント征服・ FORTRAN> 文関数定義文と関数副プログラムの違い 要がないため , 実行時間が少なくてすむという長所があります。クロ ーズとオープンの大きな差異は前者は他のフ。ログラムからでも呼び出 す ( 引用する , ともいう ) ことができますが , 後者は主プログラムに 組み込まれてしまうので , 他のプログラムからは呼び出すことができ ないことです。クローズ , オープンいずれの形式にするかはコンパイ ラが決めてやっていることですが , コンパイラは何を目安に決めてい るかというとそれは文法です。 たとえば FORTRAN では , 「文関数は他のプログラムからは引用 できない」というとりきめがあるため , 文関数がコンパイルされると オープン・サプルーチンの形式になります * 。一方 , 関数副プログラ ムは「他のプログラムからの引用ができる」という取り決めになって いるため , クローズ・サプルーチンに展開されます。 サ フ チ サ チ 図 3 オープン・サプル 主プログラムで必要とする 毎に主プログラムに組み込 まれる。 主プログラム クローズ・サプルーチンとオープン・サプルーチンをまとめるとつぎのようになります。 クローズ・サ ブルーチン オープン・サ ブルーチン 記憶容量 呼出し回数が多くなっ ても , さほどふえな 呼出し回数がふえる毎 にサプルーチンの分ず つふえる。 できる できない 例 関数副プログラム 文関数定義文 表 1 クローズ・サブルーチンとオープン・サプルーチンの比較 ものです。くりかえし回数を , 380 , 508 , 708 , 10 刈と変えたときの実行速度を大型コン えしています。図 5 のプログラムは , 図 4 と同じ内容のことを , 関数副プログラムで作成した いて同じプログラムの中でその関数を引用し計算するものです。図 4 ではこれを 1000 回くりか フ。ログラムを用意します。これは x + 1 ・ 0 という簡単な算術式を文関数定義文で定義してお さて , こでは実行速度に焦点をあてて , その量的な解析をしてみましよう。図 4 のような ます。 わち , 実行速度は文関数のほうが関数副プログラムよりすぐれていて , 記憶容量では逆になり れるという種明しをすでにしてありますから , それぞれの特徴は表 1 のようになります。すな ります。前者はオープン・サプルーチンとして , 後者はクローズ・サブルーチンとして展開さ 定義文を用いてコーディングする方法と関数副プログラムを用いてコーディングする方法があ は , キザミを少しずっ変化させながら同じ計算式を何度もっかいます。このようなとき文関数 算術式を何回も引用することが珍しくありません。たとえば , 定積分を求めるフ。ログラムで 前置きがながくなりました。さっそく , 本論にはいりましよう。実際の仕事の中には , 同じ 文関数定義文と関数副プログラムー - ー実行速度はどうか * ごくまれに , クローズ・サプルーチン形式に変換しているコンパイラもある。しかしこのときでも , 他からの引用 はできないように工夫されている。

4. 学習コンピュータ 1979年12月号

73 00450 804D E5 00460 8 04 E 6 0 00470 8 0 4 F 6 9 00480 8 05 0 3 A818 0 00490 8055 5 C 004A0 8054 3 2818 0 004B0 8057 5 7 004C0 8 0 58 5 AO 08 1 004D0 8 0 5 B B A 004E0 8 0 5 C C 2 4 08 0 004F0 00500 805F DI 0 0 510 8 06 0 210000 00520 8 06 5 3A0081 00550 8 06 6 4 F 0 0 54 0 8 06 7 06 0 0 00550 CD8F82 8 06 9 00560 8 06 C EB 0 0 5 70 8 06 D 2 A828 0 00580 8070 7C 00590 8 071 2 F 005A0 8 07 2 6 7 0 0 5 B 0 8 07 5 7 D 005C0 8 0 74 2 F 005D0 8 0 75 6 F 005E0 8076 2 5 005F0 8 0 7 7 1 9 0 06 0 0 8078 7C 0 061 0 8079 5 20181 00620 8 07 C 7 D 00650 8 07 D 520281 00640 8 08 0 76 0 06 5 0 00660 00670 0 06 8 0 8 081 00690 8 08 2 006A0 006B0 u 0 00 PUSH ト 10V MOV LDA I N R STA MOV LDA CMP JNZ POP LXI LDA MOV MVI CALL XCHG LHLD MOV CMA MOV MOV CMA MOV INX DAD MOV STA MOV STA ☆ WORK AND CONSTANTS CNT RCI 0 RC2 END 分散を求めるコーディング例 ( アセンブル・リスト ) 図 7 スタに入って出てきます。 4 サプルーチン つまり , 2 バイト x 2 バイト = 4 バイトの演算 を行うサブルーチンです。 図 6 の取り決めの中で述べたように , このプロ この分散フ。ログラムでは , 乗算した値も 2 バイ グラムでは乗除算のサプルーチンを使用していま トで使用するため , 答えとして D E レジスタを用 す。ここでは紙面の都合から , そのサプルーチン い , 一応桁上げをチェックするため H L がゼロか の構成 , 考え方について説明することにします。 どうかを判定させています。 実際のコーディング例を希望される方について 乗算サプルーチンの基本的な考え方を説明しま は , 編集部経由で申し込んでくださればお送りし すと , 次のようになります ( 図 8 ) 。 たいと思います。 図 8 に示すように , 乗算は加算の繰り返しでは なく , 各桁ごとに演算を行っていくものです。 41 乗算サブルーチン (S2MU) つまり , 実際の乗算 この乗算サプルーチン S2MU は , 0 0 1 0 X 0 0 1 1 HL x BC = HLDE 0 0 1 0 のように HL, BC レジスタに乗数 , 被乗数をセ 十 0 0 1 0 ットしてコールしてやれば , 答えが HLDE レジ 0 0 1 1 0 H , B CNT CNT D , A J002 日 , 0 C , A B , 0 S2DV A , H H , A A , L L , A A , H A , L G + 1 ァータ終了判定 正のデータを負にして 2 バイト加算命令 DAD が使えるようにする HL 十 (—D)=HL—D

5. 学習コンピュータ 1979年12月号

74 = 0110 : 2X5 = 6 YES NO 被乗数乗数 乗数の一ビット右シフト 被乗数の一ビット左シフト 結果 = 被乗数十結果 例 ) 4 ビットで乗算してみる 0010X0011 < 片方善治の誌上マイコン・スクール > START 結果ェリアのクリアー 2 バイト終了したか ? NO 乗数の下位 ビットが一か ? YES ソフトウェアの基礎 STOP のように HLDE に被除数 , BC に除数をセット してコールすると , 商が H L に , 余りが D E に入 って出てきます。 この除算サブルーチンの基本的考え方は , 乗算 のようにやはりシフトを用いて処理しています。 START 結果ェリアのクリアー 被除数を一ビット左シフト NO 被乗数 (H 工 ) ステップ①ー 結果 (RSLT) ステップ②ー ← H 工 RSLT ステップ③ー ← HI RSLT 乗数 (JO) JO → JO → 被除数 ~ 除数 YES 被除数 = 被除数上位 2 バイトー除数 商を一ビット左シフ STOP YES 32 ビット終了か ? ( 全ビット終了か NO フローか ? 商はオーバー トして十一 商を一ビット左シフト YES ( 工ラー ) ) 工ラー処理 NO ー←変化なし ← H 工 ステップ④ー J 0 → 被除数 除数 演算内容 ⑧ 0 0 01 余り ⑦皿ー ⑥皿ー ⑤一 ④ー ③一 ②一 ①一 例 ) 4 ビットで除算してみる 8 ビットニ 除数 商カウンタ 被除数 4 = 0100 17 = 00010001 17 十 4 = 4 余り 1 RSLT ー←変化なし 図 8 乗算の考え方 のように対象の桁を互いにズラシながら計算する HLDE/BC=HL 余り DE この除算サブルーチン S2DV は , 42 除算サブルーチン CS2DV) てやることにしています。 数に直して乗算し , 答えについて正 , 負を操作し す。それは , 負数であれば 2 の補数をとって正の が負の値をとってもよいように考えられていま また , 実際の S2MU では , 被乗数 , 乗数の値 がグッと速くなります。 原理です。これは , 加算の繰り返しよりスビード 0 0 1 0 01 0 0 0 1 1 0 1 0 0 0 0 0 Q 0 10 1 ー皿 OIOO 10000 商 図 9 除算の考え方

6. 学習コンピュータ 1979年12月号

1 嵋′日 71 値が得られればよいわけです。 式の中でを使用する部分は , ループにより加 これらの入出力データは , あらかじめメモリー 算していく方法を用いています。 に入出力データ・エリアとして確保しておくこと このフローチャートに基づき , コーディングを にします。 行うわけですが , この場合 , コーディングに先だ また , 演算機能としては , 乗除算のサプルーチ って行ういろいろな取り決めがあります。例えば ンが必要となります。 ①メモリー上に配置するデータ , 中間結果 , 最 加算 , 減算については , 特にサプルーチン化し 終結果のエリアの割り付け ( 必要バイト数の設 なくても , 2 バイト演算の場合には DAD 命令が 定およびネーム付け ) ありますのでそれを使うようにします。しかし , ②演算に使用するデータのバイト数の決定 それ以上の大きい数値を演算する場合には , サブ などです。以下にこれらの取り決めを示し , 次ペ ルーチン化する必要があります。例えば , 4 バイ ージ以降にコーディング例をあげておきます。 ト分程度の加減算サプルーチンを作っておくと便 ①使用サプルーチン名 利でしよう。 S 2 M U : 乗算サプルーチン S2DV: 除算サプルーチン 3.2 フローチャートとコーディング ②入出力データ格納工リア名 図 3 のフローチャートをさらに展開したものが DTBL: が 2 バイトずつ入る 下のディテール・フローチャートです。 レヾイト目 2 バイト目 3 バイト目 4 バイト目 START DTBL N : データ件数 ( 1 バイト ) G : 結果 ( 分散値 ) ( 2 バイト ) これらのエリアは , プログラム実行前にあらかじ めメモリー上にセットしておく必要がある。 ③メモリーの割り付け 1 0 十 YES [ はか ? NO 8000 番地 B =A/N C = B 2 プログラム 8082 番地 8100 番地 8101 番地 8102 番地 8103 番地 E = 0 E = E 十 D ーは N か ? NO N ( ー / ヾイト ) G ( 2 バイト ) DTBL ( が 2 バイト単位で入る ) 乗算サプルーチン 除算サプルーチン 8200 番地 828E 番地 828F 番地 YES F =E/N G = F ー C STOP 図 5 丁イテール・フローチャート - G : 分散 2 8370 番地 図 6 プログラムの詳細設計

7. 学習コンピュータ 1979年12月号

・文関数 ・関数副プログラム ・サブルーチン副プログラム このうち文関数は他の 2 つよりも次の 2 点で , は不向きといえましよう。 【小沢正光さんのプログラム】 しよう。 をしなければならないような用法は避けるべきといえま るためにあるのですから , その引用に先立って何か準備 することも可能ですが , 本来関数は式の中で直接引用す もちろん文関数を引用する前に , できないことを吸収 W=A S F ( S / 1 0 0 十 1 , S ) 文法ェラーとなる A S F ( 工 S , S ) = C 0 N ( 工 S ) * F L 0 A T ( S ) D 工 M N S 工 0 N C 0 N ( 2 ) ましよう。 後者は文法書などを読んでも見落とし易いので注意し することができないてんです。 にしても , 文関数定義文における式では配列要素を引用 まう点です。もう 1 つは , 先の配列を用いる方法をとる むずかしく , 無理にまとめてもかえって複雑になってし まず 1 つは , 1 つの算術式で制動距離を求めることが 次に関数やサプルーチンによる手続きについて考えて みましよう。 FORTRAN では次の 3 種類の手続きがあります。 , s 2 , W2 ) ) 単 57 そこで関数副プログラムによる小沢さんのプログラム を見てみましよう。 こでは , 制動距離も結果として印刷するため , 制動 距離を待避をする算術代入文の中で引用されています。 しかし関数副プログラムの仮引数も定義や再定義が許 されますから , 次の機能 ・速度 ( 整数型 ) の実数化 ・制動距離の待避 もこの関数副プログラムに含めてしまってもよいでしよ う。 なお , この関数副プログラムのように複数の値を戻す 手続きであれば , サブルーチン副フ。ログラムとしてもよ いでしよう。 この場合には , F U N C T 工 0 N を S U B R 0 U T 工 N に変 えるとともに , 関数として値を戻す代入文 を取り除き , C ALL F ( 工 S 1 , S 1 , W 1 ) C ALL F ( 工 S 2 , S 2 , W2 ) T= ( W 1 十 U—W 2 ) / S 2 * 5 . 6 として引用します。 3. 余裕時間の計算と結果の印刷 データを発生し , 先行車 , 後続車の制動距離も決ま り , 余裕時間が計算できるようになりました。 1 6 ; A N Z N T 工 S 工 ; N 0 P R 0 G R A M WR 工 TE ( 6 , 6 0 0 ) . K 工 1 5 X , 2 H W 2 , 5 X , 1 H U , 7 X , 1 H T , 15 X , 6 H . , 5 X , 2 H S 2 , 6 0 0 F 0 R M A T ( 1 H , 2 2 X , 2 H S 1 , 5 X , 2 H W 1 5 6 H< K M / H > , 2 X , 5 H<M> , 4 X , 5 H く M> , 4 X , 2 5 H G 0 U , / 2 0 X , 6 H<KM / 日 > , 4 X , 5 H<M> , 5 X , . T A N 工 ) 4 5 H<S E C> , 1 1 X , 8 H . Dö 1 0 工 U= 1 0 , 9 0 , 2 0 D 0 2 0 工 S 2 = 8 0 , 1 2 0 , 1 0 D 0 5 0 工 S 1 = 8 0 , 1 2 0 , 1 0 U = 工 U S 2 = 工 S 2 S 1 = 工 S 1 w 2 = ( s 2 ) w 1 =F ( s 1 ) T= ( W 1 十 U ー W2 ) / ( 1 0 0 0 . * S 2 ) * 5 6 0 0 . → T= ( F ( 工 S 1 , S 1 , W 1 ) 十 U—F ( 工 S 2 / S 2 * 5 . 6 ↑ この S 2 は関数副フ。ログラムから 戻される値を引用する 6 0 1 3 0 2 0 1 0 1 0 0 WR 工 T E ( 6 , 6 0 1 ) S 1 , W 1 , S 2 , W2 , U , T Fö RMAT ( 1 H , 2 0 X , 5 ( F 5 ・ 1 , 2 X ) , F 7 ・ 5 ) C 0 N T 工 N U E C O N T 工 N U 居 C 0 N T 工 N U 居 S T 0 P E N D S U B P R 0 G R A M F U N C T 工 0 N F ( S ) 工 F ( S . GE . 1 0 0 ・ 0 ) G 0 F= 0 . 7 * S R 居 T U R N F= 0 . 9 * S R T U R N E N D 1 0 0 T 0 1 0 0 右のようにする 1 0 0 2 0 0 F U N C T 工 0 N F ( 工 S , S , W ) S = 工 S 工 F ( 工 S . G E . 1 0 0 ) G 0 Tö W= 0 . 7 * S G 0 T 0 2 0 0 E N D R E T U R N W= 0 . 9 * S 学研版・現代語訳日本の古典全幻巻 第 3 回配本⑩宮柊二・小倉百人一首 書店て新発売

8. 学習コンピュータ 1979年12月号

読上コ一イス勲 6 / ☆今月のことば ■マイコン応用特集を読みこなせ , ー、 ~ 、・〃 / 〃 / , 、 ~ 〃〃 / / , 、 ~ 衂 システム研究センター理事長・工学博士片方善治 マイコンの応用が各分野に広がるにつれていろいろな雑誌が 特集を組むようになった。しかし , その多くは中途半端に終わ っているような感じがする。我田引水のようだが , やはり本誌 のこのマイコン・スクールが一番充実しているのではないか。 一方 , 学会雑誌のマイコン特集は , 専門分野の人たちへ , よ り詳しい情報を提供していることを紹介しておきたい。たとえ ば , 計測自動制御学会の学会誌「計測と制御」の 9 月号は , 、、プ ロセス計装におけるマイクロコンヒ。ュータ″の特集を組んでい て , この分野における主要なマイコンの応用を網羅していて興 味深い。編集後記に , 「毎年マイコンを特集として取り上げて もよい」という意見があったことにふれていたが , おそらく今 後も各理工系学会雑誌に , マイコン応用特集が組まれることで あろう。それらを読みこなすためにも , このスクールでしつか りと基礎を身につけてほしい。 片方善冶ワ ☆今月の学習 ソフトウェアの基礎は , アセンプラ言語による応用プログラムの作成に入り ます。その第 1 回目は , 基本的な統計値である分散の求め方です。 ・ソフトウェアの基礎・分散を求めるプログラムの作成・・ ・マイコン新製品 / マイコン情報・ ・ MZ ー 80K トライ・ルーム 8 ^ 0 8 6 7 7- < マイコン・スクールのカリキュラム > 月 ソフトウェアの基礎 マイコンの言語 4 マイコン応用の世界 BASIC へのいざない 5 マイコンの構造と動作 BASIC 入門 ( 1 ) 6 ソフトウェアと言語 7 フ。ログラム作成の手順 8 加算サブルーチンの作成 9 アセンプラ言語 ( 1 ) 10 トライ・ルーム ( 1 ) 11 12 分散を求めるプログラム 4 1 【お知らせ】次号は情報処理技術者試験特集のため , ンフトウェアの基礎は休講させていただきます。

9. 学習コンピュータ 1979年12月号

50 3. 4 < 言語講座・ワンポイント征服・ FORTRAN> 文関数定義文と関数副プログラムの違い したがって引用する回数が同じなら , 2 つの方法の間に速度の差はないと考えてよさそうです。 技法 1 実行速度を問題とするなら , 関数副プログラムより文関数定義文を用いてコーディングした ほうがよい。 理論的にいえば , 記憶容量はどうか クローズ・サプルーチン形式では , 前にも少し触れたように , 戻り番地の設定という余分な仕 くてすむはずです。理由は前に述べたとおりです。ところが , これには落とし穴があります。 クローズ・サプルーチン形式の関数副プログラムのほうが記憶容量は少な 板を加工するのにコンヒ。ュータを使用している場合などがありますが , このようなときは数ミ じゃないか , と思われる方もいるかもしれませんが , 実際の仕事の中には高速回転している円 文を用いてコーディングすると実行速度の速いプログラムが得られます。たかがミリ秒の単位 に余裕のないときは関数副プログラムを用いてコーディングし , そうでないときは文関数定義 以上の結果より大体つぎのような目安が生れます。マイコンやミニコン , あるいはメモリー 様の結果を得ました。 だけを掲載してありますが , FACOM-45/S や HITAC-M シリーズで測定した結果もほぼ同 今回の実験では紙面の都合上 , 大型コンヒ。ュータとして ACOS-700 を用いて測定したもの おわりに ーディングしたほうがよい。 技法 2 メモリーの使用効率を問題とするなら , 一般には , 文関数より関数副プログラムを用いてコ みます。まして関数の中に , 組込み関数などが使用されているとその差は顕著になってきます。 論どおり引用回数が多くなればなるほど関数副プログラムのほうが , メモリー数は少なくてす 実際のプログラムでは , x + 1 ・ 0 などよりもずっと複雑な式が多いので , そうなればやはり理 副プログラムは実行速度は遅いし必要メモリー数は大きいので , いいとこなしです。しかし , x + 1 ・ 0 では必要メモリー数は , 文関数定義文のほうが少なくなっています。これでは , 関数 ルーチンのほうが多くのメモリーを必要とするということになりかねません。実際 , この例の です。関数があまりに簡単なものですと , 前者の付加分のほうが多くなって , クローズ・サプ プルーチンとして付加される関数の分のどちらが多くのメモリーを必要とするか , ということ のためのプログラムがコンパイル時に付加されます。問題はこの付加された分と , オーフ。ン・サ 事があります。さらに余分な仕事としては , 引き数の授受 , レジスタの退避などがあるのでそ ュータ室の内田静子さんのみなさんにお世話になりました。 算室の田中勝さん , 静岡大学工業短期大学部・情報工学科の竹内淑子さん , 同大学部・ 今回の実験測定のため , 日立製作所・教育センターの林利子さん , 静岡大学工学部・電子計 などとはいっておれないときがあるわけです。 リ秒の差がタイミングがとれるか否かの分れ道になることが少なくありません。たかがミリ秒 コ / ヒ。

10. 学習コンピュータ 1979年12月号

11 鴫 75 全国書店で発売中 5 問題点 池孝三著 / 学習コンピュータ編集部製作 本書を読んで B A S ー C をマスターした 以上で用いた計算処理は , 先に述べたようにす 方々ガ「いやー , プログラミングって本当 に楽しいものですなコンピュータって本 べてのデータが整数の前提となっています。 当に素晴らしいですね」とあいづちを打っ これは , 各演算のサブルーチンが固定小数点計 てくだされば , 著者の池さんにとっても , 算になっているからです。つまり , 小数点を一番 私にとってもこんなうれしいことはない。 ( 東京大学大型計算センター石田晴久 ) 下位桁にもっており , 例えば , 引き算した結果が 小数以下をもっていたら , 切り捨てとなってしま B 5 判 223 べージ定価 1900 円 いますし , 割り算についても同様です。 この場合 , この切り捨ての誤差が小さい場合に は問題になりませんが , 無視できないとすれば計 算結果は信用のおけるものではありません。 そのため , このように科学計算的な演算を行う 場合には , 固定小数点方式でなく , 浮動小数点方 式の計算を行う必要があります。 浮動小数点方式とは , 計算の結果 , 自動的に小 数点位置をセットしてくれるもので , 科学計算で は必須のものとなります。 浮動小数点方式は , データを次のように表しま す。 マイコンを楽しむための 池孝三著 ( 0 一ツ こ 0 ~ 了科ー爻 3 タ 、ん 3 る 0 0 0 ミをま第第を 第ド。 データ : 仮数部指数 部 仮数部は , 小数位置を特定の所に設定したデー タの値を入れる部分で , 指数部は , 実質の小数位 置を示す部分です。 例えば , 53.952 というデータは , 固定小数点方 式だと , 53 となりますが , 浮動小数点方式では , 0. 53952 ( 仮数 ) 102 ( 指数 ) のように表すことができます。以上の方法は , 10 進数で表していますが , 2 進数で表すことがふっ うです。 このように , 指数部分を調整することで , 例え ば , 0.803 = 0.3X10 ー 3 のように扱いやすい大 きさの数値となります。 浮動小数点方式の処理内容については , 追って 説明することにいたします。 《内容》 に新しいコンピューターー - ーコンビュータ どの会話をはじめる前に 2 . BAS ー C 語て宅舌しかけてみよう 3 . 加の必須語による BAS ー C 基本会話 4 . 会話能力を高めよう 5 . B A S ー C でシミュレーション・ゲー ムを作って遊ばう 6 . 文字列を操作しよう 7 . 知能指数の高い BAS ー C て会話を楽 しむために 8 . スタートレック・ゲームに挑戦 9 . B A S ー C インタブリタのしくみ 付録 . プログラム実例集 く間合せ = 学研・学習コンピュータ編集部 >