ВУЗ:
Составители:
Рубрика:
95
условия С, присоединяем его отрицание через конъюнкцию к Р. P: (2*X=Y) and
(X<=Y).
Движемся от С к В и присоединяем к Р через конъюнкцию условие В (здесь оно
должно быть истинным). P: (2*X=Y) and (X<=Y) and (X<>Y). В полученном
предикате из первого члена конъюнкции 2*X=Y следует третий: X, не равный Y,
поэтому третий член конъюнкции можно отбросить. Получим P: (2*X=Y) and
(X<=Y).
Движемся от В к
С через D. При переходе через оператор присваивания (X:=X-
Y) все вхождения X заменяем выражением X-Y и присоединяем через конъюнкцию
условие С (здесь оно истинно). P: (2*(X-Y)=Y) and (X-Y<=Y) или (2*X=3*Y) and
(X<=2*Y).
Присоединяем условие С (здесь оно истинно). P: (2*X=3*y) and (x<=2*y) and
(x<y). Анализируя полученный предикат, замечаем, что если истинен
предпоследний член конъюнкции, то истинен и последний. Таким образом,
последний член на истинность предиката не
влияет, поэтому его можно отбросить.
P:(2*X=3*Y) and (X<=2*Y).
Проходим ветвь 2 от С к В и к предикату через конъюнкцию присоединяем
условие В (здесь оно истинно). Получаем P: (2*X=3*Y) and (X<=2*Y) and (X<>Y).
В полученном предикате опять из первого члена конъюнкции следует третий,
поэтому его можно отбросить. Получаем Р: (2*X=3*Y) and (X<=2*Y).
Проходим ветвь 1 от В к А, при этом предикат пути
не изменяется.
Окончательно получаем Р: (2*X=3*Y) and (X<=2*Y).
Для построения теста осталось подобрать значения X и Y так, чтобы предикат
стал истинным. Это возможно, например, при
X= 3, Y=2 получим ответ 1;
X= 6, Y=4 получим ответ 2;
X= 9, Y=6 получим ответ 3;
X=12, Y=8 получим ответ 4 и т.д.
Упражнения:
1. Постройте предикат пути 1 - 2 - 5 - 2 - 5 - 2 - 4 - 3 и получите тест по
построенному предикату.
2. Выполните трассировку и установите, какую задачу решает следующий
фрагмент программы:
while x<>y do
begin while x>y do x:=x-y;
while y>x do y:=y-x;
end;
3. Сравните программы, рассмотренные в тексте параграфа и в упражнении
номер два. Установите достоинства и недостатки каждой программы.
10.3.3. Поисковые циклы
Пример 10.9. Последовательность элементов задана формулой общего члена
a
i
=sin(i+i/n), где i изменяется от 1 до n (n - натуральное). Написать программу для
нахождения первого элемента последовательности, большего заданного числа Z.
95
условия С, присоединяем его отрицание через конъюнкцию к Р. P: (2*X=Y) and
(X<=Y).
Движемся от С к В и присоединяем к Р через конъюнкцию условие В (здесь оно
должно быть истинным). P: (2*X=Y) and (X<=Y) and (X<>Y). В полученном
предикате из первого члена конъюнкции 2*X=Y следует третий: X, не равный Y,
поэтому третий член конъюнкции можно отбросить. Получим P: (2*X=Y) and
(X<=Y).
Движемся от В к С через D. При переходе через оператор присваивания (X:=X-
Y) все вхождения X заменяем выражением X-Y и присоединяем через конъюнкцию
условие С (здесь оно истинно). P: (2*(X-Y)=Y) and (X-Y<=Y) или (2*X=3*Y) and
(X<=2*Y).
Присоединяем условие С (здесь оно истинно). P: (2*X=3*y) and (x<=2*y) and
(xY).
В полученном предикате опять из первого члена конъюнкции следует третий,
поэтому его можно отбросить. Получаем Р: (2*X=3*Y) and (X<=2*Y).
Проходим ветвь 1 от В к А, при этом предикат пути не изменяется.
Окончательно получаем Р: (2*X=3*Y) and (X<=2*Y).
Для построения теста осталось подобрать значения X и Y так, чтобы предикат
стал истинным. Это возможно, например, при
X= 3, Y=2 получим ответ 1;
X= 6, Y=4 получим ответ 2;
X= 9, Y=6 получим ответ 3;
X=12, Y=8 получим ответ 4 и т.д.
Упражнения:
1. Постройте предикат пути 1 - 2 - 5 - 2 - 5 - 2 - 4 - 3 и получите тест по
построенному предикату.
2. Выполните трассировку и установите, какую задачу решает следующий
фрагмент программы:
while x<>y do
begin while x>y do x:=x-y;
while y>x do y:=y-x;
end;
3. Сравните программы, рассмотренные в тексте параграфа и в упражнении
номер два. Установите достоинства и недостатки каждой программы.
10.3.3. Поисковые циклы
Пример 10.9. Последовательность элементов задана формулой общего члена
ai=sin(i+i/n), где i изменяется от 1 до n (n - натуральное). Написать программу для
нахождения первого элемента последовательности, большего заданного числа Z.
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »
