9.プロシージャ              [もくじへ] [トップページへ]

9.1 プロシージャとは

ある機能単位をひとかたまりにして、その名前で呼び出しが行えるように

したプログラムをプロシージャといいます。

プロシージャは、同じ処理を何度も使う場合や、一度作成した複雑なプロ

グラムを再利用するのに便利です。例えば、組み込み関数にない関数を

プロシージャとして作り、組み込み関数と同じように使用することができま

す。また、一度プロシージャを作っておけば、別のプログラムにもほとんど

変更することなくコピーして使用することができます。

JavaScript のプロシージャには、関数プロシージャがあります。

 


9.2 関数プロシージャ1          [もくじへ] [トップページへ]

===================================================

プログラム例題14

次の5つのデータを小数第3位を四捨五入して、小数第2位に丸めて

表示せよ。

62.546, 62.533, 62.545, 62.548, 62.544

=========================================================

<HTML>
<HEAD>
   <TITLE>例題14</TITLE>

<SCRIPT LANGUAGE="JavaScript">
<!--
        
function Marume( s ) {
                
var d;
                
d = Math.floor( s*100 + 0.5)/100;
                
document.write ("データ = ", s, " 結果 = ", d, "<BR>");
        
}
// -->
</SCRIPT>

</HEAD>
<BODY>

<SCRIPT LANGUAGE="JavaScript">
<!--
        a = new Array(5);
        
var i;

//   入力データ
        a[1] =
62.546;
        
a[2] = 62.533;
        
a[3] = 62.545;
        
a[4] = 62.548;
        
a[5] = 62.544;

//   関数プロシージャの呼び出し

        document.write ("<BR>");
        
for (i = 1; i<=5; i++) {
                
Marume( a[i] );
        
}
// -->
</SCRIPT>

</BODY>
</HTML>

 

実行結果は、次のようになります。

データ = 62.546 結果 = 62.55
データ = 62.533 結果 = 62.53
データ = 62.545 結果 = 62.55
データ = 62.548 結果 = 62.55
データ = 62.544 結果 = 62.54

JavaScript はプログラムの先頭から読み込まれるため、プロシージャは

通常 <HEAD> </HEAD> 内に記述します。

function Marume( s ) {
        
var d;
        
d = Math.floor( s*100 + 0.5)/100;
        
document.write ("データ = ", s, " 結果 = ", d, "<BR>");
}

Marume という名前の関数プロシージャです。( )内の変数 s は仮引数(ひ

きすう)といわれるもので、呼び出し側で Marume( x ) と書くと、 x の値が

s に渡されます。そして、丸めた値 d を計算して、もとのデータと共に表示し

ます。呼び出し側の引数を実引数といいます。関数プロシージャは、このよう

に引数を書く場合と、何も引数を書かない場合があります。引数を書かない

場合でも、プロシージャ側では function Test( ) のように、( )を付けなけれ

ばなりません。        

for (i = 1; i<=5; i++) {
        
Marume( a[i] );
}

a[i] の値を5回ループさせながら、関数プロシージャ Marume を呼び出して

四捨五入します。この場合、 a の値は元のままです。

 


9.3 関数プロシージャ2          [もくじへ] [トップページへ]

===================================================

プログラム例題15

次の5つのデータを配列変数 a に代入し、小数第3位を四捨五入して

から、ふたたび配列変数 a に求め表示せよ。

62.546, 62.533, 62.545, 62.548, 62.544

=========================================================

<HTML>
<HEAD>
   <TITLE>例題15</TITLE>

<SCRIPT LANGUAGE="JavaScript">
<!--
        
function Marume( s ) {
                
var d;
                
d = Math.floor( s*100 + 0.5)/100;
                
return d;
        
}
// -->
</SCRIPT>

</HEAD>
<BODY>

<SCRIPT LANGUAGE="JavaScript">
<!--
        
a = new Array(5);
        
var i;

//   入力データ
        a[1] =
62.546;
        
a[2] = 62.533;
        
a[3] = 62.545;
        
a[4] = 62.548;
        
a[5] = 62.544;

//   関数プロシージャの呼び出し
        
document.write ("<BR>");
        
for ( i = 1; i<=5; i++ ) {
//
//      四捨五入の前
                
document.write ( "データ = ", a[i] );
//
                
a[i] = Marume( a[i] );
//
//      四捨五入の後
                
document.write ( " 結果 = ", a[i], "<BR>" );
        
}

// -->
</SCRIPT>

</BODY>
</HTML>

 

実行結果は、次のようになります。

データ = 62.546 結果 = 62.55
データ = 62.533 結果 = 62.53
データ = 62.545 結果 = 62.55
データ = 62.548 結果 = 62.55

 function Marume( s ) {
        
var d;
        
d = Math.floor( s*100 + 0.5)/100;
        
return d;
}

Marume という名前の関数プロシージャです。( )内の仮引数 s に、呼び出

し側の引数の値が渡され、 return d で計算結果が返されます。例題14と

違いはこの点です。この例題では計算結果を返しています。

a[i] = Marume( a[i] );

関数プロシージャで計算された結果は、Marume( a[i] ) が持っています。そ

の値を再び a[i] に代入します。この文だけで、配列変数 a の値が、四捨五入

されるわけです。

ここで、関数プロシージャの使い方を復習しておきます。

 

 

 


[もくじへ] [トップページへ] [次ページへ]