編程與數(shù)學 利用隨機數(shù),編三年級暑假數(shù)學計算題2023-07-02

利用PHP編程,編三年級暑假數(shù)學計算題

【作者:一粟】

設計每天6種題型各2道題,共59天。
1.三位數(shù)除以一位數(shù),兩位數(shù)乘兩位數(shù)或三位數(shù)乘一位數(shù),這2種題型,復習三年級學的豎式計算。
2.三位數(shù)(或一位小數(shù)、兩位小數(shù))連加/連減(其中兩個數(shù)可以湊整),兩位數(shù)乘一位數(shù)再乘一位數(shù),兩位數(shù)乘兩位數(shù)加上兩位數(shù)乘兩位數(shù),這4種題型滲透運算率。

編程思考

這道題,要先設置好每種題型的題,每個數(shù)字的取值范圍

代碼
<?php       
    date_default_timezone_set('Etc/GMT-8');//設置時區(qū)
    $r1=mktime(0,0,0,7,2,2023);//第1次日期,時間戳,2023年7月2日
    for($k=0;$k<59;$k++){//59天
        //6種類型的運算,生成12道題 開始
        $ss = array();//算式數(shù)組
        $s1 = rand(1,9)*100;
        $s2 = rand(10,$s1);
        $sa = array($s2,rand(50,999),$s1-$s2);          
        $xz = pow(10,rand(0,-2));
        $ss[] = $sa[0]*$xz."+".$sa[1]*$xz."+".$sa[2]*$xz;
        $ss[] = $sa[0]*$xz."+".$sa[2]*$xz."+".$sa[1]*$xz;   
        $s1 = rand(49,99)*10;
        $s2 = rand(20,$s1/10)*10;           
        $s4 = rand(20,$s2);
        $sa = array(rand($s1,999),$s4,$s2-$s4);         
        $xz = pow(10,rand(0,-2));
        $ss[] = $sa[0]*$xz."-".$sa[1]*$xz."-".$sa[2]*$xz;
        $ss[] = $sa[0]*$xz."-(".$sa[1]*$xz."+".$sa[2]*$xz.")";
        $s2 = rand(2,9);
        if($s2>8) $s1 = rand(49,101)*$s2;
        else if($s2>5) $s1 = rand(49,141)*$s2;
        else $s1 = rand(101,199)*$s2;       
        $ss[] = $s1."÷".$s2."=";
        $s2 = rand(2,9);
        if($s2>8) $s1 = rand(49*$s2,999);
        else if($s2>5) $s1 = rand(101*$s2,141);
        else $s1 = rand(101*$s2,199);
        $ss[] = $s1."÷".$s2."=";
        $sa = array(rand(11,99),rand(2,9),rand(2,9));
        $ss[] = $sa[0]."×".$sa[1]."×".$sa[2];
        sort($sa);
        $ss[] = $sa[0]."×".$sa[1]."×".$sa[2];
        $s1 = rand(11,99);
        $s2 = rand(2,9)*10;
        $s3 = rand(10,$s2-10);
        $xz = rand(1,2);//選擇
        if($xz == 1) $ss[] = $s1."×".$s3."+".$s1."×".($s2-$s3);
        else $ss[] = $s3."×".$s1."+".($s2-$s3)."×".$s1;
        if($xz == 1) $ss[] = $s1."×(".$s3."+".($s2-$s3).")";
        else $ss[] = "(".$s3."+".($s2-$s3).")×".$s1;
        $sa = array(rand(11,99),rand(101,999),rand(2,9),rand(10,99));
        $xz = rand(1,2);//選擇
        if($xz == 1) $ss[] = $sa[0]."×".$sa[3];else $ss[] = $sa[1]."×".$sa[2];  
        $sa = array(rand(11,99),rand(101,999),rand(2,9),rand(10,99));
        $xz = rand(1,2);//選擇
        if($xz == 1) $ss[] = $sa[0]."×".$sa[3];else $ss[] = $sa[1]."×".$sa[2];
        //6種類型的運算,生成12道題 結束
        echo "<table><tr><td colspan='4'>";     
        echo '計算天天練';
        echo '&nbsp;&nbsp;&nbsp;&nbsp;';
        echo date("n月j日",strtotime($k.'day',$r1));
        echo '&nbsp;&nbsp;&nbsp;&nbsp;';
        echo '姓名:';
        echo '____________';
        echo '&nbsp;&nbsp;&nbsp;&nbsp;';
        echo '得分:';
        echo '____________';    
        echo "</td></tr><tr><td>";
        for($i=0;$i<12;$i++){//每天12題
            echo "(".($i+1).") ".$ss[$i];
            if((($i+1) % 4) == 0) echo "</td></tr><tr><td>";else echo "</td><td>";
        }
        echo "</td></tr></table>";
    }
?>
代碼優(yōu)化設想

以上代碼,對每天12道題出現(xiàn)的順序沒有進行處理??梢宰屆刻?2道題以隨機的順序出現(xiàn)(有需要對比的題,要連續(xù)出現(xiàn))。

設計初衷

本來的設想是每次呈現(xiàn)1天的題,作為一個在線網(wǎng)頁,發(fā)布到個人網(wǎng)站,供學生每天在線答題、實時判分。去年也試著買了一年的域名,做了二年級暑假計算題,給本班學生使用了。但后來對備案要求嚴格了,個人網(wǎng)站需要備案,加上對域名、主機等管理不熟悉,只好擱淺。

現(xiàn)實做法

使用這個程序,一次生成59天的練習,復制到excel表格中,發(fā)給家長,讓學生抄寫或打印下來,在紙上進行練習。


本地網(wǎng)頁,生成題目
題目復制到Excel中,排好版,便于家長直接打印
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容