<?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>まとめて質問する</title><revhistory><revision><revnumber>12</revnumber><date>2011-12-19 06:56:38</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2011-12-16 05:29:54</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2011-12-16 05:26:54</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-12-16 05:05:12</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-12-16 05:01:17</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-12-16 05:00:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-12-16 04:58:08</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2010-02-17 05:33:18</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2010-02-17 05:20:52</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-02-17 05:12:07</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2010-02-17 05:06:14</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-02-17 05:04:08</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>まとめて質問する</title><!--rule (<hr>) is not applicable to DocBook--><section><title>面積を求める問題(前回の続き)</title><para>次の図形の（灰色の部分の）面積を計算します。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E8%B3%AA%E5%95%8F%E3%81%99%E3%82%8B?action=AttachFile&amp;do=get&amp;target=menseki3a.png"/></imageobject><textobject><phrase>menseki3a.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>赤い線で示した長方形を考えます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E8%B3%AA%E5%95%8F%E3%81%99%E3%82%8B?action=AttachFile&amp;do=get&amp;target=menseki3b.png"/></imageobject><textobject><phrase>menseki3b.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>このように分割したときのそれぞれの部分の面積を a, b, c, d とすると、灰色の部分の面積は a-b-c+d で求まることがわかります。 </para><itemizedlist><listitem override="none"><para>a の面積は (8+6)*(6+6+5) </para></listitem><listitem override="none"><para>b の面積は 8*5 </para></listitem><listitem override="none"><para>c の面積は 4*3 </para></listitem><listitem override="none"><para>d の面積は 6*6*3.1416/2 </para></listitem></itemizedlist><para>で求まります。 </para><para>a,b,c,d４つの変数に値を覚えながら計算するには 次のように入力します。 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> a = (8+6)*(6+6+5) ;
238
JS> b = 8*5 ;
40
JS> c = 4*3 ;
12
JS> d = 6*6*3.1416/2 ;
56.5488
JS> a-b-c+d
242.5488]]></screen></listitem></itemizedlist><para>入力した部分だけをとりだしてみると、このようになります。 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[a]]></methodname><![CDATA[ = (8+6)*(6+6+5);]]>
<methodname><![CDATA[b]]></methodname><![CDATA[ = 8*5;]]>
<methodname><![CDATA[c]]></methodname><![CDATA[ = 4*3;]]>
<methodname><![CDATA[d]]></methodname><![CDATA[ = 6*6*3.1416/2;]]>
<methodname><![CDATA[a]]></methodname><![CDATA[-]]><methodname><![CDATA[b]]></methodname><![CDATA[-]]><methodname><![CDATA[c]]></methodname><![CDATA[+]]><methodname><![CDATA[d]]></methodname>
</programlisting></listitem></itemizedlist><para>１つずつ質問を入力しては答を得るのではなく、いくつかまとめて質問できると便利ですね。 それには質問内容をファイルに記述しておき、そのファイルを読んで処理するように指示します。 処理内容を記述したものを<emphasis role="strong">スクリプト</emphasis>または<emphasis role="strong">プログラム</emphasis>と呼びます。 </para><para>例えば、上で示した５行分を ex0516.js というファイルに記述して保存した場合 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> load('ex0516.js')]]></screen></listitem></itemizedlist><para>と入力することで、このファイルから１行ずつ順に読んで計算してくれます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E8%B3%AA%E5%95%8F%E3%81%99%E3%82%8B?action=AttachFile&amp;do=get&amp;target=rhino2.png"/></imageobject><textobject><phrase>rhino2.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>しかし、この方法で実行した場合には計算結果は<emphasis role="strong">表示されません</emphasis>。 処理（計算）はされますが、１行ごとの結果は表示しないことになっています。 たくさんの計算をまとめて行うときにはこの方が便利だからです。 </para><para>結果を表示するには、表示するための指示が必要です。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>print 文</title><para>プログラム（スクリプト）を load すると、１行ずつ順に処理（計算）はされますが、その計算結果は表示されません。 結果を表示するには、 print文（print命令）を使います。 </para><para>書き方は </para><itemizedlist><listitem override="none"><screen><![CDATA[print ( 内容 ) ;]]></screen></listitem></itemizedlist><para>です。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E8%B3%AA%E5%95%8F%E3%81%99%E3%82%8B?action=AttachFile&amp;do=get&amp;target=rhino3.png"/></imageobject><textobject><phrase>rhino3.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>以下の説明では、<emphasis role="strong">プログラム</emphasis>として記述する部分は<emphasis role="strong">行番号付き</emphasis>で表示しています。 プログラム内に行番号は記述しません。 </para><!--rule (<hr>) is not applicable to DocBook--><para> <emphasis role="strong">書き方１</emphasis> </para><itemizedlist><listitem override="none"><para>内容の部分に計算式を書くと、計算結果を表示します。 </para></listitem></itemizedlist><para>例 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[print]]></methodname><![CDATA[ ( 6*4/2 );]]>
</programlisting></listitem></itemizedlist><para>この内容をテキストエディタで入力し、ファイルsample1.jsに保存した後、 load命令を用いて実行させると次のようになります。 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> load( 'sample1.js')
12]]></screen></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><para> <emphasis role="strong">書き方２</emphasis> </para><itemizedlist><listitem override="none"><para>文字を表示するには’（シングルクオート）で挟んで書きます。 </para></listitem><listitem override="none"><para>’で挟んだ部分には日本語を記述することもできます。 </para></listitem><listitem override="none"><para>’を表示したいときは’の代わりに”（ダブルクオート）で挟んで記述します。 </para></listitem></itemizedlist><para>例 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[print]]></methodname><![CDATA[ ( ']]><methodname><![CDATA[プログラミング入門]]></methodname><![CDATA[' );]]>
</programlisting></listitem></itemizedlist><para>プログラムをsample2.jsに記述し、load命令を用いて実行させると次のようになります。 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> load( 'sample2.js')
プログラミング入門]]></screen></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><para> <emphasis role="strong">書き方３</emphasis> </para><itemizedlist><listitem override="none"><para>数行にわたる表示を行いたいときは、行数分のprint 文を書けばよい。 </para></listitem><listitem override="none"><para>記述した順に実行され、順に表示されます。 </para></listitem></itemizedlist><para>例 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[print]]></methodname><![CDATA[ ( ']]><methodname><![CDATA[プログラミング入門]]></methodname><![CDATA[' );]]>
<methodname><![CDATA[print]]></methodname><![CDATA[ ( 12 + 3 );]]>
</programlisting></listitem></itemizedlist><para>プログラムをsample3.jsに記述し、load命令を用いて実行させると次のようになります。 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> load( 'sample3.js')
プログラミング入門
15]]></screen></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><para> <emphasis role="strong">書き方４</emphasis> </para><itemizedlist><listitem override="none"><para>文字や計算結果をいくつか同じ行に並べて表示したいときは、,（カンマ）で区切って記述します。 </para></listitem><listitem override="none"><para>３つ以上並べて書くこともできます。 </para></listitem></itemizedlist><para>例 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[print]]></methodname><![CDATA[ ( ']]><methodname><![CDATA[答え]]></methodname><![CDATA[', 5*6 );]]>
</programlisting></listitem></itemizedlist><para>プログラムをsample4.jsに記述し、load命令を用いて実行させると次のようになります。 </para><itemizedlist><listitem override="none"><screen><![CDATA[JS> load( 'sample4.js')
答え 30]]></screen></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--><para> <emphasis role="strong">構文</emphasis> </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E8%B3%AA%E5%95%8F%E3%81%99%E3%82%8B?action=AttachFile&amp;do=get&amp;target=print1.png"/></imageobject><textobject><phrase>print1.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>式の部分は、四則演算を用いた計算式か、シングルクオートで挟んで書いた文字列です。他の形の式もあります。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>プログラム例</title><para>面積の計算手順の最後をprint文に変更したものです。 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><methodname><![CDATA[a]]></methodname><![CDATA[ = (8+6)*(6+6+5);]]>
<methodname><![CDATA[b]]></methodname><![CDATA[ = 8*5;]]>
<methodname><![CDATA[c]]></methodname><![CDATA[ = 4*3;]]>
<methodname><![CDATA[d]]></methodname><![CDATA[ = 6*6*3.1416/2;]]>
<methodname><![CDATA[print]]></methodname><![CDATA[( ]]><methodname><![CDATA[a]]></methodname><![CDATA[-]]><methodname><![CDATA[b]]></methodname><![CDATA[-]]><methodname><![CDATA[c]]></methodname><![CDATA[+]]><methodname><![CDATA[d]]></methodname><![CDATA[ );]]>
</programlisting></listitem></itemizedlist><para>これを保存しload命令を用いて実行すると、 printで指示された値だけが表示されます。 </para></section></section></article>