Сборник итоговых заданий для программистов

Открыта

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

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

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

4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Вывести числа в обратном порядке
Вы же знаете, что задачи можно решать разными способами? Да конечно знаете. Но в этой конкретной задаче мы попросим вас вспомнить о цикле for, и совершать манипуляции именно с его помощью. А сделать нужно вот что: ввести с клавиатуры 10 чисел, заполнить ими список, а затем — вывести их в обратном порядке.
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Перестановочка подоспела
Игры со списками — лучшее времяпрепровождение! Реклама так себе получается? Пожалуй, лучшая реклама средства языка программирования — его частое применение. Рекламируем списки, решая задачу: задаем числа m и n, печатаем n строк и заполняем ими список. После этого совершаем незатейливую манипуляцию: переставляем m первых строк в конец списка
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Минимаксы в массивах
В жилмассиве Трещина — всего 20 домов, но их номера проставляются от фонаря. Получается, конец и начало Трещины формируются случайным образом. Потому как так интереснее и непредсказуемее! Пишем мини-эмулятор Трещины: определим его начало и конец. Для этого запихнем жилмассив в массив, заполним его номерами домов, и найдем среди них наибольший и наименьший.
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Это конец
Давайте создавать список строк, вводя их с клавиатуры, пока не надоест. Надоесть может в любой момент, и на этот случай нужно придумать специальное слово. Пускай этим словом будет «end», то есть «конец». А зачем нам эти строки, спросите вы. А мы ответим: затем, чтобы добавлять их в список, а затем выводить на экран.
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Обратный отсчёт
Мы за мир и против терроризма, но обратный счетчик все-таки напишем. Наша программа должна вести отсчёт от 30 до 0, а в конце будет «Бум!». Не беспокойтесь, «Бум!» будет мирным, беззвучным, текстовым. Программа должна уменьшать число 10 раз в секунду. Для того чтобы вставить в программу задержку, воспользуйтесь функцией Thread.sleep(100);
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Семейная перепись
Попробуем создать программу для семейной переписи. Для этого пишем класс Human с полями имя(String), пол(boolean), возраст(int), отец(Human), мать(Human). Для тренировки создайте объекты и заполните их данные так, чтобы получилось два дедушки, две бабушки, отец, мать, трое детей. Выведите объекты на экран.
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Переставь один модификатор static
Статическим может быть не каждый! И если вдруг модификатор static попадет туда, где ему не следует быть, может статься что угодно! В коде, который вы увидите перед собой, щелкнув по этой задаче, так и произошло: один static оказался не в том месте. Помогите программе скомпилироваться, переставьте модификатор туда, где он должен быть! Спасибо.

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

