JAVASCRIPTで作成した算数のゲーム(ドリル・クイズ)の解答やソース、プログラムで必要なことを書いていきます。 SPIや小・中学の勉強になるe-ラーニングのプログラムになることを目指しています。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
時間を求める問題です。
全体でかかった時間を求めます。
問題文は
"Aさんは"Zk"km先の目的地に行った。最初は"Yh"km/hで"Yj"時間走った。
そのあと、"Xh"km/hで走った。目的地までの時間(全体でかかった時間)を求めてください。";
目的地までの時間(全体でかかった時間)を"Zj"時間とします。
最初に走った距離は
"Yh"km/h × "Yj"時間 = "Yh×Yj"km
そのあと走った距離は
全体の距離ー最初に走った距離
="Zk"kmー"Yh×Yj"km
="Zk - (Yh×Yj)"km
そのあと走った時間は
そのあと走った距離÷そのあと走った速さ
="Zk - (Yh×Yj)"km÷"Xh"km/h
="(Zk - (Yh×Yj))÷Xh"時間
全体でかかった時間(目的地までの時間)は
最初にかかった時間+そのあとかかった時間
="Yj"時間 + "(Zk - (Yh×Yj))÷Xh"時間
="Yj + ((Zk - (Yh×Yj))÷Xh)"時間
つまり
最初に走った速さは"Yh"km/h
最初にかかった時間は"Yj"時間
最初に走った距離は"Yh×Yj"km
そのあと走った速さは”Xh”km/h
そのあとかかった時間は"(Zk - (Yh×Yj))÷Xh"時間
そのあと走った距離は"Zk - (Yh×Yj)"km
全体で走った速さは”Zk ÷ (Yj + ((Zk - (Yh×Yj))÷Xh))”km/h
全体でかかった時間は"Yj + ((Zk - (Yh×Yj))÷Xh)"時間
全体で走った距離は"Zk"km
となります。
具体的な数値を入れた問題で解いてみますと
「Aさんは220km先の目的地に行った。最初は50km/hで2時間走った。そのあと、40km/hで走った。目的地までの時間(全体でかかった時間)を求めてください。」
最初に走った距離は
最初に走った速さ×最初にかかった時間
=50km/h × 2時間
=100km
そのあと走った距離は
全体の距離 ~ 最初に走った距離
=220km - 100km
=120km
そのあとかかった時間は
そのあと走った距離 ÷ そのあと走った速さ
=120km ÷ 40km/h
=3時間
目的地までの時間(全体でかかった時間)は
最初にかかった時間 + そのあとかかった時間
=2時間 + 3時間
=5時間
ですので
答えは5時間になります。
サンプルはこちら
文章題(複合4)
ソースは下記
ーーーーーーーーーーーーーーーーーーーーーー
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<script src="jq/jquery-1.10.2.min.js"></script>
<title>文章題(複合4)</title>
<link href="css/toimondai.css" rel="stylesheet" type="text/css">
<meta name="keywords" content="ゲーム,はじきの法則,文章題,イーラーニング,クイズ">
<meta name="description" content="算数の速度・距離。時間を利用した文章題です。JAVASCRIPTで作製しています。">
</head>
<script type="text/javascript"><!--
myHit = 0;
myNowCnt = 0; // 問題を出すテーブルカウンタ
myLastCnt = 10; // 問題の数
var myy1,myy2,myy3,myy4,ayy1,pyy1;
var qqaa=new Array();
var qqab=new Array();
var qqac=new Array();
var qqad=new Array();
var qqcc=new Array();
var qqdd=new Array();
var aaaa=new Array();
function mySet(){
myy3 = (Math.floor(Math.random()*10)+1); //時間
pyy1 = (Math.floor(Math.random()*10)+1); //時間
myy2 = ((Math.floor(Math.random()*10)+1)*10); //km 時間
myy4 = ((Math.floor(Math.random()*10)+1)*10); //km 時間
ayy1 = myy3+pyy1; //全時間
myy1 = (myy2*myy3)+(myy4*pyy1);//距離
document.getElementById('atoi').innerHTML = "Aさんは"+myy1+"km先の目的地に行った。最初は"+myy2+"km/hで"+myy3+"時間走った。そのあと、"+myy4+"km/hで走った。目的地までの時間(全体でかかった時間)を求めてください。";
document.myForm.myFormA1.value = ""; // 数値
}
// 入力した答えが正解か不正解かを判定する関数 (答えを入力して、[OK]ボタンを押した時の処理)
function myCheck(){
myA1 = eval(document.myForm.myFormA1.value); // 入力された 答え を取得
if ( ayy1 == myA1 ){ // 答えと入力した値は等しいか(正解か)?
myHit++;
document.getElementById('ytr001').innerHTML = ("あたり! すばらしいヽ(*⌒∇⌒)ノ ");
qqcc.push("○");
}else{
document.getElementById('ytr001').innerHTML = ("はずれ! (´+д+`) こたえは"+ayy1+"時間です !");
qqcc.push("×");
}
qqaa.push(myy1);
qqab.push(myy2);
qqac.push(myy3);
qqad.push(myy4);
aaaa.push(myA1);
qqdd.push(ayy1);
mySet(); // 次の問題をセット
if (myNowCnt==myLastCnt-1){ // 問題終わった?
myScore = myHit*10; // 得点計算
document.getElementById('ytr002').innerHTML =("問題終了です。"+myLastCnt+"問中"+myHit+"問正解。点数は"+myScore+"点です。");
myNowCnt=0;
myHit=0;
var hantei ="";
var seitou = document.getElementById('kaitou');
hantei +="<table border=1><tr><td>全距離</td><td>速さA</td><td>時間A</td><td>速さB</td><td>あなたの答え</td><td>判定</td><td>正答</td></tr>" ;
for (i = 0; i < 10; i = i +1){
hantei += "<tr><td>";
hantei += qqaa[i];
hantei += "km</td><td>";
hantei += qqab[i];
hantei += "km/h</td><td>";
hantei += qqac[i];
hantei += "時間</td><td>";
hantei += qqad[i];
hantei += "km/h</td><td>";
hantei += aaaa[i];
hantei += "時間</td><td>";
hantei += qqcc[i];
hantei += "</td><td>";
hantei += qqdd[i];
hantei += "時間</td></tr>";
}
hantei +="</table>";
seitou.innerHTML = hantei;
qqaa=[];
qqab=[];
qqac=[];
qqad=[];
qqcc=[];
qqdd=[];
aaaa=[];
}else{ // 次の問題へ
myNowCnt++;
document.getElementById('ytr002').innerHTML =(+myNowCnt+"問中"+myHit+"問正解。");
}
}
// --></script>
<body>
<div id="title">
<h1>文章題(複合4)</h1>
</div>
<!-- 問題フォームを設置 -->
<div class="midashidai">
<h2>
次の目的地までの時間(全時間)を答えてください。
</h2>
</div>
<div id="atoi"></div>
<div id="kotaeyou">
<form name="myForm">
答え<input class="ansyou" type="text" size="3" name="myFormA1">時間
<input class="ansbot" type="button" value="OK" onclick="myCheck()">
</form>
</div>
<div id="ytr001"></div>
<div id="ytr002"></div>
<a href="http://tasarotoste.kuizu.net/Entry/67/">解説はこちら</a>
<div id="kaitou"></div>
<script type="text/javascript"><!--
mySet(); // 初回の問題をフォームへセット
// --></script>
<br>
<a href="http://tasarotoste.zouri.jp/">TOPへ</a>
<br>
</body>
</html>