Конспект лекций по программированию для начинающих. Гладков В.П. - 67 стр.

UptoLike

Составители: 

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 вариантов комбинаций