Я беру урок анализа программного обеспечения, и мне задали следующий вопрос.Это связано с логикой программирования, поэтому я и разместил ее здесь.(Я также разместил это на сайте переполнения математического стека.):
Предположим, что часть SHADED обозначает все программы, которые НЕ содержат ошибок деления на ноль, иНЕЗАКРЫТАЯ часть внутри черного прямоугольника обозначает все программы, которые ДОЛЖНЫ содержать такие ошибки.
Пусть A1, A2 и A3 - это разные анализы программ, которые проверяют ошибки деления на ноль.Каждый анализ либо ПРИНИМАЕТ (т.е. объявляет его свободным от ошибок деления на ноль), либо ОТКЛЮЧАЕТ (т.е. объявляет, что в данной программе существует хотя бы одна ошибка деления на ноль).
Для каждого анализаПрограммы, принятые этим анализом, содержатся ВНУТРИ соответствующего овала, а программы, отклоненные этим анализом, содержатся ВНЕ соответствующего овала.
Со ссылкой на Вопрос 4, предположим, что мы проектируем анализ А4, который ведет себя следующим образом при вводепрограмма P:
if (A1 rejects P) reject P;
else if (A3 accepts P) accept P;
else run forever;
Звук А4 звучит?А4 завершен?
Я выбрал А4, это было нормально, потому что А1 принимает действующие программы и отклоняет те, которые не являются действительными.Это было отмечено правильно.Я сказал, что это не было завершено, потому что A4 не принимала программы, которые действительно были действительными и были отмечены как неправильныеХотите знать, если кто-то может пролить немного света на это для меня?Заранее спасибо.