Бета версия
Объясни, что здесь делает программа?
Промпт
объясни, что здесь делает программа? 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
Ввод голосом и озвучивание ответа
Поиск по интернету
Создание картинок
Работа с файлами
Создание открыток
Распознавание изображений
Умный редактор текста
Смотрите также
У меня есть массив с вещественными числами. Как мне в этом массиве найти максимальный элемент с четным индексом? Напиши пример кода на джава
Для решения этой задачи можно использовать цикл for для перебора элементов массива и условный оператор if для проверки четности индекса каждого элемента. Вот пример кода на языке Java:{java}double[] array = {1.5, 2.7, 3.8, 4.9, 5.0};double maxEvenIndex = 0; // начальное значение максимального четного индексаfor (int i = 0; i < array.length; i++) { if (array[i] % 2 == 0 && array[i] > maxEvenIndex) { maxEvenIndex = array[i]; }}System.out.println("Максимальный четный индекс: " + maxEvenIndex);В этом примере мы создаем массив `array` с пятью элементами. Затем мы определяем переменную `maxEvenIndex`, которая будет хранить максимальный четный индекс. Мы начинаем цикл for с первого элемента массива и перебираем все остальные элементы. Внутри цикла мы проверяем, является ли текущий индекс четным и больше ли он текущего значения максимального четного индекса. Если это так, мы обновляем значение `maxEvenIndex`. В конце цикла мы выводим найденное максимальное значение четного индекса.
СберБанк обрабатывает Cookies с целью персонализации сервисов и для того, чтобы пользоваться сайтом было удобнее. Вы можете запретить обработку Cookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования Cookies
Подробно рассказываем, как CберБанк обрабатывает и защищает ваши данные на странице Sber Bank Privacy