Главная / Программирование /
Основы информатики и программирования / Тест 6
Основы информатики и программирования - тест 6
Упражнение 1:
Номер 1
Предикаты нам нужны прежде всего для того, чтобы иметь возможность ясно и недвусмысленно формулировать:
Ответ:
 (1) определенные утверждения о программах 
 (2) определенные утверждения о константах 
 (3) определенные утверждения о программных переменных 
Номер 2
В текст программы зачастую полезно включать предикаты, которые позволяли бы человеку или компьютеру проверять:
Ответ:
 (1) синтаксис кода программы 
 (2) семантику кода программы 
 (3) корректность останова программы 
 (4) корректность хода выполнения программы 
Номер 3
В тех случаях, когда утверждения проверки корректности хода выполнения программы предназначены только для человека, они оформляются в виде:
Ответ:
 (1) специального буфера 
 (2) комментариев 
 (3) специального блока 
 (4) специальной секции 
Упражнение 2:
Номер 1
Часто полезно поручить проверку истинности предикатов в процессе выполнения программы:
Ответ:
 (1) компьютеру 
 (2) человеку 
 (3) не поручать никому 
Номер 2
Проверка истинности предикатов в процессе выполнения программы в различных языках программирования реализована:
Ответ:
 (1) одинаково 
 (2) по-разному 
 (3) не реализована 
Номер 3
В программах на языке C можно использовать следующий макрос, который в случае ложности его аргумента немедленно прекращает выполнение программы, сообщая о причине этого:
Ответ:
 (1) asert(P)
 
 (2) assert(P)
 
 (3) accept(P)
 
 (4) acept(P)
 
 (5) accert(P)
 
 (6) acert(P)
 
Упражнение 3:
Номер 1
Что позволяет реализовать проверку истинности предикатов в процессе выполнения программы в языке Java:
Ответ:
 (1) механизм работы с исключениями 
 (2) механизм работы с ошибками 
 (3) оператор while
 
 (4) оператор if
 
Номер 2
Данная программа:public class Assert {
public static void main(String[] args) throws Exception {
int n = Xterm.inputInt("Введите n -> ");
if (n <= 0)
throw new Exception("n <= 0");
Xterm.println("n = " + n);
}
}содержит:
Ответ:
 (1) проверку истинности утверждения о положительности введенного с клавиатуры целого числа 
 (2) проверку истинности утверждения об отрицательности введенного с клавиатуры вещественного числа 
 (3) проверку утверждения о положительности введенного с клавиатуры не целого числа 
Номер 3
При вводе неположительного числа данная программа:public class Assert {
public static void main(String[] args) throws Exception {
int n = Xterm.inputInt("Введите n -> ");
if (n <= 0)
throw new Exception("n <= 0");
Xterm.println("n = " + n);
}
}прекращает свое выполнение и печатает следующий текст:
Ответ:
 (1) java.lang.Exception: n<=0
at Assert.main(Assert.java:4) 
 (2) lang.Exception: n<=0
at Assert.main(Assert.java:5) 
 (3) java.Exception: n<=0
at Assert.main(Assert.java:2) 
 (4) java.lang: n<=1
at Assert.main(Assert.java) 
Упражнение 4:
Номер 1
Для того чтобы доказывать правильность программ необходимо прежде всего дать строгое определение понятию:
Ответ:
 (1) программа 
 (2) алгоритм 
 (3) правильная программа 
 (4) код 
Номер 2
Определение понятия правильная программа зависит от:
Ответ:
 (1) результата, который должен быть получен в процессе выполнения программы 
 (2) от того, в каких условиях начинается ее выполнение 
 (3) от того, в каких условиях заканчивается ее выполнение 
Номер 3
Спецификацией {Q} S {R}
программы S
, где Q
и R
— предикаты, называется предикат, означающий, что если выполнение S
началось в состоянии, удовлетворяющем Q
, то имеется гарантия, что оно завершится через конечное время:
Ответ:
 (1) в состоянии, удовлетворяющем R
 
 (2) в состоянии, удовлетворяющем Q
 
 (3) в состоянии, удовлетворяющем S
 
 (4) в состоянии, удовлетворяющем T
 
Упражнение 5:
Номер 1
В данном случае:{Q} S {R}
предикат Q
называется:
Ответ:
 (1) предусловием 
 (2) входным утверждением S
 
 (3) постусловием 
 (4) выходным утверждением программы S
 
Номер 2
В данном случае:{Q} S {R}
предикат R
называется
Ответ:
 (1) выходным утверждением программы S
 
 (2) входным утверждением S
 
 (3) постусловием 
 (4) предусловием 
Номер 3
Так как спецификация программы является предикатом, то она может быть:
Ответ:
 (1) истинной 
 (2) ложной 
 (3) простой 
 (4) сложной 
 (5) пустой 
 (6) полной 
Упражнение 6:
Номер 1
Следующая спецификация:{i=0}"i++;"{i=1}
:
Ответ:
 (1) является тавтологией 
 (2) ложна во всех состояниях 
 (3) истинна при j=1 и ложна в остальных состояниях 
Номер 2
Следующая спецификация:{i=0}"i++;"{i=0}
:
Ответ:
 (1) истинна при j=1 и ложна в остальных состояниях 
 (2) истинна при j=0 и ложна в остальных состояниях 
 (3) является тавтологией 
 (4) ложна во всех состояниях 
