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

UptoLike

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