この規格ページの目次
157
X 3003-1993
15. 固定小数点10進数
15.0 概要
固定小数点10進数機能単位 (fixed decimal numbers module) は,すべての数値変数の値が,プ
ログラムで定義する精度をもった固定小数点10進数として論理的に扱われる選択子を規定する。この選択
子を指定すると,数値定数及び数値式もまた,一般に固定小数点10進数 (fixed-point decimal mumber) と
して表現される。
このデータ型の主な目的は,BASIC以外の処理系とのインタフェースを提供することにある。したがっ
て,数値式の精度 (precision) と正確度(accuracy,15.1.6参照)に関する要求は,規定しない。
15.1 固定小数点10進数の精度
15.1.1 概要 プログラム単位中のすべての数値変数が,値として固定小数点10進数をもつように定義す
る選択子を定める。この選択子の指定によって,変数の値に対する省略時想定の精度が決まる。更に,個々
の変数に対して別の精度属性 (precision attribute) を指定することができる。
15.1.2 構文 構文は,次による。
(1) 選択子⊃ARITHMETIC FIXED 精度指定
(2) 精度指定=星印 小数点指定
(3) umeric宣言⊃NUMERIC 精度指定? 固定小数点宣言{コンマ 固定小数点宣言}*
(4) 固定小数点宣言=数値単純変数名 精度指定?|数値配列宣言 精度指定?
(5) rithmetic選択子でFIXEDを指定したoption文を書く場合には,同じプログラム単位中の,どの数値
式及び数値変数名よりも早い位置,かつNUMERICを指定したどのdeclare文よりも早い位置に書か
なければならない。
(6) 固定小数点宣言は,その単純変数名及び配列名に対するどの参照よりも早い位置に書かなければなら
ない。
(7) IXEDを指定したarithmetic選択子をプログラム単位に書いたときにだけ,精度指定 (fixed-point-type)
をdeclare文に書くことができる。
(8) ある一つの単純変数名及び配列名は,declare文,dim文,値仮引き数部及び参照仮引き数部の中には,
たかだか1回だけ書くことができる。
(9) 小数点指定 (fixed-point-size) は,11.3.2(23)の規定による。これは,選択的な機能単位である固有形式
拡充ファイル機能単位と固定小数点10進数機能単位との双方に適用する。
15.1.3 例 構文の例を次に示す。
ARITHMETIC FIXED*8.2 (1)
NUMERIC*5.2 A, B, C*5.5, D (1 TO 8)*6.6 (3)
NUMERIC E (1 TO 10, 1961 TO 1981) (3)
15.1.4 意味 意味は,次による。
(1) rithmetic選択子でFIXEDを指定すると,数値定数,数値変数及び数値式の値は,論理的に固定小数
点10進数として扱われる。おのおのの変数がとることのできる値は,整数幅 (integer-size) のけた数
の10進数字を小数点の左側にもち,小数幅 (fraction-size) のけた数の10進数字を小数点の右側にも
つ,正負の数値によって表現できる値とする。正負の符号は,表現のけた数には数えない。数値の表
現に用いる10進数のけた数は,処理系定義の最大値pによって制御する。この値は,18以上とする。
(2) 数値定数の意味は,次の点以外は5.1の規定による。各数値定数は,次に定める固定小数点10進数と
しての有効数字 (significant digits) のけた数で定義される精度属性をもつ。最初の有効数字とは,最初
のゼロでない数字又は小数点のすぐ右側の数字の両者のうち,左側のものとする。最後の有効数字と
――――― [JIS X 3003 pdf 161] ―――――
158
X 3003-1993
は,明示的に書かれた最後の数字又は小数点のすぐ左側の数字の両者のうち,右側のものとする。こ
の規定に従うと有効数字をもたないことになってしまうゼロの場合は,小数点のすぐ左側の1けたを
有効数字とする。指数あり形式 (scaled notation) で書かれた数値定数は,それと等価な指数なし形式
(unscaled notation) で書かれたように解釈する。
例 書かれた定数 有効数字
12.34 12.34
12.300 12.300
12.300E−4 .0012300
12.300E7 123000000.
00.00E−3 .00000
0.0E3 0.
有効数字のけた数がpを超える場合,処理系はpけた以上の精度で値を丸める。小数点の左側の有
効数字のけた数がpを超えると,あふれの例外状態になる。
(3) 数値単純変数及び数値配列は,整数部分と小数部分で保持される数字のけた数すなわち整数幅と小数
幅で定義される精度属性をもつ。おのおのの単純変数及び配列の表現は,次の優先順位で決められる。
(a) その単純変数名又は配列名の固定小数点宣言の中に書く精度指定
(b) その単純変数名又は配列名に対する固定小数点宣言を含むdeclare文のNUMERICに書く精度指定
(c) rithmetic選択子のFIXEDに指定されている省略時想定の精度指定
数値配列に対する精度属性は,その配列の各要素に対して適用する。数値変数の有効数字は,そ
の変数の値を数値定数として精度杯に書き表したものと同じとする。
(4) 数値式及び数値組込み関数の意味は,次の点以外は5.3及び5.4の規定による。数値組込み関数又は数
値式を評価して得られる結果の精度属性は,処理系定義とする。この評価における正確度も,処理系
定義とする。
(5) 数値変数への代入は,let文によるような内部での代入もinput文によるような外部からの代入も,と
もに次のとおり処理される。その値の整数部分と小数部分が,それぞれ変数の整数部分と小数部分に
小数点の位置を合わせて移される。ゼロでない数字が変数の整数部分より左側にあると,あふれの例
外状態になる。変数の小数部分より右側に数字があると,結果の値は変数のけた数に丸められる。必
要な場合には,受取り側の変数のすべての数字位置を埋めるために,整数部分の左側及び小数部分の
右側にゼロが詰められる。
(6) 入力及び出力における意味は,次の点以外は10.の規定による。print文中の印字項目に書いた数値式
の値は,小数点なし (implicit point) 又は小数点あり (explicit point) のいずれかの指数なし形式で印字
される。印字される数字は,(2)で規定した有効数字の部分だけとする。変数名でも定数でもない数値
式の有効数字は,処理系定義とする。小数点の右側に有効数字がなければ,小数点なし形式で印字さ
れ,あれば小数点あり形式で印字される。
(7) ファイルにおける意味は,次の追加以外は11.の規定による。
(7.1) 表示形式記録 (display record) については,入力,出力及び代入は(5)及び(6)の規定による。
(7.2) 内部形式記録 (intetnal record) については,値は自分で型をもっているので,入力及び出力は(5)及
び(6)の規定による。例えば,ファイル中の同じ値を参照するWRITE AとREAD Bの結果は,LET B
= Aと同じになる。あるarithmetic選択子を指定して出力された内部形式ファイルが,他の
arithmetic選択子を指定して入力できるか否かは,処理系定義とする。FIXEDを指定したarithmetic
――――― [JIS X 3003 pdf 162] ―――――
159
X 3003-1993
選択子は,たとえ異なった省略時想定の精度指定をもっていても,ファイル参照に関して異なった
選択子の指定とはみなさない[15.2.4(2)参照]。
(7.3) 固有形式記録 (native record) については,小数点指定のある欄への記録及びその欄からの代入は,
通常の固定小数点数の代入の規則(5)に従う。数値欄幅の指定がE(浮動小数点)である欄(11.3参
照)への値は,有効数字の先頭pけた以上が正しく出力される。このような欄から値が変数に代入
されるときは,その欄は,(2)で定めた指数あり形式の数値定数として扱われる。この場合も,ある
arithmetic選択子を指定して出力された固有形式ファイルが,他のarithmetic選択子を指定して入
力できるか否かは,処理系定義とする。
(7.4) sk文の属性名 (ask-attribute-name) にDATUMを書いて,ファイル中の次のデータ要素の型を知る
ことができる[11.1.4(10)参照]。arithmetic選択子でFIXEDを指定して書き出した内部形式流れ編
成ファイル中の数値データに対しては,ask文のこのDATUM属性に返される型 (type) は,
“NUMERIC * ii.ff”とする。ここで,iiは整数幅を表す2けたの数字,ffは小数幅を表す2けたの
数字とする。
15.1.5 例外状態 例外状態は,次による。
(1) 数値定数の整数部分の有効数字のけた数がpを超える。(1001,続行不能。)
(2) ption文又はdeclare文で,精度指定中の整数幅と小数幅の和がpを超える。(1010,続行不能。)
(3) 変数への数値の代入において,整数部分の有効数字のけた数がその変数の整数幅を超える。(1011,続
行不能。)
15.1.6 注意 LOG,COSH,ATN,SIN,EXPなどの超越関数の正確度は,arithmetic選択子でDECIMAL
を指定した場合の正確度以上とすることを推奨する。ABS,INT,MAXなど,超越関数でない関数,並び
に+,−,*,/及び^の演算では,中間結果の値をp+2けたの有効数字をもつ浮動小数点10進数で保持
することを推奨する。これは,数値式の中間結果の正確な値がすべて10進p+2けた以内であり,最終結
果の正確な値が10進pけた以内であれば,最終結果の値が厳密に正確であることを意味する。
15.2 固定小数点10進数のプログラム分割
15.2.1 概要 プログラム単位中に指定した固定小数点10進数の選択子は,そのプログラム単位の有効範
囲内にあるすべての数値に適用される。適用される数値には,値仮引き数,参照仮引き数及び(外部関数
定義の場合の)関数評価の結果も含まれる。
15.2.2 構文 構文は,次による。
(1) 値仮引き数⊃固定小数点仮引き数
(2) 参照仮引き数⊃固定小数点仮引き数
(3) 固定小数点仮引き数=数値単純変数名 精度指定|固定小数点仮配列宣言
(4) 固定小数点仮配列宣言=仮配列宣言 精度指定
(5) 内部function行⊃行番号 FUNCTION 固定小数点定義関数名 値仮引き数部? 行末部
(6) xternal-function行⊃ 行番号 EXTERNAL FUNCTION 固定小数点定義関数名 値仮引き数部?
行末部
(7) 数値def文⊃DEF 固定小数点定義関数名 値仮引き数部? 等号 数値式
(8) 定義関数名⊃固定小数点定義関数名
(9) 固定小数点定義関数名=数値定義関数名 精度指定
(10) all文中に書く数値変数名又は実配列の整数幅 (integer-size) 及び小数幅 (fraction-size) は,対応する
参照仮引き数と同じでなければならない。その他の数値型の値実引き数及び参照実引き数と,それら
――――― [JIS X 3003 pdf 163] ―――――
160
X 3003-1993
に対応する値仮引き数及び参照仮引き数との間では,それぞれのプログラム単位のarithmetic選択子
が同じであればよい。すなわち,両方とも,DECIMALであるか,NATIVEであるか又はFIXEDであ
ればよい。
(11) rithmetic選択子でFIXEDを指定したoption文は,そのプログラム単位中で,数値定義関数名を宣言
する又は数値型の値仮引き数を指定するどの内部関数定義よりも早い位置に書かなければならない。
(12) 精度指定は,arithmetic選択子でFIXEDを指定したプログラム単位の中でだけ,内部function行又は
数値def文に書くことができる。
(13) 固定小数点仮引き数は,arithmetic選択子でFIXEDを指定したプログラム単位の中でだけ書くことが
できる。
(14) 内部function宣言又はexternal-function宣言の中で固定小数点定義関数名を宣言するとき,そこで明
示的に又は省略時想定によって指定される精度指定は,対応する関数定義のものと一致しなければな
らない。
15.2.3 例 構文の例を次に示す。
A( )*8.2 (3)
B(,)*4.4 (3)
123 FUNCTION SUMVECTOR*5.2 (V( )*5.2) (5)
234 EXTERNAL FUNCTION ANSWER*1 (A$) (6)
DEF AVERAGE*10.3 (X*10.3, Y*10.3)=(X+Y)/2 (7)
15.2.4 意味 意味は,次による。
(1) rithmetic選択子でFIXEDを指定したプログラム単位では,数値型の参照仮引き数,数値型の値仮引
き数及び数値定義関数の値は,固定小数点10進数として表現され,扱われる。これらに対する精度指
定が,それぞれの参照仮引き数,値仮引き数,def行,内部function行又はexternal-function行で明
示的に書いてない場合には,arithmetic選択子のFIXEDの後ろに書いた値が,省略時想定値としてと
られる。仮配列宣言の精度指定は,その配列の各要素に適用する。
(2) 関数引用中の値実引き数の評価及び関数定義中の値仮引き数への代入は,9.1で規定した手順で行われ
る。ただし,値実引き数の精度指定が対応する値仮引き数と異なるときは,15.1.4の規定に従って代
入される。
(3) all文中の参照実引き数と,対応するsub文中の参照仮引き数との結び付けば,9.2で規定した手順で
行われる。ただし,数値変数名以外の数値式である参照実引き数の精度指定が対応する参照仮引き数
と異なるときは,15.1.4の規定に従って代入される。
15.2.5 例外状態 例外状態は,次による。
(1) 固定小数点仮引き数又は固定小数点定義関数名で,精度指定中の整数幅と小数幅の和がpを超える。
(1010,続行不能。)
(2) 固定小数点仮引き数又は固定小数点定義関数名への数値の代入において,有効数字の整数部分のけた
数がその仮引き数又は関数名の整数幅を超える。(1011,続行不能。)
15.2.6 注意 なし。
――――― [JIS X 3003 pdf 164] ―――――
161
X 3003-1993
16. 編集
16.0 概要
この規格の編集機能単位 (editing module) は,プログラムの作成及び修正を援助する機能を提
供する。編集機能単位は,BASICの環境を作り出すという特定の目的のためのものとする。この環境では,
利用者はBASICプログラムの,再番号付け (renumbering),表示 (listing) 及びdelete指令又はextract指令
による部分抽出 (subsetting) ができる。この機能単位は,BASICプログラムを編集している間だけ使用可
能とする。プログラムの編集から実行への移行は,処理系定義とする。
16.1 未整列プログラム
16.1.1 概要 編集機能によって,プログラムの行を任意の順で入力することができる。
16.1.2 構文 構文は,次による。
(1) 未整列プログラム=未整列行*
(2) 未整列行=行番号{プログラム文字|行継続}* 行末
16.1.3 例 構文の例を次に示す。
20 PRINT TWO+TWO
30 END
(pdf 一覧ページ番号 )
20 PRINT 2+2
15 PRINT ”2+2 EQUALS”
10 SUB SORT (A(), & ! List to be sorted
(pdf 一覧ページ番号 )
& N) ! Length of list
16.1.4 意味 未整列プログラム (unsorted-program) 中の未整列行 (program-line) は,行番号が昇順になる
ように並べ換えられる。同じ行番号をもつ未整列行が複数個ある場合は,そのうちで文面上の最後の未整
列行だけが残る。
16.1.5 例外状態 なし。
16.1.6 注意 未整列行は,論理行[3.2(10)“行”参照]である。
16.2 編集用指令
16.2.1 概要 編集用指令 (editing command) によって利用者は,プログラム中の部分を選択して表示,削
除及び再番号付けの操作ができる。
16.2.2 構文 構文は,次による。
(1) 編集指令=delete指令|extract指令|list指令|renumber指令
(2) elete指令=DELETE 行範囲並び
(3) 行範囲並び=行範囲{コンマ 行範囲}*
(4) 行範囲=行指定{TO 行指定}?
(5) 行指定=行番号|FIRST|LAST
(6) xtract指令=EXTRACT 行範囲並び
(7) ist指令=LIST 行範囲並び?
(8) enumber指令=RENUMBER 行範囲? 番号指定?
(9) 番号指定=AT 開始番号{STEP 刻み}?|STEP 刻み{AT 開始番号}?
(10) 開始番号=行番号
(11) 刻み=符号なし整数
(12) 行範囲並び中の行番号は,昇順でなければならない。機能語FIRSTを書くときには,行範囲並び中の
――――― [JIS X 3003 pdf 165] ―――――
次のページ PDF 166
JIS X 3003:1993の引用国際規格 ISO 一覧
- ISO/IEC 10279:1991(IDT)
JIS X 3003:1993の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.060 : 情報技術に使用される言語
JIS X 3003:1993の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX0201:1997
- 7ビット及び8ビットの情報交換用符号化文字集合
- JISX0301:2002
- 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記