welcome: please sign in
location: "値に名前をつける"の差分
1と10のリビジョン間の差分 (その間の編集: 9回)
2010-02-17 02:48:49時点のリビジョン1
サイズ: 32
編集者: masahiko
コメント:
2011-12-19 06:52:31時点のリビジョン10
サイズ: 8671
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 2: 行 2:
値に名前をつけることができます。
名前をつけておくと、後で値の代わりに名前を書くことで対応する値を使うことができます。

3.1416 という値にpaiという名前をつけるにはこのように書きます。
 {{{
 pai = 3.1416;
 }}}
この後ではpaiと書くと 3.1416のことになります。

等号(=)が使ってありますが、等式とは違います。
 . 3.1416 = pai のようには書けません。

なんども使う値や、決まっている値には名前をつけておくと便利です。

書き方を構文図で表すと
 . {{attachment:namae3.png}}
のようになります。

構文図は文の正しい書き方を表すための図です。
 . 矢印に示す順に入り口から出口までたどることで、文法的に正しい結果が得られます。
 . 丸で囲まれた記号はそのとおりに書きます。
 . 四角で囲まれた部分には対応する内容を書きます。
----
=== 計算例 ===

例1 半径3cmの円の面積を計算しなさい。
 {{{
 JS> 3 * 3 * 3.1416
 28.2744
 }}}
例2 直径10cmの円の面積を計算しなさい。
 {{{
 JS> 5 * 5 * 3.1416
 78.539999999999
 }}}
例3 直径12cm円の周の長さを計算しなさい。
 {{{
 JS> 12 * 3.1416
 37.6992
 }}}
問題数が少ないときは、1つ1つ式を入力して計算すればよい。
問題が沢山あるときには名前を使うと便利です。

3問まとめてやってみましょう。
 {{{
 JS> pai = 3.1416;
 3.1416
 JS> 3*3*pai
 28.2744
 JS> 5*5*pai
 78.53999999999
 JS> 12*pai
 37.6992
 }}}
ちょっとだけ楽でしたね。

練習
 . 円周率の値として 3.14159265358979 を使って同じ計算をしてみてください。
----
=== 名前の付け方 ===

名前の付け方には約束があります。
これは名前だとすぐに分るようにつけなければなりません。
 {{{
名前に使える文字は英字(アルファベット大文字小文字合わせて52種類)と数字(10種類)です。
 }}}
名前は1文字以上で、もっと長くてもかまいません。2文字以上のときは空白などを入れないで詰めて書かなくてはいけません。

さらに次の条件があります。
 . 1) 1文字目は英字であること。
 . 2) 処理系で使い方が決まっている名前は使えません。

予約語と言い for, if, then, else, while, do, true, false などがあります。このページの最後に載せておきます。

名前はどこか1文字でも異なっていると、違うものとして扱われます。
英字の大文字と小文字は異なる文字として扱われます。

名前の付け方を構文図で表すとこのようになります。
 . {{attachment:namae1.png}}
----
=== 良い名前の付け方 ===

1) 何度も使う名前は使いやすい名前にしておきましょう。

わかりやすくするには
 . 適当な長さでつける、
 . 意味どおりの名前をつける、
のが良い方法です。

例えば、面積を表すのであれば menseki 、答ならば kotae のように付ければよい。
中途半端に省略した名前を使うのは間違いのもとです。

2) その場限りでしか使わないときは、 a,b,c,x,y など意味の無い短い名前にすることもあります。

3) 変わらない値(定数など)は大文字でつけます。
----
=== 計算の途中で名前をつける ===

決まっている値については最初に名前をつけて使うと便利だと説明しました。
名前は、それ以外の場面で使うことが多くあります。

 . '''計算の途中結果を覚えておく'''ために使います。
'''例'''
 . 灰色で示した部分の面積を計算しなさい。正方形の1辺の長さは5cmとする。
 . {{attachment:menseki1.png}}
灰色の部分の面積は
 . {{attachment:menseki2.png}}
で計算できますね。

名前を使わないで計算するとこのようになります。
 {{{
 JS> 5*5*3.1416
 78.53999999999999
 JS> 78.54/2
 39.27
 JS> 39.27-25
 14.2700000000003
 }}}
5*5*3.1416で円の面積を計算し、出力された値を2で割り、最後に正方形の面積25を引いて求めています。
(この問題では1つの式にして 5*5*3.1416/2 - 25 とやれば計算できますが、もっと複雑な問題では分けて計算したほうが楽なことが多い。)

78.53999999999と表示されたのを78.54 に略して再入力しました。
せっかく計算させたのですから、求まった値をそのまま使いたいものです。

値に名前をつけるには
 . {{attachment:namae3.png}}
のように書くといいましたが、値の部分に式を書くこともできます。
 . {{attachment:namae2.png}}
この場合、式の値を計算してから、求まった値に名前をつけることになります。

名前をつけながら(値を記憶させながら)同じ計算をしてみましょう。
 {{{
 JS> a = 5*5*3.1416;
 78.53999999999
 JS> b = a/2;
 39.26999999996
 JS> b-25
 14.26999999996
 }}}
