MyNoteBook weblog

自作ソフトウェアや気になるものについて書いています

<< May 2009 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>

大小判定のアルゴリズム

基本は、IF文を使います。
function myMin_1(){
	var data1;
	var data2;
	var str;

	data1 = prompt("input data1=?","");
	data2 = prompt("input data2=?","");
	if(data1>=data2){
		str ="min="+data2;
	}else{
		str ="min="+data1;
	}
	alert(str);
}

でも、便利なmin関数を使えば、ソースは短くなります。
function myMin_2(){
	var data1;
	var data2;
	var str;

	data1 = prompt("input data1=?","");
	data2 = prompt("input data2=?","");
	str = "min="+Math.min(data1,data2);
	alert(str);
}

2つの数値だからいいですが、3つ以上になったらどうしましょう。
でも、それでも1行でできてしまいます。
min関数を入れ子にしてしまいます。4つの数値の場合です。
Javaでフィッシャーの正確確率検定(前編)というサイトで知りました。こんなこともありなのですね (@o@)
function myMin_3(){
	var data = new Array();;
	var str = "";

	for(i=0;i<4;i++){
		data[i] = prompt("input data["+i+"]=?","");	
	}
	min = Math.min(data[0],Math.min(data[1],Math.min(data[2],data[3])));	
	for(i in data){
		ANS += data[i]+"\n";	
	}
	str = str + "min="+min;
	alert(str);
}

もっと数値が増えたり、数値の数がそのたびに変わるとかしたら・・・。
そんなときは、繰り返しを使います。
データ数が変化しても、大きな修正は必要ありません。
function myMin_4(){
	var data = new Array();;
	var str = "";
	var min;

	for(i=0;i<5;i++){
		data[i] = prompt("input data["+i+"]=?","");	
	}
	min = data[0];
	for(i=1;i<5;i++){
		min = Math.min(min,data[i]);	
	}
	for(i in data){
		str += data[i]+"\n";	
	}
	str = str + "min="+min;
	alert(str);
}

大小を判定するだけでもいろいろな考えがあるものです。
それぞれの特徴を知って、効率よくプログラミングしたいものです。
ソフトウエア | - | trackbacks (0)
CATEGORIES
NEW ENTRIES
RECOMMEND
【いちばんやさしい教える技術】…
いちばんやさしい教える技術

Book (発売日:2012-04-16)
【いままでのA面、B面ですと!?(通常盤)】…
いままでのA面、B面ですと!?(通常盤)

Music (発売日:2009-11-25)
RECENT TRACKBACK
ARCHIVES
PROFILE
OTHER