ВУЗ:
Составители:
Рубрика:
102
while i<=b do { проверка: не закончен ли перебор }
begin
s:=s+i; { добавить очередное число к сумме }
i:=i+2 { перейти к следующему нечетному числу отрезка }
end;
write('Сумма=',s)
end.
Тестирование. В построенной программе имеется, по крайней мере, четыре
пути, ведущих от начала программы к ее концу. Следовательно, необходимо
построить не менее четырех тестов так, чтобы по каждому пути пройти хотя бы по
одному разу.
Первый путь: а - нечетное, без захода в цикл. Тест: a=5, b=2. Ожидаемый ответ:
s=0, т.к. отрезок задан
неверно.
Второй путь: а - нечетное, с заходом в цикл. Тест: a=5, b=7. Ожидаемый ответ:
s=12.
Третий путь: а - четное, без захода в цикл. Тест: a=4, b=1. Ожидаемый ответ:
s=0, т.к. отрезок задан неверно.
Четвертый путь: а - четное, с заходом в цикл. Тест: a=4, b=7. Ожидаемый ответ:
s=12.
Упражнения:
1. Решите эту задачу примера 10.10, перебирая числа в обратном порядке от b к
a.
2. Если в программе summa2 заменить 2 на с и модифицировать оператор
присваивания, стоящий после фразы else, то получится следующий фрагмент:
{ фрагмент 6 }
readln(a,b,c);
s:=0;
if a mod c = 0
then i:=a
else i:=a+c-a mod c;
while i<=b do
begin
s:=s+i;
i:=i+c
end;
write('Сумма=',s)
Какую задачу решает этот фрагмент, если с - натуральное число?
3. Аналогично задаче примера 10.10 решается задача нахождения суммы и
произведения четных натуральных чисел на отрезке от [a;b]. Постройте программы
самостоятельно.
4. Постройте также программы для нахождения произведения натуральных
чисел на отрезке [a;b], произведения четных и нечетных натуральных чисел на
отрезке [a;b].
Пример 10.11. Написать программу для вычисления суммы вида -1+2-3+4-..., в
которой n слагаемых.
102
while i<=b do { проверка: не закончен ли перебор }
begin
s:=s+i; { добавить очередное число к сумме }
i:=i+2 { перейти к следующему нечетному числу отрезка }
end;
write('Сумма=',s)
end.
Тестирование. В построенной программе имеется, по крайней мере, четыре
пути, ведущих от начала программы к ее концу. Следовательно, необходимо
построить не менее четырех тестов так, чтобы по каждому пути пройти хотя бы по
одному разу.
Первый путь: а - нечетное, без захода в цикл. Тест: a=5, b=2. Ожидаемый ответ:
s=0, т.к. отрезок задан неверно.
Второй путь: а - нечетное, с заходом в цикл. Тест: a=5, b=7. Ожидаемый ответ:
s=12.
Третий путь: а - четное, без захода в цикл. Тест: a=4, b=1. Ожидаемый ответ:
s=0, т.к. отрезок задан неверно.
Четвертый путь: а - четное, с заходом в цикл. Тест: a=4, b=7. Ожидаемый ответ:
s=12.
Упражнения:
1. Решите эту задачу примера 10.10, перебирая числа в обратном порядке от b к
a.
2. Если в программе summa2 заменить 2 на с и модифицировать оператор
присваивания, стоящий после фразы else, то получится следующий фрагмент:
{ фрагмент 6 }
readln(a,b,c);
s:=0;
if a mod c = 0
then i:=a
else i:=a+c-a mod c;
while i<=b do
begin
s:=s+i;
i:=i+c
end;
write('Сумма=',s)
Какую задачу решает этот фрагмент, если с - натуральное число?
3. Аналогично задаче примера 10.10 решается задача нахождения суммы и
произведения четных натуральных чисел на отрезке от [a;b]. Постройте программы
самостоятельно.
4. Постройте также программы для нахождения произведения натуральных
чисел на отрезке [a;b], произведения четных и нечетных натуральных чисел на
отрезке [a;b].
Пример 10.11. Написать программу для вычисления суммы вида -1+2-3+4-..., в
которой n слагаемых.
Страницы
- « первая
- ‹ предыдущая
- …
- 98
- 99
- 100
- 101
- 102
- …
- следующая ›
- последняя »