手計算の時でも、あとで使う可能性のある値はどこかにメモしたりしますね。
このとき値だけを 78.54 とメモしておくよりも、en=78.54; と値の意味が分るように書いておくと、後で便利です。

----
=== 値が変化する ===

値に名前を付け、その名前を使って値を参照できることがわかりました。
計算をするたびに結果に違う名前を付けていくのは、名前を考えるのが大変です。
a1, a2, a3, ..., a90 のようにつければ可能ですが、どの名前がどの値なのか分らなければ名前を付けた意味がありません。

もし名前を1つしか使わなかったらどうでしょう。

<実験1>
上で行った計算では a と b の2つの名前を使いましたが、a だけを使うことにして次のように入力したらどうなるでしょうか。
 {{{
 JS> a = 5*5*3.1416;
 JS> a = a/2;
 JS> a-25
 }}}
実際に行って確かめてみてください。

<実験2>
それぞれの行の処理を行ったあとで a の表す値がどうなっているか確かめてみましょう。
 {{{
 JS> a = 5*5*3.1416;
 JS> a
 JS> a = a/2;
 JS> a
 JS> a-25
 JS> a
 }}}
a とだけ入力すると、a の表している値が表示されます。
実際に行って確かめてみてください。

a の表している値が変わっているのがわかります。

----
=== 変数 ===

上の例のように使われる名前は、処理が進むにつれ表している値が変わります。
また、値が途中で変わらなくても、値を覚えておくために使う名前もあります。
これらを含めて変数といいます。
----
=== 演習 ===
問1) 名前として正しいものの例を5つ書きなさい。
 . それぞれ長さが異なる名前にすること。
 . できるだけ良い名前にすること。

問2) 名前として正しくないものの例を1つ挙げ、その理由を述べなさい。

問3) 次の5行を順に行った後での k の値を答えなさい。
 {{{
 a = 12;
 k = a + 3;
 b = a + 4;
 k = a - b + k;
 a = 5;
 }}}
問4) 次の図形の(灰色の部分の)面積を求めなさい。
 . 図中の数値は対応する辺の長さ(または半径)を表しています。
 . 解答は求まった値だけでなく、JS> に対して入力した命令も(行ごとに)順に記述するくこと。
 . {{attachment:menseki3a.png}}
----
=== 予約語 ===

機能が割り当てられているもの、機能が割り当てられるかもしれないもの、使うべきでないもの、が選ばれています。
||abstract||boolean||break||byte||case||
||catch||char||class||const||continue||
||debugger||default||delete||do||double||
||else||enum||export||extends||false||
||final||finally||float||for||function||
||goto||if||implements||import||in||
||instanceof||int||interface||long||native||
||new||null||package||private||protected||
||public||return||short||static||super||
||switch||synchronized||this||throw||throws||
||transient||true||try||typeof||var||
||void||volatile||while||with|| ||

値に名前をつける

値に名前をつけることができます。 名前をつけておくと、後で値の代わりに名前を書くことで対応する値を使うことができます。

3.1416 という値にpaiという名前をつけるにはこのように書きます。

  •  pai = 3.1416;

この後ではpaiと書くと 3.1416のことになります。

等号(=)が使ってありますが、等式とは違います。

  • 3.1416 = pai のようには書けません。

なんども使う値や、決まっている値には名前をつけておくと便利です。

書き方を構文図で表すと

  • namae3.png

のようになります。

構文図は文の正しい書き方を表すための図です。

  • 矢印に示す順に入り口から出口までたどることで、文法的に正しい結果が得られます。
  • 丸で囲まれた記号はそのとおりに書きます。
  • 四角で囲まれた部分には対応する内容を書きます。


計算例

例1 半径3cmの円の面積を計算しなさい。

  •  JS> 3 * 3 * 3.1416
     28.2744

例2 直径10cmの円の面積を計算しなさい。

  •  JS> 5 * 5 * 3.1416
     78.539999999999

例3 直径12cm円の周の長さを計算しなさい。

  •  JS> 12 * 3.1416
     37.6992

問題数が少ないときは、1つ1つ式を入力して計算すればよい。 問題が沢山あるときには名前を使うと便利です。

3問まとめてやってみましょう。

  •  JS> pai = 3.1416;
     3.1416
     JS> 3*3*pai
     28.2744
     JS> 5*5*pai
     78.53999999999
     JS> 12*pai
     37.6992

ちょっとだけ楽でしたね。

練習

  • 円周率の値として 3.14159265358979 を使って同じ計算をしてみてください。


名前の付け方

名前の付け方には約束があります。 これは名前だとすぐに分るようにつけなければなりません。

  • 名前に使える文字は英字(アルファベット大文字小文字合わせて52種類)と数字(10種類)です。

名前は1文字以上で、もっと長くてもかまいません。2文字以上のときは空白などを入れないで詰めて書かなくてはいけません。

さらに次の条件があります。

  • 1) 1文字目は英字であること。
  • 2) 処理系で使い方が決まっている名前は使えません。

