Урок 3

<-- Start of ex3.1\3.1.html --> 
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Длина окружности</title>
    </head>
    <body>
        <h1>Длина окружности</h1>
        <table>
            <script type="text/javascript">
                function circleLength(d) {
                    let l;
                    l = d * Math.PI;
                    return l;
                }
                window.document.write('<tr><td>2</td>');
                window.document.write('<td>', circleLength(2),
                    '</td></tr>');
                window.document.write('<tr><td>5</td>');
                window.document.write('<td>', circleLength(5),
                    '</td></tr>');
                window.document.write('<tr><td>10</td>');
                window.document.write('<td>', circleLength(10),
                    '</td></tr>');
                window.document.write('<tr><td>20</td>');
                window.document.write('<td>', circleLength(20),
                    '</td></tr>');
            </script>
        </table>
    </body>
</html>
 
<-- End of ex3.1\3.1.html --> 
 
<-- Start of ex3.5\3.5.html --> 
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Факториал</title>
    </head>
    <body>
        <h1>Факториал</h1>
        <script type="text/javascript">
            function factorial(val) {
                if (val == 1)
                    return 1;
                else
                    return val * factorial(val - 1);
            }
            const a = window.prompt('Введите число', 1);
            window.document.write('<p>', factorial(a), '</p>');
        </script>
    </body>
</html>
 
<-- End of ex3.5\3.5.html --> 
 
<-- Start of ex3.8\3.1.html --> 
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Длина окружности</title>
        <script type="text/javascript" src="3.8.js"></script>
    </head>
    <body>
        <h1>Длина окружности</h1>
        <table>
            <script type="text/javascript">
                window.document.write('<tr><td>2</td>');
                window.document.write('<td>', circleLength(2),
                    '</td></tr>');
                window.document.write('<tr><td>5</td>');
                window.document.write('<td>', circleLength(5),
                    '</td></tr>');
                window.document.write('<tr><td>10</td>');
                window.document.write('<td>', circleLength(10),
                    '</td></tr>');
                window.document.write('<tr><td>20</td>');
                window.document.write('<td>', circleLength(20),
                    '</td></tr>');
            </script>
        </table>
    </body>
</html>
 
<-- End of ex3.8\3.1.html --> 
 
<-- Start of s3.11\3.11.1.html --> 
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Площадь круга</title>
    </head>
    <body>
        <h1>Площадь круга</h1>
        <table>
            <script type="text/javascript">
                function circleSquare(d) {
                    return (d / 2) ** 2 * Math.PI;
                }
                window.document.write('<tr><td>10</td>');
                window.document.write('<td>', circleSquare(10),
                    '</td></tr>');
                window.document.write('<tr><td>20</td>');
                window.document.write('<td>', circleSquare(20),
                    '</td></tr>');
                window.document.write('<tr><td>35</td>');
                window.document.write('<td>', circleSquare(35),
                    '</td></tr>');
            </script>
        </table>
    </body>
</html>
 
<-- End of s3.11\3.11.1.html --> 
 
