Тип данных Char. Функции Ord, Chr.

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, ...

Оператор выбора Case Of в Pascal.

Помимо условного оператора If в языке программирования Pascal существует оператор выбора Case of. Рассмотрим его применение на примере программы, которая выводит на экран то или иное сообщение, в зависимости от введенного числа.

Перевод числа из десятичной системы счисления в шестнадцатеричную.

Напишем программу, которая вводит с клавиатуры целое число в диапазоне от 0 до 15 и преобразует его к шестнадцатеричной системе счисления. Напомню, что в шестнадцатеричной системе счисления числа в диапазоне от 0 до 9 соответствуют таким же числам в ...

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

Линейные процессы вычислений.

Простейший алгоритм представляет собой цепочку блоков (операторов) от начального блока до конечного. Каждый блок должен быть выполнен один единственный раз. Это линейный алгоритм. Он отражает ...

Тип данных Boolean.

Тип BOOLEAN (булевский, логический). Логический тип в языке Паскаль задается как перечисляемый тип, содержащий всего два значения, которые имеют идентификаторы FALSE (ложь) и TRUE (истина).

Многие циклические вычислительные процессы используют рекуррентные зависимости при решении различных математических задач.

В общем виде формулу для рекуррентных вычислений можно представить так:

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu

В этой рекуррентной формуле для вычисления i-го члена последовательности Yi, где i > k, используются k предыдущих членов последовательности Yi-1,Yi-2,...,Yi-k . Для вычислений по этой формуле нужно задать k первых членов последовательности – Y0,Y1,...,Yk-1 .
Использование рекуррентных формул, как правило, сокращает текст программы и время ее выполнения на компьютере. Однако в большинстве случаев рекуррентную формулу нужно написать программисту, что в ряде случаев вызывает определенные трудности.

Пример 18. Вычислить значение tgx:

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu.

Знаменатель формулы для вычисления tgX представляет собой цепную дробь. Для вычисления такого знаменателя в цикле удобно использовать рекуррентную зависимость с памятью в один член последовательности Аi= F(Ai-1). Для вывода рекуррентной формулы следует использовать таблицу 18.

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu..

Из таблицы 23 видно, что рекуррентная формула принимает вид:

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu...

PROGRAM PR18;
VAR      
X, A: REAL;
I: INTEGER;
BEGIN
   WRITELN('BBEДИTE X');
   READLN(X);
   A := 1;
   FOR I := 1 TO 5
   DO A := 11 - 2 * I - X * X/A;
   WRITELN('tgX = ', X/A:8:5)
END.

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu....

Пример 19. Пользуясь рекуррентной формулой, для заданного N вычислить

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu.....

известны Y0, Y1, Y2, a Yi(i?3) вычисляется по формуле:

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu......

Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu.......

Первым шагом в работе алгоритма является ввод данных Y0, Y1, Y2, N. При вводе трех первых значений последовательности нужно использовать рабочие ячейки Y3, Y2 и Y1 соответственно. На втором шаге требуется проанализировать значение N. Если N < 3, то рекуррентная формула для подсчета S суммы первых N членов не потребуется. Для определения S при условии N < 3 в алгоритме предусмотрен переключатель (оператор CASE), имеющий три ветви: N = 0, N = 1 и «В противном случае», куда попадает и случай N = 2. Для каждой ветви подсчитывается соответствующая сумма S. Третий шаг выполняется только в том случае, если N > 2. На этом шаге для I от 3 до N по рекуррентной формуле вычисляются Y, и подсчитывается их сумма S. Вы можете скачать архиватор бесплатно бесплатно и без регистрации. Найденное значение S на последнем четвертом шаге выводится на экран.
PROGRAM PR19;Arifmeticheskiyj cikl s rekurrentnoyj zavisimostjyu........
VAR     
Y3, Y2, Yl, Y, S: REAL;
I, N: INTEGER;
BEGIN
WRITELN('ВВЕДИТЕ Y0, Yl, Y2, N');
READLN(Y3, Y2, Yl, N);
CASE N OF
   0: S := Y3;
   1: S := Y3 +Y2
   ELSE S := Y3 + Y2 + Y1
END;  {CASE}
IF N > 2
THEN FOR I := 3 TO N
DO BEGIN
       Y := LN(ABS(Y1*Y1 + Y3 + 1));
       S := S + Y;
       Y3 := Y2;
       Y2 := Y1;
       Y1 := Y
       END;
WRITELN('S=', S:10:8)
END.

 


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


Комментарии  

 
0 # EVG 07.10.2021 04:48
;-)
Ответить
 

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

   ГлавнаяПаскальЛекции по ПаскальАрифметический цикл с рекуррентной зависимостью.