4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Не компилируется задача про котиков
Первый постулат межгалактической железной дороги гласит: если у котов возникли проблемы, бросайте всё, и решайте их. Ибо котики по природе своей не должны иметь проблем. Итак, у нас есть программа, которая выводит данные про котов на экран после введения их с клавиатуры. Но в ней что-то не так, и она не компилируется. Исправьте ошибку!
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
Меняем функциональность
В архиве пылится старенькая решённая задача. В ней нужно вводить строки, а затем, после введения пустой строки, все буквы в строках конвертировались в верхний регистр. Модернизируйте задачу: программа должна построить новый список. Если в строке чётное число букв, строка удваивается, если нечётное – утраивается. Ввод строк оставляем без изменений.
4
Задача
Java Syntax,  7 уровень,  12 лекция
Недоступна
В убывающем порядке
Упорядоченые изоморфы с планеты Линейный Хаос любят сортировать и принимают в свои ряды тех, кто хорошо умеет это делать. Вы можете возразить, что не собираетесь иметь с ними дело. Не получится: изоморфы часто проводят собеседования в ИТ-компании. Не игнорируем: пишем программу, которая вводит с клавиатуры 20 чисел и выводит их в убывающем порядке.
Комментарии (318)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
DENIS ILICHEV22 уровень
9 января, 09:44
В задаче "Обратный отсчёт" в WebIDE есть строка:
public static void main(String[] args) throws InterruptedException {
однако в IntelliJ IDEA (выбирая задачу через плагин) эта строка выглядит так:
public static void main(String[] args) {
Владимир8 уровень, Москва
17 января, 15:15
Подтверждаю. Нужно разрешить IDEA исправить.
Hovhannes8 уровень
вчера, 17:56
как????
Владимир8 уровень, Москва
вчера, 19:25
При добавлении строки с таймером задержки IDEA подчеркнёт красным слово sleep. Нажимаем на него левой кнопкой - слева появится красная лампочка с восклицательным знаком, нажимаем на неё и выбираем из появившегося списка "Add exception to method signature".
Андрей9 уровень, Новосибирск
26 декабря 2018, 21:06
Блин, хотел в последней задаче выпендриться с компараторами, а не получилось :(
Vilgelm Legus18 уровень
5 января, 00:10
Отчего же, все получается. Делаем стрим из примитивного массива, преобразуем его в объектный (boxed), сортируем (sorted(Collections.reverseOrder())), мапим в инт, запихиваем в новый массив. Массив из параметра заполняем в цикле новым массивом)
AlexEremenko13 уровень
5 января, 20:07
Всегда любил забивать гвозди электронным микроскопом ;)
Андрей9 уровень, Новосибирск
7 января, 03:49
а не получилось потому что ещё фигово владею стримами :)
Глеб15 уровень, Минск
13 января, 11:31
пузырёк рулит
Андрей9 уровень, Новосибирск
14 января, 05:21
Я с шейкером извратился)))
Андрей9 уровень, Новосибирск
26 декабря 2018, 18:21
text += ", пол: " + (this.sex ? "мужской" : "женский");
Можно ли считать сексизмом то, что мужской пол считается true ? :)
Юлия14 уровень, Санкт-Петербург
25 декабря 2018, 20:37
Не получится: изоморфы часто проводят собеседования в ИТ-компании на этом месте в голос заржала, годная шуточка не раз уже слышала, что хотя бы элементарные сортировки обязательно спрашивают у джунов
OlegZ8 уровень
24 декабря 2018, 13:06
Блин, не мытьём так катаньем. Ребята, если зависли на котиках с NullPointException, знайте, что у null нет методов, даже isEmpty()
OlegZ8 уровень
24 декабря 2018, 13:35
Вот и следующая задача с такой же проблемой. Я правильно понимаю, что валидатор не пропускает метод строки s.isEmpty(), когда s пустая строка. Ругается на NullPointerException в этой строке. То есть он интерпретирует пустую строку как null, и соответственно не может вызвать метод isEmpty() у null. А по идее s должна быть пустой строкой "", а не null. Неужто только я завис на этом моменте? Или я где-то туплю.. При этом если заменить условие у if (s.isEmpty()) на (s == null) то всё работает как предполагается.
ien8 уровень, Минск
26 декабря 2018, 11:17
isEmpty() и isBlank() проверяют как раз случаи с NULL и "" для стринга:
StringUtils.isBlank(null)      = true
StringUtils.isBlank("")        = true
StringUtils.isBlank(" ")       = true
StringUtils.isBlank("bob")     = false
StringUtils.isBlank("  bob  ") = false

