Тесты к курсу «Парадигмы программирования»
|
2 months ago | |
---|---|---|
artifacts | 9 months ago | |
clojure | 8 months ago | |
java | 2 months ago | |
javascript | 9 months ago | |
README.md | 8 months ago |
Модификации
expression.clj
.easy
или hard
Sin
(sin
) — синус, (sin 4846147)
примерно равно 1;Cos
(cos
) — косинус, (cos 5419351)
примерно равно 1.easy
или hard
Модификации
expression.clj
.easy
или hard
sinh
(sinh
) — гиперболический синус, (sinh 3)
немного больше 10;cosh
(cosh
) — гиперболический косинус, (cosh 3)
немного меньше 10.easy
или hard
square
(square
) — возведение в квадрат, (square 3)
равно 9;sqrt
(sqrt
) — извлечение квадратного корня из модуля аргумента, (sqrt -9)
равно 3.easy
или hard
Модификации
linear.clj
.s+
),
вычитания (s-
) и умножения (s*
) чисел и
векторов любой (в том числе, переменной) формы.
Например, (s+ [[1 2] 3] [[4 5] 6])
должно быть равно [[5 7] 9]
.[ [ [2 3 4] [5 6 7] ] ]
равна (1, 2, 3),
а форма 1
равна ().[ [2] [3] ]
формы (2, 1) до
формы (3, 2, 1) получим [ [ [2] [3] ] [ [2] [3] ] [ [2] [3] ] ]
,
а распространив 1
до формы (2, 3) получим [ [1 1 1] [1 1 1] ]
.b+
),
вычитания (b-
) и умножения (b*
) совместимых тензоров.
Если формы тензоров не совпадают, то тензоры меньшей размерности
должны быть предварительно распространены до тензоров большей размерности.
Например, (b+ 1 [ [10 20 30] [40 50 60] ] [100 200 300] )
должно
быть равно [ [111 221 331] [141 251 361] ]
.Запуск Clojure
RunClojure
RunClojure --eval "<выражение>"
RunClojure <файл скрипта>"
RunClojure --help
Лекция 1. Функции
Лекция 2. Внешний мир
Лекция 3. Объекты и вычисления
Модификации
objectExpression.js
.easy
или hard
ArcTan
(atan
) — арктангенс, (atan 2)
примерно равно 1.1;Exp
(Exp
) — экспонента, (exp 3)
примерно равно 20;(2 3 +)
равно 5Модификации
objectExpression.js
.easy
, hard
или bonus
.Square
(square
) — возведение в квадрат, 3 square
равно 9;Sqrt
(sqrt
) — извлечение квадратного корня из модуля аргумента, -9 sqrt
равно 3;Power
(pow
) — возведение в степень, 2 3 pow
равно 8;Log
(log
) — логарифм абсолютного значения аргумента
по абсолютному значению основания -2 -8 log
равно 3;Модификации
functionalExpression.js
.hard
или easy
;y
, z
;negate
— смена знака, -2 negate
равно 2;cube
— возведение в куб, 2 cube
равно 8;cuberoot
— кубический корень, 8 cuberoot
равно 2;y
, z
;pi
— π;e
— основание натурального логарифма;negate
— смена знака, -2 negate
равно 2;min3
— минимальный из трех элементов, 3 1 4 min3
равно 1;max5
— максимальный из пяти элементов, 3 1 4 0 2 max5
равно 4.hard
или easy
Запуск примеров
java -cp . RunJS
jjs RunJS.jjs.js
node RunJS.node.js
Лекция 1. Типы и функции
mCurry
.Лекция 2. Объекты и методы
Лекция 3. Другие возможности
Модификации
GenericTabulator
должен реализовывать интерфейс
Tabulator и
сроить трехмерную таблицу значений заданного выражения.
mode
— режим вычислений:
i
— вычисления в int
с проверкой на переполнение;d
— вычисления в double
без проверки на переполнение;bi
— вычисления в BigInteger
.expression
— выражение, для которого надо построить таблицу;x1
, x2
— минимальное и максимальное значения переменной x
(включительно)y1
, y2
, z1
, z2
— аналогично для y
и z
.result[i][j][k]
должен содержать
значение выражения для x = x1 + i
, y = y1 + j
, z = z1 + k
.
Если значение не определено (например, по причине переполнения),
то соответствующий элемент должен быть равен null
.u
— вычисления в int
без проверки на переполнение;l
— вычисления в long
без проверки на переполнение;s
— вычисления в s
без проверки на переполнение.count
— число установленных битов, count 5
равно 2.min
— минимум, 2 min 3
равно 2;max
— максимум, 2 max 3
равно 3.u
— вычисления в int
без проверки на переполнение;l
— вычисления в long
без проверки на переполнение;s
— вычисления в s
без проверки на переполнение.Модификации
ExpressionParser
должен реализовывать интерфейс
ParserCheckedAdd
, CheckedSubtract
, CheckedMultiply
,
CheckedDivide
и CheckedNegate
должны реализовывать интерфейс
TripleExpressionlong
и double
Math
и StrictMath
log10
— логарифм по уснованию 10, log10 1000
равно 3;pow10
— 10 в степени, pow10 4
равно 10000.**
— возведение в степень, 2 ** 3
равно 8;//
— логарифм, 10 // 2
равно 3.Модификации
ExpressionParser
должен реализовывать интерфейс
Parser&
— побитное И, приоритет меньше чем у +
(6 & 1 + 2
равно 6 & (1 + 2)
равно 2);^
— побитный XOR, приоритет меньше чем у &
(6 ^ 1 + 2
равно 6 ^ (1 + 2)
равно 5);|
— побитное ИЛИ, приоритет меньше чем у ^
(6 | 1 + 2
равно 6 | (1 + 2)
равно 7);~
— побитное отрицание, ~-5
равно 4;count
— число установленных битов, count -5
равно 31.Модификации
Модификации
toArray
, возвращающий массив,
содержащий элементы, лежащие в очереди в порядке
от головы к хвостуМодификации
queue
toArray
, возвращающий массив,
содержащий элементы, лежащие в очереди в порядке
от головы к хвосту.push
– добавить элемент в начало очередиpeek
– вернуть последний элемент в очередиremove
– вернуть и удалить последний элемент из очередиМодификации
BinarySearch
должен находиться в пакете search
a
отсутствует элемент, равный x
, то требуется
вывести индекс вставки в формате, определенном в
Arrays.binarySearch
.BinarySearchMissing
x
. Если таких элементов нет, то следует вывести
пустой диапазон, у которого левая граница совпадает с местом
вставки элемента x
.long
и BigInteger
.BinarySearchSpan
Модификации
CalcSHA256
и подсчитывать SHA-256SHA256Sum
-
<хэш> *<имя файла>
Для того, чтобы протестировать базовую модификацию домашнего задания:
CalcMD5.java
CalcMD5.class
В каталоге, в котором находится CalcMD5.class
выполните команду
java -jar <путь к CalcMD5Test.jar>
Например, если CalcMD5Test.jar
находится в текущем каталоге, выполните команду
java -jar CalcMD5Test.jar