Необязательно, там же нет такого требования.
Почему не работает такой код?
begin
var s := ' 11 / 12 /13 / 14';
var ss := s.ToWords('/');
ss := ss.Select(s -> s.Trim).ToArray;
end.
В 2016-м году в PABCNET полностью сломался алгоритм, который отличал вызов подпрограммы от адреса подпрограммы. В связи с этим, при вызове подпрограммы без аргументов лучше всегда писать скобки. В данном случае у Trim
обязательно, у ToArray
нет, но я бы писал на всякий случай.
Спасибо
Реализуйте класс TextStatistics для углублённой работы со статистикой текста (на основе БДП).
А на основе SortedSet
можно? Оно на основе БДП=)
Вы уже задавали этот вопрос, и я на него отвечал.
Я такой вопрос точно не задавал и в обсуждении выше его не нашёл, так что прошу ответить мне.
Вы задавали вопрос на занятии «можно ли использовать SortedSet
вместо БДП» в другом задании. Ответ: нет. Смысл заданий «сделайте X на основе БДП» в том, чтобы вы почувствовали как за счёт классов более низкоуровневые абстракции превращаются в более высокоуровневые. SortedSet
это уже сама по себе достаточно высокоуровневая абстракция, так что смысла в этом намного меньше. Хотя она конечно менее высокоуровневая, чем TextStatistics
.
Опубликовано 3-е и последнее ДЗ с дедлайном 30 мая (вечер).
Вопрос по поводу бонусного задания №4.
Реализуйте очередь с приоритетом (как в лабораторной работе #1 третьего модуля) на основе некоторого вида самобалансирующегося дерева.
Пишу реализацию на базе splay tree. Как происходит удаление элемента? Склюняюсь к варианту получать на вход п/п конкретное число, вытягивать его к корню, удалять и сливать его поддеревья. Или просто удалять корень и сливать его поддеревья? Таким образом, подпрограмма должна возвращать что-нибудь? - Удалённое значение или, например, true/false?
В Википедии приведено два варианта.
Первый
-
Удалить элемент стандартным для БДП образом: заменить на самый правый элемент левого поддерева или самый левый правого и удалить узел, который содержал скопированное значение.
-
Сделать splay для родителя к корню.
Второй
-
Вытянуть удаляемый к корню, удалить, останутся два подерева.
-
Слить два поддерева.
Можно выбрать любой вариант.
Опубликован последний тест с очень нетривиальными вопросами по ООП: повторите тему полиморфизм перед тем, как начать попытку.
На прошлом занятии встал вопрос, как превратить в строку результат применения к строке метода последовательности (он возвращает последовательность). Я предлагал делать свёртку (Aggregate
). Однако проще использовать статический метод String.Concat
.
Из 4 лабы реализация калькулятора с делением.
Деление на нуль следует фиксировать специальным флагом (дополнительное поле): если флаг взведён, то метод ToString должен выдавать на экран ERROR, иначе работать как раньше.
calc.Digit(9);
calc.Divide;
calc.Digit(0);
Writeln(calc); // 1
calc.Plus;
Writeln(calc); // 2
calc.Digit(1);
Writeln(calc); // 3
calc.Result;
Writeln(calc); // 4
Что где должен выводить метод ToString
?
Хороший вопрос. Но лучший вопрос был бы, что калькулятор дальше должен делать, как его вернуть в нормальное (не-ERROR) состояние. Пока он в этом состоянии, ToString может всё время выдавать ERROR, например. А вот насчёт состояния: идея всего задания была в том, чтобы было похоже на настоящие калькуляторы. Я вот посмотрел на свой под Убунтой: они после деления на нуль игнорируют другие знаки операций и ждут пока введут другое число, которое и становится делителем. Ну и CE сбрасывает всё состояние, естественно, это просто.
Тогда в нашем случае после деления на нуль при нажатии на операции нужно давать ERROR, а когда начинает вводиться число, то показывать его и считать его делителем.
На странице курса начинает публиковаться график добора баллов. Пока там есть моя подгруппа и подгруппа Натальи Николаевны.
Добор в моей подгруппе: 1.9-1, 15:00, ауд. 202.
В моей подгруппе допуска нет у следующих студентов.
- Вегиев А.
- Бедросов А.
- Денисенко А.
- Панин В.
На доборе баллов (см. выше) им будут предложены задачи по материалам контрольных, которые они не писали или написали меньше, чем на половину баллов.
Остальные студенты могут спокойно готовиться к экзамену. Баллы я выставлю до экзамена.
Артем Михайлович, здравствуйте. Дело в том, что у всех проверена 1 лабораторная "Повторение: методы строк, записи ", а у меня нет. Обратите, пожалуйста, при проверке на это внимание. Заранее спасибо.
Вроде выставил всё, кроме бонусов, в Мудл. Желательно проверить.
А бонусы когда будут?