ВУЗ:
Составители:
Рубрика:
104
Решение 3. Можно вначале найти сумму слагаемых, входящих в требуемую
сумму со знаком минус, затем - сумму слагаемых, входящих в требуемую сумму со
знаком плюс. Эти задачи уже решались нами (см. фрагменты 2 и 3 в подразделе
10.4.2). Затем из второй суммы вычтем первую и получим ответ для поставленной
задачи. Решение приведено во фрагменте 10.
{ фрагмент 10 }
readln(N);
sn:=0; { сумма нечетных }
i:=1;
while i<=N do
begin sn:=sn+i;
i:=i+2;
end;
sс:=0; { сумма четных }
i:=2;
while i<=N do
begin sс:=sс+i;
i:=i+2;
end;
s:=sc-sn; { ответ задачи }.
Упражнение. Измените фрагмент 10 так, чтобы он решал задачу фрагмента 8.
Пример 10.12. Усложним пример 10.11. Пусть нужно найти сумму вида s =
1+2-3+4+5-6+... . В сумму входит n слагаемых.
Решение. Попытаемся применить предыдущее решение 3. Для этого нужно
вначале сложить все числа, а затем сложить числа, кратные трем. Вычтя из первой
суммы утроенную вторую, получим ответ задачи. В самом деле, например, для n=6
получим 1+2+3+4+5+6= 1+2+4+5+3+6-2·(3+6).
Несложно применить и второе решение предыдущей задачи для решения
данной. Для этого достаточно из суммы вычитать числа,
кратные трем, а остальные
прибавлять. Получим фрагмент 11.
{ фрагмент 11 }
s:=0;
for i:=1 to n do
if i mod 3=0
then s:=s-i
else s:=s+i.
Чуть сложнее применить первое решение предыдущей задачи для решения
данной. Здесь нельзя изменять знак в цикле при каждом его исполнении.
Возможные решения представлены в приведенных ниже фрагментах 12 и 13.
{ фрагмент 12 }
s:=0; { начальное значение суммы }
z:=1; { начальное значение знака + }
for i:=1 to n do { цикл выполняется n раз }
begin if i mod 3=0 { если i
кратно трем, }
then z:=-1 { то знак слагаемого - }
else z:=1; { иначе знак слагаемого + }
104
Решение 3. Можно вначале найти сумму слагаемых, входящих в требуемую
сумму со знаком минус, затем - сумму слагаемых, входящих в требуемую сумму со
знаком плюс. Эти задачи уже решались нами (см. фрагменты 2 и 3 в подразделе
10.4.2). Затем из второй суммы вычтем первую и получим ответ для поставленной
задачи. Решение приведено во фрагменте 10.
{ фрагмент 10 }
readln(N);
sn:=0; { сумма нечетных }
i:=1;
while i<=N do
begin sn:=sn+i;
i:=i+2;
end;
sс:=0; { сумма четных }
i:=2;
while i<=N do
begin sс:=sс+i;
i:=i+2;
end;
s:=sc-sn; { ответ задачи }.
Упражнение. Измените фрагмент 10 так, чтобы он решал задачу фрагмента 8.
Пример 10.12. Усложним пример 10.11. Пусть нужно найти сумму вида s =
1+2-3+4+5-6+... . В сумму входит n слагаемых.
Решение. Попытаемся применить предыдущее решение 3. Для этого нужно
вначале сложить все числа, а затем сложить числа, кратные трем. Вычтя из первой
суммы утроенную вторую, получим ответ задачи. В самом деле, например, для n=6
получим 1+2+3+4+5+6= 1+2+4+5+3+6-2·(3+6).
Несложно применить и второе решение предыдущей задачи для решения
данной. Для этого достаточно из суммы вычитать числа, кратные трем, а остальные
прибавлять. Получим фрагмент 11.
{ фрагмент 11 }
s:=0;
for i:=1 to n do
if i mod 3=0
then s:=s-i
else s:=s+i.
Чуть сложнее применить первое решение предыдущей задачи для решения
данной. Здесь нельзя изменять знак в цикле при каждом его исполнении.
Возможные решения представлены в приведенных ниже фрагментах 12 и 13.
{ фрагмент 12 }
s:=0; { начальное значение суммы }
z:=1; { начальное значение знака + }
for i:=1 to n do { цикл выполняется n раз }
begin if i mod 3=0 { если i кратно трем, }
then z:=-1 { то знак слагаемого - }
else z:=1; { иначе знак слагаемого + }
Страницы
- « первая
- ‹ предыдущая
- …
- 100
- 101
- 102
- 103
- 104
- …
- следующая ›
- последняя »
