Погода: -12°C
  • Это вроде как деление на ноль (речь о паскалевской проге скомпилированной в BP7). Подскажите, как объяснить компилятору что он что-то делает не так?

  • Так компилятор-то, вроде, как раз все правильно делает. Это библиотека у них там кривая... Менять ее надо или патчить.

  • А что конкретно менять и где?
    Ошибка возникает случайно, не в процессе компиляции а исполнения. Иногда есть, иногда нет.

  • Странно, что не всегда... хотя, теоретически, и такое возможно.
    Спроси гугль -
    "runtime error 200" +pascal

  • что такое гугль?
    Вообще конечно странно, что не всегда. Как мне кто-то когда-то давно объяснял, там проблема в связи с тем, что комп быстрый и где-то в каком-то регистре там возникает ноль так как данные туда не поступили (не успевают - это из-за компилятора, или библиотеки)

  • Все, дело закрыто. Если кому еще интересно как это исправить, пожалуйте сюда

  • Во-во :-) А гугля надо знать - без него не прожить.
    Там проблема в непотребной имплементации delay, который они реализуют, гоняя пустой цикл. А при старте приложения количество прогонов на единицу задержки калибруется по системному таймеру, декрементом счетчика от максимального значения до нуля. На быстрых машинах он этого нуля достигает гораздо раньше, чем борландовцам в те годы мечталось. Вот на него-то они, в последствии, и делят...

  • Ни фига себе? А что, более разумно, чем пустой цикл, нельзя реализовать задержку? Это ж напрасная трата процессорного времени!

  • Об том и речь (и не только об том). Водку-то ключница делала (с):улыб:

  • Честный вариант задержки - системный таймер, но его точность около 50 мс. Для своего времени вариант был вполне нормальный, скорее в пользу Борланд говорит тот факт что их среда разработки пережила столько поколений железа. Лечится простым патчем кажется к turbo.tpl.
    Если надо, найду и дошлю.

  • Даже для своего времени - все равно криво. Во-первых, системный таймер даже начинающим автолюбителем легко перепрограммируется вплоть до микросекундной точности. А во-вторых... боюсь ошибиться, но, кажется, уже тогда в МС-ДОС была функция для возврата операционной системе процессорного времени, не востребованного приложением.

  • Согласен. Вообще что бы ни делали разработчики паскаля, все у них получается настолько криво, что остается только тихо сквозь зубы ругаться матом в процессе написания хоть сколько нибудь сложно структурированной программы, да и без оной. Поражаюсь только, как этот язык до сих пор жив

  • > как этот язык до сих пор жив
    Во-первых, не замечая того, Вы снова воздаете хвалу Borland (мы говорим pascal - подразумеваем Borland)
    И во-вторых, если говорить о самом языке.
    Я пишу на C++и на pascal, и предпочитаю последний по простой причине. Pascal строго типизован, и потому пока не применяешь хитрых финтов для обхода ограничений языка, практически все ошибки всплывают уже на стадии компиляции. C++ дает неограниченную свободу, но зато и врать не мешает. На круг отладка того же проекта на паскале получается быстрее и легче.
    Не зря из двух практически одинаковых во всем кроме языка инструментов того же Борланд - C++ Builder и Delphi второй явно популярнее.
    А что до глюка о котором идет речь - он легко лечится, и не о чем тут больше говорить.

  • К чему такая функция в ДОСе? Чего то не могу себе представить.

    "Право же, взрослые - очень странные люди" А.де Сент-Экзюпери

  • Не поверю, что Delphi популярнее с++ - черта с два!
    Не знаю, как там с ошибками, это зависит от многих вещей, я ругаюсь прежде всего на паскалевский синтаксис, он чем-то на Basic похож (на бэйсике тоже, говорят, кто-то еще пишет :ха-ха!:).
    Вообще круче всех - Java. Его красота неописуема :роза:.
    ЗюЫю Да тему-то давно пора закрыть...

  • Заточка под винду. Тогда как раз МС начала пытаться городить свои графические оболочки как надстройки над ДОС. Так что это нужно было для будущей многозадачности.
    Некоторые, кстати, приложения (ДОС-навигатор, например), так до самого конца и не поддержали эту технологию. В результате, под какой бы виндой они не были запущены в эмуляторе ДОС - загрузка процессора всегда 100%.

  • > C++ дает неограниченную свободу, но зато и врать не мешает.

    Это не так. Неограниченную свободу дает С, но не С++. Если ты не используешь в своем стиле программирования сишной семантики (так и не используй, если не уверен, более того - это будет и правильно), компилятор ни на шаг не позволит тебе отступить от строгого согласования типов. Поддержка же синтаксиса С - это только дополнительная возможность, а гибкость - она никогда не бывает минусом.

  • Гибкость бывает минусом в тех случаях, когда пишешь от случая к случаю. Поэтому Паскаль популярен среди тех для кого программирование не является основным куском зарабатывания денег. Вон дядя Билл вообще рекомендует ВБ пользоваться.

    "Право же, взрослые - очень странные люди" А.де Сент-Экзюпери

  • Не понимаю, как в данном случае может быть минусом гибкость, которую не используешь и соответственно не можешь получить прятанные ошибки. А ББ еще советует лицензионные винды покупать :ха-ха!:

  • ИМХО, минусом гибкость не является никогда. В том, что ты говоришь, речь просто идет о выборе инструмента, адекватного постановке задачи. В определенных случаях это может быть и ВБ...

Записей на странице:

Перейти в форум

Модератор: