Skip to content

Salavat-dev0/Test-Task-HT-Performance-Lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test-Task-HT-Performance-Lab

Тестовые задания от Перфоманс Лаб

Язык программирования: Java

Задание 1

Круговой массив - массив из элементов, в котором по достижению конца массива следующим элементом будет снова первый. Массив задается числом n, то есть представляет собой числа от 1 до n.

Напишите программу, которая выводит путь, по которому, двигаясь интервалом длины m по заданному массиву, концом будет являться первый элемент. Началом одного интервала является конец предыдущего. Путь - массив из начальных элементов полученных интервалов. Программа должна обрабатывать 2 массива одновременно. Результаты необходимо объединить в один общий путь. Параметры передаются в качестве аргументов командной строки!

Пример 1

Массив 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

Пример 2

Массив 1: n = 4, m = 2. Круговой массив: 1234.

При длине обхода 2 получаем интервалы: 12, 23, 34, 41. Полученный путь: 1234.

Массив 2: n = 6, m = 4.

Круговой массив: 123456.

При длине обхода 4 получаем интервалы: 1234, 4561. Полученный путь: 14.

Ожидаемый вывод в консоль: 123414.

Задание 2

Напишите программу, которая рассчитывает положение точек относительно эллипса.

Координаты центра эллипса и его радиусы считываются из файла 1. Пример:
0 0 – координаты центра
5 3 – координаты радиуса

Координаты точек считываются из файла 2.

Пример:
0 3
0 0
6 0

Вывод для данных примеров файлов:
0
1
2

Пути к файлам передаются программе в качестве аргументов!

  • файл с координатами и радиусом эллипса - 1 аргумент;
  • файл с координатами точек - 2 аргумент;
  • координаты - рациональные числа в диапазоне от 10-38 до 1038;
  • количество точек от 1 до 100;
  • вывод каждого положения точки заканчивается символом новой строки;
  • соответствия ответов:
    • 0 - точка лежит на окружности
    • 1 - точка внутри

Задание 3

На вход в качестве аргументов программы поступают три пути к файлу (в приложении к заданию находятся примеры этих файлов):

  • values.json содержит результаты прохождения тестов с уникальными id
  • tests.json содержит структуру для построения отчета на основе прошедших тестов (вложенность может быть большей, чем в примере)
  • report.json - сюда записывается результат.

Напишите программу, которая формирует файл report.json с заполненными полями value для структуры tests.json на основании values.json. Структура report.json такая же, как у tests.json, только заполнены поля “value”.

На вход программы передается три пути к файлу!

Задание 4

Дан массив целых чисел 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 ходов недостаточно для приведения всех элементов массива к одному числу».

Вывод программы в консоль!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages