JavaScriptによるプログラミング
○JavaScript では、プログラムを
<script>〜</script> の間に記述する。
○文の終わりにはセミコロン(;)をつける。また,セミコロンで区切ることにより、1行に複数の文を記述することができる。
○// から行末までと,/*
から */ の間はコメントとして扱われる。コメントには、プログラムの注釈(メモ)などを記述し,プログラムとしては実行されない。/* ... */ のコメントは、複数行にまたがることもできる。
document.write(msg
[, msg...])
document.writeln(msg
[, msg...])
指定したドキュメントに文字列や値を書込む。writeln() は、最後に改行コードが送り出される点がwrite()と異なる。HTML内では改行は一文字のスペースになるので,改行させたいときには<br>を記述する。
<SCRIPT
LANGUAGE="JavaScript">
document.writeln("HELLO
Javascript<br>");
document.write("こんにちは");
</SCRIPT>
function
func(arg1, arg2, ...) { ... }
関数(あるまとまった計算などの処理)を定義する。下の例のdbl(n)は,nを2倍にする関数である。
<SCRIPT
LANGUAGE="JavaScript">
document.write(dbl(3));
function dbl(n) {
n *=
2;
return
n;
}
</SCRIPT>
if (expression)
statements1 else statements2
expression が真であれば
statements1 を、でなければ statements2 を実行する。
<SCRIPT
LANGUAGE="JavaScript">
var today = new
Date();
var hour =
today.getHours();
document.write("今、日本は");
if (hour < 12)
{
document.write("午前中");
} else {
document.write("午後");
}
document.write("です");
</SCRIPT>
for
(expression1; expression2; expression3) statements
最初に
expression1 を実行し、次に、statements と expression3 を expression2 が真である間繰り返す。
<SCRIPT
LANGUAGE="JavaScript">
for (i = 0; i <
10; i++) {
document.write(i);
}
</SCRIPT>
演習 n!のプログラムを関数とfor文を使用して作る。
<SCRIPT
LANGUAGE="JavaScript">
document.write(factorial
(3));
function factorial
(n) {
n1=1
for (i = 1; i <= n; i++) {
n1=n1*i
}
return
n1;
}
</SCRIPT>
array = new
Array()
配列arrayを作成する。
array = new
Array(n)
n 個の要素を持つ配列arrayを作成する。
array = new
Array(e1, e2, ...)
e1, e2, ...を要素とする配列arrayを作成する。
配列のインデックスは 0
から始まるが,n - 1 を超えても使用可能である。
<SCRIPT
LANGUAGE="JavaScript">
xx = new Array(3);
xx[0] =
"Sun";
xx[1] =
"Mon";
xx[2] = "Tue";
document.write(xx[0]
+ xx[1] + xx[2]);
yy = new
Array("Sun", "Mon", "Tue");
document.write(yy[0]
+ yy[1] + yy[2]);
</SCRIPT>
やや難解だが,2次元配列も以下のように使用できる。
<SCRIPT
LANGUAGE="JavaScript">
xx = new Array(3);
for (i = 0; i <
xx.length; i++) {
xx[i] = new Array(4);
for (j = 0; j <
xx[i].length; j++) {
xx[i][j]
= i * 10 + j;
document.write(xx[i][j],"<br>");
}
}
</SCRIPT>
数学関数には次のようなものがある。
Math.random() 0以上、1未満の乱数を生成する
Math.ceil(n) n の小数点以下を繰り上げた整数値を返す
Math.floor(n) n の小数点以下を繰り下げた整数値を返す
Math.round(n) n の小数点以下を四捨五入した整数値を返す
Math.abs(n) n の絶対値を返す
Math.sin(x) sin(x)
x はラジアン単位(0度は0、90度はπ/2、180度はπ)
Math.cos(x) cos(x)
Math.tan(x) tan(x)
Math.asin(x)
arcsin(x) (-π/2〜π/2)
Math.acos(x) arcos(x)
(0〜π)
Math.atan(x)
arctan(x) (-π/2〜π/2)
Math.atan2(y, x) 座標
x, y の角度(-π〜π)。
Math.PI円周率π(3.141592,,,)
Math.max(x, y) x と
y の大きい方
Math.min(x, y) x と
y の小さい方
Math.pow(n, m) n の
m 乗
Math.sqrt(n) n の平方根
n の平方根。
Math.SQRT2 2 の平方根(約1.414)
Math.SQRT1_2 1/2 の平方根(約0.707)
Math.E 自然対数 e の値(約2.718)
Math.LN2 e を底とした2の対数(約0.693)
Math.LN10 e を底とした10の対数(約2.302)
Math.LOG2E 2 を底とした
e の対数(約1.442)
Math.LOG10E 10 を底とした
e の対数(約0.434)
LN2 は、LN10 は、LOG2E
は、LOG10E は。
Math.exp(n) e の n 乗。
Math.log(n) e を底とした
n の対数。
0〜99の乱数を20個発生させる
<SCRIPT
LANGUAGE="JavaScript">
for (i = 0; i <
20; i++) {
x =
Math.floor(Math.random() * 100);
document.write(x,"<br>");
}
</SCRIPT>
0度から90度までのsinを10度毎に計算
<SCRIPT
LANGUAGE="JavaScript">
for (i = 0; i < 9; i++) {
x = Math.sin(Math.PI/180*i*10);
document.write(x,"<br>");
}
</SCRIPT>
演習1 5個の数字の最大値を求めるプログラムを作成せよ。
演習2 5個の数字を大きいものから順に並べるプログラムを作成せよ。
演習3 モンテカルロ法でπの値を求めるプログラムを作成せよ。
0〜1の乱数x,yを多数(たとえば1000回)発生させ,x*x+y*yが1以下になる割合がπ/4に相当することを利用する。