濃度算の2です。
水の量と濃度で塩の量を計算する問題です。
かなり難しい問題になってしまいました。
問題
「水316gで、濃度21%の食塩水を作りたいのですが、何gの塩がひつようですか。」
公式は
(水の量+塩の量)×濃度=塩の量
になります。
方程式しか解き方がわからなかったですので
方程式です。
塩の量をXとします。
濃度の21%は1/100にして計算します。
(316+X)×0.21=X
316×0.21+X×0.21=X
316×0.21=X-X×0.21
X-X×0.21=316×0.21
X(1-0.21)=316×0.21
X=316×0.21 /(1-0.21)
X=66.36/0.79=84
答え
84g
検算
(316+84)×0.21=400×0.21=84 =塩の量 OK
このJAVASCRIPTでは
食塩水の量と濃度をランダムに計算して
そこから水の量と塩の量を計算しております。
食塩水の量は切りのいい数になるようになっていますが
水の量と塩の量は普通の数になっています。
サンプルはこちら
文章題・濃度算2
ソースは下記
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<script src="jq/jquery-1.10.2.min.js"></script>
<title>文章題・濃度算2</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;
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(){
ppp3 = ((Math.floor(Math.random()*10)+1)*10000); //食塩水の量×100
myy2 = ((Math.floor(Math.random()*50)+1)); //食塩水の濃度×100
ppp1 = myy2*ppp3/100; //食塩の量×100
ppp2 = ppp3-ppp1; //水の量×100
myy1 = ppp2 / 100; //水の量
ayy1 = ppp1 / 100; //塩の量(答え)
document.getElementById('atoi').innerHTML = "水"+myy1+"gで、濃度"+myy2+"%の食塩水を作りたいのですが、何gの塩がひつようですか。";
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+"gです !");
qqcc.push("×");
}
qqaa.push(myy1);
qqab.push(myy2);
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>食塩水の濃度</td><td>あなたの答え</td><td>判定</td><td>正答</td></tr>" ;
for (i = 0; i < 10; i = i +1){
hantei += "<tr><td>";
hantei += qqaa[i];
hantei += "g</td><td>";
hantei += qqab[i];
hantei += "%</td><td>";
hantei += aaaa[i];
hantei += "g</td><td>";
hantei += qqcc[i];
hantei += "</td><td>";
hantei += qqdd[i];
hantei += "g</td></tr>";
}
hantei +="</table>";
seitou.innerHTML = hantei;
qqaa=[];
qqab=[];
qqac=[];
qqcc=[];
qqdd=[];
aaaa=[];
}else{ // 次の問題へ
myNowCnt++;
document.getElementById('ytr002').innerHTML =(+myNowCnt+"問中"+myHit+"問正解。");
}
}
// --></script>
<body>
<div id="title">
<h1>文章題・濃度算2</h1>
</div>
<!-- 問題フォームを設置 -->
<div class="midashidai">
<h2>
塩は何G必要ですか。
</h2>
</div>
<div id="atoi"></div>
<div id="kotaeyou">
<form name="myForm">
答え<input class="ansyou" type="text" size="3" name="myFormA1">g
<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/83/">解説はこちら</a>
<div id="kaitou"></div>
<script type="text/javascript"><!--
mySet(); // 初回の問題をフォームへセット
// --></script>
<br>
<a href="http://tasarotoste.zouri.jp/">TOPへ</a>
<br>
</body>
</html>