Skip to content

Ayubjon/itmo-java-intro

Repository files navigation

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

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

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

Модификации

  • Базовая
    • Класс ExpressionParser должен реализовывать интерфейс Parser
    • Классы CheckedAdd, CheckedSubtract, CheckedMultiply, CheckedDivide и CheckedNegate должны реализовывать интерфейс TripleExpression
    • Нельзя использовать типы long и double
    • Нельзя использовать методы классов Math и StrictMath
    • Исходный код тестов
  • AbsSqrt (32-35)
    • Дополнительно реализуйте унарные операции:
      • abs – модуль числа, abs -5 равно 5;
      • sqrt – квадратный корень, sqrt 24 равно 4.
    • Исходный код тестов
  • MinMax (36, 37)
    • Реализуйте операции модификации AbsSqrt.
    • Дополнительно реализуйте бинарные операции (минимальный приоритет):
      • min – минимум, 2 min 3 равно 2;
      • max – максимум, 2 max 3 равно 3.
    • Исходный код тестов
  • GcdLcm (38, 39)
    • Реализуйте операции модификации AbsSqrt.
    • Дополнительно реализуйте бинарные операции (минимальный приоритет):
      • gcd – НОД, 2 gcd -3 равно 1;
      • lcm – НОК, 2 lcm -3 равно -6.
    • Исходный код тестов

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

Модификации

  • Базовая
  • Bitwise (32-35)
    • Дополнительно реализуйте бинарные операции:
      • & – побитное И, приоритет меньше чем у + (6 & 1 + 2 равно 6 & (1 + 2) равно 2);
      • ^ – побитный XOR, приоритет меньше чем у & (6 ^ 1 + 2 равно 6 ^ (1 + 2) равно 5);
      • | – побитное ИЛИ, приоритет меньше чем у ^ (6 | 1 + 2 равно 6 | (1 + 2) равно 7);
    • Исходный код тестов
  • NotCount (36, 37)
    • Реализуйте операции из модификации Bitwise.
    • Дополнительно реализуйте унарные операции (приоритет как у унарного минуса):
      • ~ – побитное отрицание, ~-5 равно 4;
      • count – число установленных битов, count -5 равно 31.
    • Исходный код тестов
  • FlipLow (38, 39)
    • Реализуйте операции из модификации Bitwise.
    • Дополнительно реализуйте унарные операции (приоритет как у унарного минуса):
      • flip – число с переставленными двоичными цифрами, flip 12345 равно 9987, flip -12345 равно -470548481;
      • low – минимальный установленный бит (как в lowestOneBit), low 123456 равно 64.
    • Исходный код тестов

Домашнее задание 10. Выражения

Модификации

Домашнее задание 9. Игра m,n,k

Модификации

  • Матчи (32, 33)
    • Добавьте поддержку матчей: последовательность игр до указанного числа побед
    • Стороны в матче должны меняться каждую игру
  • Турнир (34, 35)
    • Добавьте поддержку кругового турнира для нескольких участников из c кругов
    • Выведите таблицу очков по схеме:
      • 3 очка за победу
      • 1 очко за ничью
      • 0 очков за поражение
  • Multiplayer (36, 37)
    • Добавьте поддержку значков - и |
    • Добавьте возможность игры для 3 и 4 игроков
  • Ромб (36-39)
    • Добавить поддержку доски в форме ромба (квадрата, повернутого на 45°)
  • Дополнительные ходы (38, 39)
    • Если в результате хода игрока на доске появляется новая последовательность из 4+ одинаковых символов, то он делает дополнительный ход
    • Игрок может сделать несколько дополнительных ходов подряд

Домашнее задание 7. Разметка

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

