welcome: please sign in
location: "まとめて質問する"の差分
6と7のリビジョン間の差分
2011-12-16 04:58:08時点のリビジョン6
サイズ: 8623
編集者: masahiko
コメント:
2011-12-16 05:00:36時点のリビジョン7
サイズ: 8617
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 31: 行 31:
 {{{#!java  {{{

まとめて質問する


面積を求める問題(前回の続き)

次の図形の(灰色の部分の)面積を計算します。

  • menseki3a.png

赤い線で示した長方形を考えます。

  • menseki3b.png

このように分割したときのそれぞれの部分の面積を a, b, c, d とすると、灰色の部分の面積は a-b-c+d で求まることがわかります。

  • a の面積は (8+6)*(6+6+5)
  • b の面積は 8*5
  • c の面積は 4*3
  • d の面積は 6*6*3.1416/2

で求まります。

a,b,c,d4つの変数に値を覚えながら計算するには 次のように入力します。

  • 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

入力した部分だけをとりだしてみると、このようになります。

  • a = (8+6)*(6+6+5);
    b = 8*5;
    c = 4*3;
    d = 6*6*3.1416/2;
    a-b-c+d

1つずつ質問を入力しては答を得るのではなく、いくつかまとめて質問できると便利ですね。 それには質問内容をファイルに記述しておき、そのファイルを読んで処理するように指示します。 処理内容を記述したものをスクリプトまたはプログラムと呼びます。

例えば、上で示した5行分を ex0516.js というファイルに記述して保存した場合

  • JS> load('ex0516.js')

と入力することで、このファイルから1行ずつ順に読んで計算してくれます。

  • rhino2.png

しかし、この方法で実行した場合には計算結果は表示されません処理(計算)はされますが、1行ごとの結果は表示しないことになっています。 たくさんの計算をまとめて行うときにはこの方が便利だからです。

結果を表示するには、表示するための指示が必要です。

  • [添付]


プログラム(スクリプト)を load すると、1行ずつ順に処理(計算)はされますが、その計算結果は表示されません。 結果を表示するには、 print文(print命令)を使います。

書き方は

  •  print ( 内容 ) ;

です。

  • rhino3.png

以下の説明では、プログラムとして記述する部分は行番号付きで表示しています。 プログラム内に行番号は記述しません。

書き方1

  • 内容の部分に計算式を書くと、計算結果を表示します。

  • 行番号表示/非表示切替
       1  print ( 6*4/2 );
    

この内容をテキストエディタで入力し、ファイルsample1.jsに保存した後、 load命令を用いて実行させると次のようになります。

  •  JS> load( 'sample1.js')
     12

書き方2

  • 文字を表示するには’(シングルクオート)で挟んで書きます。
  • ’で挟んだ部分には日本語を記述することもできます。
  • ’を表示したいときは’の代わりに”(ダブルクオート)で挟んで記述します。

  • 行番号表示/非表示切替
       1  print ( 'プログラミング入門' );
    

プログラムをsample2.jsに記述し、load命令を用いて実行させると次のようになります。

  •  JS> load( 'sample2.js')
     プログラミング入門

書き方3

  • 数行にわたる表示を行いたいときは、行数分のprint 文を書けばよい。
  • 記述した順に実行され、順に表示されます。

  • 行番号表示/非表示切替
       1  print ( 'プログラミング入門' );
       2  print ( 12 + 3 );
    

プログラムをsample3.jsに記述し、load命令を用いて実行させると次のようになります。

  •  JS> load( 'sample3.js')
     プログラミング入門
     15

書き方4

  • 文字や計算結果をいくつか同じ行に並べて表示したいときは、,(カンマ)で区切って記述します。
  • 3つ以上並べて書くこともできます。

  • 行番号表示/非表示切替
       1  print ( '答え', 5*6 );
    

プログラムをsample4.jsに記述し、load命令を用いて実行させると次のようになります。

  •  JS> load( 'sample4.js')
     答え 30

構文

  • print1.png

式の部分は、四則演算を用いた計算式か、シングルクオートで挟んで書いた文字列です。他の形の式もあります。


プログラムの作成

プログラム(手順を記述したもの)をファイルとして作成します。 プログラムファイルを作成するにはテキストエディタを使います。 テキストエディタには、Windowsに付属している「メモ帳」の他に「テラパッド」などがあります。

入力ができたら、ファイル名をつけて保存します。

  • 保存場所は pro ディレクトリの中です。
  • 拡張子は .js にしてください。

「メモ帳」を使っている人は、保存時に「ファイルの種類」を「すべてのファイル」に変更してから「保存」すること。 「テラパッド」を使っている人は、変更の必要はありません。


プログラムを実行する

プログラムを読み込むには load 命令を使います。

  •  JS> load( 'ex0516.js' );

のように load( と ); の間にファイル名をシングルクオートで挟んで入力します。

load命令を入力すると、指定されたファイルを読み込んで、ファイルに記述された内容(プログラム)にしたがって処理します。

プログラム内に計算の指示があれば計算が行われ、表示の指示があれば表示が行われます。

処理はプログラム内に記述された順に、1行目から順に行われます。 表示はプログラム内で指示したものだけ行われます。

プログラムに間違いがあったときには、エラーメッセージが表示されるので、プログラムを修正してからもう一度loadを行ってください。

構文

  • [添付]


エラーメッセージ

1) JS> に対して入力した命令( load命令 )に間違いがあったときは

  •  js: "<stdin>", line 4: uncaught !JavaScript runtime exception:

のようにエラーメッセージの先頭が<stdin>になります。

2) 入力時の間違いでよく現れるのは次のメッセージです。

  •  js: "<stdin>", line 5: Couldn't open file "filename"

これはload命令で指定したファイルが見つかりませんというエラーです。

  • [添付]

3) load命令は正しいけれども、loadしようとしたプログラムの中に文法的な誤りがあるときは、数行にわたる表示がされます。

  •  js: "file1.js", line 4: missing ) after argument list
     js: print ( 3b );
     js: ..........^
     js: "file1.js", line 1: Compilation produced 1 syntax errors.

メッセージの先頭部分には処理しようとしているファイル名が示されます。 その右にはエラーが見つかった行番号とエラー内容が表示され、 次の2行を使って、見つかった位置を示しています。 最後の行は文法的なエラーが見つかったというメッセージです。 上の3行が間違いを探す手助けになります。

  • [添付]

4) 文法的には正しいけれども分らない名前が現れたなどのエラーが発生したときの例です。

  •  js> load( 'file2.js' )
     練習2
     320
     js: "file2.js", line 3: uncaught !JavaScript runtime exception: !ReferenceError: "b" is not defined.

エラーが発生した行より前の行まではプログラムが実行され、表示の指示があれば表示も行われます。 エラーメッセージの先頭部分には処理中のファイル名が示され、その右にはエラーが見つかった行番号とエラー内容が表示されます。

3)と4)の違いに注意してください。 プログラムのどこに間違いがあるのか知るためには、エラーメッセージの中から重要な箇所を見つけ出せると簡単です。 全部を翻訳する必要はありません。

まとめて質問する (最終更新日時 2011-12-19 06:56:38 更新者 masahiko)