Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Лабораторная №1 #913

Closed
wants to merge 35 commits into from
Closed

Conversation

sudo-odner
Copy link

Снимок экрана 2024-09-20 в 16 45 13

@Dovgalyuk
Copy link
Owner

Нужно временно отключить неактуальные тесты, чтобы они не замусоривали вывод.

@sudo-odner
Copy link
Author

Исправил ошибку с логами

@Dovgalyuk
Copy link
Owner

Это задание только про Array, остальные контейнеры надо удалить.

.idea/.gitignore Outdated
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Эти файлы не нужно выкладывать.

target_include_directories(Lab1 PUBLIC ../LibraryCPPClass)
target_link_libraries(Lab1 LibraryCPPClass)

add_test(NAME TestLab1 COMMAND Lab1 ${CMAKE_CURRENT_SOURCE_DIR}/input.txt ${CMAKE_CURRENT_SOURCE_DIR}/output.txt)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

output не нужно создавать в каталоге с исходниками

Lab1/lab1.cpp Outdated
ifstream output(argv[2]);
Array *arrTask1 = arrayCreateFromInput(input);
task1(arrTask1);
if(test(output, *arrTask1)) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тест должен быть отдельно от программы, которая выводит результат.

{
return 0;
size_t Array::size() const {
return _size;
}
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему две реализации array?

@Dovgalyuk
Copy link
Owner

Тест на сервере не проходит.

@Dovgalyuk
Copy link
Owner

Принято.

  • Реализовать в проекте Library двусвязный список (модуль list) и стек на основе этого списка (модуль stack).
  • Решить задачу, используя реализованный стек.
  • Добавить пример входных данных и описать тест в CMakeLists.txt, который запускает разработанную программу и использует входные данные.

Реализовать команды манипуляции стеком из языка Forth: https://skilldrick.github.io/easyforth
Программа читает входную строку из следующих команд:

  • 0-9 - заносит число в стек
  • +-*/% - арифметические операции. Извлекают два числа из стека, а потом заносят туда результат
  • dup - дублирует число на вершине стека
  • drop - удаляет число с вершины стека
  • swap - меняет местами два числа на вершине стека
  • over - берёт элемент под вершиной стека и добавляет его в стек
  • rot - перемещает "по кругу" верхние три элемента стека
  • . - извлекает из стека верхний элемент и выводит на экран

Входные данные

1 2 3 rot . . .

Выходные данные

1
3
2

Входные данные

1 dup . 2 dup . 3 dup . + + .

Выходные данные

1
2
3
6

@Dovgalyuk Dovgalyuk closed this Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants