Skip to content

Latest commit

 

History

History
100 lines (76 loc) · 5.5 KB

README.md

File metadata and controls

100 lines (76 loc) · 5.5 KB

Курс «Введение в программирование»

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

Домашнее задание 13. Markdown to HTML

Модификации

  • Link
    • Добавьте поддержку [ссылок с _выделением_](https://kgeorgiy.info): <a href='https://kgeorgiy.info'>ссылок с <em>выделением</em></a>

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

Модификации

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

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

Модификации

  • Базовая
    • Класс ExpressionParser должен реализовывать интерфейс Parser
    • Результат разбора должен реализовывать интерфейс TripleExpression
  • Bitwise
    • Дополнительно реализуйте бинарные операции:
      • & – побитное И, приоритет меньше чем у + (6 & 1 + 2 равно 6 & (1 + 2) равно 2);
      • ^ – побитный XOR, приоритет меньше чем у & (6 ^ 1 + 2 равно 6 ^ (1 + 2) равно 5);
      • | – побитное ИЛИ, приоритет меньше чем у ^ (6 | 1 + 2 равно 6 | (1 + 2) равно 7);
  • FlipLow
    • Реализуйте операции из модификации Bitwise.
    • Дополнительно реализуйте унарные операции (приоритет как у унарного минуса):
      • flip – число с переставленными двоичными цифрами, flip 12345 равно 9987, flip -12345 равно -470548481;
      • low – минимальный установленный бит (как в lowestOneBit), low 123456 равно 64.

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

Модификации

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

Модификации

  • Ромб
    • Добавить поддержку доски в форме ромба (квадрата, повернутого на 45°)
  • Дополнительные ходы
    • Если в результате хода игрока на доске появляется новая последовательность из 4+ одинаковых символов, то он делает дополнительный ход
    • Игрок может сделать несколько дополнительных ходов подряд

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

Модификации

  • BBCode
    • Дополнительно реализуйте метод toBBCode, генерирующий BBCode-разметку:
      • выделенный текст окружается тегом i;
      • сильно выделенный текст окружается тегом b;
      • зачеркнутый текст окружается тегом s.
  • BBCodeList
    • Сделайте модификацию BBCode
    • Добавьте поддержку:
      • Нумерованных списков (класс OrderedList, тег list=1): последовательность элементов
      • Ненумерованных списков (класс UnorderedList, тег list): последовательность элементов
      • Элементов списка (класс ListItem, открывающий тег *): последовательность абзацев и списков
    • Для новых классов поддержка Markdown не требуется