予約語と言い for, if, then, else, while, do, true, false などがあります。このページの最後に載せておきます。

名前はどこか1文字でも異なっていると、違うものとして扱われます。 英字の大文字と小文字は異なる文字として扱われます。

名前の付け方を構文図で表すとこのようになります。

  • namae1.png


良い名前の付け方

1) 何度も使う名前は使いやすい名前にしておきましょう。

わかりやすくするには

  • 適当な長さでつける、
  • 意味どおりの名前をつける、

のが良い方法です。

例えば、面積を表すのであれば menseki 、答ならば kotae のように付ければよい。 中途半端に省略した名前を使うのは間違いのもとです。

2) その場限りでしか使わないときは、 a,b,c,x,y など意味の無い短い名前にすることもあります。

3) 変わらない値(定数など)は大文字でつけます。


計算の途中で名前をつける

決まっている値については最初に名前をつけて使うと便利だと説明しました。 名前は、それ以外の場面で使うことが多くあります。

  • 計算の途中結果を覚えておくために使います。

  • 灰色で示した部分の面積を計算しなさい。正方形の1辺の長さは5cmとする。
  • menseki1.png

灰色の部分の面積は

  • menseki2.png

で計算できますね。

名前を使わないで計算するとこのようになります。

  •  JS> 5*5*3.1416
     78.53999999999999
     JS> 78.54/2
     39.27
     JS> 39.27-25
     14.2700000000003

5*5*3.1416で円の面積を計算し、出力された値を2で割り、最後に正方形の面積25を引いて求めています。 (この問題では1つの式にして 5*5*3.1416/2 - 25 とやれば計算できますが、もっと複雑な問題では分けて計算したほうが楽なことが多い。)

78.53999999999と表示されたのを78.54 に略して再入力しました。 せっかく計算させたのですから、求まった値をそのまま使いたいものです。

値に名前をつけるには

  • namae3.png

のように書くといいましたが、値の部分に式を書くこともできます。

  • namae2.png

この場合、式の値を計算してから、求まった値に名前をつけることになります。

名前をつけながら(値を記憶させながら)同じ計算をしてみましょう。

  •  JS> a = 5*5*3.1416;
     78.53999999999
     JS> b = a/2;
     39.26999999996
     JS> b-25
     14.26999999996

手計算の時でも、あとで使う可能性のある値はどこかにメモしたりしますね。 このとき値だけを 78.54 とメモしておくよりも、en=78.54; と値の意味が分るように書いておくと、後で便利です。


値が変化する

値に名前を付け、その名前を使って値を参照できることがわかりました。 計算をするたびに結果に違う名前を付けていくのは、名前を考えるのが大変です。 a1, a2, a3, ..., a90 のようにつければ可能ですが、どの名前がどの値なのか分らなければ名前を付けた意味がありません。

もし名前を1つしか使わなかったらどうでしょう。

<実験1> 上で行った計算では a と b の2つの名前を使いましたが、a だけを使うことにして次のように入力したらどうなるでしょうか。

  •  JS> a = 5*5*3.1416;
     JS> a = a/2;
     JS> a-25

実際に行って確かめてみてください。

<実験2> それぞれの行の処理を行ったあとで a の表す値がどうなっているか確かめてみましょう。

  •  JS> a = 5*5*3.1416;
     JS> a
     JS> a = a/2;
     JS> a
     JS> a-25
     JS> a

a とだけ入力すると、a の表している値が表示されます。 実際に行って確かめてみてください。

a の表している値が変わっているのがわかります。


変数

上の例のように使われる名前は、処理が進むにつれ表している値が変わります。 また、値が途中で変わらなくても、値を覚えておくために使う名前もあります。 これらを含めて変数といいます。


演習

問1) 名前として正しいものの例を5つ書きなさい。

  • それぞれ長さが異なる名前にすること。
  • できるだけ良い名前にすること。

問2) 名前として正しくないものの例を1つ挙げ、その理由を述べなさい。

問3) 次の5行を順に行った後での k の値を答えなさい。

  •  a = 12;
     k = a + 3;
     b = a + 4;
     k = a - b + k;
     a = 5;

問4) 次の図形の(灰色の部分の)面積を求めなさい。

  • 図中の数値は対応する辺の長さ(または半径)を表しています。
  • 解答は求まった値だけでなく、JS> に対して入力した命令も(行ごとに)順に記述するくこと。

  • menseki3a.png


予約語

機能が割り当てられているもの、機能が割り当てられるかもしれないもの、使うべきでないもの、が選ばれています。

abstract

boolean

break

byte

case

catch

char

class

const

continue

debugger

default

delete

do

double

else

enum

export

extends

false

final

finally

float

for

function

goto

if

implements

import

in

instanceof

int

interface

long

native

new

null

package

private

protected

public

return

short

static

super

switch

synchronized

this

throw

throws

transient

true

try

typeof

var

void

volatile

while

with

値に名前をつける (最終更新日時 2011-12-19 06:52:31 更新者 masahiko)