Тестовые задания от Перфоманс Лаб
Язык программирования: Java
Круговой массив - массив из элементов, в котором по достижению конца массива следующим элементом будет снова первый.
Массив задается числом n, то есть представляет собой числа от 1 до n.
Напишите программу, которая выводит путь, по которому, двигаясь интервалом длины m по заданному массиву,
концом будет являться первый элемент. Началом одного интервала является конец предыдущего.
Путь - массив из начальных элементов полученных интервалов. Программа должна обрабатывать 2 массива одновременно.
Результаты необходимо объединить в один общий путь. Параметры передаются в качестве аргументов командной строки!
Массив 1: n = 6, m = 3.
Круговой массив: 123456.
При длине обхода 3 получаем интервалы: 123, 345, 561.
Полученный путь: 135.
Массив 2: n = 5, m = 4.
Круговой массив: 12345.
При длине обхода 4 получаем интервалы: 1234, 4512, 2345, 5123, 3451.
Полученный путь: 14253.
В этом примере на вход подаются аргументы: 6 3 и 5 4, ожидаемый вывод в консоль: 13514253
Массив 1: n = 4, m = 2.
Круговой массив: 1234.
При длине обхода 2 получаем интервалы: 12, 23, 34, 41.
Полученный путь: 1234.
Массив 2: n = 6, m = 4.
Круговой массив: 123456.
При длине обхода 4 получаем интервалы: 1234, 4561.
Полученный путь: 14.
Ожидаемый вывод в консоль: 123414.
Напишите программу, которая рассчитывает положение точек относительно эллипса.
Координаты центра эллипса и его радиусы считываются из файла 1. Пример:
0 0 – координаты центра
5 3 – координаты радиуса
Координаты точек считываются из файла 2.
Пример:
0 3
0 0
6 0
Вывод для данных примеров файлов:
0
1
2
Пути к файлам передаются программе в качестве аргументов!
- файл с координатами и радиусом эллипса - 1 аргумент;
- файл с координатами точек - 2 аргумент;
- координаты - рациональные числа в диапазоне от 10-38 до 1038;
- количество точек от 1 до 100;
- вывод каждого положения точки заканчивается символом новой строки;
- соответствия ответов:
- 0 - точка лежит на окружности
- 1 - точка внутри
На вход в качестве аргументов программы поступают три пути к файлу (в приложении к заданию находятся примеры этих файлов):
values.jsonсодержит результаты прохождения тестов с уникальнымиidtests.jsonсодержит структуру для построения отчета на основе прошедших тестов (вложенность может быть большей, чем в примере)report.json- сюда записывается результат.
Напишите программу, которая формирует файл report.json с заполненными полями value для структуры tests.json
на основании values.json. Структура report.json такая же, как у tests.json, только заполнены поля “value”.
На вход программы передается три пути к файлу!
Дан массив целых чисел nums.
Напишите программу, выводящую минимальное количество ходов, требуемых для приведения всех элементов массива к одному числу.
За один ход можно уменьшить или увеличить число массива на 1.
Имеется ограничение по максимальному количеству ходов – 20.
Необходимо вывести минимальное количество ходов. В случае, если за 20 ходов это сделать невозможно, необходимо вывести соответствующее сообщение.
Элементы массива читаются из файла, переданного в качестве аргумента командной строки!
nums = [4, 5, 6]
Решение: [4, 5, 6] => [5, 5, 6] => [5, 5, 5].
Минимальное количество ходов: 2.
Пример 1:
На вход подаётся файл с содержимым:
3
6
8
9
Вывод в консоль: 8
Пример 2:
На вход подаётся файл с содержимым:
1
16
3
20
Вывод в консоль: «20 ходов недостаточно для приведения всех элементов массива к одному числу».
Вывод программы в консоль!