StringUtils.isEmpty(null)      = true
StringUtils.isEmpty("")        = true
StringUtils.isEmpty(" ")       = false
StringUtils.isEmpty("bob")     = false
StringUtils.isEmpty("  bob  ") = false
Не делал еще задачу с котами, но в следующей за ней столкнулся с тем, что рашовский компилятор выдает ошибку. Запустил в IDEA - все ок. Проблема, сударь, не в бобине, ибо вы применяете методы к существующим объектам, а не к их (объектов) содержимому.
OlegZ8 уровень
29 декабря 2018, 07:18
Да, как-то не дотумкал сразу до очевидного, что нужно применить статический метод.
Alex8 уровень, Минск
позавчера, 11:11
В WebIDE работает вот так:
if  (name == null || name.isEmpty()) break;
Мишаня8 уровень, Москва
19 декабря 2018, 19:38
Так я познакомился с пузырьковой сортировкой в последней задаче... И в конце 7 лекции понял, что скоро Риша и/или Элли в скором времени будут рассказывать про коллекции
Мишаня8 уровень, Москва
18 декабря 2018, 18:32
Долго решал эту задачу с перестановочкой.... вчера начал, сегодня закончил, меньше суток с учетом сна и основной работы. доигрался до этого. Если кто решил по другому, давайте обсудим. Я конечно понимаю что сначала надо добавить, потом удалить начальные эл-ты до М значения(в одном цикле), но с циклом(точнее с удалением элемента) у меня не все гладко, постоянно перескакивал через элемент. Пробовал многие варианты, и остановился на методе, который делается вне цикла
array.subList(0, M).clear();
Артемий15 уровень, Санкт-Петербург
18 декабря 2018, 20:15
Я прибег к вложенному for, как в статье от профессора. Очень не хотел так, но когда гугление дало понять, что с reverse беда какая-то в java, начал писать перебор по памяти, вышло немного иначе, но суть та же.
Мишаня8 уровень, Москва
19 декабря 2018, 19:14
А можно код? мне хоть как-нибудь ознакомиться
Sid205018 уровень
24 декабря 2018, 22:12
я решил проще: цикл по коллекции. вставляю первый элемент в коллекцию и потом удаляю его.
Eugene Orlov10 уровень, Москва
12 января, 22:02
вариант попроще без вложенности, в первом цикле копируем и вставляем, во втором цикле смело удаляем, в третьем выводим
Алексей8 уровень, Москва
позавчера, 07:41
у меня так вот:
for (int i = 0; i < M; i++) {
    list.add(list.remove(0));
}
метод remove: 1. удаляет указанный по индексу элемент 2. меняет сдвигает массив на единицу 3. возвращает значение удаляемого элемента Так в цикле нужное количество раз удаляем в начале и добавляем в конец списка.
victor16 уровень
18 декабря 2018, 11:16
когда я вновь вижу капитана Боброва здарова боец ! опять жопа ... .в натуре как на войне
Dmitriy13 уровень, Москва
13 декабря 2018, 08:52
Кажется, я понял, почему цикл while еще существует. Не все циклы можно заменить фором. Фором вот это написать нельзя (В лист не будет добавляться первая строка): while (true) { String s = reader.readLine(); if (s.equals("end")) break; list.add(s); } Кто опровергнет?
Oleg14 уровень, Киев
14 декабря 2018, 00:30
for(;true;) { String s = reader.readLine(); if (s.equals("end")) break; list.add(s); }
Artem9 уровень
14 декабря 2018, 15:17
Или просто нужное тебе поле оставь пустым for (int i = 0; ; i++ ) { String s = reader.readLine(); if (s.equals("end")) break; list.add(s); }
Dmitriy13 уровень, Москва
14 декабря 2018, 15:56
Чёрт, да, сработало. Мне кажется я пробовал это. С фором то я на ты, но первый (или последний) эллемент списка не выводился/не попадал в список. что то упустил. спасибо.
14 декабря 2018, 20:54
for(String s = reader.readLine(); !s.equals("end"); s = reader.readLine()) list.add(s);
12 октября 2018, 12:46
Вывести числа в обратном порядке Уже бесить начинает!!! Не числа в обратном порядке а список
Dister24 уровень, Москва
18 октября 2018, 15:26
А разница в чем? Добавьте числа в список и выведите в обратном порядке. Они могли с тем же успехом написать просто "введите числа и выведите в обратном порядке", но уровень о списках, потому так.
24 октября 2018, 18:22
В том, что список в обратном порядке - это его элементы от конца к началу, а числа в обратном порядке - это от большего к меньшему.
Dister24 уровень, Москва
24 октября 2018, 18:32
Так всем плевать на ваш список. У вас задача ввести числа, отсортировать от большего к меньшему и вывести. Список уже внутренняя реализация, которую вам никто и никогда не будет озвучивать в задании.
28 октября 2018, 17:35
Вы задачу решали? Валидатору надо как раз вывести список в обратном порядке а не числа.
Dister24 уровень, Москва
28 октября 2018, 18:51
А как иначе вывести их в обратном порядке, кроме как добавить в хранилище?
29 октября 2018, 07:17
К чему этот вопрос??? Вы поняли суть моего возмущения по поводу описания задачи? В задаче сказано "ввести с клавиатуры 10 чисел, заполнить ими список, а затем — вывести их в обратном порядке" - судя по контексту вывести надо числа в обратном порядке, а валидатор ждет вывод списка в обратном порядке.
Гринів Ігор18 уровень, Киев
29 октября 2018, 16:27
хмм.. Как по мне ваши претензии не обоснованы, чтоб понять то как вы написали нужно чтоб в задаче было написано так: "ввести с клавиатуры 10 чисел, заполнить ими список, а затем — вывести их в обратном порядке убывания"
30 октября 2018, 05:12
Суть претензии в том, что данную трактовку можно понять и так и так. И судя по плюсам моего комментария - я не один такой.
Гринів Ігор18 уровень, Киев
30 октября 2018, 10:19
как по мне это банальная невнимательность, я тоже попадался на том что не правильно понял суть предложения, но поразмыслив понимал что не прав я, а не описание. Обратите внимание на последнее в списке задание "В убывающем порядке" там почти тоже задание, только конкретно указано что нужно числа вывести в убывающем порядке. Одной из задач таких описаний, это научить вас как технического специалиста понимать суть написанного точно и не додумывать от себя. Это тут обучение проходит в игровой манере, вы играетесь с задачками, читаете прикольные диалоги, в реальной технической документации все сухо и конкретно. Вот и заставляют вас в игровой манере привыкать что задача есть задача, никто ее разжевывать не собирается и понимать ее нужно конкретно.
Вадим13 уровень
1 ноября 2018, 21:53
Тоже не понимаю суть претензий. Написано, вывести числа в обратном порядке - значит в противоположном порядке от того, в каком они были изначально. Где тут вообще сказано про сортировку?
2 ноября 2018, 04:59
Задача 1704: Переверни массив 1. Создать массив на 10 чисел. 2. Ввести с клавиатуры 10 чисел и записать их в массив. 3. Вывести на экран элементы массива в обратном порядке, каждое значение выводить с новой строки. Задача 1709 (та самая о которой идет речь в моем комментарии): Вывести числа в обратном порядке 1. Ввести с клавиатуры 10 чисел и заполнить ими список. 2. Вывести их в обратном порядке. Каждый элемент - с новой строки. 3. Использовать только цикл for. Задачи по сути одинаковые, описание разное. В первом варианте нет никаких сомнений в том, что выводить надо элементы массива. Во втором варианте меня сбивает с толку (судя по плюсам комментария не только меня) фраза "Вывести ИХ (числа) в обратном порядке. Обратный порядок элементов списка и обратный порядок чисел - для меня не одно и тоже ИМХО! P.s. Дело не в невнимательности а в восприятии. У меня большой опыт работы техническим специалистом, в адекватном ТЗ подобного быть точно не может. P.p.s ВАДИМ: Про сортировку здесь никто и не говорит, можно и без нее вывести числа в порядке убывания.
Вадим13 уровень
3 ноября 2018, 10:13
Андрей, я понял, что речь про 1709, но не могу понять, почему Вас сбивает с толку фраза "в обратном порядке". Здесь все достаточно однозначно - ввели в одном порядке, выводим - в обратном, то есть наоборот. Числа, которые вы добавляете в список, разве не являются его элементами? Я вот не вижу разницы между обратным порядком следования элементов списка и обратным порядком следования чисел списка. Речь тут именно про порядок следования. Если бы авторы задачи хотели, чтоб вы вывели их от большего к меньшему, то написали бы отсортировать список, либо вывести в порядке возрастания (убывания), как это уже было в прошлых задачах
6 ноября 2018, 06:45
"Я вот не вижу разницы между обратным порядком следования элементов списка и обратным порядком следования чисел списка" В задачи нет ни слова про "обратный порядок чисел списка", только обратный порядок их (чисел). То, что авторы могли написать иначе - так к этому и претензия. Я привел пример двух задача в которых задание однотипное но сформулировано по разному.
Даниил18 уровень
6 ноября 2018, 18:15
Поддерживаю Андрея. Ещё не решал задачи, но прочитав условие человек может обоснованно сказать что просят вот что: Пример ввода: 23, 34, 45 Пример вывода: 54, 43, 32 "Вывести число в обратном порядке", к примеру 123, можно расценить как 321
Вадим13 уровень
6 ноября 2018, 20:25
их - это те самые 10 чисел, которые были помещены в список. Или там про что-то еще речь идет, кроме тех 10 чисел, о чем можно было бы сказать "их"? Таким образом, мы считаем их элементами массива/списка. А если они являются элементами массива/списка, то чем эта формулировка отличается от Вывести на экран элементы массива в обратном порядке, с которой, как Вы сказали выше, нет никаких сомнений?
Вадим13 уровень
6 ноября 2018, 20:29
Даниил, то, что Вы написали называется Вывести цифры числа в обратно порядке, либо Вывести набор символов, содержащий цифры числа в обратном порядке.
20 ноября 2018, 08:10
Вадим! - Вы серьезно? "их - это те самые 10 чисел, которые были помещены в список. ... Таким образом, мы считаем их элементами массива/списка." По вашей логике ИХ можно считать чем угодно начиная от битов в памяти и заканчивая светодиодами в экране. Это задача, здесь не должно быть "додумай сам единственно правильный вариант постановки задачи". Вы говорите нам о том, как конкретно вы понимаете эту задачу. Я же говорю вам о том, что разные люди понимают ее по разному. А избежать этого можно, немного поправив описание. Допустите эту мысль в свою голову и вы все поймете. P.s. Даниил привел еще один хороший пример как можно интерпретировать задачу.
Вадим13 уровень
20 ноября 2018, 23:29
Я говорил в конкретном контексте, причем тут биты в памяти вообще? Ввести 10 чисел, вывести их в обратном порядке... их - это и есть те 10 чисел. Или вы поняли про светодиоды на экране? Даниил вообще написал "Вывести число в обратном порядке", в условии задачи же речь идет об элементах списка, это вообще-то разные вещи... Специально вбил в поисковик текст задачи и посмотрел около десятка ссылок - везде одинаковая реализация, никто порядок цифр в числах списка не меняет
22 ноября 2018, 05:10
Вадим! Давайте следовать вашей логике. 1. Вывести элементы списка в обратном порядке - это что значит? 2. Вывести числа в обратном порядке - это что значит? 3. Если это одно и тоже, какой вариант постановки задачи будет более правильным и почему?
Вадим13 уровень
22 ноября 2018, 21:21
Андрей, я рассматриваю задачу 1709 как совокупность условий 1 и 2, а именно: 1) Ввести 10 чисел в список 2) Вывести их в обратном порядке Поэтому, для меня Ваши пункты 1 и 2 - одно и тоже, потому что, введенные числа в список и элементы списка - в данной задаче - одно и тоже. Или Вы с этим не согласны? Если бы авторы задачи хотели, чтоб мы перевернули каждое число в списке, то они так бы и написали Если я Вас не убедил - найдите в сети сборник Душистова Д. В. и посмотрите задачи №2 и №4 (или №31). Посмотрите формулировки, описания и решения, а потом сравните с тем, что написано в условии задачи 1709
23 ноября 2018, 10:25
Вадим! Пожалуйста сравните нашу задачу и задачу N2 из сборника Душистова специально для меня, только с цитатами из обеих задач!? На счет остальных задач согласен, ничего общего с описанием нашей задачи они не имеют.
Вадим13 уровень
24 ноября 2018, 00:21
Андрей, не вопрос Входные данные:
12
23
34
Выходные данные:
34
23
12
Формулировка задачи №2: Вывести на экран три числа в порядке, обратном вводу Формулировка нашей задачи: Ввести с клавиатуры 10 чисел и заполнить ими список. Вывести их в обратном порядке Далее Входные данные:
341
Выходные данные:
143
Формулировка задачи №4: Получить реверсную запись трехзначного числа Как видите, формулировка задачи по трансформации числа 341 в 143 абсолютно отличается от формулировки задачи №2 и обсуждаемой здесь По поводу цитат из обеих задач - я надеюсь, Вы не ожидаете добуквенного совпадения условий? Итак же понятно, что суть не изменится, будь там 10 чисел, а не 3. Или будь там список или массив, а не просто переменные
27 ноября 2018, 07:29
Вадим, вы говорите о правильной постановке задачи. Вы апеллируете к сборнику задач Душистова как к примеру правильной постановки задач. Предлагаете мне не придираться к буквам. Но вы сами выдернули из контекста целые слова, не буквы!!! Задача №2: Вывести на экран три числа в порядке, обратном вводу Наша задача: Ввести с клавиатуры 10 чисел и заполнить ими список. Вывести их в обратном порядке Порядок, обратный вводу - это достаточно полное описание того, что необходимо сделать. В нашей задаче такое описание отсутствует. Что вы пытаетесь доказать? То, что конкретно вы однозначно правильно понимаете нашу задачу? Если так, то я с этим никогда не спорил. Считаю дискуссию нужно прекращать, это уже похоже на флуд. Если есть желание продолжить, пишите в ЛС.
Вадим13 уровень
29 ноября 2018, 22:39
Андрей, Вы сами просили сравнить задачи с цитатами. Что Вы ожидали? Порядок, обратный вводу - это достаточно полное описание того, что необходимо сделать. В нашей задаче такое описание отсутствует. Вот как раз с этим я и не согласен. "Ввести с клавиатуры 10 чисел и заполнить ими список" - это разве не ввод? А про обратный порядок написано в следующей строке задания...