青少年编程与数学 01-008 在网页上完成计算 10课题、除法算式

青少年编程与数学 01-008 在网页上完成计算 10课题、除法算式

编程实现除法算式。

一、除法算式

除法算式的手算竖式是一种用于纸笔计算的除法方法,它可以帮助我们逐步解决除法问题。下面是一个简单的解释以及它的主要特点:

除法竖式的步骤:

  1. 写好题目:将被除数写在除号内,除数写在除号左侧。
  2. 试商:从被除数的最高位开始,看除数能被多少整除,这个数字就是试商。
  3. 乘和减:用试商乘以除数得到一个结果,然后将这个结果写在被除数下方对应的位置,并进行相减。
  4. 下移位数:如果还有余数并且被除数还有未参与运算的位数,则将下一位数移下来继续进行上述过程。
  5. 重复步骤2至4:直到所有位数都参与了运算或者余数小于除数为止。

主要特点:

  • 清晰明了:每一步骤都非常清晰,便于检查错误。
  • 分步处理:将复杂的大数除法分解成一系列小的步骤。
  • 适用广泛:可以用于任何大小的数字除法。
  • 教育价值:有助于理解除法的基本原理,适合教学使用。

例如,计算 ( 9876 ÷ 4 ) 的除法竖式如下:

  2469
4|9876
 -8
 --
  18
 -16
 ---
   27
  -24
 ----
    36
   -36
 -----
     0

在这个例子中,9876除以4的结果是2469,没有余数。

二、除法算式编程

编写一个网页程序,实现用户输入被除数和除数,完成除法算式(竖式,模拟手算过程)计算。要求如下:

  1. 功能要求:用户可以输入被除数和除数,点击计算按钮后生成包括错位下脱样式的除法算式,模拟并展示手算过程。
  2. 需要HTML来构建界面,CSS来设置样式,以及JavaScript来实现计算逻辑。
  3. 所有代码都写在一个.html文件中。
  4. 页面中显示中文。
  5. 代码中添加中文注释。
  6. 设计尽量美观的样式,使用暗色调背景。
  7. 页面元素在网页中合理居中。
  8. 分隔线使<hr>标签。每行使用独立的<p>标签。
  9. 限制输入文本框使用数字类型,只能输入数字,被除数、除数和商均为整数。结果显示商和余数。
  10. 算式内容要显示完整,确保算式输出位置正确对齐、结果正确。可用相似符号代替除法算式符号。
  11. 用户可以多次输入并计算。
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>除法算式</title>
    <style>
        /* 页面整体样式 */
        body {
            background-color: #222;
            color: #dbc5c5;
            font-family: 'Courier New', Courier, monospace;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 24px;
            margin: 0;
        }

        /* 容器样式 */
        .container {
            text-align: center;
            width: 40%;
        }

        /* 输入框样式 */
        input[type="number"] {
            font-family: 'Courier New', Courier, monospace;
            font-size: 30px;
            width: 98%;
            padding: 10px;
            margin: 10px 10px;
            background-color: rgb(92, 89, 82);
            border: none;
            border-radius: 5px;
            box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
            text-align: right;
            letter-spacing: 10px;
        }

        /* 结果样式 */
        .result {
            font-family: 'Courier New', Courier, monospace;
            margin-top: 20px;
            padding: 10px;
            font-size: 24px;
            text-align: right;
            letter-spacing: 10px;
        }

        /* 按钮样式 */
        button {
            font-size: 24px;
            background-color: #3c413c;
            color: rgb(111, 123, 93);
            padding: 10px 50px;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }

        /* 按钮悬停样式 */
        button:hover {
            background-color: #45a049;
        }
    </style>
</head>

<body>
    <div class="container">
        <h1>除法算式</h1>
        <form id="calculatorForm">
            <!-- 被除数输入框 -->
            <input type="number" id="dividend" placeholder="被除数">
            <!-- 除数输入框 -->
            <input type="number" id="divisor" placeholder="除数">
            <!-- 计算按钮 -->
            <button type="button" onclick="calculate()">点击此按钮进行计算</button>
        </form>
        <!-- 结果展示区域 -->
        <div id="result" class="result"></div>
    </div>

    <script>
        /**
         * 计算除法竖式
         */
        function calculate() {
            // 获取输入值
            const dividend = parseInt(document.getElementById('dividend').value);
            const divisor = parseInt(document.getElementById('divisor').value);

            // 清空之前的结果
            document.getElementById('result').innerHTML = '';

            // 校验输入
            if (isNaN(dividend) || isNaN(divisor) || divisor === 0) {
                alert("请输入有效的数字且除数不能为0");
                return;
            }

            // 初始化变量
            let quotient = Math.floor(dividend / divisor); // 商
            let remainder = dividend % divisor; // 余数

            // 结果的HTML字符串
            let resultHtml = '';
            let resultquotient = '';

            // 转换被除数和除数为字符串
            let strdividend = dividend.toString();
            let strdivisor = divisor.toString();

            // 获取被除数和除数的长度
            let len1 = strdividend.length;
            let len2 = strdivisor.length;

            // 初始化临时变量
            let tempquotient = 0; // 临时商
            let subtrahend = 0; // 临时减数

            // 构建结果HTML
            resultHtml += '<hr>';
            resultHtml += `<p>${strdivisor}/${strdividend}</p>`;
            let strspace = '';
            let tempDividend = ""; // 临时被除数子串
            let numtempDividend = 0; // 临时被除数数值

            // 开始计算
            let start = false;
            for (var i = len2 - 1; i <= len1 - 1; i++) {
                // 更新临时被除数
                if (i == len2 - 1) {
                    tempDividend = dividend.toString().substring(0, len2);
                } else {
                    tempDividend += dividend.toString().substring(i, i + 1);
                }
                numtempDividend = parseInt(tempDividend);

                // 计算临时商和减数
                if (numtempDividend >= divisor) {
                    tempquotient = Math.floor(numtempDividend / divisor);
                    subtrahend = divisor * tempquotient;
                    tempDividend = (numtempDividend - subtrahend).toString();
                    resultquotient += tempquotient.toString();
                    if (!start) {
                        start = true;
                    }
                } else {
                    tempquotient = 0;
                    subtrahend = 0;
                    resultquotient += '0';
                }

                // 构建每一步的结果HTML
                if (start || i == len1 - 1) {
                    strspace = '&nbsp;'.repeat(len1 - 1 - i);
                    resultHtml += `<p>${numtempDividend}${strspace}</p>`;
                    resultHtml += `<p>-${subtrahend}${strspace}</p><hr>`;
                }
            }

            // 最终结果
            resultquotient = resultquotient.replace(/^0+/, '') || '0';
            resultHtml = `<p>${resultquotient}<p>` + resultHtml;
            resultHtml += `<p>商: ${quotient}, 余数: ${remainder}</p>`;

            // 显示结果
            document.getElementById('result').innerHTML = resultHtml;
        }
    </script>
</body>

</html>

效果:
在这里插入图片描述

三、四 则运算

四则运算是数学中最基本的运算,包括加法、减法、乘法和除法。下面是对这四种运算的详解:

  1. 加法 (Addition)

    • 符号:+
    • 规则:将两个或多个数相加,得到一个总和。
    • 例子:(3 + 4 = 7)
  2. 减法 (Subtraction)

    • 符号:-
    • 规则:从一个数中减去另一个数,得到差。
    • 例子:(7 - 4 = 3)
  3. 乘法 (Multiplication)

    • 符号:×*
    • 规则:将一个数重复相加若干次,或将两个数的值相乘。
    • 例子:(3 × 4 = 12) 或 (3 * 4 = 12)
  4. 除法 (Division)

    • 符号:÷/
    • 规则:将一个数分成若干等份,或求一个数是另一个数的几倍。
    • 例子:(12 ÷ 4 = 3) 或 (12 / 4 = 3)

在进行四则运算时,通常遵循一定的运算顺序,即先乘除后加减,这被称为运算的优先级。如果有括号,需要先计算括号内的表达式。例如:

  • 表达式 (3 + (4 × 2) - 5) 应该先计算括号内的乘法 (4 × 2 = 8),然后进行加法和减法,最终结果为 (3 + 8 - 5 = 6)。

四则运算是解决实际问题和进行更复杂数学运算的基础。掌握它们对于数学学习至关重要。

  • 43
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值