Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

K: integer;

Читайте также:
  1. I : integer;

Begin

S:= 0; k:=1;

repeat S:= S + 1/sqr(k);

k:= k + 1;

until k > 20;

writeln(‘ S = ’, S:10:5):

End.

Задачу примера 3.15 можно решить с помощью другого варианта циклического алгоритма.

1. Положить S = 0, k = 1.

2. Если k > 20, то СТОП, иначе продолжить.

3. Вычислить S + и записать результат в S.

4. Увеличить k на 1.

5. Повторить шаг 2.

На PASCAL этот алгоритм удобно записать с помощью цикла while, т.к. в данном варианте проверка условия прекращения цикла происходит до выполнения действия.

var S: real;

K: integer;

Begin

S:= 0; k:=1;

while k <= 20 do

begin S:= S + 1/sqr(k);

k:= k + 1;

End;

writeln(‘ S = ’, S:10:5):

End.

В приведенных примерах количество повторений тела цикла можно оценить еще до его выполнения. Однако, во многих задачах количество этих повторений заранее не известно и вычислено быть не может. Опера­торы repeat и while позволяют организовывать такие циклы. В сле­дующих двух примерах рассмотрим нахождение суммы бесконечного ря­да с заданной точностью.

Пример 3.16. Найти сумму членов бесконечно убывающей геометрической прогрессии с точностью до слагаемого, меньшего заданной величины e:

z = 1 + x + x 2 + x 3 +…+ xn + …

При нахождении суммы такого ряда не следует вычислять от­дельно каждый элемент. Достаточно установить зависимость, по ко­торой из предыдущего элемента образуется следующий. Обозначим через an = xn – n-й член прогрессии, тогда

an+1 = xn +1 = an × x; a0 = 1.

Та­кой подход позволяет сократить количество вычислительных операций и уменьшить время счета. Сумму будем накапливать в переменной S, которую предвари­тельно необходимо обнулить, как и в предыдущем примере.

Условие окончания цикла – |an | £ e., которое означает, что последнее слагаемое по модулю меньше e. Так как слагаемые данного выражения убывают, то и все следующие слагаемые малы, значит, сумма от последующих сложений практически не увеличится и процесс накопления суммы можно прекратить.

Ниже приведены два варианта программы. В первом варианте использован оператор while, во втором – repeat. В программах an обозначено именем а.

Первый вариант

Var

x, s, eps, a: real;

Begin

write ('введите х и epsilon - ');


Дата добавления: 2015-07-18; просмотров: 114 | Нарушение авторских прав


Читайте в этой же книге: Конструктивные элементы языка PASCAL | Структура программы на языке PASCAL | Пример 2.2. | Порядок выполнения операций | Ввод числовых данных с клавиатуры | Вывод данных на экран монитора | Пример 3.4 | Условные и составные операторы | Пример 4.1 | I : integer; |
<== предыдущая страница | следующая страница ==>
Вычисление сумм| Readln (x, eps);

mybiblioteka.su - 2015-2024 год. (0.007 сек.)