Java: junior. Практическое задание
В этой статье мы разберем практическое задание, которое демонстрирует, как эффективно работать со строками, списками и сортировками на языке Java. Задача заключается в вычислении минимального, медианного и максимального возраста сотрудников из структурированных данных.
Текстовый файл с примерами кода задачи будет прикреплен к посту 👉Telegram
Следите за обновлениями и удачного программирования! 🚀
Задача 1.
Описание
Вы разрабатываете программу для обработки информации о фигурах на плоскости. Вам необходимо создать класс, который будет вычислять площадь и периметр фигуры. Программа работает с двумя типами фигур — круг и квадрат.
Формат ввода
Одна строка, состоящая из типа фигуры (круг
или квадрат
) и опционально — измерения (радиус для круга или длина стороны для квадрата). Они разделены пробелом.
Измерение может быть как целым, так и вещественным числом.
Если измерение не указано, оно должно приниматься по умолчанию за 1.
Формат вывода
Два числа: сначала площадь, затем периметр фигуры, разделенные пробелом. Оба числа отформатированы с точностью до двух знаков после точки. Например:
Пример 1
Пример 2
Пояснение к коду:
- Разделение ввода:
Входная строка разделяется на части с помощью пробела. Переменнаяshape
хранит тип фигуры, аsize
содержит измерение. - Обработка значения по умолчанию:
Если размер не указан, он по умолчанию принимает значение 1.0. - Вычисление параметров фигуры:
- Для "круг" используются формулы с
Math.PI
. - Для "квадрат" площадь и периметр вычисляются с помощью простого умножения.
- Форматирование вывода:
Результат форматируется с точностью до двух знаков после точки с использованиемString.format()
.
Задача 2.
Вы работаете над системой анализа логов. Вам нужно разработать компонент для обработки и анализа строк. Этот компонент должен выполнять следующие операции:
- Переворот строки.
- Удаление всех цифр из строки.
- Замена всех пробелов на подчёркивания (
_
). - Вставка последовательности
LOG
в начало строки.
Затем система должна выводить обработанную строку.
Формат ввода:
Одна строка, состоящая из различных латинских буквенных и числовых символов, а также пробелов. Длина строки — от 2 до 100 символов.
Формат вывода:
Одна строка — исходная строка, к которой применили последовательность операций из условия задачи.
Пример 1
Входные данные: Hello World 123
Выходные данные: LOG_dlroW_olleH
Пример 2:
Пояснение к коду:
- Удаление цифр:
line.replaceAll("[0-9]", "")
удаляет все цифры из входной строки. - Переворот строки:
new StringBuilder(noDigits).reverse().toString()
переворачивает очищенную строку. - Замена пробелов:
reversed.replace(" ", "_")
заменяет все пробелы на подчёркивания (_
). - Добавление
LOG
:
КонкатенацияLOG
с модифицированной строкой.
Пример тестирования:
Входные данные: Hello World 123
- Удалить цифры →
Hello World
- Перевернуть →
dlroW olleH
- Заменить пробелы →
dlroW_olleH
- Добавить
LOG
→LOG_dlroW_olleH
Выходные данные: LOG_dlroW_olleH
Входные данные: 12345678
- Удалить цифры → (пустая строка)
- Перевернуть → (пустая строка)
- Заменить пробелы → (пустая строка)
- Добавить
LOG
→LOG
Входные данные: H1E2L3L4O5
Выходные данные: LOG_O_L_L_E_H
Задача 3.
Вы работаете над модулем внутрикорпоративной системы учёта данных сотрудников компании. Программа должна:
- Найти сотрудника с минимальным возрастом.
- Вычислить медианный возраст всех сотрудников.
- Найти сотрудника с максимальным возрастом.
Медиана — число, которое находится в середине упорядоченного набора чисел. Если чисел чётное количество, медианой считается среднее значение двух средних чисел, округлённое до целого.
Формат ввода:
Одна строка — данные сотрудников.
Данные включают имя, возраст и отдел, разделённые запятой, без пробелов. Информация о каждом сотруднике разделена точкой с запятой.
Количество сотрудников: от 2 до 100.
Формат вывода:
Одна строка, содержащая три целых числа, разделённых пробелом:
минимальный возраст, медианный возраст и максимальный возраст.
Пример 1
Входные данные: Иван,28,Инженер;Олег,34,HR;Денис,45,Маркетинг;Анна,30,Инженер;Борис,24,HR
Выходные данные: 24 30 45
Пример 2
Входные данные: Павел,28,Инженер;Елена,34,Маркетинг
Выходные данные: 28 31 34
Ключевое объяснение:
- Парсинг ввода:
- Разделите входную строку на записи о сотрудниках с помощью
split(";")
. - Извлеките возраст для каждой записи, разделяя строку ещё раз с помощью
split(",")
. - Сортировка:
- Минимум и максимум:
- Минимальный возраст — это первый элемент в отсортированном списке.
- Максимальный возраст — это последний элемент в отсортированном списке.
- Вычисление медианы:
- Если количество сотрудников чётное, медиана — это среднее значение двух центральных чисел (округлённое).
- Если количество сотрудников нечётное, медиана — это центральное значение в списке.
- Форматированный вывод: