<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>Rhinoの反応</title><revhistory><revision><revnumber>5</revnumber><date>2011-12-16 04:39:40</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-12-16 04:36:51</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-02-17 02:44:59</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2010-02-17 02:42:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-02-17 02:33:44</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>Rhinoの反応</title><section><title>演習</title><para>Rhino処理系に計算式を入力すると、計算をさせることができます。 実験してみましょう。 </para><para>その結果 </para><itemizedlist><listitem override="none"><para>予想通りの結果が表示されたもの </para></listitem></itemizedlist><para>の他に予想と違って </para><itemizedlist><listitem override="none"><para>１）計算が間違っていると思われるもの </para></listitem><listitem override="none"><para>２）何らかのメッセージが表示されるもの </para></listitem></itemizedlist><para>の場合があったと思います。 </para><para>結果が予想通りでなかったものについて、理由を考えましょう。 できるだけたくさんの種類を見つけなさい。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Rhinoに指示を与える</title><itemizedlist><listitem override="none"><screen><![CDATA[JS>]]></screen></listitem></itemizedlist><para>の状態でコンピュータに指示を与えると、指示に対応して何か反応があります。 正しい指示を与えると、正しい反応があるでしょう。 </para><para>指示内容はキーボードで入力し最後にEnterキーを押します。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Rhinoの反応</title><para>JS&gt; に入力したときの反応を調べました。 2+3 や 5*8 などと入力すると、計算した結果が表示されました。 他にもいろいろな反応がありました。 </para><para>いろいろな計算式を入力して確かめたと思います。 XやYを使った数式の変形はできませんでした。 電卓や算盤を思い浮かべた人は、何桁まで計算できるのかを確かめたのではないでしょうか。 </para><para>計算結果が正しく表示された場合の他に、次のような反応があったでしょう。 </para><itemizedlist><listitem override="none"><para>反応が無い </para></listitem><listitem override="none"><para>メッセージが表示される </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>数の計算</title><para>計算式を入力すると、それを計算して結果を表示してくれます。 例えば </para><itemizedlist><listitem override="none"><screen><![CDATA[js> 2+3
5]]></screen></listitem></itemizedlist><para>のようになります。 </para><para>数の書き方は普通の通りです。 </para><itemizedlist><listitem override="none"><para>数字を並べて書くと１０進数になります。 </para></listitem><listitem override="none"><para>小数や負の数の書き方も普段どおりです。 </para></listitem></itemizedlist><para>四則演算（ ＋ － × ÷ ）は順に + - * / で表します。 </para><itemizedlist><listitem override="none"><para>掛け算の記号は * です。２掛ける３は 2*3 と書きます。 </para></listitem><listitem override="none"><para>割り算は / で表します。１２割る４は 12/4 と書きます。 </para></listitem></itemizedlist><para>括弧は（）を使います。 </para><itemizedlist><listitem override="none"><para>大括弧、中括弧が必要なときも（）を使います。 </para></listitem><listitem override="none"><para>(1*(2+3))/4 のように（）が何重になってもよい。ただし括弧の対応は正しくなっていること。 </para></listitem></itemizedlist><para>演算記号( + - * / )や括弧の前後に空白をはさんでもよい。 </para><para>括弧の前後の * は省略できません。 </para><itemizedlist><listitem override="none"><para>(1+2)(3-4) と書くとエラーになります。 </para></listitem><listitem override="none"><para>(1+2)*(3-4) と書きます。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>反応が無いときの対応方法</title><itemizedlist><listitem override="none"><screen><![CDATA[JS>]]></screen></listitem></itemizedlist><para>に対して入力を行いEnter キーを押すと、何らかの反応ののち再び </para><itemizedlist><listitem override="none"><screen><![CDATA[JS>]]></screen></listitem></itemizedlist><para>の表示になるはずですが、入力内容によっては何の表示もされなくて、入力が続けて行える状態になることがあります。 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> 2+ ]]></screen></listitem></itemizedlist><para>式の途中でEnterを押してしまったときなどに起こります。 こんなときは「<emphasis role="strong"> ; </emphasis>(セミコロン)」を押しEnterを押してください。 「 ; 」は命令の区切りを表します。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>エラーメッセージが表示される</title><para>英文のメッセージが２行程度表示されたときは、ほとんどがエラーメッセージです。 どこに間違いがあったのか見つけられるようになりましょう。 </para><para>最も頻繁に現れるのは次の２つでしょう。 </para><para>１） <emphasis role="strong">syntax error</emphasis> </para><itemizedlist><listitem override="none"><para>文法的に間違っているときに出るメッセージです。 </para></listitem><listitem override="none"><para>Compilatiton produced 1 syntax errors. </para></listitem><listitem override="none"><para>のような表示も同様です。 </para></listitem></itemizedlist><para>２） <emphasis role="strong">ReferenceError</emphasis> </para><itemizedlist><listitem override="none"><para>分らない言葉が出てきたというメッセージです。 </para></listitem><listitem override="none"><para>&quot;&lt;stdin&gt;&quot;, line 9: uncaught JavaScript runtime exception: ReferenceError: &quot;x&quot; is not defined. </para></listitem><listitem override="none"><para>のように表示されます。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>計算結果が間違っている</title><para>１）割り切れない </para><itemizedlist><listitem override="none"><para>10/3 はもちろん割り切れませんね。 </para></listitem><listitem override="none"><para>小数で書こうとすると3が無限に続くことになります。 3.3333333.... </para></listitem><listitem override="none"><para>コンピュータは ... なんて表示はしないで、どこかで省略して </para><itemizedlist><listitem override="none"><para>3.3333333333333335 </para></listitem></itemizedlist></listitem><listitem override="none"><para>のように表示します。 </para></listitem><listitem override="none"><para>最後の桁の値がおかしいのは２）で。 </para></listitem></itemizedlist><para>２）有効桁数を超えた </para><itemizedlist><listitem override="none"><para>コンピュータでは小さな数や大きな数を同じように扱うため、浮動小数点という考え方で数を表現しています。 </para></listitem><listitem override="none"><para>浮動小数点の数では正しく計算できる桁数が制限されます。 </para></listitem><listitem override="none"><para>大きな数の計算を行ったときには、決まった桁数分についてのおよその値になります。 </para><screen><![CDATA[JS> 1234567890123456789 + 1
1234567890123456800]]></screen></listitem><listitem override="none"><para>この例では上から１７桁分しか正しく計算されていません。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>Rhino の表示方法</title><para>すごく大きな数や小さな小数については、次のような表示がされます。 </para><para>１） e を使った表示 </para><itemizedlist><listitem override="none"><para>0.1234e+25 や 0.987e-15 のように間にeをはさんだ表示になることがあります。 </para></listitem><listitem override="none"><para>eの後ろにある数は小数点の位置がどれだけずれているかを表しています。 </para></listitem><listitem override="none"><para>１番目の例は小数点の位置を右に２５桁ずらした 1234000000000000000000000という値を表しています。 </para></listitem><listitem override="none"><para>２番目の例は小数点の位置を左に１５桁ずらした 0.000000000000000987という値を表しています。 </para></listitem></itemizedlist><para>２）無限大 </para><itemizedlist><listitem override="none"><para>ECMAscriptでは無限大をinfinityで表します。 </para><screen><![CDATA[JS> 5 / 0
Infinity]]></screen></listitem><listitem override="none"><para>０で割ったときの答として現れます。 </para></listitem><listitem override="none"><para>負の無限大は -Infinity です。 </para></listitem></itemizedlist><para>３）NaN </para><itemizedlist><listitem override="none"><para>数のようでもあるし数ではない不思議な値です。 </para></listitem><listitem override="none"><para>Not a Number の略です。 </para></listitem><listitem override="none"><para>０を０で割ったり、無限大で割ったりしたときに現れます。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>四則演算以外の演算</title><para>6^2 や 3~8 や 7! や 6&amp;4 のような式を入力してみた人もいました。 でも予想どおりには計算できなかったようです。 </para><para>数の演算で普通に使えるのは四則演算だけです。 ^ ~ &amp; ! は論理演算（ビット演算）のための記号として使われます。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>８進数、１６進数</title><para>先頭に０をつけると８進数として解釈されます。 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> 012 + 3
13]]></screen></listitem></itemizedlist><para>012は１０進の十二ではなく８進数で、８の位が１、１の位が２ですから、１０進での値は１０です。 これに３を加えると答は１３になります。 </para><para>１６進数を入力するときには先頭に0xをつけ、0x7fのように書きます。 </para></section></section></article>