ВУЗ:
Составители:
Рубрика:
39
S:= 0;
i:= iStart;
a:= 1/iStart;
{ цикл }
While a >= Eps do
begin
S:= S + a;
i:= i + Step;
a := 1/i
end;
Writeln('Значение суммы ряда 1/i = ', S:10:4) { вывод результатов }
End.
Примечание: так как циклическая часть программы выполняется по условию a >= Eps (см.
текстуальное описание алгоритма), то в операторе цикла с "предусловием" используется
именно это условие.
Составление контрольного теста.
При начальных значениях переменных:
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), выполняются следующие предложения циклической части:
−
значение S увеличивается на a и результат вновь присваивается переменной S;
− значение i увеличивается на величину Step и результат снова присваивается
переменной i;
−
вычисляется новое значение переменной a.
Начальные значения переменных заданы до начала оператора цикла.
Переменные, а также логическое выражение принимают следующие значения в процессе
выполнения этой части программы при заданном контрольном тесте: 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.0
1
Значение
условия
Истинно Истинно Истинно Истинно Истинно Ложно
Таким образом, предложения, составляющие тело цикла, выполнились пять раз. На шестом
шаге вычислений, при i=12 и a=0.0083, логическое выражение становится ложным, и
управление передается за пределы цикла, т.е. предложению Writeln, следующему за первой
операторной скобкой (еnd).
5.2. Оператор цикла с последующим условием
Синтаксис оператора цикла с "постусловием" :
REPEAT < предложения тела цикла >
UNTIL < логическое выражение > ; .
Здесь REPEAT (повторить) и UNTIL (до тех пор) - служебные слова.
S:= 0;
i:= iStart;
a:= 1/iStart;
{ цикл }
While a >= Eps do
begin
S:= S + a;
i:= i + Step;
a := 1/i
end;
Writeln('Значение суммы ряда 1/i = ', S:10:4) { вывод результатов }
End.
Примечание: так как циклическая часть программы выполняется по условию a >= Eps (см.
текстуальное описание алгоритма), то в операторе цикла с "предусловием" используется
именно это условие.
Составление контрольного теста.
При начальных значениях переменных:
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), выполняются следующие предложения циклической части:
− значение S увеличивается на a и результат вновь присваивается переменной S;
− значение i увеличивается на величину Step и результат снова присваивается
переменной i;
− вычисляется новое значение переменной a.
Начальные значения переменных заданы до начала оператора цикла.
Переменные, а также логическое выражение принимают следующие значения в процессе
выполнения этой части программы при заданном контрольном тесте: 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.0
1
Значение Истинно Истинно Истинно Истинно Истинно Ложно
условия
Таким образом, предложения, составляющие тело цикла, выполнились пять раз. На шестом
шаге вычислений, при i=12 и a=0.0083, логическое выражение становится ложным, и
управление передается за пределы цикла, т.е. предложению Writeln, следующему за первой
операторной скобкой (еnd).
5.2. Оператор цикла с последующим условием
Синтаксис оператора цикла с "постусловием" :
REPEAT < предложения тела цикла >
UNTIL < логическое выражение > ; .
Здесь REPEAT (повторить) и UNTIL (до тех пор) - служебные слова.
39
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »
