Бета версия
Объясни, что здесь делает программа?
Промпт
объясни, что здесь делает программа? import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Scanner; class Activity { private final String name; private final int quantity; private final LocalDate date; public Activity(String name, int quantity, LocalDate date) { this.name = name; this.quantity = quantity; this.date = date; } public int calculateCalories() { if (name.equals("steps")) { return quantity / 1000 * 50; } else if (name.equals("running")) { return (int) (quantity * 75); } else if (name.equals("strength training")) { return quantity * 9; } return 0; } public String toString() { return "Name: " + name + ", Quantity: " + quantity + ", Date: " + date; } } public class ActivityTracker { private final List activities; public ActivityTracker() { activities = new ArrayList<>(); } public void addActivity(String name, int quantity, LocalDate date) { activities.add(new Activity(name, quantity, date)); } public int getTotalCalories(LocalDate startDate, LocalDate endDate) { int totalCalories = 0; for (Activity activity : activities) { LocalDate activityDate = activity.getDate(); if (activityDate.isAfter(startDate) || activityDate.isEqual(startDate)) { if (activityDate.isBefore(endDate) || activityDate.isEqual(endDate)) { totalCalories += activity.calculateCalories(); } } } return totalCalories; } public void printActivities(LocalDate startDate, LocalDate endDate) { for (Activity activity : activities) { LocalDate activityDate = activity.getDate(); if (activityDate.isAfter(startDate) || activityDate.isEqual(startDate)) { if (activityDate.isBefore(endDate) || activityDate.isEqual(endDate)) { System.out.println(activity); } } } } public static void main(String[] args) { ActivityTracker tracker = new ActivityTracker(); Scanner scanner = new Scanner(System.in); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); while (true) { System.out.println("Enter activity (steps / running / strength training): "); String name = scanner.nextLine(); if (name.equals("exit")) { break; } System.out.println("Enter quantity: "); int quantity = Integer.parseInt(scanner.nextLine()); System.out.println("Enter date (yyyy-MM-dd): "); LocalDate date = LocalDate.parse(scanner.nextLine(), formatter); tracker.addActivity(name, quantity, date); } System.out.println("Enter start date (yyyy-MM-dd): "); LocalDate startDate = LocalDate.parse(scanner.nextLine(), formatter); System.out.println("Enter end date (yyyy-MM-dd): "); LocalDate endDate = LocalDate.parse(scanner.nextLine(), formatter); int totalCalories = tracker.getTotalCalories(startDate, endDate); System.out.println("Total calories burned: " + totalCalories); System.out.println("Activities during the specified period:"); tracker.printActivities(startDate, endDate); scanner.close(); } }
Ответ GigaChat
Эта программа представляет собой трекер активности, который позволяет пользователю отслеживать свои ежедневные физические занятия и подсчитывать количество сожженных калорий. Программа использует класс Activity для представления каждой активности пользователя, включая ее название (name), количество выполнений (quantity) и дату (date). Класс ActivityTracker отвечает за добавление новых активностей в список, а также за расчет общего количества сожженных калорий за определенный период времени. Пользователь может ввести данные о названии, количестве и дате активности, а программа будет выводить общую сумму сожженных калорий и список всех активностей в указанный период времени.
Попробуйте GigaChat
Общение с GigaChat 2.0
Ввод голосом и озвучивание ответа
Поиск по интернету
Создание картинок
Работа с файлами
Создание открыток
Распознавание изображений
Умный редактор текста
Смотрите также
Напиши
метод на java, который проверяет, является ли число простым
Конечно! Вот пример метода на Java, который проверяет, является ли число простым:{java}public static boolean isPrime(int number) { if (number <= 1) { return false; // числа 0 и 1 не являются простыми } for (int i = 2; i * i <= number; i++) { if (number % i == 0) { return false; // если делится без остатка нацело, то не является простым } } return true; // если после проверки все циклы пройдены успешно, то число простое}Этот метод принимает целое число `number` в качестве аргумента и возвращает `true`, если число простое, и `false`, если оно составное.Метод работает следующим образом:1. Если число меньше или равно 1, то оно не является простым, так как простые числа начинаются с 2.2. Создается цикл от 2 до корня из `number`.3. Если `number` делится нацело на какое-то число из этого диапазона, то оно не является простым, так как делится нацело на другое число.4. Если после проверки всех чисел из диапазона `number` не было найдено ни одного числа, которое бы делилось нацело на `number`, то оно является простым.Таким образом, этот метод проверяет, является ли число простым, используя простой алгоритм перебора делителей.
СберБанк обрабатывает Cookies с целью персонализации сервисов и для того, чтобы пользоваться сайтом было удобнее. Вы можете запретить обработку Cookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования Cookies
Подробно рассказываем, как CберБанк обрабатывает и защищает ваши данные на странице Sber Bank Privacy