Runtime error 200
3651
19
Это вроде как деление на ноль (речь о паскалевской проге скомпилированной в BP7). Подскажите, как объяснить компилятору что он что-то делает не так?
Так компилятор-то, вроде, как раз все правильно делает. Это библиотека у них там кривая... Менять ее надо или патчить.
onanymous
А что конкретно менять и где?
Ошибка возникает случайно, не в процессе компиляции а исполнения. Иногда есть, иногда нет.
Странно, что не всегда... хотя, теоретически, и такое возможно.
Спроси гугль -
"runtime error 200" +pascal
onanymous
что такое гугль?
Вообще конечно странно, что не всегда. Как мне кто-то когда-то давно объяснял, там проблема в связи с тем, что комп быстрый и где-то в каком-то регистре там возникает ноль так как данные туда не поступили (не успевают - это из-за компилятора, или библиотеки)
Все, дело закрыто. Если кому еще интересно как это исправить, пожалуйте сюда
Во-во :-) А гугля надо знать - без него не прожить.
Там проблема в непотребной имплементации delay, который они реализуют, гоняя пустой цикл. А при старте приложения количество прогонов на единицу задержки калибруется по системному таймеру, декрементом счетчика от максимального значения до нуля. На быстрых машинах он этого нуля достигает гораздо раньше, чем борландовцам в те годы мечталось. Вот на него-то они, в последствии, и делят...
onanymous
Ни фига себе? А что, более разумно, чем пустой цикл, нельзя реализовать задержку? Это ж напрасная трата процессорного времени!
Об том и речь (и не только об том). Водку-то ключница делала (с):улыб:
Честный вариант задержки - системный таймер, но его точность около 50 мс. Для своего времени вариант был вполне нормальный, скорее в пользу Борланд говорит тот факт что их среда разработки пережила столько поколений железа. Лечится простым патчем кажется к turbo.tpl.
Если надо, найду и дошлю.
Максимыч
Даже для своего времени - все равно криво. Во-первых, системный таймер даже начинающим автолюбителем легко перепрограммируется вплоть до микросекундной точности. А во-вторых... боюсь ошибиться, но, кажется, уже тогда в МС-ДОС была функция для возврата операционной системе процессорного времени, не востребованного приложением.
onanymous
Согласен. Вообще что бы ни делали разработчики паскаля, все у них получается настолько криво, что остается только тихо сквозь зубы ругаться матом в процессе написания хоть сколько нибудь сложно структурированной программы, да и без оной. Поражаюсь только, как этот язык до сих пор жив
> как этот язык до сих пор жив
Во-первых, не замечая того, Вы снова воздаете хвалу Borland (мы говорим pascal - подразумеваем Borland)
И во-вторых, если говорить о самом языке.
Я пишу на C++и на pascal, и предпочитаю последний по простой причине. Pascal строго типизован, и потому пока не применяешь хитрых финтов для обхода ограничений языка, практически все ошибки всплывают уже на стадии компиляции. C++ дает неограниченную свободу, но зато и врать не мешает. На круг отладка того же проекта на паскале получается быстрее и легче.
Не зря из двух практически одинаковых во всем кроме языка инструментов того же Борланд - C++ Builder и Delphi второй явно популярнее.
А что до глюка о котором идет речь - он легко лечится, и не о чем тут больше говорить.
К чему такая функция в ДОСе? Чего то не могу себе представить.
Максимыч
Не поверю, что Delphi популярнее с++ - черта с два!
Не знаю, как там с ошибками, это зависит от многих вещей, я ругаюсь прежде всего на паскалевский синтаксис, он чем-то на Basic похож (на бэйсике тоже, говорят, кто-то еще пишет :ха-ха!:).
Вообще круче всех - Java. Его красота неописуема :роза:.
ЗюЫю Да тему-то давно пора закрыть...
Черный кот
Заточка под винду. Тогда как раз МС начала пытаться городить свои графические оболочки как надстройки над ДОС. Так что это нужно было для будущей многозадачности.
Некоторые, кстати, приложения (ДОС-навигатор, например), так до самого конца и не поддержали эту технологию. В результате, под какой бы виндой они не были запущены в эмуляторе ДОС - загрузка процессора всегда 100%.
Максимыч
> C++ дает неограниченную свободу, но зато и врать не мешает.

Это не так. Неограниченную свободу дает С, но не С++. Если ты не используешь в своем стиле программирования сишной семантики (так и не используй, если не уверен, более того - это будет и правильно), компилятор ни на шаг не позволит тебе отступить от строгого согласования типов. Поддержка же синтаксиса С - это только дополнительная возможность, а гибкость - она никогда не бывает минусом.
Гибкость бывает минусом в тех случаях, когда пишешь от случая к случаю. Поэтому Паскаль популярен среди тех для кого программирование не является основным куском зарабатывания денег. Вон дядя Билл вообще рекомендует ВБ пользоваться.
Черный кот
Не понимаю, как в данном случае может быть минусом гибкость, которую не используешь и соответственно не можешь получить прятанные ошибки. А ББ еще советует лицензионные винды покупать :ха-ха!:
Черный кот
ИМХО, минусом гибкость не является никогда. В том, что ты говоришь, речь просто идет о выборе инструмента, адекватного постановке задачи. В определенных случаях это может быть и ВБ...