- 締切済み
javascriptプログラムについての質問です。
javascriptプログラムについての質問です。 javascriptで点数を15回入力したあとで、平均点数を表示するプログラムを作りたいのですが、どうしてもわかりません。本当に完全な初心者です。どなたか教えてください。お願いします(-_-);
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- babu_baboo
- ベストアンサー率51% (268/525)
ととのいました~! 「おぶじぇくとしこうっぽくかいた」とかけて「さらにみじかくもかけた」ととく。 そのこころは! 「い~ばるんじゃね~よ」 ぜんかくくうはくは、はんかくにしてちょ。 <!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>
- yyr446
- ベストアンサー率65% (870/1330)
適当に直して <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>
- fujillin
- ベストアンサー率61% (1594/2576)
どのような使い勝手なのか不明なので、何とも回答しにくいけれど… 同じテキストボックスに順に入力していく例。(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>
- nine999
- ベストアンサー率44% (512/1140)
<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); にすると画面に答えが表示されます。 画面を更新すると再計算。
- Anti-Giants
- ベストアンサー率44% (198/443)
プログラムとしては、ダメダメ。 さらに、タブが効かないんで、見にくい。 さらにさらに、めんどくさいので動作確認してない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; } }