Skip to content

miamirov/paradigms-2017

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Тесты к курсу «Парадигмы программирования»

Условия домашних заданий

Домашнее задание 11. Обработка ошибок на JavaScript

  • Модификация 2. Дополнительное реализовать поддержку выражений в постфиксной записи:
  • Модификация. Дополнительное реализовать поддержку:
    • унарных операций:
      • Sin (sin) — синус, 4846147 sin примерно равно 1;
      • Cos (cos) — косинус, 5419351 cos примерно равно 1;
    • Исходный код тестов
      • Запускать c аргументом easy или hard
  • Базовая

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

  • Модификация 3. Дополнительное реализовать поддержку:
    • унарных операций:
      • Square (square) — возведение в квадрат, 3 square равно 9;
      • Sqrt (sqrt) — извлечение квадратного корня из модуля аргумента, -9 sqrt равно 3;
    • Исходный код тестов
      • Запускать c аргументом easy, hard или bonus
  • Модификация 2. Дополнительное реализовать поддержку:
    • бинарных операций:
      • Power (pow) — возведение в степень, 2 3 pow равно 8;
      • Log (log) — логарифм абсолютного значения аргумента по абсолютному значению основания -2 -8 log равно 3;
    • Исходный код тестов
  • Модификация. Дополнительное реализовать поддержку:
    • унарных операций:
      • Sinh (sinh) — гиперболический синус, 3 sinh немного больше 10;
      • Cosh (cosh) — гиперболический косинус, 3 cosh немного меньше 10;
    • Исходный код тестов
      • Запускать c аргументом easy, hard или bonus
  • Базовая
    • Код должен находиться в файле objectExpression.js.
    • Исходный код тестов
      • Запускать c аргументом easy, hard или bonus.

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

  • Усложненная. Дополнительное реализовать поддержку:
    • констант:
      • pi — π;
      • e — основание натурального логарифма;
    • переменных x, y, z;
    • операций:
      • min3 — минимальный из трех элементов, 3 1 4 min3 равно 1;
      • max5 — максимальный из пяти элементов, 3 1 4 0 2 max5 равно 4.
    • Исходный код тестов
      • Запускать c аргументом hard или easy
  • Простая 2. Дополнительное реализовать поддержку:
    • констант:
      • pi — π;
      • e — основание натурального логарифма;
    • переменных-литералов x, y, z;
    • Исходный код тестов
      • Запускать c аргументом hard или easy
  • Простая. Дополнительное реализовать поддержку:
  • Базовая

Исходный код к лекции по JavaScript

Обратите внимание на реализацию функции mCurry в разделе про функции высшего порядка.

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

  • Усложненная
    • Реализовать операции из простого варианта.
    • Дополнительно реализовать поддержку режимов:
      • u — вычисления в int без проверки на переполнение;
      • b — вычисления в byte без проверки на переполнение;
      • f — вычисления в float без проверки на переполнение.
    • Исходный код тестов
  • Простая
    • Дополнительно реализовать унарные операции:
      • abs — модуль числа, abs -5 равно 5;
      • square — возведение в квадрат, square 5 равно 25.
    • Дополнительно реализовать бинарную операцию (максимальный приоритет):
      • mod — взятие по модулю, приоритет как у умножения (1 + 5 mod 3 равно 1 + (5 mod 3) равно 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.
    • Исходный код тестов

Домашнее задание 7. Обработка ошибок

  • Усложненная
    • Реализовать операции из второго простого варианта.
    • Дополнительно реализовать бинарные операции (минимальный приоритет):
      • min — минимум, 2 min 3 равно 2;
      • max — максимум, 2 max 3 равно 3.
    • Исходный код тестов
  • Простая
    • Дополнительно реализовать унарные операции:
      • log2 — логарифм по уснованию 2, log2 10 равно 3;
      • pow2 — два в степени, pow2 4 равно 16.
    • Исходный код тестов
  • Простая 2
    • Дополнительно реализовать унарные операции:
      • abs — модуль числа, abs -5 равно 5;
      • sqrt — квадратный корень, sqrt 24 равно 4.
    • Исходный код тестов
  • Базовая
    • Класс ExpressionParser должен реализовывать интерфейс Parser
    • Классы CheckedAdd, CheckedSubtract, CheckedMultiply, CheckedDivide и CheckedNegate должны реализовывать интерфейс TripleExpression
    • Нельзя использовать типы long и double
    • Нельзя использовать методы классов Math и StrictMath
    • Исходный код тестов

Домашнее задание 6. Разбор выражений

  • Простая
    • Дополнительно реализовать бинарные операции:
      • << — сдвиг влево, минимальный приоритет (1 << 5 + 3 равно 1 << (5 + 3) равно 256);
      • >> — сдвиг вправо, минимальный приоритет (1024 >> 5 + 3 равно 1024 >> (5 + 3) равно 4);
    • Исходный код тестов
  • Простая 2
    • Дополнительно реализовать бинарные операции:
      • & — побитное И, приоритет меньше чем у + (6 & 1 + 2 равно 6 & (1 + 2) равно 2);
      • ^ — побитный XOR, приоритет меньше чем у & (6 ^ 1 + 2 равно 6 ^ (1 + 2) равно 5);
      • | — побитное ИЛИ, приоритет меньше чем у ^ (6 | 1 + 2 равно 6 | (1 + 2) равно 7);
    • Исходный код тестов
  • Усложненная
    • Реализовать операции из простого варианта.
    • Дополнительно реализовать унарные операции (приоритет как у унарного минуса):
      • abs — модуль числа, abs -5 равно 5;
      • square — возведение в квадрат, square -5 равно 25.
    • Исходный код тестов
  • Базовая

Домашнее задание 5. Вычисление выражений

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

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

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

Модификации

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

Модификации

Домашнее задание 1. Сумма чисел

Модификации

Для того, чтобы протестировать исходную программу:

  1. Скачайте откомпилированные тесты (SumTest.jar)
  • Откомпилируйте Sum.java
  • Проверьте, что создался Sum.class
  • В каталоге, в котором находится Sum.class выполните команду
       java -jar <путь к SumTest.jar>
    
    • Например, если SumTest.jar находится в текущем каталоге, выполните команду
        java -jar SumTest.jar
    

Исходный код тестов:

About

Тесты к курсу Парадигмы программирования

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 80.6%
  • JavaScript 18.9%
  • HTML 0.5%