Я пытаюсь учиться на своих собственных предварительных и почтовых условиях в ada.
ADA - предварительные и последующие условия не работают?
comment
Определенно стоит упомянуть вашу ОС, версию компилятора и будь то FSF или Adacore (если Gnat). Очевидно, что компиляторы, предшествующие Ada-2012, не будут поддерживать это.
- person user_1818839   schedule 24.03.2020
comment
Я использую онлайн-компилятор jdoodle, это проблема?
- person catrev   schedule 24.03.2020
comment
Я восстановил содержание вопроса. Вандализм снижает его ценность для других.
- person user_1818839   schedule 24.03.2020
comment
значения A и B изменяются предварительным/постусловием - это было бы невероятно плохой идеей, даже если бы она была написана правильно. (a) вы не должны никогда помещать код, влияющий на результат, в условие pre/post, как вы видели, (b) это действительно очень затрудняет понимание того, что происходит, жизнь и так достаточно тяжела
- person Simon Wright   schedule 24.03.2020
comment
В настоящее время вопрос в том, что я пытаюсь изучить свои собственные предварительные и почтовые условия в ada. кажется, что многое отсутствует и довольно бесполезно. Это нормально ? (продолжается модерация?)
- person LoneWanderer   schedule 17.04.2020
Ответы (1)
Если вы используете GNAT (который выглядит так, как будто он используется по умолчанию для jdoodle), вам необходимо включить утверждения. Добавьте -gnata
в качестве параметра командной строки.
РЕДАКТИРОВАТЬ: я мало что знаю о jdoodle, но, похоже, он не может принимать аргументы компилятору, только при запуске вашей программы...
Вместо этого вы можете добавить pragma Assertion_Policy
в свою программу, например:
procedure Tp2q4 is
pragma Assertion_Policy(Check);
--...
person
egilhh
schedule
24.03.2020