Skip to content

Test Assignment from One Company

codswort/TestJava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

4 задания

Введение

Все задания выполняются на одном из предложенных языков: Java, C++, Python, C#. Вам нужно прислать ссылку на ваш публичный репозиторий на github.com.

В вашем репозитории должны быть 4 каталога: task1, task2, task3, task4

А также файл author.txt, который содержит Фамилию_Имя латиницей и имя языка, на котором выполнялось задание [java|cpp|python|cs] *Для не выполненных заданий каталоги не создаются Пример файла author.txt Screenshot 2024-07-06 at 4 44 33 PM

В каждом каталоге должны находиться исходные файлы *.[cpp|hpp|java] и исполняемый файл. Если С++ - task#.exe, для java - task#.jar, для Python - task#.py, где # - номер задания.

Параметры для выполнения программ передаются через аргументы командной строки (числа или пути до файлов, в зависимости от задания). Результат выполнения программы должен выводится в консоль, если не указано иное. В качестве разделителя нужно использовать символ перехода на новую строку.

Ваша работа будет проверяться автоматически. Если порядок вывода результатов будет нарушен, то решение не будет зачтено. Обратите внимание, что тестовые файлы будут наши. Если вы захардкодите путь к своему файлу, то это будет ошибка.

Примечание для С++. Ваши приложения будут запускаться на Windows 10 Корпоративная. В случае, если ваш исполняемый файл не запустится, то он будет заново скомпилирован из файлов папки SRC (не складывайте хедеры в отдельный каталог).
Компилятор g++ -std=c++14.

Примечание для Python.
Python 3.7.3

Примечание для Java.
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)

Task1

Круговой массив - массив из элементов, в котором по достижению конца массива следующим элементом будет снова первый. Mассив задается числом n, то есть представляет собой числа от 1 до n.
Пример кругового массива для n=3:
Screenshot 2024-07-06 at 4 49 17 PM

Напишите программу, которая выводит путь, по которому, двигаясь интервалом длины m по заданному массиву, концом будет являться первый элемент.

Началом одного интервала является конец предыдущего. Путь - массив из начальных элементов полученных интервалов.

Пример 1:
n = 4, m = 3
Решение:
Круговой массив: 1234. При длине обхода 3 получаем интервалы: 123, 341.
Полученный путь: 13.
Пример 2:
n = 5, m = 4
Решение:
Круговой массив: 12345. При длине обхода 4 получаем интервалы: 1234, 4512, 2345, 5123, 3451.
Полученный путь: 14253.
Параметры передаются в качестве аргументов командной строки.
Например, для последнего примера на вход подаются аргументы: 5 4
Ожидаемый вывод в консоль: 14253

Task2

Напишите программу, которая рассчитывает положение точки относительно окружности.
Координаты центра окружности и его радиус считываются из файла1.
Пример:
Screenshot 2024-07-06 at 4 52 13 PM

Координаты точек считываются из файла2.
Пример:
Screenshot 2024-07-06 at 4 52 19 PM

Файлы передаются программе в качестве аргументов. Файл с координатами и радиусом окружности - 1 аргумент, файл с координатами точек - 2 аргумент.

Координаты в диапазоне float.
Количество точек от 1 до 100.
Вывод каждого положения точки заканчивается символом новой строки.

Соответствия ответов:
0 - точка лежит на окружности
1 - точка внутри
2 - точка снаружи

Task3

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

Напишите программу, которая формирует файл report.json с заполненными полями value для структуры tests.json на основании values.json.
Пример:
Часть структуры tests.json:
Screenshot 2024-07-06 at 4 54 46 PM

После заполнения в соответствии с values.json:
Screenshot 2024-07-06 at 4 54 54 PM

Будет иметь следующий вид в файле report.json:
Screenshot 2024-07-06 at 4 55 00 PM

Task4

Дан массив целых чисел nums. Напишите программу, выводящую минимальное количество ходов, требуемых для приведения всех элементов к одному числу. За один ход можно уменьшить или увеличить число массива на 1.

Пример:
nums = [1, 2, 3]
Решение: [1, 2, 3] => [2, 2, 3] => [2, 2, 2]
Минимальное количество ходов: 2
Элементы массива читаются из файла, переданного в качестве аргумента командной строки.

Пример:
На вход подаётся файл с содержимым:
Screenshot 2024-07-06 at 4 56 33 PM

Вывод в консоль:
16

Автор

Ильназ Набиев (@codswort)

About

Test Assignment from One Company

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages