|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|||||||||||||||||||||
Остановка выполнения программы на C++16.11.2019, 21:49. Показов 10024. Ответов 62
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане! Столкнулся со следующей проблемой. Сейчас работаю над проектом (отправка кодов решений на C++ и их проверка на сервере с помощью PHP). Получается отправить программу из окна редактора и проверить ее с помощью тестов, а также замерить время выполнения каждого теста, но возникает проблема, замер времени происходит только после запуска и завершения программы, а мне нужно выйти из нее до ее завершения по исчечении 1-2 секунд (то есть, обработать ошибку TLE (Time Limit Exceeded)). Средставми PHP этого достигнуть не получается, так как необходим выход из программы до ее завершения. Поэтому, я решил делать остановку внутри кода на C++. Я никогда раньше не делал такого и нужно приблизительно следущее:
Код программы на C++:
Очень буду благодарен за ваш ответ, так как мы сами пока не знаем что делать. Добавлено через 39 минут Получилось сделать замер в начале и конце программы, но я не уверен, что это наилучший вариант. Вот, что получилось:
0
|
|||||||||||||||||||||
| 16.11.2019, 21:49 | |
|
Ответы с готовыми решениями:
62
Остановка выполнения консольной программы без system("pause")
Полная остановка программы |
|
Just Do It!
|
||
| 17.11.2019, 20:43 | ||
|
DrOffset, а интересно, и как раз в тему, зачем буст то? стандартного <thread>'а разве не хватает? если честно, я думал, уже сто человек предложили код без буста на чистом стандартном <thread>
0
|
||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 17.11.2019, 20:47 | |||
|
Можно сделать на std::, но будет чуть больше кода, чуть выше сложность.
0
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 17.11.2019, 21:13 | ||
|
А вот буст как раз никакая не пушка; это набор разнокалиберного оружия. И оттуда я взял подходящее по условию и трудозатратам на реализацию. Учитывая, что буст сейчас практически везде есть, использование его не представляет никакой проблемы. Восприятие буста как монолитной системы, или как экзотики, - устарело и уходят корнями в начало 2000х. Современный плюсовик не должен его бояться.
0
|
||
|
Just Do It!
|
||||||||
| 17.11.2019, 21:36 | ||||||||
|
указать на
Добавлено через 5 минут
0
|
||||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||
| 17.11.2019, 21:51 | ||
|
В Visual Studio boost использует автоподключение либ (через прагму). Иногда, если студия новая, а буст старый - автоподключение работает неправильно и предлагает к линковке не ту версию, и тогда появляются такие ошибки, что не найдена библиотека. Еще такая ошибка может быть, если версия компилятора в студии одна, а буст поставили для другой (имеются в виду скомпилированные библиотеки). Тогда автоподключение работает правильно, выбирает соответствующие либы для линковки, но естественно не находит их, т.к. версия-то стоит другая. Вообще конечно, одной из причин, почему я сделал пример на бусте - ТС написал, что эксплуатироваться это будет на Ubuntu, а там-то как раз таких проблем не бывает.
0
|
||
|
Just Do It!
|
|||
| 17.11.2019, 22:45 | |||
|
мда, C::B я уже давненько не запускал, а ваще из аскетичных самая лучшая иде, имхо.
0
|
|||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 18.11.2019, 01:27 [ТС] | ||
|
DrOffset, мне удалось поставить boost для CodeBlocks. Но я не знаю как изменить ваш код, чтобы работало. Выдает кучу ошибок. Сама библиотека работает.
Добавлено через 5 минут
0
|
||
|
Just Do It!
|
|||||||
| 18.11.2019, 05:19 | |||||||
Входные(текущие) на тест: user_main выполняется за 1 секунду. (увеличить(больше 6 сек), чтобы проверить срабатывание на лимит(6сек)) Таймер на лимит настроен на 6 секунд. Добавлено через 2 минуты надо бы тестовый стенд замутить, но на глаз вроде работает
1
|
|||||||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||||||||
| 18.11.2019, 09:13 | ||||||||
Сообщение было отмечено XLAT как решение
РешениеКод работает. Вы же понимаете, что это очень некрасиво, вот так просить о помощи, но при этом не предоставлять ничего, что могло бы способствовать эту помощь осуществить? Хотя бы ошибки покажите.
1
|
||||||||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:35 [ТС] | |
|
DrOffset, здравствуйте. Извините, что отнимаю у вас время. Мне до сих пор не смогли установить сервер. Произошла какая-то ошибка и они снова устанавливают. Вот скриншот из поста 30 (ваш последний код). Запуск на CodeBlocks 17.12 привел вот к такому исходу:
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:38 [ТС] | |
|
Вот более подробный снимок. Я забыл развернуть стек с ошибками:
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:41 [ТС] | |
|
XLAT, здравствуйте! Спасибо, что уделили внимание. Запуск вашего кода привел к такому исходу:
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 18.11.2019, 20:44 | |
|
Fixer_84, какой версии у вас компилятор в CodeBlocks?
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:47 [ТС] | |
|
DrOffset, gcc (tdm64-1) 4.9.2
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:52 [ТС] | |
|
DrOffset, если вернуться к более простому варианту с boost. Ваш код из поста 4 выдал такие ошибки:
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|||
| 18.11.2019, 21:12 | |||
|
Лучше поставить вот этот: https://sourceforge.net/projec... e/download А еще лучше, чтобы больше не мучиться, поставить MSYS2 и в ней уже и mingw, и boost, и остальное, что нужно. Там гарантированно все верно и совместимо.
0
|
|||
|
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 2
|
|
| 18.11.2019, 21:20 | |
|
Fixer,добрый день,очень хотел бы с вами связаться,есть вопрос по С++
0
|
|
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
||||||
| 18.11.2019, 21:40 | ||||||
![]() Вот: MinGW не видит класс thread Добавлено через 5 минут Когда флажок не поднят ошибка будет такая:
По этой же причине у него не работает мой код.
0
|
||||||
| 18.11.2019, 21:40 | |
|
Помогаю со студенческими работами здесь
40
Как реализовать задержку выполнения определённой части программы без полной задержки всей программы?
Последовательность выполнения программы Очерёдность выполнения программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|