老师给出的题,写一个小程序,可以生成随机的四则运算题目给给小学生用。以前自己就写了一个四则运算的简单js小程序,是这样的:
事件
+-*/这是个自己输入的算法,但要求是自动产生随机数。于是我用产生随机数的函数重新写了一个:
new document
开始生成题目
这样就可以自动的生成随机的30个四则运算题目了。但是还是有问题,小学生啊!他们不知道负数,不知道小数。所以还要加入判定条件!
switch(Arr[n]){ case "+":{ sum=a+b; break; } case "-":{ sum=a-b; while(sum<0){ var a = GetRandomNum(1,30); var b = GetRandomNum(1,30); sum=a-b; } break; } case "*":{ sum=a*b; break; } case "/":{ sum=a/b; while(hasDot(sum)){ var a = GetRandomNum(1,100); var b = GetRandomNum(1,100); sum=a/b; } break; }
这样负数和小数都没有了。
不过,小学生貌似会分数的运算。于是我又开始试试写分数的。
<body>
<button class="btn btn-success btn-sm" type='button' οnclick="pl_f()">开始生成题目</button> <span id="text_f"></span> <script> function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); return(Min + Math.round(Rand * Range)); } function max_num(x,y) { var t; while (y) { t = x%y; x = y; y = t; } return x; } function fenshu(a,b,p) { if (p==1) { if (a>b) { return a+"/"+b; }else if(a<b){ return a+"/"+b; }else { return 1; } }else { var x=a/p; var y=b/p; if(y==1){ return x; }else{ return x+"/"+y; } } } function pl_f() { var son_a = GetRandomNum(1,30); var par_b = GetRandomNum(1,30); var son_c = GetRandomNum(1,30); var par_d = GetRandomNum(1,30); var X=son_a+"/"+par_b; var Y=son_c+"/"+par_d; document.write("第一个分数:"+X+"<br>"); document.write("第二个分数"+Y+"<br>"); max_x=max_num(son_a,par_b); max_y=max_num(son_c,par_d); document.write("第一个最大公约数"+max_x+"<br>"); document.write("第二个最大公约数"+max_y+"<br>"); var N=fenshu(son_a,par_b,max_x); var M=fenshu(son_c,par_d,max_y); document.write("第一个分数化简:"+N+"<br>"); document.write("第二个分数化简"+M); } </script> </body>
这个可以动态的生成两个分数,然后输出这个分数分子和分母的最大公约数。最后输出分子的最简式。
最后就是将分数放入整数一起了!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra