Лабораторный практикум по программированию на языке Паскаль. Найханова Л.В - 41 стр.

UptoLike

41
Запись алгоритма на языке Паскаль (операторная запись алгоритма).
Program ExampCircle2;
var
i, iStart, Step : integer;
S, a, Eps : real;
Begin
{ Ввод исходных данных }
Writeln('Введите значения переменных iStart, Step, Eps:');
Readln(iStart, Step, Eps);
{ инициализация }
S:= 0;
i:= iStart;
{ цикл }
repeat
a := 1/i;
S:= S + a;
i:= i + Step;
until a < Eps;
{ вывод результатов }
Writeln('Значение суммы ряда 1/i = ', S:10:4);
End.
Составление контрольного теста
При начальных значениях переменных:
iStart = 2, Step = 2, Eps = 0.01,
получаем следующий ряд
S = 0 + 0.5 + 0.25 + 0.1999 + 0.125 + 0.01 = 1.0849
Пояснение к работе программы
Циклическая часть программы повторяется до тех пор, пока выражение a<Eps не станет
истинным. В предыдущем варианте программы, при использовании оператора с
"предусловием", повторение выполнялось до тех пор, пока условие a >= Eps было
истинным.
Переменные, а также логическое выражение принимают следующие значения в процессе
выполнения этой части программы при том же контрольном тесте: iStart = 2, Step = 2, Eps =
0.01
1-й шаг 2-й шаг 3-й шаг 4-й шаг 5-й шаг 6-й шаг
i 2 4 6 8 10 12
a 0.5 0.25 0.1999 0.125 0.01 0.0083
S 0.5 0.75 0.9499 1.0749 1.0849 -
a < Eps 0.5<0.01 0.25<0.01 0.1999<0.01 0.125<0.01 0.01<0.01 0.0083<0.01
Значение
условия
Ложно Ложно Ложно Ложно Ложно Истинно
Предложения, составляющие тело цикла, выполнились снова пять раз. На шестом шаге
вычислений, при i=12 и a=0.0083, логическое выражение становится истинным, и
управление передается за пределы цикла, т.е. предложению WriteLn, следующему за первой
операторной скобкой (еnd).
Примечание: Как видно из примеров, использование оператора с "постусловием" сократило
программу на одно предложение и пару операторных скобок.
Действительно, предложение REPEAT достаточно удобно использовать в программах, но
следует помнить, что при использовании предложение WHILE перед выполнением
Запись алгоритма на языке Паскаль (операторная запись алгоритма).
  Program ExampCircle2;
   var
    i, iStart, Step : integer;
    S, a, Eps      : real;
   Begin
    { Ввод исходных данных }
     Writeln('Введите значения переменных iStart, Step, Eps:');
    Readln(iStart, Step, Eps);
    { инициализация }
    S:= 0;
    i:= iStart;
    { цикл }
    repeat
      a := 1/i;
      S:= S + a;
      i:= i + Step;
    until a < Eps;
    { вывод результатов }
     Writeln('Значение суммы ряда 1/i = ', S:10:4);
   End.
Составление контрольного теста
При начальных значениях переменных:
   iStart = 2, Step = 2, Eps = 0.01,
получаем следующий ряд
   S = 0 + 0.5 + 0.25 + 0.1999 + 0.125 + 0.01 = 1.0849
Пояснение к работе программы
Циклическая часть программы повторяется до тех пор, пока выражение a= Eps было
истинным.
Переменные, а также логическое выражение принимают следующие значения в процессе
выполнения этой части программы при том же контрольном тесте: iStart = 2, Step = 2, Eps =
0.01
              1-й шаг       2-й шаг    3-й шаг         4-й шаг     5-й шаг    6-й шаг
i             2             4          6               8           10         12
a             0.5           0.25       0.1999          0.125       0.01       0.0083
S             0.5           0.75       0.9499          1.0749      1.0849     -
a < Eps       0.5<0.01      0.25<0.01  0.1999<0.01 0.125<0.01 0.01<0.01       0.0083<0.01
Значение Ложно              Ложно      Ложно           Ложно       Ложно      Истинно
условия

Предложения, составляющие тело цикла, выполнились снова пять раз. На шестом шаге
вычислений, при i=12 и a=0.0083, логическое выражение становится истинным, и
управление передается за пределы цикла, т.е. предложению WriteLn, следующему за первой
операторной скобкой (еnd).
Примечание: Как видно из примеров, использование оператора с "постусловием" сократило
программу на одно предложение и пару операторных скобок.
Действительно, предложение REPEAT достаточно удобно использовать в программах, но
следует помнить, что при использовании предложение WHILE перед выполнением


                                                                                      41