ВУЗ:
Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 39
- 40
- 41
- 42
- 43
- …
- следующая ›
- последняя »