Модификации

  • HTML (32, 33)
    • Дополнительно реализуйте метод toHtml, генерирующий HTML-разметку:
      • выделеный текст окружается тегом em;
      • сильно выделеный текст окружается тегом strong;
      • зачеркнутый текст окружается тегом s.
    • Исходный код тестов
  • BBCode (34, 35)
    • Дополнительно реализуйте метод toBBCode, генерирующий BBCode-разметку:
      • выделеный текст окружается тегом i;
      • сильно выделеный текст окружается тегом b;
      • зачеркнутый текст окружается тегом s.
    • Исходный код тестов
  • TexList
    • Дополнительно реализуйте метод toTeX, генерирующий TeX-разметку:
      • выделеный текст заключается в \emph{ и };
      • сильно выделеный текст заключается в \textbf{ и };
      • зачеркнутый текст заключается в \textst{ и }.
    • Добавьте поддержку:
      • Нумерованных списков (класс OrderedList, окружение enumerate): последовательность элементов
      • Ненумерованных списков (класс UnorderedList, окружение itemize): последовательность элементов
      • Элементов списка (класс ListItem, тег \item: последовательность абзацев и списков
    • Для новых классов поддержка Markdown не требуется
    • Исходный код тестов
  • BBCodeList
    • Сделайте модификацию BBCode
    • Добавьте поддержку:
      • Нумерованных списков (класс OrderedList, тег list=1): последовательность элементов
      • Ненумерованных списков (класс UnorderedList, тег list): последовательность элементов
      • Элементов списка (класс ListItem, открывающий тег *): последовательность абзацев и списков
    • Для новых классов поддержка Markdown не требуется
    • Исходный код тестов

Домашнее задание 6. Подсчет слов++

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

Откомпилированные тесты: WordStatIndexTest.jar

Модификации

  • LineIndex (32, 33)
  • SortedLineIndex (34, 35)
    • В выходном файле слова должны быть упорядочены в лексикографическом порядке
    • Вместо номеров вхождений во всем файле надо указывать <номер строки>:<номер в строке>
    • Класс должен иметь имя WordStatSortedLineIndex
    • Исходный код тестов
    • Откомпилированные тесты
  • CountLineIndex (36, 37)
    • В выходном файле слова должны быть упорядочены по возрастанию числа вхождений, а при равном числе вхождений – по порядку первого вхождения во входном файле.
    • Вместо номеров вхождений во всем файле надо указывать <номер строки>:<номер в строке>
    • Класс должен иметь имя WordStatCountLineIndex
    • Исходный код тестов
    • Откомпилированные тесты
  • CountFirstIndex
    • В выходном файле слова должны быть упорядочены по возрастанию числа вхождений, а при равном числе вхождений – по порядку первого вхождения во входном файле.
    • Вместо номеров вхождений во всем файле надо указывать только первое вхождение в каждой строке
    • Класс должен иметь имя WordStatCountFirstIndex
    • Исходный код тестов
    • Откомпилированные тесты

Домашнее задание 5. Свой сканнер

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

Откомпилированные тесты: FastReverseTest.jar Модификации

Домашнее задание 4. Подсчет слов

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

Откомпилированные тесты: WordStatInputTest.jar

Модификации

  • InputPrefix (32, 33)
    • Выходной файл должен содержать все различные префиксы длины 3 слов встречающихся во входном файле, в порядке их появления. Слова длины меньшей 3 игнорируются.
    • Класс должен иметь имя WordStatInputPrefix
    • Исходный код тестов
    • Откомпилированные тесты
  • InputShingles (34, 35)
    • Выходной файл должен содержать все различные подстроки длины 3 слов встречающихся во входном файле, в порядке их появления. Слова длины меньшей 3 игнорируются.
    • Класс должен иметь имя WordStatInputShingles
    • Исходный код тестов
    • Откомпилированные тесты
  • WordsPrefix (для 36, 37)
    • Выходной файл должен содержать все различные префиксы длины 3 слов встречающихся во входном файле, в лексикографическом порядке. Слова длины меньшей 3 игнорируются.
    • Класс должен иметь имя WordStatWordsPrefix
    • Исходный код тестов
    • Откомпилированные тесты
  • CountShingles (для 38, 39)
    • Выходной файл должен содержать все различные подстроки длины 3 слов встречающихся во входном файле, упорядоченые по возрастанию числа вхождений, а при равном числе вхождений – по порядку первого вхождения во входном файле.
    • Класс должен иметь имя WordStatCountShingles
    • Исходный код тестов
    • Откомпилированные тесты

Домашнее задание 3. Реверс

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

Откомпилированные тесты: ReverseTest.jar

Модификации:

  • Max (для 32, 33)
  • Min (для 34, 35)
  • Avg (для 36-39)

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

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

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

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

Модификации:

Домашнее задание 1. Запусти меня!

  1. Скачайте исходный код (RunMe.java)
  2. Откомпилируйте код (должен получиться RunMe.class)
  3. Запустите класс RunMe с выданными вам аргументами командной строки
  4. Следуйте выведенной инструкции

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages