js 무 작위 사 칙 연산 문제 실현

38082 단어
선생님 이 내 놓 은 문 제 는 작은 프로그램 을 써 서 랜 덤 으로 네 개의 연산 문 제 를 만들어 초등학생 에 게 사용 할 수 있다.예전 에 스스로 사 칙 연산 의 간단 한 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' onclick="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 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
 </head>

 <body>
 <button type='button' onclick="play_all()">      </button>
 <span id="text"></span>
 </body>
 <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 f_count(a,b,c,d) {
            var Arr = ["+","-","*","/"];  
            var n = GetRandomNum(0,3);
            switch(Arr[n]){
                case "+":{
                var sum_x=(a*d)+(b*c);
                var sum_y=b*d;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"+"+c+"/"+d+"="+N;
                break;
                }
                case "-":{
                var sum_x=(a*d)-(b*c);
                    while (sum_x<0) {
                        var a = GetRandomNum(1,30);    
                        var b = GetRandomNum(1,30);
                        var c = GetRandomNum(1,30);    
                        var d = GetRandomNum(1,30);
                        var sum_x=(a*d)-(b*c);
                    }
                var sum_y=b*d;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"-"+c+"/"+d+"="+N;
                break;
                }
                case "*":{
                var sum_x=a*c;
                var sum_y=b*d;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"*"+c+"/"+d+"="+N;
                break;
                }
                case "/":{
                var sum_x=a*d;
                var sum_y=b*c;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"÷"+c+"/"+d+"="+N;
                break;
                }
            }
    }
    function count(a,b){
            var Arr = ["+","-","*","/"];  
            var n = GetRandomNum(0,3);
            switch(Arr[n]){
                case "+":{
                var sum=a+b;
                return a+"+"+b+"="+sum;
                break;
                }
                case "-":{
                var sum=a-b;
                while(sum<0){
                    var a = GetRandomNum(1,30);
                    var b = GetRandomNum(1,30);
                    var sum=a-b;
                }
                return a+"-"+b+"="+sum;
                break;
                }
                case "*":{
                var sum=a*b;
                return a+"*"+b+"="+sum;
                break;
                }
                case "/":{
                var sum=a/b;
                while(a%b!==0){
                    var max_x=max_num(a,b);
                    var N=fenshu(a,b,max_x);
                    return a+"÷"+b+"="+N;
                }
                return a+"÷"+b+"="+sum;
                break;
                }
            }
    }
    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 suma=f_count(son_a,par_b,son_c,par_d);
        return suma;
    }
    function pl() {
            var a = GetRandomNum(1,30);   
            var b = GetRandomNum(1,30);
            var sumb=count(a,b);
            return sumb;
    }
    function play_all() {
            for (i = 1; i <=30; i++) {
                var a = GetRandomNum(0,1);
                document.getElementById("text").innerHTML+=("<br>"+" "+i+" :");
                switch (a) {
                    case 0:
                        var A=pl();
                        document.getElementById("text").innerHTML+=(A);
                        break;
                    case 1:
                        var B=pl_f();
                        document.getElementById("text").innerHTML+=(B);
                        break;
                }
            }
    }
 </script>
</html>

방송 끝나 고 이렇게 됐어 요.
마지막 으로 지난 답 과 문제 가 분 리 된 버 전!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
 </head>

 <body>
 <button type='button' onclick="play_all()">      </button>
 <span id="text"></span>
 <span id="text2"></span>
 </body>
 <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 f_count(a,b,c,d) {
            var Arr = ["+","-","*","/"];  
            var n = GetRandomNum(0,3);
            switch(Arr[n]){
                case "+":{
                var sum_x=(a*d)+(b*c);
                var sum_y=b*d;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"+"+c+"/"+d+"="+N;
                break;
                }
                case "-":{
                var sum_x=(a*d)-(b*c);
                    while (sum_x<0) {
                        var a = GetRandomNum(1,30);    
                        var b = GetRandomNum(1,30);
                        var c = GetRandomNum(1,30);    
                        var d = GetRandomNum(1,30);
                        var sum_x=(a*d)-(b*c);
                    }
                var sum_y=b*d;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"-"+c+"/"+d+"="+N;
                break;
                }
                case "*":{
                var sum_x=a*c;
                var sum_y=b*d;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"*"+c+"/"+d+"="+N;
                break;
                }
                case "/":{
                var sum_x=a*d;
                var sum_y=b*c;
                max_x=max_num(sum_x,sum_y);
                max_y=max_num(sum_x,sum_y);
                var N=fenshu(sum_x,sum_y,max_x);
                return a+"/"+b+"÷"+c+"/"+d+"="+N;
                break;
                }
            }
    }
    function count(a,b){
            var Arr = ["+","-","*","/"];  
            var n = GetRandomNum(0,3);
            switch(Arr[n]){
                case "+":{
                var sum=a+b;
                return a+"+"+b+"="+sum;
                break;
                }
                case "-":{
                var sum=a-b;
                while(sum<0){
                    var a = GetRandomNum(1,30);
                    var b = GetRandomNum(1,30);
                    var sum=a-b;
                }
                return a+"-"+b+"="+sum;
                break;
                }
                case "*":{
                var sum=a*b;
                return a+"*"+b+"="+sum;
                break;
                }
                case "/":{
                var sum=a/b;
                while(a%b!==0){
                    var max_x=max_num(a,b);
                    var N=fenshu(a,b,max_x);
                    return a+"÷"+b+"="+N;
                }
                return a+"÷"+b+"="+sum;
                break;
                }
            }
    }
    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 suma=f_count(son_a,par_b,son_c,par_d);
        return suma;
    }
    function pl() {
            var a = GetRandomNum(1,30);   
            var b = GetRandomNum(1,30);
            var sumb=count(a,b);
            return sumb;
    }
    function play_all() {
            for (i = 1; i <=30; i++) {
                var a = GetRandomNum(0,1);
                document.getElementById("text").innerHTML+=("<br>"+" "+i+" :");
                switch (a) {
                    case 0:
                        var A=pl();
                        var strs = A.split("=");
                        document.getElementById("text").innerHTML+=(strs[0]+"="+"<br>");
                        document.getElementById("text2").innerHTML+=("<br>"+" "+i+"   :"+strs[1]);
                        break;
                    case 1:
                        var B=pl_f();
                        var strs = B.split("=");
                        document.getElementById("text").innerHTML+=(strs[0]+"="+"<br>");
                        document.getElementById("text2").innerHTML+=("<br>"+" "+i+"   :"+strs[1]);
                        break;
                }
            }
    }
 </script>
</html>

 
네 번 째 최종 판 은 제목 을 만 들 기 시작 했다.

좋은 웹페이지 즐겨찾기