[Skillbox] Java-разработчик - модуль 8 - числа и строки (Решение → 54375)

Описание

[Skillbox] Java-разработчик - модуль 8 - числа и строки

Задача 1 - TrucksAndContainers

Задача 2 - Birthdays

Задача 3 - GeometryCalculator

Задача 4 - Periods

Оглавление

Задание 1ЦельНаучиться работать с циклами и, в частности, с операцией целочисленного деления.Что нужно сделатьПредставьте, что вы доставляете груз в ящиках одинакового размера. У вас есть грузовики и контейнеры. В каждый

Задание 1

Цель

  • Научиться работать с циклами и, в частности, с операцией целочисленного деления.

Что нужно сделать

Представьте, что вы доставляете груз в ящиках одинакового размера. У вас есть грузовики и контейнеры. В каждый грузовик помещается максимум 12 контейнеров. В каждый контейнер — не более 27 ящиков. Ящики, контейнеры и грузовики пронумерованы.

Выполняйте задание в репозитории “java_NumbersAndDates”.

Напишите в классе src/main/java/practice/ программу, которая распределит ящики по контейнерам и грузовикам в зависимости от их количества.

Программа должна также выводить необходимое для этого число грузовиков и контейнеров исходя из количества ящиков, введённого пользователем после запуска программы.

Пример вывода программы для двух ящиков:

Грузовик: 1

Контейнер: 1

Ящик: 1

Ящик: 2

Необходимо:

грузовиков - 1 шт.

контейнеров - 1 шт.

Запустите в проекте тесты и убедитесь в том, что они выполняются успешно. Если всё получилось, поздравляем! Теперь вы умеете пользоваться как простыми математическими операторами, так и специальными функциями в языке Java!

Если тесты не выполняются и выдают информацию об ошибках, постарайтесь самостоятельно исправить эти ошибки и добиться успешного выполнения тестов.

Советы и рекомендации

  • Для добавления отступа слева используйте символ табуляции \t.
  • Для переноса строк используйте строку, возвращаемую методом System.lineSeparator(). Этот метод возвращает системный перенос строки той операционной системы, на которой запущено приложение, так как в MacOS, Windows и Linux используются разные символы переноса строк: для Windows это \r\n, а для MacOS и Linux — \n.
  • Используйте для вычислений арифметическую операцию «остаток от деления»:System.out.println(45 % 10); // вывод будет 5.


Задание 2

Цель

Научиться создавать объекты класса LocalDate, прибавлять к дате годы и сравнивать даты между собой.

Что нужно сделать

  1. Выполняйте задание в репозитории “java_NumbersAndDates” в классе src/main/java/practice/.
  2. Реализуйте метод:public static String collectBirthdays(int year, int month, int day),
  3. который вернёт строки, содержащие все ваши прошедшие дни рождения от момента рождения до текущей даты в требуемом формате. Дата рождения передаётся в метод тремя числами.
  4. Формат требуемого вывода, если ваш день рождения — 31 декабря 1990 года, а сейчас — 1 апреля 2022 года:0 - 31.12.1990 - Mon
  5. 1 - 31.12.1991 - Tue
  6. 2 - 31.12.1992 - Thu
  7. 3 - 31.12.1993 - Fri
  8. 4 - 31.12.1994 - Sat
  9. 5 - 31.12.1995 - Sun
  10. 6 - 31.12.1996 - Tue
  11. 7 - 31.12.1997 - Wed
  12. 8 - 31.12.1998 - Thu
  13. 9 - 31.12.1999 - Fri
  14. 10 - 31.12.2000 - Sun
  15. 11 - 31.12.2001 - Mon
  16. 12 - 31.12.2002 - Tue
  17. 13 - 31.12.2003 - Wed
  18. 14 - 31.12.2004 - Fri
  19. 15 - 31.12.2005 - Sat
  20. 16 - 31.12.2006 - Sun
  21. 17 - 31.12.2007 - Mon
  22. 18 - 31.12.2008 - Wed
  23. 19 - 31.12.2009 - Thu
  24. 20 - 31.12.2010 - Fri
  25. 21 - 31.12.2011 - Sat
  26. 22 - 31.12.2012 - Mon
  27. 23 - 31.12.2013 - Tue
  28. 24 - 31.12.2014 - Wed
  29. 25 - 31.12.2015 - Tue
  30. 26 - 31.12.2016 - Sat
  31. 27 - 31.12.2017 - Sun
  32. 28 - 31.12.2018 - Mon
  33. 29 - 31.12.2019 - Tue
  34. 30 - 31.12.2020 - Thu
  35. 31 - 31.12.2021 - Fri

Запустите в проекте тесты и убедитесь в том, что они выполняются успешно. Если всё получилось, поздравляем! Теперь вы умеете пользоваться как простыми математическими операторами, так и специальными функциями в языке Java!

Если тесты не выполняются и выдают информацию об ошибках, постарайтесь самостоятельно исправить эти ошибки и добиться успешного выполнения тестов.

Советы и рекомендации

  • Создайте в начале метода две переменные класса LocalDate: birthday и today. После этого напишите цикл, в котором добавляйте один год к birthday и сравнивайте получившуюся дату с сегодняшней, используя метод isAfter или isBefore. Таким образом у вас будет проверяться не только год, но и день, что позволит точно выводить данные о прошедших днях рождениях.
  • Для переноса текста на новую строку используйте символ переноса строки, который возвращается методом System.lineSeparator():String text = text + "Строка с датой" +
  • System.lineSeparator();


Задание 3

Цель задания

Научиться работать с числами, операциями над числами, методами и константами класса java.lang.Math.

Что нужно сделать

Реализовать методы работы с геометрическими фигурами, используя методы класса Math и арифметические операции. Задание выполняйте в проекте GeometryCalculator.

Реализуйте в классе GeometryCalculator методы:

  • расчёта площади круга;
  • расчёта площади треугольника;
  • расчёта объёма шара;
  • проверки возможности построения треугольника по трём длинам сторон.

Протестируйте ваши решения, используя тесты.

Рекомендации для реализации формул
  • Площадь треугольника по трём сторонам:

.......

.......

  • Условие возможности построения треугольника: у треугольника сумма любых двух сторон должна быть больше третьей.
  • Формула расчета объема шара:

.......

.......

  • Значение числа Пи используйте из константы класса Math.


Задание 4

Цель задания

Научиться находить разницу между двумя датами.

Что нужно сделать

Выполните задание в классе Main проекта NumbersAndDates/Periods

Реализуйте метод:

