Задачи и тесты по программированию | proghub
2.42K subscribers
656 photos
16 videos
23 files
916 links
Публикуем задачи и вопросы для подготовки к собесу.

Сотрудничество: @cyberJohnny
Download Telegram
Что такое «анонимные классы»? Где они применяются?

#вопрос_на_собеседовании
Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.

Анонимные классы имеют несколько ограничений:

- Их использование разрешено только в одном месте программы - месте его создания;
- Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
- Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.

Анонимные классы обычно применяются для:

- Создания объекта функции (function object), например реализация интерфейса Comparator;
- Создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
в статическом методе генерации;
- Инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.
[OOP] Класс в ООП является абстрактным типом данных.
Anonymous Quiz
47%
Не верно
50%
Верно
3%
Не знаю
🚀 Обновились

Выкатили обнову на proghub.ru. В этот раз:
- обновили страницы с вопросами
- добавили возможность обсуждать вопросы
- добавили так же возможность обсуждать вопросы после прохождения теста
А еще нашли баг из-за которого после начала теста, кнопка "пройти" все еще предлагала начать тест. По правилам работы нашего сайта в один момент времени нельзя проходить более одного теста. Апи это гаранировало, а вот фронтенд подкачал. Сейчас пофиксили, теперь если начали тест то кнопка будет ораньжевой с вежливым предложением "Продолжить".

Го тестить на нашем тесте по основам git`а: https://proghub.ru/t/git-knowledge
По рейтингу решений наших задач заметно что интепретируемые языки сильно выигрывают по скорости и памяти.

Можно подумать что это просто более оптимальные решения. Однако, на самом деле мы просто изначально для компилируемых языков считали время и память компиляции+выполнение.

Сегодня пофиксили это для С++ и C#. И скорее всего теперь С++ будет выходить в топ 🙂

А протестить можно на задаче о максимальной прибыли: https://proghub.ru/exercises/max-profit
И вот пример до/после на C++
Задача на нахождение максимальной прибыли с покупок

Необходимо написать функцию которая вернет максимальную прибыль учитывая ограничение в N сделок.
За последние пару дней неплохо пополнили наш набор тестов на сайте.

Го проходить и проверять свой скил: https://proghub.ru/tests
[OOP] Наследует ли производный класс перегруженные операторы базового класса?
Anonymous Quiz
29%
Нет
66%
Да
6%
Не знаю
[OOP] Какой принцип ООП необходимо использовать, чтобы заменить конструкции if-then-else в данном фрагменте кода:
[OOP] Какой принцип ООП необходимо использовать, чтобы заменить конструкции if-then-else в данном фрагменте кода:
Anonymous Quiz
57%
Полиморфизм
9%
Инкапсуляция
7%
Агрегация
14%
Композиция
3%
Персистентность
9%
Не знаю