ВУЗ:
Составители:
Рубрика:
66
readln(a,b);
if a>b
then m:=a { 1 }
else m:=b; { 2 }
write('Максимальное из ',a,' и ',b,'->',m)
end.
В этой программе две ветви. Они отмечены с помощью комментариев
{ 1 } и { 2 }. При тестировании нужно по каждой из этих ветвей пройти хотя бы
по одному разу. Для прохождения по первой ветви можно выбрать, например,
следующий набор исходных данных: a=3, b=2. В этом случае получим в
качестве ответа m=3. Для
прохождения по второй ветви можно выбрать,
например, следующий набор данных: a=2, b=6. В этом случае получим ответ:
m=6.
Задачу 9.24 можно было бы решить и так (приводится фрагмент
программы):
if a<=b
then m:=b
else m:=a.
Однако это решение принципиально не отличается от предыдущего.
Читателю предлагается самостоятельно оформить это решение в виде
программы на Паскале и установить для нее тесты.
Другое решение задачи 1 можно получить, если поступить так. В начале
переменной m присвоим произвольно одно из чисел, например a. Затем, чтобы
получить ответ, сравним переменную m c переменной b. Запишем это решение
на Паскале:
m:=a;
if m<b
then m:=b
В этом решении также две ветви, которые могут быть пройдены
следующими тестами:
1) a=3, b=2, в этом случае условие m<b ложно;
2) a=2, b=6, в этом случае
условие m<b истинно.
Последнее решение опирается на первое. В самом деле, формально можно
записать так: m:=a; m:=max(m,a).
Заметим, что можно было найти максимальное из двух, не прибегая к
ветвящемуся алгоритму: m:=(a+b+abs(a-b))/2.
Упражнение
. Напишите фрагменты программы на Паскале, которая найдет
минимальное из двух.
Пример 9.25. Написать программу, находящую максимальное из трех
заданных вещественных чисел a,b,c.
Решение. Составим спецификацию. Дано: a,b,c - вещественные числа.
Получить: m=max(a,b,c).
Первый вариант решения можно получить, применив к решению данной
задачи решение задачи 9.24. Сначала найдем максимум из двух произвольных
чисел, а затем
максимум из найденного и оставшегося третьего числа.
66
readln(a,b);
if a>b
then m:=a {1}
else m:=b; { 2 }
write('Максимальное из ',a,' и ',b,'->',m)
end.
В этой программе две ветви. Они отмечены с помощью комментариев
{ 1 } и { 2 }. При тестировании нужно по каждой из этих ветвей пройти хотя бы
по одному разу. Для прохождения по первой ветви можно выбрать, например,
следующий набор исходных данных: a=3, b=2. В этом случае получим в
качестве ответа m=3. Для прохождения по второй ветви можно выбрать,
например, следующий набор данных: a=2, b=6. В этом случае получим ответ:
m=6.
Задачу 9.24 можно было бы решить и так (приводится фрагмент
программы):
if a<=b
then m:=b
else m:=a.
Однако это решение принципиально не отличается от предыдущего.
Читателю предлагается самостоятельно оформить это решение в виде
программы на Паскале и установить для нее тесты.
Другое решение задачи 1 можно получить, если поступить так. В начале
переменной m присвоим произвольно одно из чисел, например a. Затем, чтобы
получить ответ, сравним переменную m c переменной b. Запишем это решение
на Паскале:
m:=a;
if mСтраницы
- « первая
- ‹ предыдущая
- …
- 62
- 63
- 64
- 65
- 66
- …
- следующая ›
- последняя »