<-- Start of s3.11\3.11.2.html --> 
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Среднее арифметическое</title>
    </head>
    <body>
        <h1>Среднее арифметическое</h1>
        <script type="text/javascript">
            function average() {
                const cntAll = arguments.length;
                let sum = 0, cnt = 0, i, el;
                for (i = 0; i < cntAll; i++) {
                    el = arguments[i];
                    if (typeof el == 'number') {
                        sum += el;
                        cnt++;
                    }
                }
                return sum / cnt;
            }
            let av = average(10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
            window.document.write('<p>', av, '</p>');
            av = average(10, '20', 30, '40', 50, '60', 70, '80', 90,
                '100');
            window.document.write('<p>', av, '</p>');
        </script>
    </body>
</html>
 
<-- End of s3.11\3.11.2.html --> 
 
<-- Start of s3.11\3.11.3.html --> 
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Среднее арифметическое</title>
    </head>
    <body>
        <h1>Среднее арифметическое</h1>
        <script type="text/javascript">
            function average2() {
                const cntAll = arguments.length;
                let sum = 0, cnt = 0, i, el, j, el2;
                for (i = 0; i < cntAll; i++) {
                    el = arguments[i];
                    switch(typeof el) {
                        case 'number':
                            sum += el;
                            cnt++;
                            break;
                        case 'object':
                            for (j = 0; j < el.length; j++) {
                                el2 = el[j];
                                if (typeof el2 == 'number') {
                                    sum += el2;
                                    cnt++;
                                }
                            }
                    }
                }
                return sum / cnt;
            }
            let av = average2([10, 20], 30, [40, 50], 60, [70, 80, 90, 100]);
            window.document.write('<p>', av, '</p>');
            av = average2('[10, 20]', 30, [40, '50'], 60,
                ['70, 80', 90, 100]);
            window.document.write('<p>', av, '</p>');
        </script>
    </body>
</html>
 
<-- End of s3.11\3.11.3.html --> 
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Вычисление площади кругов</title>
</head>
<body>
    <h2>Площади кругов с диаметрами 10, 20 и 35</h2>
    <p>Результаты:</p>
    <div id="result"></div>

    <script>
        'use strict';

        // Функция для вычисления площади круга по диаметру
        function circleSquare(diameter) {
            const radius = diameter / 2; // Радиус равен половине диаметра
            return Math.PI * radius * radius; // Площадь = π * r^2
        }

        // Диаметры кругов
        const diameters = [10, 20, 35];

        // Вывод результатов
        const resultDiv = document.getElementById('result');
        for (const diameter of diameters) {
            const area = circleSquare(diameter);
            resultDiv.innerHTML += `<p>Диаметр: ${diameter}, Площадь: ${area.toFixed(2)}</p>`;
        }
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Среднее арифметическое произвольного количества чисел</title>
</head>
<body>
    <h2>Среднее арифметическое произвольного количества чисел</h2>
    <p>Результаты:</p>
    <div id="result"></div>

    <script>
        'use strict';

        // Функция для вычисления среднего арифметического
        function average(...args) {
            let sum = 0;
            let count = 0;

            // Перебираем все аргументы
            for (const arg of args) {
                if (typeof arg === 'number') { // Проверяем, является ли аргумент числом
                    sum += arg;
                    count++;
                }
            }

            // Если нет числовых значений, возвращаем 0 или другое значение по умолчанию
            return count > 0 ? sum / count : 0;
        }

        // Тестовые вызовы
        const resultDiv = document.getElementById('result');

        // Первый набор параметров
        const avg1 = average(10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
        resultDiv.innerHTML += `<p>average(10, 20, 30, 40, 50, 60, 70, 80, 90, 100): ${avg1}</p>`;

        // Второй набор параметров
        const avg2 = average(10, '20', 30, '40', 50, '60', 70, '80', 90, '100');
        resultDiv.innerHTML += `<p>average(10, '20', 30, '40', 50, '60', 70, '80', 90, '100'): ${avg2}</p>`;
    </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Среднее арифметическое с поддержкой массивов</title>
</head>
<body>
    <h2>Среднее арифметическое с поддержкой массивов</h2>
    <p>Результаты:</p>
    <div id="result"></div>

    <script>
        'use strict';

        // Функция для вычисления среднего арифметического
        function average2(...args) {
            let sum = 0;
            let count = 0;

            // Функция для обработки одного значения (число или массив)
            function processValue(value) {
                if (Array.isArray(value)) {
                    // Если это массив, рекурсивно обрабатываем его элементы
                    for (const item of value) {
                        processValue(item);
                    }
                } else if (typeof value === 'number') {
                    // Если это число, добавляем его к сумме
                    sum += value;
                    count++;
                }
            }

            // Перебираем все аргументы
            for (const arg of args) {
                processValue(arg);
            }

            // Если нет числовых значений, возвращаем 0
            return count > 0 ? sum / count : 0;
        }

        // Тестовые вызовы
        const resultDiv = document.getElementById('result');

        // Первый набор параметров
        const avg1 = average2([10, 20], 30, [40, 50], 60, [70, 80, 90, 100]);
        resultDiv.innerHTML += `<p>average2([10, 20], 30, [40, 50], 60, [70, 80, 90, 100]): ${avg1}</p>`;

        // Второй набор параметров
        const avg2 = average2(['10', '20'], 30, [40, '50'], 60, ['70', '80'], 90, 100);
        resultDiv.innerHTML += `<p>average2(['10', '20'], 30, [40, '50'], 60, ['70', '80'], 90, 100): ${avg2}</p>`;
    </script>
</body>
</html>