Sher13 / prog-term2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Programming homework. ITMO Term2

Домашнее задание 2. Бинарный поиск

Модификации

  • Базовая
  • Missing
    • Если в массиве a отсутствует элемент, равный x, то требуется вывести индекс вставки в формате, определенном в Arrays.binarySearch.
    • Класс должен иметь имя BinarySearchMissing
    • Откомпилированные тесты
  • Span
    • Требуется вывести два числа: начало и длину диапазона элементов, равных x. Если таких элементов нет, то следует вывести пустой диапазон, у которого левая граница совпадает с местом вставки элемента x.
    • Не допускается использование типов long и BigInteger.
    • Класс должен иметь имя BinarySearchSpan
    • Откомпилированные тесты

Домашнее задание 3. Очередь на массиве

Модификации

  • Базовая
  • Deque (сложная)
    • Реализовать методы
      • push – добавить элемент в начало очереди
      • peek – вернуть последний элемент в очереди
      • remove – вернуть и удалить последний элемент из очереди
    • Откомпилированные тестов

Домашнее задание 4. Очередь на связном списке

Модификации

  • Базовая

  • Functions

    • Добавить в интерфейс очереди и реализовать методы
      • filter(predicate) – создать очередь, содержащую элементы, удовлетворяющие предикату
      • map(function) – создать очередь, содержащую результаты применения функции
    • Исходная очередь должна остаться неизменной
    • Тип возвращаемой очереди должен соответствовать типу исходной очереди
    • Взаимный порядок элементов должен сохраняться
    • Дублирования кода быть не должно
    • Откомпилированные тесты

Домашнее задание 5. Вычисление в различных типах

Модификации

  • Базовая
    • Класс 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.

Домашнее задание 6. Функциональные выражения на JavaScript

Модификации

  • Базовая
    • Код должен находиться в файле functionalExpression.js.
  • PieAvgMed. Дополнительно реализовать поддержку:
    • переменных: y, z;
    • констант:
      • pi – π;
      • e – основание натурального логарифма;
    • операций:
      • avg5 – арифметическое среднее пяти аргументов, 1 2 3 4 5 avg5 равно 7.5;
      • med3 – медиана трех аргументов, 1 2 -10 med3 равно 1.

Домашнее задание 7. Объектные выражения на JavaScript

Модификации

  • Базовая
    • Код должен находиться в файле objectExpression.js.
  • PowLog. Дополнительно реализовать поддержку:
    • бинарных операций:
      • Power (pow) – возведение в степень, 2 3 pow равно 8;
      • Log (log) – логарифм абсолютного значения аргумента по абсолютному значению основания -2 -8 log равно 3;

Домашнее задание 9. Линейная алгебра на Clojure

Модификации

  • Базовая
    • Код должен находиться в файле linear.clj.
  • Tensor
    • Назовем тензором многомерную прямоугольную таблицу чисел.
    • Добавьте операции поэлементного сложения (t+), вычитания (t-) и умножения (t*) тензоров. Например, (t+ [[1 2] [3 4]] [[5 6] [7 8]]) должно быть равно [[6 8] [10 12]].

Домашнее задание 10. Функциональные выражения на Clojure

Модификации

  • Базовая
    • Код должен находиться в файле expression.clj.
  • MedAvg. Дополнительно реализовать поддержку:
    • операций произвольного числа аргументов:
      • med – медиана, (med 1 2 6) равно 2;
      • avg – среднее, (avg 1 2 6) равно 3;

Домашнее задание 11. Объектные выражения на Clojure

Модификации

  • Базовая
    • Код должен находиться в файле expression.clj.

About


Languages

Language:Java 69.3%Language:Clojure 19.1%Language:JavaScript 8.2%Language:Prolog 2.9%Language:HTML 0.4%