ВУЗ:
Составители:
Рубрика:
103
Решение 1. Установим, что повторяется в теле цикла. Здесь для нахождения
суммы можно прибавлять слагаемые вида: s := s + z*i, где s - сумма, z - знак
слагаемого, i - слагаемое. Знак числа изменяется на противоположный при каждом
выполнении тела цикла. Тело цикла здесь выполняется n раз, поэтому цикл -
арифметический. Соответствующий фрагмент приведен ниже:
{ фрагмент 7 }
write('Введите количество слагаемых ');
readln(n);
s:=0; { начальное значение суммы }
z:=-1; {
знак первого слагаемого минус }
i:=1; { первое слагаемое }
while i<=n do { пока есть слагаемые }
begin s:=s+z*i; { прибавляем слагаемое со знаком к сумме }
z:=-z; { меняем знак }
i:=i+1 { переходим к следующему слагаемому }
end;
Упражнение. Проведите трассировку фрагмента 7, затем ответьте на вопрос:
«Какую задачу решает фрагмент 8, приведенный ниже?»
{ фрагмент 8 }
readln(a,b);
s:=0;
z:=-1;
i:=a;
while i<=b do
begin s:=s+z*i;
z:=-z;
i:=i+1
end;
Решение 2. Можно заметить, что знак минус стоит перед нечетным слагаемым,
а знак плюс перед - четным, поэтому в теле цикла повторяются следующие
действия: если очередное слагаемое четное, то оно прибавляется к сумме, а если
нечетное, то вычитается. Эти действия оформляются в виде условного оператора.
Цикл по-прежнему арифметический. Тогда получаем фрагмент 9.
{ фрагмент
9 }
readln(n);
s:=0;
i:=1;
while i<=n do
begin
if i mod 2=0 { если очередное слагаемое четное, }
then s:=s+i { то оно прибавляется к сумме, }
else s:=s-i; { иначе оно вычитается из суммы }
i:=i+1
end;
Упражнение. Измените фрагмент 9 так, чтобы он решал ту же задачу, что и
фрагмент 8.
103
Решение 1. Установим, что повторяется в теле цикла. Здесь для нахождения
суммы можно прибавлять слагаемые вида: s := s + z*i, где s - сумма, z - знак
слагаемого, i - слагаемое. Знак числа изменяется на противоположный при каждом
выполнении тела цикла. Тело цикла здесь выполняется n раз, поэтому цикл -
арифметический. Соответствующий фрагмент приведен ниже:
{ фрагмент 7 }
write('Введите количество слагаемых ');
readln(n);
s:=0; { начальное значение суммы }
z:=-1; { знак первого слагаемого минус }
i:=1; { первое слагаемое }
while i<=n do { пока есть слагаемые }
begin s:=s+z*i; { прибавляем слагаемое со знаком к сумме }
z:=-z; { меняем знак }
i:=i+1 { переходим к следующему слагаемому }
end;
Упражнение. Проведите трассировку фрагмента 7, затем ответьте на вопрос:
«Какую задачу решает фрагмент 8, приведенный ниже?»
{ фрагмент 8 }
readln(a,b);
s:=0;
z:=-1;
i:=a;
while i<=b do
begin s:=s+z*i;
z:=-z;
i:=i+1
end;
Решение 2. Можно заметить, что знак минус стоит перед нечетным слагаемым,
а знак плюс перед - четным, поэтому в теле цикла повторяются следующие
действия: если очередное слагаемое четное, то оно прибавляется к сумме, а если
нечетное, то вычитается. Эти действия оформляются в виде условного оператора.
Цикл по-прежнему арифметический. Тогда получаем фрагмент 9.
{ фрагмент 9 }
readln(n);
s:=0;
i:=1;
while i<=n do
begin
if i mod 2=0 { если очередное слагаемое четное, }
then s:=s+i { то оно прибавляется к сумме, }
else s:=s-i; { иначе оно вычитается из суммы }
i:=i+1
end;
Упражнение. Измените фрагмент 9 так, чтобы он решал ту же задачу, что и
фрагмент 8.
Страницы
- « первая
- ‹ предыдущая
- …
- 99
- 100
- 101
- 102
- 103
- …
- следующая ›
- последняя »
