• 締切済み

計算の結果が出るようにしたいのですが・・・

title>JavaScript Task 9-1pre</title> <h1>計算練習プログラム (2)</h1> <form name="f"> <table border> <tr><td>番号</td><td>問題</td><td>解答</td><td>正誤</td></tr> <script type="text/javascript"> <!-- // 変数・関数の定義 var i, n, m,sol,ans; // for の制御変数, 問題 new Array// 正解を保存する配列を用意する // (配列用の変数を宣言し,配列オブジェクトを作ってその変数に代入する) function myRandom(n) { // 0 ~ n-1 の乱数を返す関数 return Math.floor(Math.random() * n);} // 「答え合わせ」ボタンのイベントハンドラ function check() { var i,t,f,ans; // 変数の宣言.反復の制御変数iと,正答数・誤答数を数える変数(初期値0)を含む for(i=1; i<=10; i++){// 以下を10回反復 (i = 1 ~ 10) document.f.si.value if(ans == sol); document.f.ci.value("○"); i+1; // 第i問の解答(ユーザーの入力)が(配列に保存した)第i問の正解と一致した場合 // 第i問の正誤欄に○を表示 // 正答数に1加える else(ans== sol); document.f.ci.value;("×"); i+1;} // そうでない(正解と一致しなかった)場合 // 第i問の正誤欄に×を表示 // 誤答数に1加える // 反復パートの終わり // 正答数・誤答数の表示 for(i=1; i<=10; i++){ // 第i問の問題の作成 n = myRandom(10) + 1; m = myRandom(10) + 1; n + m = sol; if (ans==sol) else if // 第i問の正解を(用意した配列に)保存 i = new Array(11) for(1=1; 1<=10; i++) i[1] = n + m; i[2] = n + m; i[3] = n + m; i[4] = n + m; i[5] = n + m; i[6] = n + m; i[7] = n + m; i[8] = n + m; i[9] = n + m; i[10] = n + m // 第i問の問題等の表示 (B-2) document.writeln('<tr><td>' + i + '</td><td>' + n + ' + ' + m + ' =</td>'); document.writeln(' <td><input type="text" name="s' + i + '" size="3"></td>'); document.writeln(' <td><input type="text" name="c' + i + '" size="3" readonly></td></tr>'); } // --> </script> </table> <input type="button" value="答え合わせ" onclick="check();"> 正答数:<input type="text" name="ok" size="3" readonly> 誤答数:<input type="text" name="ng" size="3" readonly> </form> ここまで作ってみました。 はじめまして。chiaken22と申します。 ここで行き詰ってしまいました。 もしかしたら間違っているかもしれません。 //のあとはどうすればよいかを書いたものなのですが、 なかなかわからなくて困っています。 間違っている場合は指摘していただきたいです。 正解でなくてもヒントでもよいので教えてください。 すみません。 よろしくお願い致します。

みんなの回答

noname#84373
noname#84373
回答No.2

<html> <form name="f"> <table border> <tr><td>番号</td><td>問題</td><td>解答</td><td>正誤</td></tr> <script> for( var i=1,sol[];i<11;i++) { m= myRandom(10); n= myRandom(10); sol[i]=m+n; document.write('<tr><td>'+i+'<td>'+m+'+'+n+'</td><td><input type="text" size="3" name="s"></td><td><input type="text" size="3" name="c"></td></tr>'); } function myRandom(n) { return Math.floor(Math.floor(Math.random() * n)+1);} function check() { var c=0; for(i=0; i<10; i++){ fg=(document.f.s[i].value==sol[(i+1)]); document.f.c[i].value=fg?'○':'×'; c+=fg*1; } document.f.ok.value =c; document.f.ng.value =10-c; } </script> </table> <input type="button" value="答え合わせ" onclick="check();"><br> 正答数:<input type="text" name="ok" size="3" readonly> 誤答数:<input type="text" name="ng" size="3" readonly> </form> これって学校とかの問題?やばくない? ということで説明がうまくできないようにちと小細工 今時、name を使って教えるのか・・・

関連するQ&A