プロが教える店舗&オフィスのセキュリティ対策術

javascriptプログラムについての質問です。
javascriptで点数を15回入力したあとで、平均点数を表示するプログラムを作りたいのですが、どうしてもわかりません。本当に完全な初心者です。どなたか教えてください。お願いします(-_-);

A 回答 (5件)

ととのいました~!


「おぶじぇくとしこうっぽくかいた」とかけて「さらにみじかくもかけた」ととく。
そのこころは!
「い~ばるんじゃね~よ」

ぜんかくくうはくは、はんかくにしてちょ。
<!DOCTYPE html>
<title></title>
<body>

<script><!--

var Heikin = function () {
 var ary;

 this.reset = function () {
  ary = [ ];
 };
 
 this.push = function (n) {
  ary.push (n);
  return this.getCount();
 };
 
 this.getCount = function() {
  return ary.length
 };

 this.getAverage = function() {
  return eval (ary.join ('+')) / ary.length;
 };
}

//____________

var keisan = new Heikin;
var max = 5; //ここ15ね
var inp;
var cnt;

keisan.reset();
do {
 inp = window.prompt ('点数を入力してください。');
 cnt = keisan.push (inp);
}
while (cnt < max)

alert( "heikin =" + keisan.getAverage() );

//-->
</script>
    • good
    • 0

適当に直して



<input id="max" type="text" value="15">回以上点数を入力すると...<br>
<button id="btn1">点数入力</button>

<script type="text/javascript">
var ave1 = new averager(parseInt(document.getElementById("max").value));
document.getElementById("btn1").addEventListener("click",(function(ave){
 return function(){
  while(!ave1.count_check())
   ave.add(window.prompt('点数を入力してください。'));
   alert("回の平均は"+ave1.get_average()+"です。");
 }
})(ave1),false);
function averager(max){
 this.counter=0;
 var stack=0;
 this.add=function(point){
   if(point&&!isNaN(point)&&point!=''){
   stack += Number(point);
   this.counter++;
   }else alert("数値を入れてください");
 }
 this.count_check=function(){
  if(this.counter!=0 && this.counter==max) return true;
   else return false;
 }
 this.get_average=function(){
  return (stack/this.counter);
 }
}
</script>
</body>
    • good
    • 0

どのような使い勝手なのか不明なので、何とも回答しにくいけれど…


同じテキストボックスに順に入力していく例。(Enterで入力)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>test</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!--
var check = function(evt) {
var data = [], max = 15, warn = "数字を入力してください";
if (evt.keyCode != 13) {
check = function(evt) {
if (data.length >= max || evt.keyCode != 13) return;
var t = evt.target || evt.srcElement;
var i, e, av = 0, v = t.value, n = Number(v);
if (v == "" || isNaN(n)) {
alert(warn);
} else {
data[data.length] = n;
e = document.getElementById("result");
e.innerHTML += "<br>" + n;
t.value = "", t.focus();
if (data.length>=max) {
for (i=0; i<max; i++) av += data[i];
e.innerHTML += "<hr>合計:" + av + " 平均:" + av/max;
}
}
}
} else { alert(warn); }
}
//-->
</script>
</head>

<body>
<div>
入力欄<br>
<input type="text" onkeydown="check(event)">
</div>
<hr>
<div id="result">結果表示欄</div>
</body>
</html>
    • good
    • 0

<script type="text/javascript">


var count = 0;
var total = 0;
var max = 15;

do {
var s = prompt((count+1) + "回目の入力","")
if (! isNaN(s)) {
count++;
total += eval(s);
}
} while (count < max)
alert(total/max);
</script>

画面には表示せずに、全てダイヤログで処理する例です。
最後を
document.write(total/max);
にすると画面に答えが表示されます。

画面を更新すると再計算。
    • good
    • 0

プログラムとしては、ダメダメ。


さらに、タブが効かないんで、見にくい。
さらにさらに、めんどくさいので動作確認してないwww
あくまで、例。
すこし分かってくれば、もっとマシなの作れるようになる。

例として2個の平均。
(1)「input」タグを作る。
<input type="text">
<input type="text">
(2)「div」タグを作る。
<div id="average"></div>
(3)「button」タグを作る。
<button id="BT">平均</button>
(4)javascriptでボタンの設定。
window.onolad=function(){
//ボタンの要素取得
var ButtonElm = document.getElementById("BT");
//ボタンをクリックした時の設定
BT.onclick = function(){
//input要素の取得
var InputElms = document.getElementsByTagName("input");
//div要素の取得
var AverageElm = document.getElementById("average");
//平均計算(もちろん、15とかなら、forなど使う)
var ave = ((InputElms[0].value||0)+(InputElms[1].value||0))/2;
//平均を表示する。
Average.innerHTML = ave;
}
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!