JavaScript (лабораторная работа 5, функции)

Оформление решений - аналогично предыдущей ЛР.

Задания:

  1. Создать функцию, в которую можно передавать произвольное количество параметров вида (N,M, значение1, значение2, ...), где N и M натуральные значения, N - количество строк, M - количество столбцов таблицы, значения - содержимое ячеек таблицы, заполняемой слева-направо, сверху вниз. Функция должна возвращать строку - html-представление таблицы, заполненной переданными значениями.

    Граничные условия:
    1. Если количество значений меньше, чем ячеек таблицы, то пустые ячейки заполняются нулями.
    2. Если количество значений больше, чем ячеек таблицы, то лишние значения игнорируются.
    3. Если M или (N и M) отсутствуют, функция должна возвращать строку "Недостаточно параметров".

    Проверить действие функции. Например, если функция носит имя createTable, то программа для проверки действия функции может быть следующей:

    <script>
    ...
    document.writeln("<pre>");
    var s="";
    s=createTable(10);
    document.writeln(s);
    s=createTable(2,2,1,2,3);
    document.writeln(s);
    s=createTable(2,3,1,2,3,4,5,6,7,8);
    document.writeln(s);
    document.writeln("</pre>");
    ...
    </script>
    
    Результат работы программы:
    Недостаточно параметров
    12
    30
    123
    456

  2. Создать функцию с тремя параметрами (arg1,op,arg2), где arg1, arg2 - строковое представление двоичного числа из восьми знаков, op - одно из слов "or", "and" или "xor". Функция возвращает строковое представление двоичного числа из восьми знаков, которе является результатом операции op над аргументами arg1 и arg2.

    Граничные условия:
    1. Если первый или третий аргумент содержат неверное количество или неверное значение знаков числа, то функция возвращает строку "Ошибка в представлении значений"
    2. Если второй аргумент содержат неверную операцию, то функция возвращает строку "Ошибка в операции"
    3. Если в наличии обе ошибки, то функция возвращает строку "Ошибка в параметрах"

    Проверить действие функции. Например, если функция носит имя operateBinary, то программа для проверки действия функции может быть следующей:

    <script>
    ...
    document.writeln("<pre>");
    var s="";
    s=operateBinary("10000110","or","00000111");
    document.writeln(s);
    s=operateBinary("10001100","and","110111");
    document.writeln(s);
    s=operateBinary("10001100","and","00110111");
    document.writeln(s);
    s=operateBinary("1000","not","00110111");
    document.writeln(s);
    document.writeln("</pre>");
    ...
    </script>
    
    Результат работы программы:
    10000111
    Ошибка в представлении значений
    00000100
    Ошибка в параметрах
    
    

* Дополнительное задание (зачитывается первому студенту, сдавшему ЛР)

Разработать функцию, которая возвращает сумму параметров только числового типа, а также числовых свойств параметров-массивов с любой глубины вложенности.
Проверить действие функции. Например, если функция носит имя sumAllNumbers, то программа для проверки действия функции может быть следующей:

<script>
...
document.writeln("<pre>");
var s="";
s=sumAllNumber("100",200,300);
document.writeln(s);
s=sumAllNumber();
document.writeln(s);
s=sumAllNumber([1,2,"test","3"],4,5);
document.writeln(s);
s=sumAllNumber([[1,2],"test","3"],[4,5]);
document.writeln(s);
document.writeln("</pre>");
...
</script>
Результат работы программы:
500
0
12
12


Предупреждение: разработанные функции НЕ ЗАНИМАЮТСЯ ВВОДОМ-ВЫВОДОМ! Использование внутри разработанных функций средств ввода-вывода (напр. методов window.prompt, window.alert, document.write(ln)) допустимо ТОЛЬКО ВО ВРЕМЯ ОТЛАДКИ!