Номер 3
Следующая спецификация:{i=0}"i++;"{i=j}
:
Ответ:
 (1) ложна во всех состояниях 
 (2) истинна при j=0 и ложна в остальных состояниях 
 (3) истинна при j=1 и ложна в остальных состояниях 
 (4) является тавтологией 
 (5) истинна при j=2 и ложна в остальных состояниях 
Упражнение 7:
Номер 1
Спецификация программы является единственным корректным способом:
Ответ:
 (1) постановки задачи 
 (2) решения задачи 
 (3) кодирования задачи 
 (4) описания задачи 
Номер 2
Программа S
является правильной при заданных Q
и R
, если спецификация {Q} S {R}
является:
Ответ:
 (1) ложной 
 (2) тавтологией 
 (3) ложной при любых условиях 
Номер 3
С практической точки зрения особый интерес представляют программы, которые позволяют:
Ответ:
 (1) получить нужный результат при минимальных требованиях к начальным условиям 
 (2) достичь как можно большего при фиксированном предусловии 
 (3) получить нужный результат при максимальных требованиях к начальным условиям 
 (4) получить нужный результат при максимальных требованиях к конечным условиям 
Упражнение 8:
Номер 1
Предикат, описывающий максимально широкое множество в пространстве состояний переменных программы S
, на котором гарантируется получение постусловия R
называется:
Ответ:
 (1) слабейшее предусловие 
 (2) сильнейшее постусловие 
 (3) слабейшее постусловие 
 (4) сильнейшее предусловие 
Номер 2
Предикат, описывающий максимально сильные ограничения на состояние переменных программы S
, которые могут быть получены при данном предусловии Q
:
Ответ:
 (1) сильнейшее предусловие 
 (2) сильнейшее постусловие 
 (3) слабейшее постусловие 
 (4) слабейшее предусловие 
Номер 3
Преобразователь предикатов wp(S,R)
обладает следующими свойствами:
Ответ:
 (1) закон исключенного чуда 
 (2) дистрибутивность конъюнкции 
 (3) закон монотонности 
 (4) дистрибутивность дизъюнкции 
Упражнение 9:
Номер 1
Какое свойство является дистрибутивностью конъюнкции преобразователя предикатов wp(S,R)
:
Ответ:
 (1) wp(S,Q)^wp(S,R)=wp(S,Q^R)
 
 (2) wp(S,F)=F
 
 (3) wp(S)^wp(S,R)=wp(S,Q)
 
 (4) wp(S,Q)^wp(R)=wp(S^Q^R)
 
Номер 2
Какое свойство является закон исключенного чуда преобразователя предикатов wp(S,R)
:
Ответ:
 (1) wp(S,Q)^wp(S,R)=wp(S,Q^R)
 
 (2) wp(S,Q^R)
 
 (3) wp(S,Q^R)=wp(S,Q)
 
 (4) wp(S,F)=F
 
Номер 3
В данном случае:wp("System.exit(0);",R)=F
выполнение вызова метода "System.exit(0)
" приводит:
Ответ:
 (1) к немедленному завершению выполнения программы 
 (2) к отсроченному завершению выполнения программы 
 (3) не влияет на выполнение программы 
 (4) к перезапуску программы 
Упражнение 10:
Номер 1
В данном случае:wp("System.exit(0);",R)=F
при каком начальном состоянии после его выполнения предикат R
будет истинным:
Ответ:
 (1) эквивалентным единице 
 (2) эквивалентным нулю 
 (3) равным нулю 
 (4) ни при каком начальном состоянии 
Номер 2
Выражение b[i]
само по себе может оказаться неопределенным:
Ответ:
 (1) из-за корректного значения индекса i
 
 (2) из-за некорректного значения индекса i
 
 (3) из-за некорректного значения индекса b
 
 (4) из-за корректного значения индекса b
 
Номер 3
Предикат inrange(b,i)
определяет:
Ответ:
 (1) множество не допустимых значений индекса 
 (2) количество допустимых значений индекса 
 (3) множество допустимых значений индекса 
 (4) количество не допустимых значений индекса 
Упражнение 11:
Номер 1
Управляющая конструкция if
эквивалентна использованию пустого оператора:
Ответ:
 (1) в else
-ветви 
 (2) в while
-ветви> 
 (3) в for
-ветви 
Номер 2
Оператор switch
может быть заменен несколькими вложенными друг в друга операторами:
Ответ:
 (1) else-if
 
 (2) else-else
 
 (3) if-if
 
 (4) if-else
 
Номер 3
Для того чтобы задать все основные конструкции выбора языка Java, достаточно дать определение только одной из них, — конструкции:
Ответ:
 (1) "(e) S1; else S2;"
 
 (2) "if (e) ...; else S2;"
 
 (3) "if (e) S1; else ...;"
 
 (4) "if (e) S1; else S2;"
 
 (5) "if e...; else S2;"
 
Упражнение 12:
Номер 1
Для практических приложений часто необходимо не вычисление слабейшего предусловия, а лишь проверка того факта, что некоторое другое известное предусловие:
Ответ:
 (1) не обеспечивает его выполнение 
 (2) обеспечивает его выполнение 
 (3) существует 
 (4) не существует 
Номер 2
В терминах слабейшего предусловия можно определить:
Ответ:
 (1) все оставшиеся еще неопределенными конструкции языка 
 (2) все оставшиеся еще неопределенными конструкции сильнейшего постусловия 
 (3) ни чего нельзя определить 
Номер 3
Для определения слабейшего предусловия wp("while(e)S;",R)
потребуются:
Ответ:
 (1) вспомогательные определения 
 (2) рекурсии 
 (3) итерации 
 (4) конкатенации