Большая просьба: когда в текстовом ответе пишете «ссылки», делайте их дейтсивтельно гиперссылками. А то приходится копипастить адрес в адресную строку
Напоминаю, что на ближайшей лабораторной состоится контрольная работа (на половинку пары).
Основной материал — использование git. Как минимум нужно уметь пользоваться средствами, описанными в программе-минимум документации из этого сообщения. Также необходимо прочитать выдержку из книги МакКоннелла про защитное программирование (использование утверждений, исключений, etc).
В 3ем проекте не хватает правила
Если F - это формула, то (F) - формула
В примерах скобки есть, но в правилах вывода нет.
Еще про приоритеты ничего не сказано
[1] + [2] # 3
Сначала + или #?
Верные замечания, спасибо.
Приоритет — слева направо. Сначала считается внутренняя формула (она всегда «в скобках»), затем внешняя операция.
Я так понял, приоритета там в принципе быть не может, т.к. везде скобки (которые я как раз и добавил). Всегда есть внешняя операция. Или ты про случай, когда мы вводим формулу самостоятельно?
Сейчас изменили. Примеры раньше были типа: 2 * 3 + 5
Передайте, пожалуйста, Парьеву, что если он хочет больше 0.25 балла за к/р, пусть расшарит мне репозиторий.
UPD А нет, порядок, это он мне ссылку не ту прислал.
Обращаюсь ко всем паттерно-мученикам. Паттерны — это не костыли и не палки в колёсах ваших проектов. Не надо насильно заталкивать в архитектуру паттерн, который туда никак не вписывается, потому что в задании написано использовать паттерн.
Паттерн — это всего лишь удачное архитектурное решение для какой-то типовой задачи. Он должен помогать и облегчать проектирование и кодирование, а не мешать. Если мешает — вы что-то делаете не так. Либо паттерн не годится, либо вы его неправильно поняли, либо другие части архитектуры плохи.
Один из самых ярких сигналов проблемы в архитектуре — это дублирующийся код. Я не устаю повторять: если хочется сделать копи-паст, вы должны вздрагивать. Если хочется сделать большоооой копи-паст, то кричать от ужаса . Копи-паст — это серьёзный симптом, не нужно его игнорировать.
Продемонстрируйте использование паттерна «Адаптер» для удаления всех вхождений заданной подстроки.
Кхм, а что он адаптирует, метод Replace
из стандартной библиотеки? И почему жёстко требуется написать класс с названием SubstringRemover
, а не с каким-нибудь другим?
Класс SubstringRemover
ничего не адаптирует, адаптировать нужно его, чтобы использовать в формуле. В этом варианте, к сожалению, удаление подстроки получилось скучное, да.
Имя зафиксировано, потому что так проще читать задание. И мне потом проще проверять, когда у всех на диаграмме есть одинаковое имя, за которое можно зацепиться.
Понятия не имею, зачем нужно адаптировать Replace
/ Remover
, но получается, что это именно палка в колёса. Ни разу не жизненно.
Да ладно вам, так и скажите, что не знаете, как адаптер писать…
К сожалению, моей фантазии не хватило, чтобы придумать для варианта со строками вменяемую задачу по этому пункту. Поэтому нужно вообразить, что SubstringRemover
удаляет подстроки супер-круто и эффективно. В других вариантах классы, которые нужно адаптировать, выполняют разумную работу.
Вы только diff киньте, пожалуйста.
Очень вовремя, Юлия Вячеславовна.
Внимание! Изменение в варианте #2 проекта #3! Новое задание на паттерн адаптер:
Удаление из F всех вхождений самого частого и самого редкого символов из строки c.
F ! c
— это формула.
Продемонстрируйте использование паттерна «Адаптер» для удаления всех вхождений самого частого и самого редкого символов заданной строки.
Указание. В dll-библиотеке необходимо реализовать классCharsFreqRemover
со следующим интерфейсом:
…
(конец см. на странице задания)
Ничего не знаю
Так, а теперь скажите, зачем нужно адаптировать класс с одним методом CharsFreqRemover.Remove
?
Почему я сразу не могу его вызвать? Он вполне удовлетворяет моим потребностям.
// метод выражения
string Eval() {
var r = new Remover(where);
return r.Remove(what);
}
Всё прекрасно используется, что здесь адаптировать?
Ну, переборите уже нежелание писать адаптер. У вас тут что-то странное. Откуда what
, какое выражение? Вы ещё подумайте, если что — в личку, не надо тут спойлерить.
А подскажите, можно ли в выражениях использовать неопределённые (ещё) пользователем переменные?