ВУЗ:
Составители:
Рубрика:
101
Решение 1. Эту задачу можно понять так, что заданы все числа отрезка от а до
b. Из них необходимо в сумму включить только нечетные числа. Для решения
задачи организуем перебор всех чисел отрезка от а до b. Для каждого выбранного
числа проверяем, делится ли оно на 2, если не делится, то прибавляем его к сумме
.
В соответствии с этим получаем программу на Паскале:
program SUMMA1;
{ Сумма нечетных чисел отрезка от а до b }
var a,b : integer; { границы отрезка }
s : integer; { сумма }
i : integer; { очередное число отрезка }
begin
write('Введите границы отрезка [a,b] ');
readln(a,b);
s:=0; { начальное значение суммы }
i:=a; { начальное число отрезка }
while i<=b do { проверка: не закончен ли перебор }
begin if i mod 2 =1 { если i - нечетное, }
then s:=s+i; { то добавить его к сумме }
i:=i+1 { перейти к следующему
числу отрезка }
end;
write('Сумма=',s)
end.
Тестирование. В построенной программе имеется три пути, ведущих от начала
программы к ее концу. Следовательно, необходимо построить три теста так, чтобы
по каждому пути пройти хотя бы по одному разу.
Первый путь: без захода в цикл. Тест: a=4, b=2. Ожидаемый ответ: s=0.
Второй путь: с заходом в цикл, но без выполнения условного оператора.
Тест:
a=4, b=4. Ожидаемый ответ: s=0.
Третий путь: с заходом в цикл и с выполнением условного оператора.
Тест: a=4, b=12. Ожидаемый ответ: s=32.
Решение 2. Эту задачу можно понять и так, что заданы только нечетные числа
отрезка от а до b. Их необходимо просуммировать. Для решения задачи нужно
найти первое нечетное число отрезка, а затем перебирать только нечетные числа,
включая их в сумму. В соответствии с этим получаем программу на Паскале:
program SUMMA2;
{ Сумма нечетных чисел отрезка от
а до b }
var a,b : integer; { границы отрезка }
s : integer; { сумма }
i : integer; { очередное число отрезка }
begin
write('Введите границы отрезка [a,b] ');
readln(a,b);
s:=0; { начальное значение суммы }
if a mod 2 = 1 { если а - нечетное, }
then i:=a { то начинаем перебор с а, }
else i:=a+1; { иначе начинаем перебор со следующего числа }
101
Решение 1. Эту задачу можно понять так, что заданы все числа отрезка от а до
b. Из них необходимо в сумму включить только нечетные числа. Для решения
задачи организуем перебор всех чисел отрезка от а до b. Для каждого выбранного
числа проверяем, делится ли оно на 2, если не делится, то прибавляем его к сумме.
В соответствии с этим получаем программу на Паскале:
program SUMMA1;
{ Сумма нечетных чисел отрезка от а до b }
var a,b : integer; { границы отрезка }
s : integer; { сумма }
i : integer; { очередное число отрезка }
begin
write('Введите границы отрезка [a,b] ');
readln(a,b);
s:=0; { начальное значение суммы }
i:=a; { начальное число отрезка }
while i<=b do { проверка: не закончен ли перебор }
begin if i mod 2 =1 { если i - нечетное, }
then s:=s+i; { то добавить его к сумме }
i:=i+1 { перейти к следующему числу отрезка }
end;
write('Сумма=',s)
end.
Тестирование. В построенной программе имеется три пути, ведущих от начала
программы к ее концу. Следовательно, необходимо построить три теста так, чтобы
по каждому пути пройти хотя бы по одному разу.
Первый путь: без захода в цикл. Тест: a=4, b=2. Ожидаемый ответ: s=0.
Второй путь: с заходом в цикл, но без выполнения условного оператора. Тест:
a=4, b=4. Ожидаемый ответ: s=0.
Третий путь: с заходом в цикл и с выполнением условного оператора.
Тест: a=4, b=12. Ожидаемый ответ: s=32.
Решение 2. Эту задачу можно понять и так, что заданы только нечетные числа
отрезка от а до b. Их необходимо просуммировать. Для решения задачи нужно
найти первое нечетное число отрезка, а затем перебирать только нечетные числа,
включая их в сумму. В соответствии с этим получаем программу на Паскале:
program SUMMA2;
{ Сумма нечетных чисел отрезка от а до b }
var a,b : integer; { границы отрезка }
s : integer; { сумма }
i : integer; { очередное число отрезка }
begin
write('Введите границы отрезка [a,b] ');
readln(a,b);
s:=0; { начальное значение суммы }
if a mod 2 = 1 { если а - нечетное, }
then i:=a { то начинаем перебор с а, }
else i:=a+1; { иначе начинаем перебор со следующего числа }
Страницы
- « первая
- ‹ предыдущая
- …
- 97
- 98
- 99
- 100
- 101
- …
- следующая ›
- последняя »
