1. Зачем нужно доказывать правильность программ? 2. Почему с помощью тестирования сложно доказать правильность программы? В каких случаях это всё же можно сделать? 3. Что изменится в доказательстве алгоритма Евклида, если т и п — это произвольные натуральные числа (неравенство т>п может не выполняться)? 4. Зачем нужно определять инвариант цикла? 5. Почему желательно формулировать спецификацию в виде формальных утверждений, а не на естественном языке? 6. Что такое предусловие и постусловие? Объясните запись 7. В чём различие между надёжной и корректной программами? 8. Как вы думаете, можно ли назвать корректной программу, которая «зависает» при неверных исходных данных? Обсудите этот вопрос в классе. 9. Что такое верификация программы? 10. Как вы думаете, что сложнее — доказывать правильность готовой программы или сразу писать программу, доказывая правильность отдельных блоков? Почему? Обсудите этот вопрос в классе.