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

UptoLike

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

99
Для решения этой же задачи можно воспользоваться формулой четного числа,
которая позволяет вычислить четное число по его номеру: четное (i) = 2·i.
Получаем следующий фрагмент:
{ фрагмент 3a }
readln(N);
{ Здесь N - количество слагаемых }
s:=0;
i:=1;
while i<=N do
begin s:=s+2*i;
i:=i+1;
end;
Упражнение. Напишите программу для вычисления суммы s = 1/2 + 1/4 + ... +
+1/(2·n).
10.4.3. Модификация 3
Посмотрим, как изменится фрагмент 2, если в операторе i:=i+2 изменить знак +
на знак *. Чтобы понять, что делает приведенный ниже фрагмент программы,
выполним трассировку.
{ фрагмент 4 }
readln(N);
s:=0;
i:=1;
while i<=N do
begin s:=s+i;
i:=i*2; <-- + изменили на *.
end;
В начале s=0, i=1.
После первого шага s=0+1, i=2.
После второго шага s=0+1+2, i=4.
После третьего шага s=0+1+2+4, i=8.
После четвертого шага s=0+1+2+4+8, i=16.
Продолжая трассировку заключаем, что после окончания цикла получим
сумму
степеней числа два, меньших N.
10.4.4. Модификация 4
Посмотрим, как изменится фрагмент 2, если в операторе s:=s+i изменить i на
некоторое заданное число x. Чтобы понять, что делает приведенный ниже
фрагмент программы, выполним трассировку.
{ фрагмент 5 }
readln(N,x); <-- вводим число x. N - граница суммирования.
s:=0;
i:=1;
while i<=N do
begin s:=s+x; <-- i изменили на x.
                                      99

    Для решения этой же задачи можно воспользоваться формулой четного числа,
которая позволяет вычислить четное число по его номеру: четное (i) = 2·i.
Получаем следующий фрагмент:
    { фрагмент 3a }
    readln(N);
    { Здесь N - количество слагаемых }
    s:=0;
    i:=1;
    while i<=N do
    begin    s:=s+2*i;
             i:=i+1;
    end;
    Упражнение. Напишите программу для вычисления суммы s = 1/2 + 1/4 + ... +
+1/(2·n).

                            10.4.3. Модификация 3
   Посмотрим, как изменится фрагмент 2, если в операторе i:=i+2 изменить знак +
на знак *. Чтобы понять, что делает приведенный ниже фрагмент программы,
выполним трассировку.
   { фрагмент 4 }
   readln(N);
   s:=0;
   i:=1;
   while i<=N do
   begin    s:=s+i;
            i:=i*2; <-- + изменили на *.
   end;
   В начале                s=0, i=1.
   После первого шага             s=0+1, i=2.
   После второго шага             s=0+1+2, i=4.
   После третьего шага            s=0+1+2+4, i=8.
   После четвертого шага          s=0+1+2+4+8, i=16.
   Продолжая трассировку заключаем, что после окончания цикла получим сумму
степеней числа два, меньших N.

                            10.4.4. Модификация 4
   Посмотрим, как изменится фрагмент 2, если в операторе s:=s+i изменить i на
некоторое заданное число x. Чтобы понять, что делает приведенный ниже
фрагмент программы, выполним трассировку.
   { фрагмент 5 }
   readln(N,x); <-- вводим число x. N - граница суммирования.
   s:=0;
   i:=1;
   while i<=N do
   begin    s:=s+x; <-- i изменили на x.