/
AlexStone
/
Java25sep
Обзор
Документация
Войти
/
AlexStone
/
Java25sep
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
java/tasks 8.html
1 280 строк
48 KB
unknown
КР 05.11.25
05 ноя 2025, 09:55
05 ноя 2025, 09:55
4a942c9
Код
Авторство
О чём код?
<!DOCTYPE html><html lang="ru"><head><meta charset='utf-8'/><title>8 Реорганизация повторяющихся действий</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> </ol></div><div class='nav'><ul><li><a href='#heading'>^</a></li><li><a href='#task1315' class='example'>1*</a><li><a href='#task1631'>2</a><li><a href='#task2594'>3</a><li><a href='#task3762'>4</a><li><a href='#task3550'>5</a><li><a href='#task1139'>6</a><li><a href='#task9969'>7</a><li><a href='#task5301'>8</a><li><a href='#task6790'>9</a><li><a href='#task3850'>10</a></ul><ul><li><a href='#task6059'>11</a><li><a href='#task7086'>12</a><li><a href='#task5149'>13</a><li><a href='#task6066' class='example'>14*</a><li><a href='#task1259'>15</a><li><a href='#task2565'>16</a><li><a href='#task8722'>17</a><li><a href='#task2321'>18</a><li><a href='#task5053'>19</a><li><a href='#task6663'>20</a><li><a href='#task4338'>21</a><li><a href='#task7054'>22</a></ul></div><div id='task1315' class='task_block'> <div class='task_id'>1315</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число total. Выведите на экран в столбик все целые числа от 1 до total включительно. В начале программы должно появиться слово "Введение", а после всех чисел - слово "Заключение". Перед каждым числом нужно написать слово "Глава". </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (total)</th><th>Результат</th></tr> <tr><td>1</td><td>0</td><td class='preformatted'>Введение Заключение </td></tr> <tr><td>2</td><td>1</td><td class='preformatted'>Введение Глава 1 Заключение </td></tr> <tr><td>3</td><td>2</td><td class='preformatted'>Введение Глава 1 Глава 2 Заключение </td></tr> <tr><td>4</td><td>3</td><td class='preformatted'>Введение Глава 1 Глава 2 Глава 3 Заключение </td></tr> <tr><td>5</td><td>4</td><td class='preformatted'>Введение Глава 1 Глава 2 Глава 3 Глава 4 Заключение </td></tr> <tr><td>6</td><td>6</td><td class='preformatted'>Введение Глава 1 Глава 2 Глава 3 Глава 4 Глава 5 Глава 6 Заключение </td></tr> <tr><td>7</td><td>5</td><td class='preformatted'>Введение Глава 1 Глава 2 Глава 3 Глава 4 Глава 5 Заключение </td></tr> <tr><td>8</td><td>20</td><td class='preformatted'>Введение Глава 1 Глава 2 Глава 3 Глава 4 Глава 5 Глава 6 Глава 7 Глава 8 Глава 9 Глава 10 Глава 11 Глава 12 Глава 13 Глава 14 Глава 15 Глава 16 Глава 17 Глава 18 Глава 19 Глава 20 Заключение </td></tr> </table> <div class='task_desc'> Конечная цель решения - компактная запись с помощью конструкции цикла. Чтобы к ней прийти, нужно сделать несколько промежуточных шагов. Первым делом нужно реализовать подробное решение для нескольких частных случаев. Нужно написать несколько условий. Первое должно работать для всех чисел. Следующее для всех чисел кроме первого. Шестое - для всех чисел, кроме первых шести. Подробное решение этой задачи выглядит так: </div> <div class='check_single preformatted'>Scanner s = new Scanner(System.in); int total = Integer.parseInt(s.nextLine()); System.out.println("Введение"); if (1 <= total) { System.out.println("Глава " + 1);//Это действие будет работать когда пользователь вводит числа 1,2,3,4,5,6 } if (2 <= total) { System.out.println("Глава " + 2);//Это действие будет работать когда пользователь вводит числа 2,3,4,5,6 } if (3 <= total) { System.out.println("Глава " + 3);//Это действие будет работать когда пользователь вводит числа 3,4,5,6 } if (4 <= total) { System.out.println("Глава " + 4);//Это действие будет работать когда пользователь вводит числа 4,5,6 } if (5 <= total) { System.out.println("Глава " + 5);//Это действие будет работать когда пользователь вводит числа 5,6 } if (6 <= total) { System.out.println("Глава " + 6);//Это действие будет работать когда пользователь вводит число 6 } System.out.println("Заключение");</div> <div class='task_desc'> Подробное решение работает корректно почти для всех тестов. В полученном результате нужно найти набор повторяющихся действий. В данном случае это: </div> <div class='check_single preformatted'>if (1 <= total) { System.out.println("Глава " + 1); } </div> <div class='task_desc'> Обратите внимания, что эти действия повторяются с небольшими изменениями. В них используются разные числа: 1, 2, 3 и так далее. Нужно это число заменить на переменную. Таким образом действия будут полностью идентичными. Код должен получиться таким: </div> <div class='check_single preformatted'>Scanner s = new Scanner(System.in); int total = Integer.parseInt(s.nextLine()); int i = 1; System.out.println("Введение"); if (i <= total) { System.out.println("Глава " + i); i = i + 1;//До этой команды значение переменной i равно 1. После неё оно станет равно 2. } if (i <= total) {//Значение i равно 2 System.out.println("Глава " + i); i = i + 1; } if (i <= total) {//Значение i равно 3 System.out.println("Глава " + i); i = i + 1; } if (i <= total) {//Значение i равно 4 System.out.println("Глава " + i); i = i + 1; } if (i <= total) {//Значение i равно 5 System.out.println("Глава " + i); i = i + 1; } if (i <= total) {//Значение i равно 6 System.out.println("Глава " + i); i = i + 1; } System.out.println("Заключение");</div> <div class='task_desc'> Как только вы написали код, который состоит из полностью одинаковых фрагментов, вы можете применить конструкцию while для автоматического повторения этих действий. </div> <div class='check_single preformatted'>Scanner s = new Scanner(System.in); int total = Integer.parseInt(s.nextLine()); int i = 1; System.out.println("Введение"); while (i <= total) { System.out.println("Глава " + i); i = i + 1; } System.out.println("Заключение");</div> <div class='task_desc'> План решения задачи: </div> <ol start='1'><li>Написать подробное решение для нескольких тестов с помощью условий</li><li>Найти похожие повторяющиеся действия</li><li>Понять чем они отличаются</li><li>Найти закономерность в найденных различиях</li><li>Заменить закономерность на переменную</li><li>Заменить условия конструкцией цикла</li></ol></div> <div id='task1631' class='task_block'> <div class='task_id'>1631</div> <h3>Задача</h3> <div class='task_desc'> Выведите на экран в столбик 10 чисел, начиная с A включительно. В конце каждой строки с числом должна быть выведена строка с тремя знаками "-". Перед числами напишите слово "Начало" после всех чисел напишите слово "Успех" </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (A)</th><th>Результат</th></tr> <tr><td>1</td><td>8</td><td class='preformatted'>Начало 8--- 9--- 10--- 11--- 12--- 13--- 14--- 15--- 16--- 17--- Успех </td></tr> <tr><td>2</td><td>9</td><td class='preformatted'>Начало 9--- 10--- 11--- 12--- 13--- 14--- 15--- 16--- 17--- 18--- Успех </td></tr> <tr><td>3</td><td>-5</td><td class='preformatted'>Начало -5--- -4--- -3--- -2--- -1--- 0--- 1--- 2--- 3--- 4--- Успех </td></tr> <tr><td>4</td><td>695</td><td class='preformatted'>Начало 695--- 696--- 697--- 698--- 699--- 700--- 701--- 702--- 703--- 704--- Успех </td></tr> </table> <div class='task_desc'> Переменные могут называться самыми разными словами и буквами. Из за этого людям сложно рассуждать о назначении различных переменных. Назначение переменной и её название могут не совпадать. В разных программах переменные с одним и тем же смыслом могут иметь разные названия. При обсуждении смысла переменных в циклах обычно используют два термина: <b>счётчик</b> и <b>ограничение</b>. </div> <div class='check_single preformatted'>int i;//переменная увеличивается в цикле. это счетчик i = 1; int limit;//переменная сравнивается со счетчиком и не меняется в цикле. это ограничение. limit = 7; while (i <= limit) { print(i); i = i + 1; }</div> </div> <div id='task2594' class='task_block'> <div class='task_id'>2594</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число (amount). Напечатайте на экран числа "012345678901234567890123456789" затем символ "#" указанное количество раз в строчку и затем слово "Конец". Если пользователь ввел отрицательное число, ничего делать не нужно. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (amount)</th><th>Результат</th></tr> <tr><td>1</td><td>3</td><td class='preformatted'>012345678901234567890123456789 ### Конец</td></tr> <tr><td>2</td><td>0</td><td class='preformatted'>012345678901234567890123456789 Конец</td></tr> <tr><td>3</td><td>15</td><td class='preformatted'>012345678901234567890123456789 ############### Конец</td></tr> <tr><td>4</td><td>27</td><td class='preformatted'>012345678901234567890123456789 ########################### Конец</td></tr> <tr><td>5</td><td>-1</td><td class='preformatted'>012345678901234567890123456789 Конец</td></tr> <tr><td>6</td><td>-9</td><td class='preformatted'>012345678901234567890123456789 Конец</td></tr> </table> <div class='task_desc'> В этой задаче счётчик не выводится на экран. Однако он все равно нужен, чтобы компьютер понимал сколько раз он повторил команду вывода и мог вовремя остановиться. </div> </div> <div id='task3762' class='task_block'> <div class='task_id'>3762</div> <h3>Задача</h3> <div class='task_desc'> Напечатать таблицу соответствия между весом в фунтах и весом в граммах для значений 1,2, ..., 20 фунтов (1 фунт = 453г). Над каждым столбцом написать единицу измерения: "грамм" или "фунт". Чтобы получились красивые колонки, добавьте спецсимвол табуляции между числами "\t" </div> <div class='check_single preformatted'>фунт грамм 1 453 2 906 3 1359 4 1812 5 2265 6 2718 7 3171 8 3624 9 4077 10 4530 11 4983 12 5436 13 5889 14 6342 15 6795 16 7248 17 7701 18 8154 19 8607 20 9060 </div> <div class='task_desc'> Печать в консоль выполняется построчно. Если вам нужно напечатать в консоль 2 столбика чисел, то в первой строке нужно написать первое число из левого столбика и первое число из правого столбика. </div> </div> <div id='task3550' class='task_block'> <div class='task_id'>3550</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число V. Вывести на экран таблицу умножения чисел от 1 до 9 включительно на V. В начале программы вывести сообщение по шаблону "Таблица умножения на $V". Каждую следующую строчку оформить по шаблону "$i x $v = $p", где i - число от 1 до 9, p - результат умножения V на i. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (V)</th><th>Результат</th></tr> <tr><td>1</td><td>2</td><td class='preformatted'>Таблица умножения на 2 1 x 2 = 2 2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10 6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18 </td></tr> <tr><td>2</td><td>3</td><td class='preformatted'>Таблица умножения на 3 1 x 3 = 3 2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15 6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27 </td></tr> <tr><td>3</td><td>-13</td><td class='preformatted'>Таблица умножения на -13 1 x -13 = -13 2 x -13 = -26 3 x -13 = -39 4 x -13 = -52 5 x -13 = -65 6 x -13 = -78 7 x -13 = -91 8 x -13 = -104 9 x -13 = -117 </td></tr> <tr><td>4</td><td>0</td><td class='preformatted'>Таблица умножения на 0 1 x 0 = 0 2 x 0 = 0 3 x 0 = 0 4 x 0 = 0 5 x 0 = 0 6 x 0 = 0 7 x 0 = 0 8 x 0 = 0 9 x 0 = 0 </td></tr> <tr><td>5</td><td>7</td><td class='preformatted'>Таблица умножения на 7 1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49 8 x 7 = 56 9 x 7 = 63 </td></tr> <tr><td>6</td><td>11</td><td class='preformatted'>Таблица умножения на 11 1 x 11 = 11 2 x 11 = 22 3 x 11 = 33 4 x 11 = 44 5 x 11 = 55 6 x 11 = 66 7 x 11 = 77 8 x 11 = 88 9 x 11 = 99 </td></tr> <tr><td>7</td><td>1027</td><td class='preformatted'>Таблица умножения на 1027 1 x 1027 = 1027 2 x 1027 = 2054 3 x 1027 = 3081 4 x 1027 = 4108 5 x 1027 = 5135 6 x 1027 = 6162 7 x 1027 = 7189 8 x 1027 = 8216 9 x 1027 = 9243 </td></tr> </table> </div> <div id='task1139' class='task_block'> <div class='task_id'>1139</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число x. Вывести на экран в строчку число x, а также 10 следующих чисел с шагом 3. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (x)</th><th>Результат</th></tr> <tr><td>1</td><td>2</td><td class='preformatted'>2 5 8 11 14 17 20 23 26 29 32 </td></tr> <tr><td>2</td><td>4</td><td class='preformatted'>4 7 10 13 16 19 22 25 28 31 34 </td></tr> <tr><td>3</td><td>-6</td><td class='preformatted'>-6 -3 0 3 6 9 12 15 18 21 24 </td></tr> <tr><td>4</td><td>1000</td><td class='preformatted'>1000 1003 1006 1009 1012 1015 1018 1021 1024 1027 1030 </td></tr> </table> </div> <div id='task9969' class='task_block'> <div class='task_id'>9969</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число start. Нужно вывести это число три раза в строку. А потом продолжая строку вывести 10 следующих чисел с шагом 7. Последнее получившееся число тоже нужно вывести три раза в строку. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (start)</th><th>Результат</th></tr> <tr><td>1</td><td>0</td><td class='preformatted'>0 0 0 7 14 21 28 35 42 49 56 63 70 70 70 </td></tr> <tr><td>2</td><td>1</td><td class='preformatted'>1 1 1 8 15 22 29 36 43 50 57 64 71 71 71 </td></tr> <tr><td>3</td><td>19</td><td class='preformatted'>19 19 19 26 33 40 47 54 61 68 75 82 89 89 89 </td></tr> <tr><td>4</td><td>20</td><td class='preformatted'>20 20 20 27 34 41 48 55 62 69 76 83 90 90 90 </td></tr> <tr><td>5</td><td>1000</td><td class='preformatted'>1000 1000 1000 1007 1014 1021 1028 1035 1042 1049 1056 1063 1070 1070 1070 </td></tr> <tr><td>6</td><td>-14</td><td class='preformatted'>-14 -14 -14 -7 0 7 14 21 28 35 42 49 56 56 56 </td></tr> </table> </div> <div id='task5301' class='task_block'> <div class='task_id'>5301</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит целое число limit. Выведите на экран в строчку числа, начиная с 0 до limit, исключая limit. Шаг счетчика должен увеличиваться на 1 каждую итерацию цикла. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (A)</th><th>Результат</th></tr> <tr><td>1</td><td>100</td><td class='preformatted'>0 1 3 6 10 15 21 28 36 45 55 66 78 91 </td></tr> <tr><td>2</td><td>10</td><td class='preformatted'>0 1 3 6 </td></tr> <tr><td>3</td><td>150</td><td class='preformatted'>0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 </td></tr> <tr><td>4</td><td>1</td><td class='preformatted'>0 </td></tr> <tr><td>5</td><td>0</td><td class='preformatted'></td></tr> <tr><td>6</td><td>-10</td><td class='preformatted'></td></tr> </table> </div> <div id='task6790' class='task_block'> <div class='task_id'>6790</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число X. Оно обозначает количество градусов. Вычислить 20 следующих значений с шагом 50 (iDeg). Справа от каждого числа вывести соответствующее значение в радианах (iRad) и результат вычисления функции y=5*cos(iRad). Чтобы красиво оформить столбики чисел, напишите после чисел символ табуляции "\t". </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (X)</th><th>Результат</th></tr> <tr><td>1</td><td>0</td><td class='preformatted'>Градусы Радианы Функция 0 0,0000 5,0000 50 0,8727 3,2139 100 1,7453 -0,8682 150 2,6180 -4,3301 200 3,4907 -4,6985 250 4,3633 -1,7101 300 5,2360 2,5000 350 6,1087 4,9240 400 6,9813 3,8302 450 7,8540 0,0000 500 8,7266 -3,8302 550 9,5993 -4,9240 600 10,4720 -2,5000 650 11,3446 1,7101 700 12,2173 4,6985 750 13,0900 4,3301 800 13,9626 0,8682 850 14,8353 -3,2139 900 15,7080 -5,0000 950 16,5806 -3,2139 </td></tr> <tr><td>2</td><td>20</td><td class='preformatted'>Градусы Радианы Функция 20 0,3491 4,6985 70 1,2217 1,7101 120 2,0944 -2,5000 170 2,9671 -4,9240 220 3,8397 -3,8302 270 4,7124 -0,0000 320 5,5851 3,8302 370 6,4577 4,9240 420 7,3304 2,5000 470 8,2030 -1,7101 520 9,0757 -4,6985 570 9,9484 -4,3301 620 10,8210 -0,8682 670 11,6937 3,2139 720 12,5664 5,0000 770 13,4390 3,2139 820 14,3117 -0,8682 870 15,1844 -4,3301 920 16,0570 -4,6985 970 16,9297 -1,7101 </td></tr> <tr><td>3</td><td>97</td><td class='preformatted'>Градусы Радианы Функция 97 1,6930 -0,6093 147 2,5656 -4,1934 197 3,4383 -4,7815 247 4,3110 -1,9537 297 5,1836 2,2700 347 6,0563 4,8719 397 6,9290 3,9932 447 7,8016 0,2617 497 8,6743 -3,6568 547 9,5470 -4,9627 597 10,4196 -2,7232 647 11,2923 1,4619 697 12,1649 4,6025 747 13,0376 4,4550 797 13,9103 1,1248 847 14,7829 -3,0091 897 15,6556 -4,9931 947 16,5283 -3,4100 997 17,4009 0,6093 1047 18,2736 4,1934 </td></tr> <tr><td>4</td><td>-33</td><td class='preformatted'>Градусы Радианы Функция -33 -0,5760 4,1934 17 0,2967 4,7815 67 1,1694 1,9537 117 2,0420 -2,2700 167 2,9147 -4,8719 217 3,7874 -3,9932 267 4,6600 -0,2617 317 5,5327 3,6568 367 6,4054 4,9627 417 7,2780 2,7232 467 8,1507 -1,4619 517 9,0234 -4,6025 567 9,8960 -4,4550 617 10,7687 -1,1248 667 11,6413 3,0091 717 12,5140 4,9931 767 13,3867 3,4100 817 14,2593 -0,6093 867 15,1320 -4,1934 917 16,0047 -4,7815 </td></tr> </table> <div class='task_desc'> Подробное решение для первых двух строк текста: </div> <div class='check_single preformatted'>double xRad, current, xDeg; xDeg = Integer.parseInt(value); int i = 0; System.out.println("Градусы\tРадианы\tФункция"); if (i < 20) { xRad = xDeg * Math.PI / 180; current = 5 * Math.cos(xRad); System.out.printf("%.0f\t%.4f\t%.4f\n", xDeg, xRad, current); xDeg = xDeg + 50; i = i + 1; } if (i < 20) { xRad = xDeg * Math.PI / 180; current = 5 * Math.cos(xRad); System.out.printf("%.0f\t%.4f\t%.4f\n", xDeg, xRad, current); xDeg = xDeg + 50; i = i + 1; } </div> </div> <div id='task3850' class='task_block'> <div class='task_id'>3850</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит три числа: начало интервала, конец интервала и количество частей. Нужно разделить интервал на несколько равных частей и написать на каких числах происходит разделение. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='3'>Исходные данные</th><th rowspan='2'>Результат</th></tr> <tr><th>start</th><th>end</th><th>amount</th></tr> <tr><td>1</td><td>0</td><td>100</td><td>5</td><td class='preformatted'>Интервал от 0,0000 до 100,0000 делится на 5 частей шириной 20,0000. Получаются интервалы: от 0,0000 до 20,0000 от 20,0000 до 40,0000 от 40,0000 до 60,0000 от 60,0000 до 80,0000 от 80,0000 до 100,0000 </td></tr> <tr><td>2</td><td>10</td><td>20</td><td>2</td><td class='preformatted'>Интервал от 10,0000 до 20,0000 делится на 2 частей шириной 5,0000. Получаются интервалы: от 10,0000 до 15,0000 от 15,0000 до 20,0000 </td></tr> <tr><td>3</td><td>-50</td><td>50</td><td>4</td><td class='preformatted'>Интервал от -50,0000 до 50,0000 делится на 4 частей шириной 25,0000. Получаются интервалы: от -50,0000 до -25,0000 от -25,0000 до 0,0000 от 0,0000 до 25,0000 от 25,0000 до 50,0000 </td></tr> <tr><td>4</td><td>20</td><td>40</td><td>3</td><td class='preformatted'>Интервал от 20,0000 до 40,0000 делится на 3 частей шириной 6,6667. Получаются интервалы: от 20,0000 до 26,6667 от 26,6667 до 33,3333 от 33,3333 до 40,0000 </td></tr> </table> </div> <div id='task6059' class='task_block'> <div class='task_id'>6059</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит два числа: P и M. Нужно вывести на экран две строчки чисел. В первой строчке 10 чисел с шагом 1 начиная с P. Во второй строчке 10 чисел с шагом 1 начиная с M. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>P</th><th>M</th></tr> <tr> <td>1</td><td>0</td><td>50</td><td class='preformatted'>0 1 2 3 4 5 6 7 8 9 50 51 52 53 54 55 56 57 58 59 </td></tr> <tr> <td>2</td><td>50</td><td>0</td><td class='preformatted'>50 51 52 53 54 55 56 57 58 59 0 1 2 3 4 5 6 7 8 9 </td></tr> <tr> <td>3</td><td>10</td><td>10</td><td class='preformatted'>10 11 12 13 14 15 16 17 18 19 10 11 12 13 14 15 16 17 18 19 </td></tr> <tr> <td>4</td><td>-11</td><td>20</td><td class='preformatted'>-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 20 21 22 23 24 25 26 27 28 29 </td></tr> </table> </div> <div id='task7086' class='task_block'> <div class='task_id'>7086</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число x. Вывести на экран две строчки чисел. Первая начинается с числа x, после которого написаны 10 следующих чисел с шагом 3. Вторая заканчивается числом x, перед которым написаны 10 предыдущих чисел с шагом 4. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (x)</th><th>Результат</th></tr> <tr><td>1</td><td>2</td><td class='preformatted'>2 5 8 11 14 17 20 23 26 29 32 -38 -34 -30 -26 -22 -18 -14 -10 -6 -2 2 </td></tr> <tr><td>2</td><td>13</td><td class='preformatted'>13 16 19 22 25 28 31 34 37 40 43 -27 -23 -19 -15 -11 -7 -3 1 5 9 13 </td></tr> <tr><td>3</td><td>-6</td><td class='preformatted'>-6 -3 0 3 6 9 12 15 18 21 24 -46 -42 -38 -34 -30 -26 -22 -18 -14 -10 -6 </td></tr> <tr><td>4</td><td>1000</td><td class='preformatted'>1000 1003 1006 1009 1012 1015 1018 1021 1024 1027 1030 960 964 968 972 976 980 984 988 992 996 1000 </td></tr> </table> </div> <div id='task5149' class='task_block'> <div class='task_id'>5149</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит два числа: stepA, stepB. Нужно написать 19 чисел в строчку начиная с 15 с шагом stepA. На следующей строчке нужно написать 7 чисел начиная с 100 с шагом stepB </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>stepA</th><th>stepB</th></tr> <tr> <td>1</td><td>1</td><td>5</td><td class='preformatted'>15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 100 105 110 115 120 125 130 </td></tr> <tr> <td>2</td><td>23</td><td>-2</td><td class='preformatted'>15 38 61 84 107 130 153 176 199 222 245 268 291 314 337 360 383 406 429 100 98 96 94 92 90 88 </td></tr> <tr> <td>3</td><td>-100</td><td>2</td><td class='preformatted'>15 -85 -185 -285 -385 -485 -585 -685 -785 -885 -985 -1085 -1185 -1285 -1385 -1485 -1585 -1685 -1785 100 102 104 106 108 110 112 </td></tr> </table> </div> <div id='task6066' class='task_block'> <div class='task_id'>6066</div> <h3>Задача</h3> <div class='task_desc'> Выведите на экран в строчку числа от А до В включительно. После каждого числа должен быть выведен символ ";". Если B < A, то вывести сообщение об ошибке. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>A</th><th>B</th></tr> <tr> <td>1</td><td>8</td><td>12</td><td class='preformatted'>8;9;10;11;12;</td></tr> <tr> <td>2</td><td>5</td><td>5</td><td class='preformatted'>5;</td></tr> <tr> <td>3</td><td>695</td><td>702</td><td class='preformatted'>695;696;697;698;699;700;701;702;</td></tr> <tr> <td>4</td><td>3000</td><td>24</td><td class='preformatted'>Значение A должно быть меньше или равно значению B </td></tr> </table> <div class='task_desc'> Конструкцию цикла можно вкладывать в конструкцию условия. Пример решения этой задачи: </div> <div class='check_single preformatted'>int a = Integer.parseInt(A); int b = Integer.parseInt(B); if (b < a) { System.out.println("Значение A должно быть меньше или равно значению B"); } if (a <= b) { while (a <= b) { System.out.print(a + ";"); a = a + 1; } } </div> </div> <div id='task1259' class='task_block'> <div class='task_id'>1259</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит целое число. Это количество символов '*', которые нужно вывести в строчку. Вывести не более 20 символов. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (width)</th><th>Результат</th></tr> <tr><td>1</td><td>0</td><td class='preformatted'>Требуемое количество меньше 20 </td></tr> <tr><td>2</td><td>1</td><td class='preformatted'>Требуемое количество меньше 20 *</td></tr> <tr><td>3</td><td>10</td><td class='preformatted'>Требуемое количество меньше 20 **********</td></tr> <tr><td>4</td><td>19</td><td class='preformatted'>Требуемое количество меньше 20 *******************</td></tr> <tr><td>5</td><td>20</td><td class='preformatted'>Требуемое количество больше 20. ********************</td></tr> <tr><td>6</td><td>21</td><td class='preformatted'>Требуемое количество больше 20. ********************</td></tr> <tr><td>7</td><td>50</td><td class='preformatted'>Требуемое количество больше 20. ********************</td></tr> <tr><td>8</td><td>1000</td><td class='preformatted'>Требуемое количество больше 20. ********************</td></tr> <tr><td>9</td><td>-1</td><td class='preformatted'>Вводимое число должно быть неотрицательно </td></tr> <tr><td>10</td><td>-100</td><td class='preformatted'>Вводимое число должно быть неотрицательно </td></tr> <tr><td>11</td><td>-1000</td><td class='preformatted'>Вводимое число должно быть неотрицательно </td></tr> </table> <div class='task_desc'> Попробуйте адаптировать решение задачи <a href="tasks 8.html#task2594" target="_blank">ЛР8#2594(открыть в новой вкладке)</a> </div> </div> <div id='task2565' class='task_block'> <div class='task_id'>2565</div> <h3>Задача</h3> <div class='task_desc'> Выведите на экран в строчку числа от B до A включительно в обратном порядке. Слева от ряда чисел выведите символ "{", а справа - "}". Если A > B, то вывести сообщение об ошибке. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>A</th><th>B</th></tr> <tr> <td>1</td><td>8</td><td>10</td><td class='preformatted'>{ 10 9 8 } </td></tr> <tr> <td>2</td><td>8</td><td>13</td><td class='preformatted'>{ 13 12 11 10 9 8 } </td></tr> <tr> <td>3</td><td>13</td><td>8</td><td class='preformatted'>Значение A должно быть не больше значения B </td></tr> <tr> <td>4</td><td>691</td><td>703</td><td class='preformatted'>{ 703 702 701 700 699 698 697 696 695 694 693 692 691 } </td></tr> <tr> <td>5</td><td>17</td><td>17</td><td class='preformatted'>{ 17 } </td></tr> <tr> <td>6</td><td>3000</td><td>24</td><td class='preformatted'>Значение A должно быть не больше значения B </td></tr> </table> </div> <div id='task8722' class='task_block'> <div class='task_id'>8722</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит два целых числа: A и B. Выведите на экран два столбика чисел по возрастанию с шагом 1. В первом - от 0 до A. Во втором - от 0 до B. Если одно из введенных чисел меньше нуля, вывести сообщение об ошибке. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>A</th><th>B</th></tr> <tr> <td>1</td><td>2</td><td>5</td><td class='preformatted'>0 0 1 1 2 2 3 4 5 </td></tr> <tr> <td>2</td><td>5</td><td>2</td><td class='preformatted'>0 0 1 1 2 2 3 4 5 </td></tr> <tr> <td>3</td><td>3</td><td>11</td><td class='preformatted'>0 0 1 1 2 2 3 3 4 5 6 7 8 9 10 11 </td></tr> <tr> <td>4</td><td>11</td><td>3</td><td class='preformatted'>0 0 1 1 2 2 3 3 4 5 6 7 8 9 10 11 </td></tr> <tr> <td>5</td><td>20</td><td>17</td><td class='preformatted'>0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 19 20 </td></tr> <tr> <td>6</td><td>17</td><td>20</td><td class='preformatted'>0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 19 20 </td></tr> <tr> <td>7</td><td>0</td><td>6</td><td class='preformatted'>0 0 1 2 3 4 5 6 </td></tr> <tr> <td>8</td><td>6</td><td>0</td><td class='preformatted'>0 0 1 2 3 4 5 6 </td></tr> <tr> <td>9</td><td>-1</td><td>3</td><td class='preformatted'>Значение A должно быть неотрицательно </td></tr> <tr> <td>10</td><td>5</td><td>-8</td><td class='preformatted'>Значение B должно быть неотрицательно </td></tr> </table> </div> <div id='task2321' class='task_block'> <div class='task_id'>2321</div> <h3>Задача</h3> <div class='task_desc'> Выведите на экран в строчку числа от А до В включительно по возрастанию. Перед списком чисел напишите в каком порядке они выводились. Значение A может быть как меньше, так и больше B. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>A</th><th>B</th></tr> <tr> <td>1</td><td>8</td><td>13</td><td class='preformatted'>От A до B 8 9 10 11 12 13 </td></tr> <tr> <td>2</td><td>23</td><td>11</td><td class='preformatted'>От B до A 11 12 13 14 15 16 17 18 19 20 21 22 23 </td></tr> <tr> <td>3</td><td>0</td><td>0</td><td class='preformatted'>От B до A 0 </td></tr> <tr> <td>4</td><td>691</td><td>702</td><td class='preformatted'>От A до B 691 692 693 694 695 696 697 698 699 700 701 702 </td></tr> <tr> <td>5</td><td>571</td><td>571</td><td class='preformatted'>От B до A 571 </td></tr> <tr> <td>6</td><td>1201</td><td>1197</td><td class='preformatted'>От B до A 1197 1198 1199 1200 1201 </td></tr> </table> </div> <div id='task5053' class='task_block'> <div class='task_id'>5053</div> <h3>Задача</h3> <div class='task_desc'> Выведите на экран <i>в строчку</i> числа от from до to включительно. Если from < to, то в порядке возрастания. Иначе - в порядке убывания. Перед списком чисел напишите в каком порядке они выводились. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>from</th><th>to</th></tr> <tr> <td>1</td><td>8</td><td>13</td><td class='preformatted'>По возрастанию 8 9 10 11 12 13 </td></tr> <tr> <td>2</td><td>27</td><td>17</td><td class='preformatted'>По убыванию 27 26 25 24 23 22 21 20 19 18 17 </td></tr> <tr> <td>3</td><td>19</td><td>19</td><td class='preformatted'>По убыванию 19 </td></tr> <tr> <td>4</td><td>691</td><td>702</td><td class='preformatted'>По возрастанию 691 692 693 694 695 696 697 698 699 700 701 702 </td></tr> </table> </div> <div id='task6663' class='task_block'> <div class='task_id'>6663</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит число start. Нужно вывести числа от start до 25 включительно. Если число start меньше 25, то по возрастанию. Иначе - по убыванию. В конце нужно написать сколько чисел было выведено на экране. </div> <table class='check_values_v2'> <tr><th>Номер теста</th><th>Исходные данные (start)</th><th>Результат</th></tr> <tr><td>1</td><td>20</td><td class='preformatted'>20 21 22 23 24 25 Всего чисел: 6 </td></tr> <tr><td>2</td><td>19</td><td class='preformatted'>19 20 21 22 23 24 25 Всего чисел: 7 </td></tr> <tr><td>3</td><td>30</td><td class='preformatted'>30 29 28 27 26 25 Всего чисел: 6 </td></tr> <tr><td>4</td><td>32</td><td class='preformatted'>32 31 30 29 28 27 26 25 Всего чисел: 8 </td></tr> <tr><td>5</td><td>0</td><td class='preformatted'>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 </td></tr> <tr><td>6</td><td>25</td><td class='preformatted'>25 Всего чисел: 1 </td></tr> <tr><td>7</td><td>40</td><td class='preformatted'>40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 Всего чисел: 16 </td></tr> <tr><td>8</td><td>100</td><td class='preformatted'>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 Всего чисел: 76 </td></tr> </table> </div> <div id='task4338' class='task_block'> <div class='task_id'>4338</div> <h3>Задача</h3> <div class='task_desc'> Выведите на экран два столбика чисел от A до B включительно. Значение A может быть как меньше, так и больше B. Числа в левом столбике должны располагаться по возрастанию. Числа в правом столбике - по убыванию. В конце программы выведите количество напечатанных строк. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='2'>Исходные данные</th><th rowspan='2'>Результат</th></tr><tr> <th>A</th><th>B</th></tr> <tr> <td>1</td><td>3</td><td>11</td><td class='preformatted'>3 11 4 10 5 9 6 8 7 7 8 6 9 5 10 4 11 3 Количество строк: 9 </td></tr> <tr> <td>2</td><td>587</td><td>613</td><td class='preformatted'>587 613 588 612 589 611 590 610 591 609 592 608 593 607 594 606 595 605 596 604 597 603 598 602 599 601 600 600 601 599 602 598 603 597 604 596 605 595 606 594 607 593 608 592 609 591 610 590 611 589 612 588 613 587 Количество строк: 27 </td></tr> <tr> <td>3</td><td>50</td><td>41</td><td class='preformatted'>41 50 42 49 43 48 44 47 45 46 46 45 47 44 48 43 49 42 50 41 Количество строк: 10 </td></tr> <tr> <td>4</td><td>1000</td><td>1000</td><td class='preformatted'>1000 1000 Количество строк: 1 </td></tr> </table> </div> <div id='task7054' class='task_block'> <div class='task_id'>7054</div> <h3>Задача</h3> <div class='task_desc'> Пользователь вводит три числа: seed, amountOf7, amountOf3. Начиная с seed, вывести amountOf7 штук чисел в строчку по возрастанию с шагом 7. А потом начать с последнего полученного числа и вывести amountOf3 чисел в порядке уменьшения с шагом 3. </div> <table class='check_values_v2'> <tr><th rowspan='2'>Номер теста</th><th colspan='3'>Исходные данные</th><th rowspan='2'>Результат</th></tr> <tr><th>seed</th><th>amount of 7</th><th>amount of 3</th></tr> <tr><td>1</td><td>0</td><td>3</td><td>2</td><td class='preformatted'>По возрастанию с шагом 7 0 7 14 По убыванию с шагом 3 14 11 </td></tr> <tr><td>2</td><td>10</td><td>4</td><td>3</td><td class='preformatted'>По возрастанию с шагом 7 10 17 24 31 По убыванию с шагом 3 31 28 25 </td></tr> <tr><td>3</td><td>1000</td><td>2</td><td>10</td><td class='preformatted'>По возрастанию с шагом 7 1000 1007 По убыванию с шагом 3 1007 1004 1001 998 995 992 989 986 983 980 </td></tr> <tr><td>4</td><td>600</td><td>0</td><td>5</td><td class='preformatted'>По возрастанию с шагом 7 Нет чисел По убыванию с шагом 3 600 597 594 591 588 </td></tr> <tr><td>5</td><td>500</td><td>7</td><td>0</td><td class='preformatted'>По возрастанию с шагом 7 500 507 514 521 528 535 542 По убыванию с шагом 3 Нет чисел </td></tr> <tr><td>6</td><td>100</td><td>-2</td><td>2</td><td class='preformatted'>Количество чисел должно быть неотрицательным </td></tr> <tr><td>7</td><td>100</td><td>4</td><td>-3</td><td class='preformatted'>Количество чисел должно быть неотрицательным </td></tr> </table> </div> Версия 20240202. Подборка задач, выбор порядка подачи и подготовка тестовых данных - Крюков Александр, Омск 2013-2026. <a href='https://github.com/AKryukov92/programming-basics'>Основной репозиторий</a></body></html>