Бонусное задание | 12 лекция | 5 уровень

5 уровень, 12 лекция
Открыта

— Здорово, боец!

— Здравия желаю, товарищ капитан!

— У меня для тебя шикарная новость. Вот тебе задания для закрепления полученных навыков. Выполняй их каждый день, и твои навыки будут расти с неимоверной скоростью. Они специально разработаны для выполнения их в Intellij IDEA.

8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Разные методы для разных типов
Итак, полиморфизм. Вы о нём ещё не забыли? Тогда решаем следующую задачку: считываем с консоли данные, пока не будет введено слово "exit". Для каждого значения, кроме "exit", вызываем метод print, какой именно принт — зависит от значения. Например, если значение содержит точку, то вызываем print для Double, а если это число от 0 до 128 — то для short.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Тренировка мозга
Найдите логическую ошибку: утка (Duck) должна корректно реализовывать интерфейс CanMove. Исправьте ошибку так, чтобы получить правильный результат.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
ООП. Перегрузка
Перегрузите метод info(Object s) в классе Tree дважды, чтобы получилось 3 метода info(Object s), info(Number s), info(String s). После этого разберитесь с методом info(Object s) и создайте функциональность новых методов по аналогии. Например, для метода info(Number s) результат может быть таким: «Дерево № 123 , метод Number, параметр Short.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Закрепляем паттерн Singleton
Разберёмся с паттерном Singleton на примере светила и планет солнечной системы. Для начала займитесь поиском и найдите где-нибудь в интернете пример "ленивой" реализации Singleton и создайте по образу и подобию три Singleton-класса: Sun, Moon и Earth. Затем реализуйите в них интерфейс Planet. И проделайте ещё парочку операций.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Перегрузка конструкторов
В этой задаче нам предстоит создать класс Solution и его потомка SubSolution, а для этого потомка — создать конструкторы и исправить их модификаторы доступа так, чтобы получить три конструктора с разными модификаторами (кроме private).
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Порядок загрузки переменных
Итак, полезная задачка на отладку. У вас есть код, в котором нужно разобраться: узнайте, что и в какой последовательности инициализируется. Для этого можно использовать отладчик в IntelliJ IDEA и его брейкпоинты. Затем исправьте порядок инициализации так, чтобы получить определённый результат.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Файл в статическом блоке
Инициализируйте переменную Statics.FILE_NAME полным путем к файлу с данными, который содержит несколько строк. После этого в статическом блоке считайте из файла с именем Statics.FILE_NAME все строки, и добавьте их по отдельности в List lines.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Дебаг, дебаг, и еще раз дебаг
Снова и снова мы ищем чужие ошибки и исправляем их... Такова наша программистская доля. Наша программа снова выводит что-то не то: закралась ошибка (всего одна!). Найти и обезвредить! Для этого воспользуйтесь дебаггером IntelliJ IDEA.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Парсер реквестов
Считайте с консоли URL-ссылку. Затем выведите на экран через пробел список всех параметров (Параметры идут после ? и разделяются &, например, lvl=15). URL содержит минимум 1 параметр. Если присутствует параметр obj, то передайте его значение в нужный метод alert.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
ООП. Hrivna — тоже деньги
Исправьте класс Hrivna так, чтоб избежать возникновения ошибки StackOverflowError. При этом, как ни парадоксально, Hrivna должна быть наследницей класса Money и в этом классе должен быть реализован метод getAmount.

— Те задания были для духов. Для дедушек я добавил бонусные задания повышенной сложности. Только для старослужащих.

8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Осваивание статического блока
Cоздадим классы Plane и Helicopter, реализующие интерфейс CanFly, после чего в статическом методе reset класса Solution нужно считать с консоли параметр типа String и если он равен helicopter (plane), то статическому объекту CanFly result присвоить объект класса Helicopter (Plane). В статическом блоке инициализировать CanFly result вызвав метод reset.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Template pattern
Создадим алгоритм работы баристы в классе DrinkMaker. Он будет выбирать подходящую чашку, класть ингредиенты и заливать жидкостью. Также создадим узкоспециализированные алгоритмы для чая и латте, унаследовав их от DrinkMaker.
8
Задача
Java Core,  5 уровень,  12 лекция
Недоступна
Факториал
На планете Линейный Хаос поиском факториала двузначных чисел на их планете принято занимать младенцев. Ну а мы подойдём по-взрослому, по-программистски, и напишем метод, вычисляющий факториал вплоть до введённого числа.
Комментарии (130)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Шкипер16 уровень, Минск
16 мая, 20:31
Парсер, я приду за тобой после 20-го уровня. Сейчас хрен знает как тебя решать...
Valery16 уровень
26 апреля, 17:59
неожиданно....
Valery16 уровень
26 апреля, 18:00
три задачи повышенной сложности опять легче, чем например Парсер реквестов) 915 материи к концу 15 го уровня... куда ее, солить?
Михаил17 уровень, Одесса
5 мая, 18:02
светлый фон - фу фу фу
понедельник, 19:18
тоже не понял, как можно было тут не решить с первого раза. А вот парсер реквестов у меня 9 попыток занял!
Игорь22 уровень, Минск
11 апреля, 17:15
В задаче "Парсер реквестов" не ведитесь на уточнение, что вещественные числа разделяются точкой. Если будете проверять через equals, подразумевая, что там число в любом случае, то не прокатит это. Там либо заморачиваетесь с проверкой, либо просто через блок try-catch кидаете, что само по себе топорно.
Влад17 уровень
23 апреля, 12:16
почему через исключение топорно?
Игорь22 уровень, Минск
24 апреля, 07:28
Зайду немного издалека. Дело в том, что кодирование как таковое - это чуть ли не последняя стадия разработки, которой предшуствует проектирование, анализ и прочие радости. Конечная цель - это сделать максимально эффективный продукт при оптимальных затратах. Грубо говоря, забить гвоздь можно и микроскопом, но каковы будут затраты на реализацию данной фичи, и покроет ли эти затраты полученный выхлоп от внедрения оной? Поэтому даже если есть под рукой микроскоп, мы всё равно будем искать молоток, так как точно знаем, что забивать гвозди микроскопом - это очень плохая практика. Исключения же изначально были описаны для того, чтобы обрабатывать внештатные ситуации, и программа, что называется "не упала", и первоначально это было крайне дорогое удовольствие с точки зрения потери производительности. Cтроить бизнес-логику на ловле исключений - это практика, которая в большинстве случаев намекает на плохое проектирование, и её следует рефакторить. Источник: интернет и мнения более прошаренных знакомых. Рекомендую просто обратить на это внимание, погуглить и сделать для себя вывод. А в идеале - найти хороший курс по рефакторингу.
Сергей Подуст20 уровень, Киев
25 марта, 15:24
как-то странно тут звездочки наставили, самая легкая задача(Факториал), которая решается за 2 минуты, почему-то со звездой, а самая первая, в которой пришлось помучаться с валидатором - без звезды)
Игорь16 уровень, Москва
9 апреля, 12:57
на задачу с факториалом больше всего времени потратил, не знал про BigDecimal (слава гуглу), с длинной арифметикой через String бился :D а тут вон оно че, реально 2 минуты
Сергей Подуст20 уровень, Киев
11 апреля, 09:42
О, я тоже через Стринги решал подобные задачи, добавлял огромные числа и умножал(в столбик, разбив стринг на массив чаров), это действительно неудобно, но весело если есть лишние пару часиков))
Gusyara19 уровень, Москва
15 апреля, 15:17
дык там же в самой задаче изначально сделан import java.Math.bigdecimal; в качестве подсказки ))) перед решением открыл oracle и почитал, чё он там может делать. решал эту задачку ровно год назад для собеса, решил используя long для результата и ограничив кучей разных условий if-ов с красивым выводом на каждый чих, что типа если хотите факториал 25, то уже будет шляпа и в long не влезет, что факториал отрицательного то-то, нуля по определению - тото, а оказывается вон оно как красиво и коротко через BigDecimal решается да и ещё для числе больше 25 можно подсчитать )
Dante19 уровень, Одесса
25 февраля, 19:13
Подскажите, плиз, в задаче ООП. Перегрузка есть вот такие значения %d, %s. Не могу понять как это использоватью Где можно прочесть? Ну или если там все легко - подскажите своими словами. Спасибо
Вячеслав20 уровень, Санкт-Петербург
26 февраля, 10:45
Почитайте про String.format(). Вкратце, он собирает финальную строку из переданной строки (с %d и %s) и аргументов через запятую, которые будут вставлены в переданную строку вместо вот этих %d, %s в том же порядке, в котором Вы их передадите.
Andrey Kovalko20 уровень, Минск
13 февраля, 11:47
Хочу обратить внимание!!!!!!!!!!!!!! Ставьте breakpoint на строке public static void main!!!!!!!!!!!!!!!!!!!! Затем после запуска команды debug пользуйтесь F7 - таким образом вы пошагово пройдете всю программу с заходом в методы. К сожалению, потратил много времени чтобы это узнать.
VK19 уровень, Киев
19 февраля, 16:33
спасибо!
Вячеслав19 уровень
8 января, 18:53
Кстати, когда убрали ярлычки сложности, сложные(тсс) задачи стали решаться легче, нет установки, типа сложно и рано ещё.
Игорь17 уровень
3 февраля, 22:54
Разве убрали? Вроде возле более сложных задач по прежнему находится значок звездочки. Или раньше еще что-то было?
pchelovod195020 уровень, Москва
4 января, 18:50
Задача про LatteMaker, ReaMaker: 5. Каждый метод должен выводить в консоль свою фразу не пересекаясь с другими методами. Прошедшее валидатор (успешное) решение противоречит условию задачи №5. Написано что в консоль должны выводиться фразы. Я честно вывел их в консоль созданием 2-х объектов и вызовом в конструкторах объектов типа LatteMaker и TeaMaker неабстрактного метода базового абстрактного класса: super.makeDrink(). Валидатор не пропустил. Убрал весь вывод и конструторы с super.makeDrink() и тогда всё получилось Может быть в условиях написать про вывод на экран более определённо и попросить реализовать этот вывод. Возможно даже без намёка как это делать?
Даниил29 уровень
26 декабря 2018, 21:30
В сумме, примерно целый божий день потратил на весь этот блок.... Это было тяжело.
Даниил29 уровень
26 декабря 2018, 21:31
Чисто у кого есть бесполезное хобби сравнивать кол-во материи, то получив её везде где только можно и не открыв следующее занятие: 937
Дмитрий Ковтонюк19 уровень, Киев
3 января, 16:08
371. видосы не сотрю. наверное не все задачки сделал..
Ildar Shaydullin18 уровень, Nizhniy Novgorod
13 декабря 2018, 21:06
Есть нормальное видео как дебажить?