Ввод логических переменных с клавиатуры.

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

Textcolor, Window, Textbackground в Pascal.

Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится ...

Строковые константы в Pascal.

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

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

Сортировка двумерного массива.

Пример 36. Задан двумерный массив X из 6 строк и 4 столбцов. Упорядочить массив X по возрастанию элементов дробной части столбца с номером N. Отсортированный массив X вывести на экран монитора.

Стандартные функции в Паскаль.

Наиболее часто встречающиеся операции над скалярными типами данных реализованы в языке Паскаль с помощью встроенных (иногда говорят — стандартных) функций и процедур.

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

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

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.
Следующая статья: Вложенный арифметический цикл.


Комментарии  

 
+2 # EVG 07.10.2021 04:48
;-)
 
   ГлавнаяПаскальЛекции по ПаскальВложенный арифметический цикл. Часть 2.