2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Не работает программа на Турбо Паскале
Сообщение20.01.2025, 18:32 
Лет 40 назад я сделал программу на Турбо Паскале для ортогонализации булевой КНФ и заодно для проверки ее выполнимости. Прога нормально работала все эти годы, но когда появились Windows 7 и выше, перестала работать. Программа на Турбо Паскале занимает примерно 1700 строк. Там еще использовались всякие модули: TpCrt,Printer,Dos,TpRArray,TpEdit . А сейчас нужно ее запустить. Кто бы помог это сделать?

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение20.01.2025, 19:14 
Аватара пользователя
В своё время сталкивался с таким. Проги работали начиная с DOS и вплоть до WinXP включительно.
В Win7 перестали. Но поскольку их актуальность сошла почти на нет, я особо не горевал. Нужные переписал в Delphi.
Однако оставался ещё принтер (кажется LBP-800, не помню точно), драйверы под который не устанавливались даже под WinXP.
Тогда я под WinXP установил эмулятор Win98, и принтер заработал. А так хоть выбрасывай почти новый принтер. Жалко...
Может и сейчас можно сварганить что-то подобное...

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение20.01.2025, 19:29 
BorisK в сообщении #1670847 писал(а):
А сейчас нужно ее запустить. Кто бы помог это сделать?

Сделайте виртуалку с WinXP и там запускайте...

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение20.01.2025, 21:45 
Для этого хватит и DOSBox, правда, я пользуюсь DOSBox-X.
https://dosbox-x.com/

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение21.01.2025, 05:12 
Аватара пользователя
Еще можно попытаться пересобрать программу на Free Pascal/Free Vision, вдруг получится.
https://www.freepascal.org/port.html

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение21.01.2025, 13:54 
Аватара пользователя
Не знаю, нужно ли это ТС, но, как говорится, лыко в строку, на всякий случай. Дела давно (очень давно) минувших дней...
В 90-м или 91-м, тогда ещё в ДОСе, перестали компилироваться программы, написанные в ТР7.
Случилось это при переходе с PC AT286 на 386.
Если в разделе uses упоминался модуль crt, то компиляция завершалась аварийно.
К счастью, в сети был выложен обновленный модуль, и проблема исчезла.

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение23.01.2025, 12:18 
Спасибо всем! Надеюсь, что-то из ваших советов сработает. Но на соревнования по скорости решения задачи "выполнимость КНФ" с этой программой, наверное, лучше не соваться. Придется переводить ее на более современный язык.

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение23.01.2025, 12:24 
BorisK в сообщении #1671205 писал(а):
Но на соревнования по скорости решения задачи "выполнимость КНФ" с этой программой, наверное, лучше не соваться. Придется переводить ее на более современный язык.

Пришла пора попробовать рефакторинг при помощи ИИ.

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение23.01.2025, 14:49 
Аватара пользователя
Вспоминаю, что компилятор Паскаля устанавливал в системные каталоги (типа C:\Windows\System32) свои библиотеки (наверное с расширением *.bpl, или может *.tpl). Так что, прежде чем запустить программу, надо сначала установить собственно компилятор. Кроме того, в Windows 7 был режим совместимости. Например, если выделить проводником исполняемый файл, то возникает меню, третьим пунктом которого был запуск программы в режиме совместимости. В Windows 8.1 этот пункт меню заменили на пункт "Исправление проблем совместимости", что намекало, что программа уже не обязана запускаться.

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение23.01.2025, 15:13 
BorisK в сообщении #1671205 писал(а):
Но на соревнования по скорости решения задачи "выполнимость КНФ" с этой программой, наверное, лучше не соваться.

Тут дело не в языке, мне кажется. Если я правильно понимаю, о чём речь, размер ортогонализированной КНФ в общем случае экспоненциально зависит от числа переменных.

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение23.01.2025, 15:35 
Sender в сообщении #1671258 писал(а):
BorisK в сообщении #1671205 писал(а):
Но на соревнования по скорости решения задачи "выполнимость КНФ" с этой программой, наверное, лучше не соваться.

Тут дело не в языке, мне кажется. Если я правильно понимаю, о чём речь, размер ортогонализированной КНФ в общем случае экспоненциально зависит от числа переменных.

В общем случае экспоненциально зависит. Но с помощью некоторых приемов можно существенно снизить трудоемкость, а иногда и вычислительную сложность алгоритма. Те же приемы работают и при решении задачи выполнимости. Если интересно, то об этом в статье https://www.mathnet.ru/links/eec1fcf7f0 ... at3571.pdf

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение23.01.2025, 15:50 
BorisK, интересно, спасибо. Если говорить о полиномиальных в среднем алгоритмах для SAT, есть, например, такой, основанный на подсчёте числа выполняющих подстановок. Возможно, на самом деле речь об одном и том же, пока не вникал. :-)
https://discopal.ispras.ru/img_auth.php/6/6f/Sat-average.beam.pdf

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение24.01.2025, 08:38 
Sender в сообщении #1671263 писал(а):
BorisK, интересно, спасибо. Если говорить о полиномиальных в среднем алгоритмах для SAT, есть, например, такой
https://discopal.ispras.ru/img_auth.php/6/6f/Sat-average.beam.pdf

Я в этом ничего не понял. Что такое скобка? Дизъюнкция литералов? Тогда непонятно, как может быть скобка равной 0.

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение24.01.2025, 09:02 
BorisK в сообщении #1671373 писал(а):
Я в этом ничего не понял. Что такое скобка? Дизъюнкция литералов? Тогда непонятно, как может быть скобка равной 0.

Да, дизъюнкция литералов. Очевидно, она равна (булевому) 0, когда все входящие в неё литералы равны 0. Строго говоря, подсчитываются не выполняющие, а обнуляющие наборы значений.

 
 
 
 Re: Не работает программа на Турбо Паскале
Сообщение26.01.2025, 14:31 
Sender в сообщении #1671376 писал(а):
Да, дизъюнкция литералов. Очевидно, она равна (булевому) 0, когда все входящие в неё литералы равны 0. Строго говоря, подсчитываются не выполняющие, а обнуляющие наборы значений.

Ну, тогда, прошу прощения, это ни о чем. Ибо "нулевых" дизъюнкций и литералов в реальных формулах КНФ просто не существует.

 
 
 [ Сообщений: 18 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group