Возможные варианты решения домашних задач по курсу JAVASCRIPT ESSENTIAL.

Евгений Кибенко разместил пост 10 июля 2018

В этой теме я буду публиковать примеры, как я бы решал бы ту или иную задачу . С вашей стороны ожидаю предложений по улучшению кода

 

  • Пост понравился
  • Иван Бровченко
Отсортировать по: Стандартный | Последний | Голоса
Евгений Кибенко разместил пост 10 июля 2018

Я бы написал так верхнюю часть где создается размерность массива и происходит его заполнение, и вынес бы это из цикла.

var a = -100, b = 100, summa = 0, srednie = 0, N;
var random = getRandomInRange(1, b);

if (N === undefined || N == 1 || N == 0) {
N = random;
}
var massiv = Array(N);

for (var i = 0; i < N; i++) {
massiv[i] = getRandomInRange(a, b)
}

Массив не может быть отрицательным, а элементы массива могут, то есть по сути можно так написать наверное)

для отрицательного значения длины массива у меня предусмотрено изменения знака на +

if (N < 0) N = -random;

var random = getRandomInRange(1b);

возможен этот вариант в случае если , хотя бы вместо единицы написать 2  

var random = getRandomInRange(2b);

  • Пост понравился
  • Maxim Savin
  • Иван Бровченко
Евгений Кибенко разместил пост 10 июля 2018

К примеру урок 3 задача 2 :

 <script>

        // алгоритм генерации произвольного массива в диапазоне -100 до 100

        var a = -100, b = 100, summa = 0, srednie = 0, N;

        do {

            var random = getRandomInRange(a, b);

            if (N === undefined || N == 1 || N == 0) {

                N = random;

                if (N < 0) N = -random;

                if (N == 1 || N == 0) continue;

            }

            var massiv = Array(N);

            for (var i = 0; i < N; i++) {

                massiv[i] = getRandomInRange(a, b)

            }

            break;

        }

        while (true);

        document.write(massiv);

        document.write("<br/>");

        document.write("Длина массива = " + massiv.length);

        document.write("<br/>");

 

        // алгоритм сравнения и нахождения большего числа

        var temp = massiv;

        for (var i = 0; i < temp.length - 1; i++) {

            for (var j = i + 1; j < temp.length; j++) {

                if (temp[i] > temp[j]) {

                    var buff = temp[i];

                    temp[i] = temp[j];

                    temp[j] = buff;

                }

            }

        }

        document.write("Наибольшее число = " + temp[(temp.length - 1)]);

        document.write("<br/>");

        document.write("Наименьшее число = " + temp[0]);

        document.write("<br/>");

        document.write(temp);

 

        // алгоритм суммы

 

        document.write("<br/>");

 

        for (var i = 0; i < temp.length; i++) {

            summa += temp[i];

        }

        document.write("Сумма = " + summa);

 

        // средне арифметическое

        document.write("<br/>");

        srednie = summa / temp.length;

        document.write("Средние арефмитическое = " + srednie+"<br/>");

 

        //вывод нечетных чисел

        massiv.forEach(function(items, i, massiv){

            if (i % 2 !== 0) document.write("Нечетный элемент массива " +  i +" = " +items +"<br/>");

        });

 

        // функция для генерации случайных чисел с включение крайних границ

        function getRandomInRange(min, max) {

            return Math.floor(Math.random() * (max - min + 1)) + min;

        };

    </script>

 

  • Пост понравился
  • Maxim Savin
Maxim Savin разместил пост 10 июля 2018

Я бы написал так верхнюю часть где создается размерность массива и происходит его заполнение, и вынес бы это из цикла.

var a = -100, b = 100, summa = 0, srednie = 0, N;
var random = getRandomInRange(1, b);

if (N === undefined || N == 1 || N == 0) {
N = random;
}
var massiv = Array(N);

for (var i = 0; i < N; i++) {
massiv[i] = getRandomInRange(a, b)
}

Массив не может быть отрицательным, а элементы массива могут, то есть по сути можно так написать наверное)

Евгений Кибенко разместил пост 10 июля 2018

 урок 3 задача 3 :

<script>

 

        // алгортим генерациии произвольного массива в диапозоне -100 до 100

        var a = -100, b = 100, g;

 

        var massiv = Array(5);

        for (var i = 0; i < massiv.length; i++) {

            massiv[i] = Array(5);

        }

 

        for (var i = 0; i < massiv.length; i++) {

            for (var y = 0; y < 5; y++) {

                massiv[i][y] = getRandomInRange(a, b);

            }

        }

 

        vid();

        diagonal();

        vid();

 

 

 

        // 1 функция для генерации случайных чисел с включение крайних границ

        function getRandomInRange(min, max) {

            return Math.floor(Math.random() * (max - min + 1)) + min;

        };

        //2 функция для вывода символов в приемлевый вид

 

        function vid() {

            document.write("<pre>");

            for (var i = 0; i < massiv.length; i++) {

                for (var y = 0; y < 5; y++) {

                    g = String(massiv[i][y]).length;

 

                    if (g >= 1) {

                        ren(i, y, g);

                        if (y == 4) document.write("<br/>");

                    }

                }

            }

            document.write("</pre>");

            document.write("<hr/>");

        }

        //3 функция добавляющие пробелы

        function ren(z, x, m) {

            switch (m) {

                case 4:

                    document.write(massiv[z][x] + " ");

                    break;

                case 3:

                    document.write("&nbsp;" + massiv[z][x] + " ");

                    break;

                case 2:

                    document.write("&nbsp;&nbsp;" + massiv[z][x] + " ");

                    break;

                case 1:

                    document.write("&nbsp;&nbsp;&nbsp;" + massiv[z][x] + " ");

                    break;

 

            }

        };

        //4 функция замены сиволов по диагоналям

        function diagonal() {

            for (var i = 0; i < massiv.length; i++) {

                for (var y = i; y < massiv.length; y++) {

 

                    if (massiv[i][y] >= 0) {

                        massiv[i][y] = 1;

                        break;

                    }

                    else {

                        massiv[i][y] = 0;

                        break;

                    }

 

                }

            }

            for (i = 4; i >= 0; i--) {

                for (y = 4 - i; y >= 0; y--) {

 

                    if (massiv[i][y] >= 0) {

                        massiv[i][y] = 1;

                        break;

                    }

                    else {

                        massiv[i][y] = 0;

                        break;

                    }

 

                }

            }

        }

 

    </script>

Close