Конспект лекций по программированию для начинающих. Гладков В.П. - 117 стр.

UptoLike

Составители: 

119
s:=s+p;
i:=i+1
end.
Решение 2. Эту задачу можно решить и без использования вложенных циклов.
Заметим, что при вычислении следующего слагаемого выполняется часть работы,
которая уже была выполнена для предыдущего слагаемого. Выпишем i-е
слагаемое: u
i
=i·(i+1)·...·(2·i). (i-1)-е слагаемое равно: u
i-1
= (i-1) ·i·(i+1) ·...·2·(i-1).
Найдем их отношение:
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
u
u
=
ii+1i+22i-22i-1i
i-1 i i+1 i-2
=
2i-1 i
i-1
i
i-1
⋅⋅
⋅⋅
...
...
.
2
2
2
Отсюда u
i
= u
i-1
·(2·i-1)·2·i/(i-1). Получаем фрагмент 38.
{ фрагмент 38 }
s:=0;
u:=2; { первое слагаемое }
i:=2; { номер очередного слагаемого }
while i<=n do
begin
s:=s+u;
u:=u*(2*i-1)*2*i/(i-1);
i:=i+1
end.
Упражнения:
1. Установите начальные значения в следующей модификации фрагмента 38:
s:= ;
u:= ; { первое слагаемое }
i:= ; { номер очередного слагаемого }
while i<=n do
begin
u:=u*(2*i-1)*2*i/(i-1);
s:=s+u;
i:=i+1
end.
2. Вычислите:
а) s=1·2+3·4·5+6·7·8·9+..., всего n слагаемых;
б) s=(1+2) ·(3+4+5) ·(6+7+8+9) ·..., всего n сомножителей.
Сравните решение этих задач.
10.9. Стратегии ввода данных и вывода результатов
Для решения задач необходимо ввести исходные данные, т.е. взять их у
человека и перенести в оперативную память компьютера. Для отдельных данных
эту работу выполняет оператор ввода. Иногда требуется ввести в компьютер
последовательность значений. Здесь возможны следующие ситуации. В первой
ситуации требуется ввести заранее известное количество данных. Для этого
организуют
арифметический цикл со счетчиком, по значению которого
заканчивается цикл ввода. Во второй ситуации заранее неизвестно количество
                                             119

        s:=s+p;
        i:=i+1
   end.
   Решение 2. Эту задачу можно решить и без использования вложенных циклов.
Заметим, что при вычислении следующего слагаемого выполняется часть работы,
которая уже была выполнена для предыдущего слагаемого. Выпишем i-е
слагаемое: ui=i·(i+1)·...·(2·i). (i-1)-е слагаемое равно: ui-1 = (i-1) ·i·(i+1) ·...·2·(i-1).
Найдем их отношение:
     ui       i ⋅ (i + 1) ⋅ (i + 2)⋅...⋅(2 ⋅ i - 2) ⋅ (2 ⋅ i -1) ⋅ 2 ⋅ i   (2 ⋅ i -1) ⋅ 2 ⋅ i .
           =                                                             =
    u i-1               (i -1) ⋅ i ⋅ (i + 1)⋅...⋅(2 ⋅ i - 2)                      i -1
   Отсюда ui = ui-1·(2·i-1)·2·i/(i-1). Получаем фрагмент 38.
   { фрагмент 38 }
   s:=0;
   u:=2; { первое слагаемое }
   i:=2; { номер очередного слагаемого }
   while i<=n do
   begin
        s:=s+u;
        u:=u*(2*i-1)*2*i/(i-1);
        i:=i+1
   end.
   Упражнения:
   1. Установите начальные значения в следующей модификации фрагмента 38:
   s:= ;
   u:= ; { первое слагаемое }
   i:= ; { номер очередного слагаемого }
   while i<=n do
   begin
        u:=u*(2*i-1)*2*i/(i-1);
        s:=s+u;
        i:=i+1
   end.
   2. Вычислите:
        а) s=1·2+3·4·5+6·7·8·9+..., всего n слагаемых;
        б) s=(1+2) ·(3+4+5) ·(6+7+8+9) ·..., всего n сомножителей.
   Сравните решение этих задач.

             10.9. Стратегии ввода данных и вывода результатов
   Для решения задач необходимо ввести исходные данные, т.е. взять их у
человека и перенести в оперативную память компьютера. Для отдельных данных
эту работу выполняет оператор ввода. Иногда требуется ввести в компьютер
последовательность значений. Здесь возможны следующие ситуации. В первой
ситуации требуется ввести заранее известное количество данных. Для этого
организуют арифметический цикл со счетчиком, по значению которого
заканчивается цикл ввода. Во второй ситуации заранее неизвестно количество