Процедура Writeln в Pascal

Помимо зарезервированного слова Write, для вывода сообщения на экран в Pascal используется процедура Writeln. Отличие процедуры Writeln от оператора Write заключается в том, что Writeln после вывода сообщения на экран переводит курсор на другую ...

Функции trunc, round в Pascal.

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это ...

Операции умножения и сложения в Pascal.

В данном уроке мы рассмотрим операции умножения и сложения в Pascal. Умножение в Pascal обозначается знаком «*», а сложение - знаком «+».

Циклы и массивы

Вычисление предела последовательности.

Вычисление предела последовательности является типичной задачей на использование итерационного цикла.

Спецификация процедуры.

Процедура представляет собой программу в миниатюре, являясь в свою очередь частью основной программы или другой процедуры. Синтаксис процедуры полностью повторяет синтаксис программы.

Вычисление предела последовательности является типичной задачей на использование итерационного цикла.

Последовательность {Xn} определена следующим образом:

Vihchislenie predela posledovateljnosti

Найти предел последовательности {Xn}, принимая за него такое Хn, при котором |Xn – Xn-1| < ?.

Vihchislenie predela posledovateljnosti.

PROGRAM PR24;
VAR      
X, X1, E: REAL;
N: INTEGER;
BEGIN
     WRITELN('BBEДИTE E');
     READLN(E);
     N := 1;
     X := 1;
         REPEAT
            X1 := X;
            X := ( N * N +2)/(3*N * N – N +1);
            N:=N+ 1;
        UNTIL ABS(X – X1) <E;
    WRITELN('Предел последовательности равен', X:12:8)
END.

Вычисление суммы бесконечного ряда с использованием рекуррентной формулы.

Для вычисления на компьютере сумм бесконечного ряда часто используют рекуррентные формулы, с помощью которых друг за другом вычисляют значения членов бесконечной последовательности. Рекуррентные формулы существенно сокращают время работы программы, упрощают процесс написания программы и ее отладки. Как правило, рекуррентные формулы программист должен составить сам. В этом и состоит искусство программирования вычислительных процессов. Рекуррентная формула может и отсутствовать. В этом случае каждый член ряда придется рассчитывать «в лоб» по полной формуле.
Есть определенные признаки, которые помогают выявить наличие рекуррентных формул. К таким признакам относятся выражения (-1)n, Xn, n! и подобные этим выражения, присутствующие в формуле общего члена бесконечного ряда. Часто рекуррентная формула для бесконечного ряда находится путем деления соседних членов ряда друг на друга.

Пример №25. Вычислить:

Vihchislenie predela posledovateljnosti..

Вычисление ряда окончить при выполнении условия:

Vihchislenie predela posledovateljnosti... Для решения этой задачи необходимо использовать рекуррентную формулу. А найти ее можно следующим способом. Сделаем преобразование исходного ряда в следующий вид:

Vihchislenie predela posledovateljnosti....

Тогда условие окончания вычислений будет выглядеть так | Ai | < ?.  Это условие либо выполнится для некоторого i = n и вычислительный процесс будет завершен, либо не выполнится. Во втором случае используют термин «зависание программы». Оператор ЭВМ искусственно останавливает программу и выясняет причину зависания: неправильные исходные данные, например, комбинация X и ?, или допущена ошибка в тексте программы, а может быть получена неправильная рекуррентная формула, или другая причина имеет место. Если Вам понадобятся аксессуары для телефонов, Вы  всегда сможете купить их в интернет-магазине гаджетов http://promate-rus.com/ по оптимальной и доступной цене.
Нас в этом примере интересует нормальный режим работы программы, а это означает, что существует такое n, для которого справедливы следующие формулы:

Vihchislenie predela posledovateljnosti.....

Эти формулы и будут исходными для нашей задачи. На этом первый этап подготовки бесконечного ряда к нахождению его суммы Y с погрешностью ? на компьютере завершается. Если рекуррентную формулу найти невозможно или нет в этом необходимости, то можно ограничиться только приведенными выше преобразованиями.
Но в нашем случае нужен второй этап преобразования, а именно, нахождение рекуррентной формулы. Для этого поделим два соседних члена Аi, Аi-1 (Иногда, с точки зрения математических преобразований проще будет разделить Аi+1 на Аi, что эквивалентно):

Vihchislenie predela posledovateljnosti......

Vihchislenie predela posledovateljnosti.......

PROGRAM PR25;
VAR      
Y, Е, А, X: REAL;
I: INTEGER;
BEGIN   
     WRITELN('Введите X, E');
     READLN(X, E);
     I:= 1;
     A:= -X*X/2;
   Y:=A;
        WHILE ABS(A) >= E
        DO BEGIN
              I := I+1;
              A:= -X*X/2/I/(2*I - 1)*A;
              Y := Y + A;
       END;
    WRITELN('Y=', Y:10:6)
END.


Предыдущая статья: Вложенный арифметический цикл. Часть 2.
Оглавление: Лекции по Pascal.
Следующая статья: Вложенные итерационные циклы.


Комментарии  

 
0 # ритта 09.02.2013 04:09
тема понравилась!!!! :lol:
Ответить
 
 
0 # Акакий 26.11.2014 05:31
:eek:
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальЛекции по Паскаль