From a80da53d0ca07bdedd541e155a6b68f0bc1d1194 Mon Sep 17 00:00:00 2001 From: erius Date: Sat, 19 Oct 2024 05:44:57 +0300 Subject: [PATCH] Added README --- README.md | 13 +++++++++++++ src/main.cpp | 1 - 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..5837ccf --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Yadro TATLIN Data Services - Задание + +Устройство хранения данных типа лента (```Tape```) предназначено для последовательной записи и чтения +данных. Считывающая/записывающая магнитная головка неподвижна во время чтения и записи, а лента имеет возможность двигаться в обоих направлениях. Запись и чтение информации возможны в ячейку ленты, на которой в данный момент находится магнитная головка. Перемещения ленты – затратная по времени операция – лента не предназначена для произвольного доступа. Имеется входная лента длины _N_ (где _N_ – велико), содержащая элементы типа ```integer``` (232). Имеется выходная лента такой же длины. Необходимо записать в выходную ленту отсортированные по возрастанию элементы с входной ленты. Есть ограничение по использованию оперативной памяти – не более _M_ байт (_M_ может быть < _N_, т.е. загрузить все данные с ленты в оперативную память не получится). Для реализации алгоритма можно использовать разумное количество временных лент, т.е. лент, на которых можно хранить какую-то временную информацию, необходимую в процессе работы алгоритма. + +Необходимо создать проект ```С++```, компилируемый в консольное приложение, которое реализует алгоритм сортировки данных с входной ленты на выходную. Необходимо сделать следующее: + +- Определить интерфейс для работы с устройством типа лента. +- Написать класс, реализующий этот интерфейс и эмулирующий работу с лентой посредством обычного файла. Должно быть возможно сконфигурировать (без перекомпиляции – например, через внешний конфигурационный файл, который будет прочитан на старте приложения) задержки по записи/чтению элемента с ленты, перемотки ленты, и сдвига ленты на одну позицию. +- Файлы временных лент можно сохранять в директорию ```tmp```. +- Написать класс, реализующий алгоритм сортировки данных с входной ленты на выходную. +- Консольное приложение должно принимать на вход имя входного и выходного файлов и производить сортировку. +- Желательно написать юнит-тесты. diff --git a/src/main.cpp b/src/main.cpp index 0409909..09d2f5d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,4 +5,3 @@ int main(int argc, char *argv[]) { std::unique_ptr tape(new FileTape("test")); return 0; } -