ВУЗ:
Составители:
Рубрика:
69
Укажите, какая ветвь выполняется в каждом из заданных исходных
соотношений переменных программы:
1) a < b < c, 8) a = b < c,
2) a < c < b, 9) c < a = b,
3) b < a < c, 10) a < b = c,
4) b < c < a, 11) b = c < a,
5) c < a < b. 12) a = c < b,
6) c < b < a, 13) b < a = c.
7) a = b = c,
Пример 9.26. Написать программу для нахождения среднего по величине
значения из трех заданных.
Решение. Составим спецификацию. Дано: a,b,c - вещественные числа.
Получить: n - среднее по величине из трех заданных.
На первый взгляд кажется, что алгоритмы, формальная запись которых
приведена в упражнении 5 а и 5 б, решают поставленную задачу. Однако это
неверно. Для того чтобы убедиться в этом, будем рассуждать так. Средним по
величине может оказаться любое из трех, следовательно, имеется три
возможности. Выбрав и зафиксировав среднее, мы имеем две возможности
распределения максимального и минимального значений среди оставшихся.
Поэтому количество возможных
комбинаций исходных данных равно 3·2·1=6.
Пусть для определенности значения исходных данных выбираются из
множества { 1,2,3 }. Возможные наборы исходных данных приведены в табл.
9.1.
Таблица 9.1
Варианты исходных данных для поиска среднего из трех.
№
п/п
a b c Результаты
работы
алгоритма 5а
Результаты
работы
алгоритма 5б
Соотношения
исходных
данных
1 1 2 3 3 неверно 2 a<b<c
2 1 3 2 2 2 a<c<b
3 2 1 3 3 неверно 2 b<a<c
4 2 3 1 2 1 неверно c<a<b
5 3 1 2 2 1 неверно b<c<a
6 3 2 1 2 2 c<b<a
Алгоритм 5 а дает неверные результаты в первом и третьем случаях,
алгоритм 5 б - в четвертом и пятом случаях.
Для решения поставленной задачи можно воспользоваться одной из
следующих формул: n = min(max(a,b),max(a,c),max(b,c)) или n =
max(min(a,b),min(a,c),min(b,c)).
Для построения алгоритма можно использовать следующий прием.
Построим таблицу, в которой перечислим все возможные условия,
сравнивающие исходные данные. Такая таблица называется
таблицей решений.
В нашем случае их три: a>b, a>c, b>c. Каждая из этих проверок может быть
истинной или ложной, следовательно, возможны 8 вариантов комбинаций
69
Укажите, какая ветвь выполняется в каждом из заданных исходных
соотношений переменных программы:
1) a < b < c, 8) a = b < c,
2) a < c < b, 9) c < a = b,
3) b < a < c, 10) a < b = c,
4) b < c < a, 11) b = c < a,
5) c < a < b. 12) a = c < b,
6) c < b < a, 13) b < a = c.
7) a = b = c,
Пример 9.26. Написать программу для нахождения среднего по величине
значения из трех заданных.
Решение. Составим спецификацию. Дано: a,b,c - вещественные числа.
Получить: n - среднее по величине из трех заданных.
На первый взгляд кажется, что алгоритмы, формальная запись которых
приведена в упражнении 5 а и 5 б, решают поставленную задачу. Однако это
неверно. Для того чтобы убедиться в этом, будем рассуждать так. Средним по
величине может оказаться любое из трех, следовательно, имеется три
возможности. Выбрав и зафиксировав среднее, мы имеем две возможности
распределения максимального и минимального значений среди оставшихся.
Поэтому количество возможных комбинаций исходных данных равно 3·2·1=6.
Пусть для определенности значения исходных данных выбираются из
множества { 1,2,3 }. Возможные наборы исходных данных приведены в табл.
9.1.
Таблица 9.1
Варианты исходных данных для поиска среднего из трех.
№ a b c Результаты Результаты Соотношения
п/п работы работы исходных
алгоритма 5а алгоритма 5б данных
1 1 2 3 3 неверно 2 ab, a>c, b>c. Каждая из этих проверок может быть
истинной или ложной, следовательно, возможны 8 вариантов комбинаций
Страницы
- « первая
- ‹ предыдущая
- …
- 65
- 66
- 67
- 68
- 69
- …
- следующая ›
- последняя »