public static String getPeriodFromBirthday(LocalDate firstDate, LocalDate secondDate) {

таким образом, чтобы при передаче даты основания языка Java он возвращал количество лет, месяцев и дней с момента основания Java до сегодняшнего дня. Пример, формата вывода:

years:26, months:5, days:9

Что оценивается

Корректность возвращаемого методом срока и его соответствие формату.

Задание без тестов

    
            Описание
            [Skillbox] Java-разработчик - модуль 8 - числа и строкиЗадача 1 - TrucksAndContainersЗадача 2 - Birthdays Задача 3 - GeometryCalculatorЗадача 4 - Periods 
            Оглавление
            Задание 1ЦельНаучиться работать с циклами и, в частности, с операцией целочисленного деления.Что нужно сделатьПредставьте, что вы доставляете груз в ящиках одинакового размера. У вас есть грузовики и контейнеры. В каждый грузовик помещается максимум 12 контейнеров. В каждый контейнер — не более 27 ящиков. Ящики, контейнеры и грузовики пронумерованы.Выполняйте задание в репозитории “java_NumbersAndDates”.Напишите в классе src/main/java/practice/ программу, которая распределит ящики по контейнерам и грузовикам в зависимости от их количества.Программа должна также выводить необходимое для этого число грузовиков и контейнеров исходя из количества ящиков, введённого пользователем после запуска программы.Пример вывода программы для двух ящиков:Грузовик: 1    Контейнер: 1        Ящик: 1        Ящик: 2Необходимо:грузовиков - 1 шт.контейнеров - 1 шт.Запустите в проекте тесты и убедитесь в том, что они выполняются успешно. Если всё получилось, поздравляем! Теперь вы умеете пользоваться как простыми математическими операторами, так и специальными функциями в языке Java!Если тесты не выполняются и выдают информацию об ошибках, постарайтесь самостоятельно исправить эти ошибки и добиться успешного выполнения тестов.Советы и рекомендацииДля добавления отступа слева используйте символ табуляции \t.Для переноса строк используйте строку, возвращаемую методом System.lineSeparator(). Этот метод возвращает системный перенос строки той операционной системы, на которой запущено приложение, так как в MacOS, Windows и Linux используются разные символы переноса строк: для Windows это \r\n, а для MacOS и Linux — \n.Используйте для вычислений арифметическую операцию «остаток от деления»:System.out.println(45 % 10); // вывод будет 5.Задание 2ЦельНаучиться создавать объекты класса LocalDate, прибавлять к дате годы и сравнивать даты между собой.Что нужно сделатьВыполняйте задание в репозитории “java_NumbersAndDates” в классе src/main/java/practice/.Реализуйте метод:public static String collectBirthdays(int year, int month, int day),который вернёт строки, содержащие все ваши прошедшие дни рождения от момента рождения до текущей даты в требуемом формате. Дата рождения передаётся в метод тремя числами.Формат требуемого вывода, если ваш день рождения — 31 декабря 1990 года, а сейчас — 1 апреля 2022 года:0 - 31.12.1990 - Mon1 - 31.12.1991 - Tue2 - 31.12.1992 - Thu3 - 31.12.1993 - Fri4 - 31.12.1994 - Sat5 - 31.12.1995 - Sun6 - 31.12.1996 - Tue7 - 31.12.1997 - Wed8 - 31.12.1998 - Thu9 - 31.12.1999 - Fri10 - 31.12.2000 - Sun11 - 31.12.2001 - Mon12 - 31.12.2002 - Tue13 - 31.12.2003 - Wed14 - 31.12.2004 - Fri15 - 31.12.2005 - Sat16 - 31.12.2006 - Sun17 - 31.12.2007 - Mon18 - 31.12.2008 - Wed19 - 31.12.2009 - Thu20 - 31.12.2010 - Fri21 - 31.12.2011 - Sat22 - 31.12.2012 - Mon23 - 31.12.2013 - Tue24 - 31.12.2014 - Wed25 - 31.12.2015 - Tue26 - 31.12.2016 - Sat27 - 31.12.2017 - Sun28 - 31.12.2018 - Mon29 - 31.12.2019 - Tue30 - 31.12.2020 - Thu31 - 31.12.2021 - FriЗапустите в проекте тесты и убедитесь в том, что они выполняются успешно. Если всё получилось, поздравляем! Теперь вы умеете пользоваться как простыми математическими операторами, так и специальными функциями в языке Java!Если тесты не выполняются и выдают информацию об ошибках, постарайтесь самостоятельно исправить эти ошибки и добиться успешного выполнения тестов.Советы и рекомендацииСоздайте в начале метода две переменные класса LocalDate: birthday и today. После этого напишите цикл, в котором добавляйте один год к birthday и сравнивайте получившуюся дату с сегодняшней, используя метод isAfter или isBefore. Таким образом у вас будет проверяться не только год, но и день, что позволит точно выводить данные о прошедших днях рождениях.Для переноса текста на новую строку используйте символ переноса строки, который возвращается методом System.lineSeparator():String text = text + Строка с датой +System.lineSeparator();Задание 3Цель заданияНаучиться работать с числами, операциями над числами, методами и константами класса java.lang.Math.Что нужно сделатьРеализовать методы работы с геометрическими фигурами, используя методы класса Math и арифметические операции. Задание выполняйте в проекте GeometryCalculator.Реализуйте в классе GeometryCalculator методы:расчёта площади круга;расчёта площади треугольника;расчёта объёма шара;проверки возможности построения треугольника по трём длинам сторон.Протестируйте ваши решения, используя тесты.Рекомендации для реализации формулПлощадь треугольника по трём сторонам:..............Условие возможности построения треугольника: у треугольника сумма любых двух сторон должна быть больше третьей.Формула расчета объема шара:..............Значение числа Пи используйте из константы класса Math.Задание 4Цель заданияНаучиться находить разницу между двумя датами.Что нужно сделатьВыполните задание в классе Main проекта NumbersAndDates/PeriodsРеализуйте метод: public static String getPeriodFromBirthday(LocalDate firstDate, LocalDate secondDate) {таким образом, чтобы при передаче даты основания языка Java он возвращал количество лет, месяцев и дней с момента основания Java до сегодняшнего дня. Пример, формата вывода:years:26, months:5, days:9Что оцениваетсяКорректность возвращаемого методом срока и его соответствие формату.Задание без тестов 
            
            
            [Skillbox] Java-разработчик - модуль 7 - Примитивы [Skillbox] Java-разработчик - модуль 8  - числа  и строки[Skillbox] Java-разработчик. Модуль 9 Массивы и коллекции. Решение задач домашней работы №9.2[Skillbox] Java-разработчик. Модуль 9 Массивы и коллекции. Решение задач домашней работы №9.3[Skillbox] Java-разработчик. Модуль 9 Массивы и коллекции. Решение задач домашней работы №9.5[Skillbox] Java-разработчик - модуль 9 - Строки[Skillbox] Java-разработчик. Модуль №12 Исключения, отладка, тестирование и логирование . Решение задач домашней работы №12.2, 12.3[Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.18 - MovementsList[Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.19 - Lenta[Skillbox] Java-разработчик - модуль 2 -синтаксис языка часть 1 - решение задач [Skillbox] Java-разработчик - модуль 2 -синтаксис языка часть 2- решение задач[Skillbox] Java-разработчик - модуль 4 - Объекты и классы. Часть 1. Методы и классы[Skillbox] Java-разработчик - модуль 5 - Объекты и классы. Часть 2. Инкапсуляция[Skillbox] Java-разработчик - модуль 5 - Объекты и классы. Часть 2. Инкапсуляция(задача 2)