/
akryukov
/
programming-basics
Обзор
Документация
Войти
/
akryukov
/
programming-basics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
java/tasks 25.html
940 строк
53 KB
akryukov92
rework source code of task 5108 to clarify error if program failed on writing file
21 ноя 2025, 10:22
21 ноя 2025, 10:22
7aea720
Код
Авторство
О чём код?
<!DOCTYPE html><html lang="ru"><head><meta charset='utf-8'/><title>25 Коллекции</title><style>.check_single { margin:15px; border:1px solid black; padding:5px; width:calc(100% - 40px); } sqrt val { border-top: 1px solid black; } sqrt:before { content:"\221A"; } .section { counter-reset:section; } .section h3:after { counter-increment:section; content: " " counter(section); } table { border-collapse:collapse; } .check_values, .check_values_v2 { width:100%; counter-reset:test_case; } .check_values td:first-child::before { counter-increment:test_case; content: counter(test_case); } table td, table th { border:1px solid black; text-align:center; } .check_values td:first-child, .check_values_v2 td:first-child{ width:40px; } .check_values td, .check_values_v2 td { max-width: 450px; } .lab_nav ol { list-style:none; } .nav { position:fixed; top:0; right:0; margin:15px; clear:both; } .nav ul{ list-style-type:none; padding:0; float:left; } .nav li { margin:2px; border:1px solid black; } .nav li a { display:block; padding:7px; } .task_block { width:80%; page-break-inside:avoid; padding:10px; display:block; } .task_block:target{ background-color:lightgrey; } .task_block:target .task_id{ color:white; } .task_id { float:right; color:lightgrey; } .quiz_block { width:80%; } .quiz_block:target{ background-color:lightgrey; } .task_desc { margin:5px; } .example_image { width:200px; } .lab_nav { width:80%; overflow:auto; } .check_values .preformatted, .preformatted { font-family:monospace; white-space-collapse:preserve; white-space:pre; text-wrap:pretty; text-align:left; padding:10px; } .stream_values tr td:nth-child(3) { border-top-width:0; border-bottom-width:0; text-align:left; } .stream_values tr:nth-child(2) td:nth-child(2) { border-top-width:0; border-bottom-width:0; text-align:right; } .stream_values tr td:nth-child(1){ border-top-width:0; border-bottom-width:0; text-align:right; } .stream_values tr.test_row td:nth-child(2){ text-align:right; } .stream_values tr td:nth-child(2){ border-top-width:0; border-bottom-width:0; text-align:left; } .stream_values .preformatted{ padding: 0; } .stream_values tr.test_row td { border-top-width:1px; } .stream_values tr.test_row td:first-of-type { border-top-width:1px; border-bottom-width:1px; text-align:center; width:15px; } .stream_values tr:last-of-type td { border-bottom-width:1px; } .stream_values { width:100%; } formula { font-weight:bold; text-align:center; vertical-align:middle; } fraction { display:inline-block; text-align:center; vertical-align:middle; font-weight:bold; } formula .abs{ border-left: solid black 1px; border-right: solid black 1px; padding: 2px; } numerator { display:block; border-bottom:2px solid black; } denominator { display:block; } .comment{ color:darkgrey; } .step{ display:none; } .step:last-child, .step:target{ display:block; } .step:target ~ .step:last-child{ display:none; } .console{ background-color:black; color:white; width:300px; } .zoom{ background-color:lightgrey; font-size:40pt; padding:0 10px; } .task_block:target .zoom { background-color:white; }</style><meta name="author" content="Подборка задач, выбор порядка подачи и подготовка тестовых данных - Крюков Александр, Омск 2013-2019"/></head><body class='section'><a name='heading'><h1>Коллекции</h1></a><div class='lab_nav'>Другие темы<ol> <li>1 <a href='tasks 1.html'>Печать текста на экран</a></li> <li>2 <a href='tasks 2.html'>Заполнение шаблона данными от пользователя</a></li> <li>3 <a href='tasks 3.html'>Организация вычислений</a></li> <li>4 <a href='tasks 4.html'>Проверка исходных данных</a></li> <li>5 <a href='tasks 5.html'>Запуск программы с известными исходными данными</a></li> <li>6 <a href='tasks 6.html'>Взаимоисключающие случаи</a></li> <li>7 <a href='tasks 7.html'>Работа с интервалами значений</a></li> <li>8 <a href='tasks 8.html'>Реорганизация повторяющихся действий</a></li> <li>9 <a href='tasks 9.html'>Обработка неизвестного объема данных</a></li> <li>10 <a href='tasks 10.html'>Вложенные циклы</a></li> <li>11 <a href='tasks 11.html'>Базовые операции с массивами</a></li> <li>12 <a href='tasks 12.html'>Перестановки элементов массива</a></li> <li>13 <a href='tasks 13.html'>Использование числовых массивов</a></li> <li>14 <a href='tasks 14.html'>Вычисление агрегатов</a></li> <li>15 <a href='tasks 15.html'>Поиск в массиве</a></li> <li>16 <a href='tasks 16.html'>Сортировка вставкой</a></li> <li>17 <a href='tasks 17.html'>Строки</a></li> <li>18 <a href='tasks 18.html'>Чтение файлов</a></li> <li>19 <a href='tasks 19.html'>Запись в файлы</a></li> <li>20 <a href='tasks 20.html'>Возврат значения</a></li> <li>21 <a href='tasks 21.html'>Перехват исключений</a></li> <li>22 <a href='tasks 22.html'>Выбрасывание исключений</a></li> <li>23 <a href='tasks 23.html'>Составные типы данных</a></li> <li>24 <a href='tasks 24.html'>Внутреннее состояние</a></li> <li>25 <a href='tasks 25.html'>Коллекции</a></li> <li>26 <a href='tasks 26.html'>Рекурсия</a></li> <li>27 <a href='tasks 27.html'>Даты</a></li> <li>28 <a href='tasks 28.html'>Комбинаторика</a></li> <li>29 <a href='tasks 29.html'>SQL СУБД</a></li> <li>30 <a href='tasks 30.html'>Псевдослучайные числа</a></li> <li>31 <a href='tasks 31.html'>Реализация стандартных интерфейсов</a></li> <li>32 <a href='tasks 32.html'>Использование самописных интерфейсов</a></li> </ol></div><div class='nav'><ul><li><a href='#heading'>^</a></li><li><a href='#task5087' class='example'>1*</a><li><a href='#task3305'>2</a><li><a href='#task8317'>3</a><li><a href='#task4568' class='example'>4*</a><li><a href='#task9990'>5</a><li><a href='#task1056' class='example'>6*</a><li><a href='#task7738'>7</a><li><a href='#task3146'>8</a><li><a href='#task9092'>9</a><li><a href='#task6590'>10</a><li><a href='#task1753'>11</a></ul></div><div id='task5087' class='task_block'> <div class='task_id'>5087</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит 4 фрагмента текста. Все эти фрагменты нужно хранить в памяти. Когда пользователь закончит вводить данные, нужно напечатать на экран все фрагменты, которые пользователь вводил ранее. </div> <table class='stream_values'> <tr><th>Номер теста</th><th>Исходные данные</th><th>Результат</th></tr> <tr class='test_row'><td rowspan='5'>1</td><td>one </td><td> </td></tr> <tr><td>two </td><td> </td></tr> <tr><td>three </td><td> </td></tr> <tr><td>three </td><td> </td></tr> <tr><td></td><td class='preformatted'>one two three three </td></tr> <tr class='test_row'><td rowspan='5'>2</td><td>five </td><td> </td></tr> <tr><td>six </td><td> </td></tr> <tr><td>seven </td><td> </td></tr> <tr><td>six </td><td> </td></tr> <tr><td></td><td class='preformatted'>five six seven six </td></tr> </table> <div class='task_desc'> Чтобы пользоваться коллекцией, нужно импортировать её класс. Для этого в начале файла добавьте команду: </div> <div class='check_single preformatted'>import java.util.ArrayList;</div> <div class='task_desc'> Если в начале файла у вас присутствует команда package, значит команду импортирования нужно написать строкой ниже. </div> <div class='task_desc'> Тело метода main: </div> <div class='check_single preformatted'>Scanner s = new Scanner(Systemin); ArrayList<String> fragments;//объявляю переменную для хранения листа строк fragments = new ArrayList<>();//создаю экземпляр класса листа String line = s.nextLine(); fragments.add(line);//добавляю элемент в лист line = s.nextLine(); fragments.add(line); line = s.nextLine(); fragments.add(line); line = s.nextLine(); fragments.add(line); //печать элементов листа на экран int i = 0; while (i < fragments.size()) {//ограничение цикла - количество элементов в листе System.out.print(fragments.get(i) + " ");//печатаю элемент листа на экране i = i + 1; } </div> </div> <div id='task3305' class='task_block'> <div class='task_id'>3305</div> <h3>Задача</h3> <div class='task_desc'> Дано два целых числа first и second. Нужно сформировать лист, содержащий все целые числа между указанными по возрастанию. Исходные числа нужно добавить в лист. </div> <ol start='1'><li>Реализуйте публичный статический метод expandRange</li><li>Он принимает в качестве аргумента 2 целых числа и возвращает ArrayList целых чисел.</li></ol><div class='task_desc'> В методе main класса Program добавьте следующий код: </div> <div class='check_single preformatted'>ArrayList<Integer> result = expandRange(0, 10); int i = 0; while (i < result.size()) { System.out.print(result.get(i) + " "); i = i + 1; } System.out.println("\n------------"); ArrayList<Integer> result2 = expandRange(11, 2); for (int j = 0; j < result2.size(); j++) { System.out.print(result2.get(j) + " "); } System.out.println("\n------------"); ArrayList<Integer> result3 = expandRange(-3, 4); for (Integer item : result3) { System.out.print(item + " "); } System.out.println("\n------------"); for (Integer item : expandRange(-100, 100)) { System.out.print(item + " "); } </div> <div class='task_desc'> В результате запуска программы должно быть выведено сообщение: </div> <div class='check_single preformatted'>0 1 2 3 4 5 6 7 8 9 10 ------------ 2 3 4 5 6 7 8 9 10 11 ------------ -3 -2 -1 0 1 2 3 4 ------------ -100 -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 </div> </div> <div id='task8317' class='task_block'> <div class='task_id'>8317</div> <h3>Задача</h3> <div class='task_desc'> Дано положительное целое число X. Нужно найти все его делители. </div> <ol start='1'><li>Реализуйте статический метод getDividers</li><li>Он принимает в качестве аргумента 1 целое число и возвращает ArrayList целых чисел.</li><li>Если X отрицательный, нужно выбросить исключение IllegalArgumentException.</li></ol><div class='task_desc'> В методе main класса Program добавьте следующий код: </div> <div class='check_single preformatted'>System.out.println("Делители числа " + 6 + ":"); List<Integer> dividers = getDividers(6); for (Integer div : dividers) { System.out.print(div + " "); } System.out.println("\nДелители числа " + 385 + ":"); dividers = getDividers(385); for (Integer div : dividers) { System.out.print(div + " "); } System.out.println("\nДелители числа " + 1 + ":"); dividers = getDividers(1); for (Integer div : dividers) { System.out.print(div + " "); } try { System.out.println("\nДелители числа " + 0 + ":"); dividers = getDividers(0); System.out.println("Это сообщение не должно быть напечатано"); } catch (IllegalArgumentException e) { System.out.println("Ожидалось сообщение : Делимое число должно быть неотрицательным"); System.out.println("Фактическое сообщение: " + e.getMessage()); } try { System.out.println("\nДелители числа " + -9 + ":"); dividers = getDividers(-9); System.out.println("Это сообщение не должно быть напечатано"); } catch (IllegalArgumentException e) { System.out.println("Ожидалось сообщение : Делимое число должно быть неотрицательным"); System.out.println("Фактическое сообщение: " + e.getMessage()); } </div> <div class='task_desc'> В результате запуска программы должно быть выведено сообщение: </div> <div class='check_single preformatted'>Делители числа 6: 1 2 3 6 Делители числа 385: 1 5 7 11 35 55 77 385 Делители числа 1: 1 Делители числа 0: Ожидалось сообщение : Делимое число должно быть неотрицательным Фактическое сообщение: Делимое число должно быть неотрицательным Делители числа -9: Ожидалось сообщение : Делимое число должно быть неотрицательным Фактическое сообщение: Делимое число должно быть неотрицательным </div> </div> <div id='task4568' class='task_block'> <div class='task_id'>4568</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит 4 фрагмента текста. В памяти нужно хранить только различные фрагменты из всех, которые пользователь ранее вводил. </div> <table class='stream_values'> <tr><th>Номер теста</th><th>Исходные данные</th><th>Результат</th></tr> <tr class='test_row'><td rowspan='5'>1</td><td>red </td><td> </td></tr> <tr><td>green </td><td> </td></tr> <tr><td>red </td><td> </td></tr> <tr><td>green </td><td> </td></tr> <tr><td></td><td class='preformatted'>red green </td></tr> <tr class='test_row'><td rowspan='5'>2</td><td>red </td><td> </td></tr> <tr><td>red </td><td> </td></tr> <tr><td>blue </td><td> </td></tr> <tr><td>blue </td><td> </td></tr> <tr><td></td><td class='preformatted'>red blue </td></tr> <tr class='test_row'><td rowspan='5'>3</td><td>a </td><td> </td></tr> <tr><td>a </td><td> </td></tr> <tr><td>a </td><td> </td></tr> <tr><td>a </td><td> </td></tr> <tr><td></td><td class='preformatted'>a </td></tr> </table> <div class='task_desc'> Уникальность элементов достигается за счет использования HashSet. </div> <div class='task_desc'> В начале файла добавьте команду: </div> <div class='check_single preformatted'>import java.util.HashSet; </div> <div class='task_desc'> Тело метода main: </div> <div class='check_single preformatted'>Scanner s = new Scanner(Systemin); HashSet<String> fragments; //объявляю переменную для хранения множества строк fragments = new HashSet<>();//создаю экземпляр класса множества String line = s.nextLine(); fragments.add(line);//добавляю элемент во множество line = s.nextLine(); fragments.add(line); line = s.nextLine(); fragments.add(line); line = s.nextLine(); fragments.add(line); //печать элементов множества на экран //из за того, что к элементам нельзя обращаться по индексу, // нужно использовать специальный синтаксис цикла for (String item : fragments) { System.out.print(item + " "); } </div> </div> <div id='task9990' class='task_block'> <div class='task_id'>9990</div> <h3>Задача</h3> <div class='task_desc'> Файл с исходными данными содержит фрагменты текста, написанные в столбик без дополнительного оформления. Нужно вывести слова через запятую без повторений. Порядок слов может отличаться. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (filename)</th><th>Результат</th></tr> <tr><td>1</td><td><a href="files/task9990/test1.txt" target="_blank">открыть в новой вкладке<br>files/task9990/test1.txt</a></td><td class='preformatted'>сталь, алюминий, золото, ртуть, медь, железо </td></tr> <tr><td>2</td><td><a href="files/task9990/test2.txt" target="_blank">открыть в новой вкладке<br>files/task9990/test2.txt</a></td><td class='preformatted'>пластик, полиэтилен, полистирол, пенопласт, пластмасса, поролон </td></tr> <tr><td>3</td><td><a href="files/task9990/test3.txt" target="_blank">открыть в новой вкладке<br>files/task9990/test3.txt</a></td><td class='preformatted'>Файл не найден \files\task9990\test3.txt </td></tr> <tr><td>4</td><td><a href="files/task9990/test4.txt" target="_blank">открыть в новой вкладке<br>files/task9990/test4.txt</a></td><td class='preformatted'>два, один, три, четыре </td></tr> </table> </div> <div id='task1056' class='task_block'> <div class='task_id'>1056</div> <h3>Задача</h3> <div class='task_desc'> Дан массив строк. Посчитать сколько раз встречается каждый из элементов. Элементы в результате должны присутствовать не более одного раза. Порядок вывода может отличаться. </div> <div class='task_desc'> Для решения задачи подходит словарь где ключ - текст, а значение - количество повторений. Чтобы ей воспользоваться, нужно импортировать класс. </div> <div class='check_single preformatted'>import java.util.HashMap;</div> <div class='task_desc'> Коллекция объявляется и инициализируется так: </div> <div class='check_single preformatted'>HashMap<String, Integer> stats = new HashMap<>();</div> <div class='task_desc'> Чтобы добавить элемент, нужно вызвать метод put </div> <div class='check_single preformatted'>stats.put("a", 42);//по ключу 'a' добавлено значение 42</div> <div class='task_desc'> Чтобы проверить, есть ли элемент в коллекции, нужно вызвать метод containsKey. Он вернет true, если такой элемент есть, и false в противном случае. </div> <div class='check_single preformatted'>stats.containsKey("a");</div> <div class='task_desc'> Чтобы прочитать значение элемента, нужно вызвать метод get </div> <div class='check_single preformatted'>int value = stats.get("a"); //читаем значение по ключу 'a'</div> <div class='task_desc'> Чтобы просмотреть все элементы, нужно использовать цикл foreach. Например: </div> <div class='check_single preformatted'>for (HashMap.Entry<String, Integer> entry : stats.entrySet()) { System.out.println(entry.getKey() + " " + entry.getValue()); }</div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (data)</th><th>Результат</th></tr> <tr><td>1</td><td>a s d f a s a</td><td class='preformatted'>Обрабатываю значение: a Это новое значение. Создаю новую запись в словаре Обрабатываю значение: s Это новое значение. Создаю новую запись в словаре Обрабатываю значение: d Это новое значение. Создаю новую запись в словаре Обрабатываю значение: f Это новое значение. Создаю новую запись в словаре Обрабатываю значение: a Это известное значение. Новое количество повторений: 2 Обрабатываю значение: s Это известное значение. Новое количество повторений: 2 Обрабатываю значение: a Это известное значение. Новое количество повторений: 3 a 3 s 2 d 1 f 1 </td></tr> <tr><td>2</td><td>as as df df gh gh</td><td class='preformatted'>Обрабатываю значение: as Это новое значение. Создаю новую запись в словаре Обрабатываю значение: as Это известное значение. Новое количество повторений: 2 Обрабатываю значение: df Это новое значение. Создаю новую запись в словаре Обрабатываю значение: df Это известное значение. Новое количество повторений: 2 Обрабатываю значение: gh Это новое значение. Создаю новую запись в словаре Обрабатываю значение: gh Это известное значение. Новое количество повторений: 2 gh 2 as 2 df 2 </td></tr> </table> </div> <div id='task7738' class='task_block'> <div class='task_id'>7738</div> <h3>Задача</h3> <div class='task_desc'> Исходный файл содержит слова, написанные в столбик без дополнительного оформления. Нужно вывести слово, которое встречается чаще других. Если таких слов несколько, вывести все. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (filename)</th><th>Результат</th></tr> <tr><td>1</td><td><a href="files/task7738/test1.txt" target="_blank">открыть в новой вкладке<br>files/task7738/test1.txt</a></td><td class='preformatted'>Читаю данные из файла \files\task7738\test1.txt Предполагаемый максимум в ключе алюминий сталь 2 алюминий 3 золото 1 ртуть 1 медь 1 железо 1 Максимальное количество повторений в ключе алюминий равно 3 Все ключи с таким же количеством повторений: алюминий </td></tr> <tr><td>2</td><td><a href="files/task7738/test2.txt" target="_blank">открыть в новой вкладке<br>files/task7738/test2.txt</a></td><td class='preformatted'>Читаю данные из файла \files\task7738\test2.txt Предполагаемый максимум в ключе полиэтилен пластик 3 полиэтилен 3 полистирол 1 пенопласт 2 пластмасса 5 Новый максимум - в ключе пластмасса поролон 2 Максимальное количество повторений в ключе пластмасса равно 5 Все ключи с таким же количеством повторений: пластмасса </td></tr> <tr><td>3</td><td><a href="files/task7738/test3.txt" target="_blank">открыть в новой вкладке<br>files/task7738/test3.txt</a></td><td class='preformatted'>Читаю данные из файла \files\task7738\test3.txt Файл не существует </td></tr> <tr><td>4</td><td><a href="files/task7738/test4.txt" target="_blank">открыть в новой вкладке<br>files/task7738/test4.txt</a></td><td class='preformatted'>Читаю данные из файла \files\task7738\test4.txt Предполагаемый максимум в ключе четыре два 1 один 1 три 1 четыре 1 Максимальное количество повторений в ключе четыре равно 1 Все ключи с таким же количеством повторений: два один три четыре </td></tr> <tr><td>5</td><td><a href="files/task7738/test5.txt" target="_blank">открыть в новой вкладке<br>files/task7738/test5.txt</a></td><td class='preformatted'>Читаю данные из файла \files\task7738\test5.txt Предполагаемый максимум в ключе void using 2 Новый максимум - в ключе using static 4 Новый максимум - в ключе static void 1 public 3 class 1 Максимальное количество повторений в ключе static равно 4 Все ключи с таким же количеством повторений: static </td></tr> </table> </div> <div id='task3146' class='task_block'> <div class='task_id'>3146</div> <h3>Задача</h3> <div class='task_desc'> В файле слова, которые могут повторяться. Нужно запомнить сколько раз встречается каждое слово. Отобразить только слова, которые встречаются больше одного раза. </div> <ol start='1'><li>Определить, сколько раз встречается каждое слово</li><li>Определить максимальное количество повторений</li><li>Вывести числа, начиная с максимального количества повторений и до 2 включительно</li><li>Для каждого числа вывести слова, которые встречаются столько раз</li><li>Если нет слов, которые бы встречались столько раз, то пропустить число</li></ol><table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (filename)</th><th>Результат</th></tr> <tr><td>1</td><td><a href="files/task3146/test1.txt" target="_blank">открыть в новой вкладке<br>files/task3146/test1.txt</a></td><td class='preformatted'>Обработка файла завершена. Максимальное количество повторений: 4 Слова, которые встречаются 4 раз: вася Слова, которые встречаются 3 раз: петя Слова, которые встречаются 2 раз: маша </td></tr> <tr><td>2</td><td><a href="files/task3146/test2.txt" target="_blank">открыть в новой вкладке<br>files/task3146/test2.txt</a></td><td class='preformatted'>Обработка файла завершена. Максимальное количество повторений: 3 Слова, которые встречаются 3 раз: маша вася петя </td></tr> <tr><td>3</td><td><a href="files/task3146/test3.txt" target="_blank">открыть в новой вкладке<br>files/task3146/test3.txt</a></td><td class='preformatted'>Обработка файла завершена. Максимальное количество повторений: 19 Слова, которые встречаются 19 раз: балда Слова, которые встречаются 18 раз: и не Слова, которые встречаются 16 раз: ты Слова, которые встречаются 15 раз: да Слова, которые встречаются 12 раз: поп Слова, которые встречаются 11 раз: а с на оброк за Слова, которые встречаются 10 раз: бесенок Слова, которые встречаются 9 раз: что тебе он Слова, которые встречаются 8 раз: в Слова, которые встречаются 7 раз: у Слова, которые встречаются 6 раз: говорит вот к так Слова, которые встречаются 5 раз: мне море пошел со лоб Слова, которые встречаются 4 раз: стал балду как себе щелка ему моря кобылу бес будет по Слова, которые встречаются 3 раз: ее было вылез полный мой деду погоди до мною мешок его тут идет балде все нам сам опять там палку Слова, которые встречаются 2 раз: делать ест есть снесешь тот испугался ни нас стало слушай под черти три братца б победу лесок ж сел моего старый чего о брата тягаться работник от чтоб чертям уж весь попадья спит ум это такого лишь два веревкой где кто зайка про морщить видишь балдою только рассказывать куда тем него из </td></tr> <tr><td>4</td><td><a href="files/task3146/test4.txt" target="_blank">открыть в новой вкладке<br>files/task3146/test4.txt</a></td><td class='preformatted'>Обработка файла завершена. Максимальное количество повторений: 153 Слова, которые встречаются 153 раз: и Слова, которые встречаются 133 раз: в Слова, которые встречаются 75 раз: на Слова, которые встречаются 70 раз: с Слова, которые встречаются 60 раз: а Слова, которые встречаются 59 раз: не Слова, которые встречаются 50 раз: князь Слова, которые встречаются 41 раз: он Слова, которые встречаются 32 раз: гости Слова, которые встречаются 31 раз: царь Слова, которые встречаются 28 раз: за Слова, которые встречаются 27 раз: ты Слова, которые встречаются 25 раз: как к море Слова, которые встречаются 24 раз: вот да я Слова, которые встречаются 23 раз: что Слова, которые встречаются 22 раз: гвидон их Слова, которые встречаются 21 раз: салтан по Слова, которые встречаются 20 раз: говорит все Слова, которые встречаются 17 раз: лебедь Слова, которые встречаются 16 раз: ткачиха Слова, которые встречаются 14 раз: мимо под мы Слова, которые встречаются 13 раз: у весь во Слова, которые встречаются 12 раз: бабарихой ль свет уж чудо бабой поварихой ж теперь ответ морю Слова, которые встречаются 11 раз: острова тебе диво ему моря путь берег тут сватьей остров нам свете там Слова, которые встречаются 10 раз: его она всё свой белка салтана царя день вы три царица же Слова, которые встречаются 9 раз: ей бежит куда морем какое корабельщики Слова, которые встречаются 8 раз: буяна но весело худо богатыря ними сидит славного объехали есть над ветер полетел глаз поклон зовет так орешки Слова, которые встречаются 7 раз: город ней нем дядька тот меня себе грызет мой это князю из Слова, которые встречаются 6 раз: судно им тридцать злится царство вышли потом плывет раз вышел дивится лишь чудный видит долго гуляет будто б лежит поет велят хотят стоит вод царю отвечает то чем Слова, которые встречаются 5 раз: гостей великаны горя черномор бреге царевич здравствуй чешуе тогда удалые идет молодые горит добрый ни моя стол блестит около повариха чуду изумруд равны звезда пустой пушки косой гонца красавцы синя двор велит подбор можно белая лбу беге шумит Слова, которые встречаются 4 раз: окияну держать царицу вопрошает издали пристани палят кораблю подгоняет венце прекрасный лови глядь вздуется съедает грусть-тоска кораблик месяц со нас ее бурливо ну салтану вам пава ездили удел плывете для иль волнах нет дави господа ой сажает прислал опять ведете сын мать поверх мне песенки сама-то славному парусах торговали дворец глядят землю всем торг жар поит чему хлынет видна горе заставе острове простые ненастный пристать тих вон гости-господа срок кормит страна золотые величава пристают подымет ядра опечалился текучих ладно только ель окошко была житье пошел сидят чистый вой Слова, которые встречаются 3 раз: погощу коршун наш перед затмевает хотел словно днем журчит кабы пустились стал через домой далек пир видят встречает злате идут жив скорлупки большого удалец освещает ведет всего ходит отвесть девица дозором шумном лице выступает будь думой одна бог сел обрызгала буду хрустальный бы сводит престоле лук навещу прямо речь-то расплеснется спокойно всех сияя град гонец желанная навестить люди царевна правду садами тебя реченька был бьется города опустился крутого своей ли волна церквами дом ведь пустить божий растет коршуна при дворцом златоглавыми очутятся закипит вижу той теремами оборотился такой едет грустной немножко флот глядит палате ночью щель Слова, которые встречаются 2 раз: лесу мной усмехнувшись княгиня царству поднялся новый хранить окиян ай уносит храбрее безделка орех полно живет тетке ним собирался прилежней этом дочь белке граду витязи доселе стражи морские караул воду смотрит дитя приказ надежней погоди большой белку вымолвил вынимает та молвить спорить душой право дал весть народ молвила тянет гвидона где-то дива вмиг о волнам скором ко умные обходить оне трубу слова ступил высокой палаты душа хлещет ручная елью забился мир торопит ужо этим слуги елкою молодая какая вскочил спать побледнела орехам строгий вслед жить знаю собой или четырьмя между молчат справедливо до обнимает бочку зажужжал корабль родила отца сестрица прошел молвил восток скажите белой плачет золотой догнал хоть земли скорей нею молвит блещут далёко просит счет уменьшился комаром бога об сей обвенчался корабли окном криком поднятых синем печалься сына тужи от дно молодой обещался царь-отец раздутых изумрудец ночи нос поклонились вас путем острову окривела шлет подходит едва кто стрела князя собрался пора потихоньку душа-де тихонько обо крылами честь </td></tr> <tr><td>5</td><td><a href="files/task3146/test5.txt" target="_blank">открыть в новой вкладке<br>files/task3146/test5.txt</a></td><td class='preformatted'>Файл пуст </td></tr> <tr><td>6</td><td><a href="files/task3146/test6.txt" target="_blank">открыть в новой вкладке<br>files/task3146/test6.txt</a></td><td class='preformatted'>Обработка файла завершена. Максимальное количество повторений: 22 Слова, которые встречаются 22 раз: который Слова, которые встречаются 18 раз: которая Слова, которые встречаются 16 раз: в Слова, которые встречаются 9 раз: построил джек Слова, которые встречаются 8 раз: хранится и доме тёмном чулане Слова, которые встречаются 7 раз: ворует часто пшеницу Слова, которые встречаются 6 раз: синицу ловит пугает Слова, которые встречаются 5 раз: а без хвоста шиворот треплет это за кота Слова, которые встречаются 4 раз: вот старого пса Слова, которые встречаются 3 раз: корову лягнувшую доит безрогую Слова, которые встречаются 2 раз: с коровницей строгою бранится </td></tr> <tr><td>7</td><td><a href="files/task3146/test7.txt" target="_blank">открыть в новой вкладке<br>files/task3146/test7.txt</a></td><td class='preformatted'>Файл не существует \files\task3146\test7.txt </td></tr> </table> </div> <div class="task_block" id="task9092"> <div class="task_id">9092</div> <h3>Задача</h3> <div class="task_desc">Исходный файл содержит записи. Каждая запись находится на отдельной строке и состоит из двух частей, разделенных знаком ";". Первая часть - наименование группы. Вторая часть - целое число. Нужно вычислить сумму чисел в разрезе записей с одинаковым наименованием группы. Порядок записей в результате может отличаться.</div> <table class="check_values"> <tr> <th>Номер теста</th> <th>Содержимое файла</th> <th>Результат</th> </tr> <tr> <td></td> <td><a href="files/task9092/test1.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">У группы 'one' сумма равна 30 У группы 'two' сумма равна 38 У группы 'three' сумма равна 300</td> </tr> <tr> <td></td> <td><a href="files/task9092/test2.txt" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">У группы 'титан' сумма равна 2399 У группы 'кобальт' сумма равна -8345 У группы 'алюминий' сумма равна -6219 У группы 'платина' сумма равна -1757 У группы 'золото' сумма равна 5933 У группы 'ртуть' сумма равна 1128 У группы 'марганец' сумма равна -1198 У группы 'медь' сумма равна -12681 У группы 'железо' сумма равна 7434 У группы 'вольфрам' сумма равна -17736 У группы 'никель' сумма равна -23741</td> </tr> <tr> <td></td> <td><a href="files/task9092/test3.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Файл не существует</td> </tr> <tr> <td></td> <td><a href="files/task9092/test4.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Некорректный формат записи в строке 2</td> </tr> <tr> <td></td> <td><a href="files/task9092/test5.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">У группы 'друзья' сумма равна 3008706 У группы 'товары' сумма равна 2983430 У группы 'сообщества' сумма равна 3116408 У группы 'фотографии' сумма равна 3307789 У группы 'сообщения' сумма равна 3106813 У группы 'игры' сумма равна 3104274 У группы 'новости' сумма равна 3314770 У группы 'видео' сумма равна 3026634</td> </tr> <tr> <td></td> <td><a href="files/task9092/test6.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Не удалось преобразовать число в строке 22</td> </tr> </table> </div><div id='task6590' class='task_block'> <div class='task_id'>6590</div> <h3>Задача</h3> <div class='task_desc'> Исходный файл <a href="files/task6590/employees.csv" target="_blank">скачать employees.csv</a> содержит записи о сотрудниках. Каждая строка содержит атрибуты одного сотрудника, перечисленные через запятую ",". Атрибуты записаны в следующем порядке: </div> <ol start='1'><li>employee_id - код сотрудника</li><li>first_name - имя</li><li>last_name - фамилия</li><li>email - адрес почты без домена</li><li>phone_number - телефонный номер</li><li>hire_date - дата найма</li><li>job_id - код должности</li><li>salary - заработная плата</li><li>commission_pct - ставка коммиссии</li><li>manager_id - код руководителя</li><li>department_id - код отдела</li></ol><div class='task_desc'> Руководителем считается сотрудник, чей идентификатор указан у другого сотрудника в поле manager_id. Для каждого руководителя нужно вывести его фамилию, код должности и идентификаторы подчиненных сотрудников. </div> <div class='check_single preformatted'>Фамилия 'King' Должность 'AD_PRES' Подчиненные: 101, 102, 124, 149, 201 Фамилия 'Kochhar' Должность 'AD_VP' Подчиненные: 200, 205 Фамилия 'De Haan' Должность 'AD_VP' Подчиненные: 103 Фамилия 'Mourgos' Должность 'ST_MAN' Подчиненные: 141, 142, 143, 144 Фамилия 'Hartstein' Должность 'MK_MAN' Подчиненные: 202 Фамилия 'Hunold' Должность 'IT_PROG' Подчиненные: 104, 107 Фамилия 'Zlotkey' Должность 'SA_MAN' Подчиненные: 174, 176, 178 Фамилия 'Higgins' Должность 'AC_MGR' Подчиненные: 206 </div> </div> <div class="task_block" id="task1753"> <div class="task_id">1753</div> <h3>Задача</h3> <div class="task_desc">Исходный файл содержит информацию о длине дорог между городами. Нужно вывести список маршрутов для междугороднего автобуса, которые можно проложить по этим дорогам. Маршрут начинается в любом городе, проходит через любой другой город и заканчивается в третьем городе. Третий и первый город не должны совпадать. Запись о маршруте оформлять в виде "Гор1 - Гор2 - Гор3 (X км)", где Гор1, Гор2, Гор3 - названия городов, X - суммарная длина маршрута. Маршруты отсортировать по убыванию протяженности. При равной протяженности - по алфавиту</div> <table class="check_values"> <tr> <th>Номер теста</th> <th>Содержимое файла</th> <th>Результат</th> </tr> <tr> <td></td> <td><a href="files/task1753/test1.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Владивосток - Омск - Москва (9000 км} Москва - Омск - Владивосток (9000 км}</td> </tr> <tr> <td></td> <td><a href="files/task1753/test2.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Москва - Омск - Новосибирск (3240 км} Новосибирск - Омск - Москва (3240 км} Владивосток - Новосибирск - Омск (6440 км} Омск - Новосибирск - Владивосток (6440 км}</td> </tr> <tr> <td></td> <td><a href="files/task1753/test3.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Караганда - Омск - Новосибирск (1490 км} Новосибирск - Омск - Караганда (1490 км} Москва - Омск - Новосибирск (3240 км} Новосибирск - Омск - Москва (3240 км} Караганда - Омск - Москва (3450 км} Москва - Омск - Караганда (3450 км} Владивосток - Новосибирск - Омск (6440 км} Омск - Новосибирск - Владивосток (6440 км}</td> </tr> <tr> <td></td> <td><a href="files/task1753/test4.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Тюмень - Курган - Челябинск (470 км} Челябинск - Курган - Тюмень (470 км} Челябинск - Екатеринбург - Челябинск (480 км} Челябинск - Курган - Челябинск (480 км} Екатеринбург - Тюмень - Курган (530 км} Курган - Тюмень - Екатеринбург (530 км} Тюмень - Екатеринбург - Челябинск (540 км} Челябинск - Екатеринбург - Тюмень (540 км} Пермь - Екатеринбург - Челябинск (570 км} Челябинск - Екатеринбург - Пермь (570 км} Екатеринбург - Челябинск - Уфа (630 км} Уфа - Челябинск - Екатеринбург (630 км} Курган - Челябинск - Уфа (690 км} Пермь - Екатеринбург - Тюмень (690 км} Тюмень - Екатеринбург - Пермь (690 км} Уфа - Челябинск - Курган (690 км} Казань - Нижний Новгород - Москва (830 км} Курган - Тюмень - Омск (830 км} Москва - Нижний Новгород - Казань (830 км} Омск - Тюмень - Курган (830 км} Курган - Тюмень - Ханты-Мансийск (880 км} Ханты-Мансийск - Тюмень - Курган (880 км} Пенза - Самара - Уфа (890 км} Самара - Уфа - Челябинск (890 км} Саратов - Самара - Уфа (890 км} Уфа - Самара - Пенза (890 км} Уфа - Самара - Саратов (890 км} Челябинск - Уфа - Самара (890 км} Нижний Новгород - Казань - Уфа (930 км} Уфа - Казань - Нижний Новгород (930 км} Воронеж - Саратов - Самара (940 км} Москва - Воронеж - Москва (940 км} Москва - Нижний Новгород - Москва (940 км} Самара - Саратов - Воронеж (940 км} Казань - Уфа - Челябинск (950 км} Челябинск - Уфа - Казань (950 км} Екатеринбург - Тюмень - Омск (960 км} Омск - Тюмень - Екатеринбург (960 км} Казань - Уфа - Самара (1000 км} Самара - Уфа - Казань (1000 км} Екатеринбург - Тюмень - Ханты-Мансийск (1010 км} Ханты-Мансийск - Тюмень - Екатеринбург (1010 км} Москва - Воронеж - Саратов (1030 км} Саратов - Воронеж - Москва (1030 км} Москва - Пенза - Самара (1060 км} Самара - Пенза - Москва (1060 км} Москва - Нижний Новгород - Москва (1070 км} Москва - Пенза - Москва (1070 км} Москва - Воронеж - Москва (1150 км} Москва - Пенза - Москва (1150 км} Новосибирск - Омск - Тюмень (1270 км} Тюмень - Омск - Новосибирск (1270 км} Омск - Тюмень - Ханты-Мансийск (1310 км} Ханты-Мансийск - Тюмень - Омск (1310 км} Караганда - Омск - Тюмень (1480 км} Тюмень - Омск - Караганда (1480 км} Караганда - Омск - Новосибирск (1490 км} Новосибирск - Омск - Караганда (1490 км}</td> </tr> <tr> <td></td> <td><a href="files/task1753/test5.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Файл не существует</td> </tr> <tr> <td></td> <td><a href="files/task1753/test6.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Расстояние должно быть неотрицательно</td> </tr> <tr> <td></td> <td><a href="files/task1753/test7.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Некорректный формат</td> </tr> <tr> <td></td> <td><a href="files/task1753/test8.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Недостаточно данных</td> </tr> <tr> <td></td> <td><a href="files/task1753/test9.csv" target="_blank">открыть в новой вкладке</a></td> <td class="preformatted">Недостаточно данных</td> </tr> </table> </div>Версия 202510. Подборка задач, выбор порядка подачи и подготовка тестовых данных - Крюков Александр, Омск 2013-2026. <a href='https://github.com/AKryukov92/programming-basics'>Основной репозиторий</a></body></html>