Основы алгоритмизации и программирования. Часть первая. Алгоритмический язык. Операторы. Асламова В.С - 23 стр.

UptoLike

Составители: 

45
требуется ввести до начала цикла. Чтобы получить правильный результат,
будем полагать до начала цикла, что P = 1.
Программа 3
Var P: longint;
I,n: byte;
Begin P
:
=1; I
:
=1;
Writeln('Введите n'); readln(n);
While I<=n do begin
P
:
=P*I; I
:
=I+1;
End;
Writeln('Значение ',n,'! факториала = ',P);
End.
Пример 10 Нахождение степени
Найти такое k, при котором X
k
<A. В Turbo
Pascal нет операции возведения в степень, поэтому
каждый раз алгоритм приходится писать самим.
Программа 4
Var X,Y,A,K: integer;
Begin
K
:
=0; Y
:
=1;
Writeln(‘Введите A и X’);
Read(A,X);
While Y
A do begin
K
:
=K+1; Y
:
=Y*X
end;
Writeln(K); End.
Рисунок 33 Блок-схема
программы 4
нет
КОНЕЦ
Печать
K
да
Y
А
НАЧАЛО
К=0; Y=1;
K:=K+1;
Y=Y*X
П
ечать
Ввод А, Х
46
Пример 11 Вычисление суммы ряда
Вычислить сумму бесконечно сходящегося ряда при заданном
значении x (0,1 x1) с точностью e=0,0001.
Особенностью решения задачи является то, что число суммируемых
членов ряда заранее является неизвестным. Условием окончания цикла по
накоплению суммы является достижение заданной точности. Значение
текущего члена ряда, зависит от параметра x и от п
орядкового номера n.
Если член ряда по абсолютной величине становится меньше заданной
точности e, то производится выход из цикла.
Обычно формула общего члена ряда принадлежит к одному из трех
типов.
a)
x
n
n!
;
()
1
n
x
()
2n+1
()
2n+1 !
;
x
2n
()
2n !
;
b)
cos
()
nx
n
;
sin
()
2n1 x
2n1
;
cos
()
2nx
4n
2
1
;
c)
x
4n+1
4n+1
;
()
1
n
cos
()
nx
n
2
;
n
2
+1
n!
x
2
2
.
В случае a) для вычисления члена ряда целесообразно пользоваться
рекуррентной формулой, то есть выражать каждый последующий член
ряда через предыдущий. Это позволит существенно сократить объем
вычислительной работы. Кроме того, наличие факториала n!
(произведение чисел 1*2*3*…*n) требует дополнительного цикла,
которого можно избежать, выражая каждый последующий член ряда через
предыдущий член ряда.
В случае b) пр
именение рекуррентных соотношений
нецелесообразно. Следует каждый член ряда вычислять по формуле
общего члена ряда, подставляя нужное значение n.
В случае c) каждый член ряда целесообразно представить в виде
двух сомножителей, один из которых вычислять по рекуррентной
формуле, а другой вычислять по формуле общего члена ряда.
Подсчитаем сумму сходящегося ряда (пр
и x<1).
S = 1 –
3x
2
2!
+
9x
4
4!
+
()
–1
n
()
2n
2
+ 1 x
2n
()
2n !
+
Формула общего члена ряда в нашем примере относится к типу c).
Разобьем текущий член ряда на три сомножителя.
  требуется ввести до начала цикла. Чтобы получить правильный результат,          Пример 11 Вычисление суммы ряда
  будем полагать до начала цикла, что P = 1.
                                                                                        Вычислить сумму бесконечно сходящегося ряда при заданном
  Программа 3
                                                                                  значении x (0,1 ≤x≤1) с точностью e=0,0001.
  Var P: longint;                                                                       Особенностью решения задачи является то, что число суммируемых
      I,n: byte;                                                                  членов ряда заранее является неизвестным. Условием окончания цикла по
                                                                                  накоплению суммы является достижение заданной точности. Значение
  Begin P:=1; I:=1;                                                               текущего члена ряда, зависит от параметра x и от порядкового номера n.
      Writeln('Введите n'); readln(n);                                            Если член ряда по абсолютной величине становится меньше заданной
                                                                                  точности e, то производится выход из цикла.
           While I<=n do begin
                                                                                           Обычно формула общего члена ряда принадлежит к одному из трех
           P:=P*I; I:=I+1;                                                        типов.
           End;
                                                                                            xn       (–1)n x(2n+1)          x2n
                                                                                   a)       n! ;                   ;             ;
      Writeln('Значение ',n,'! факториала = ',P);                                                        (2n+1)!           (2n)!
  End.                                                                                  cos(nx)        sin(2n–1)x         cos(2nx)
                                                                                   b)      n ;           2n–1
                                                                                                                 ;           2   ;
  Пример 10 Нахождение степени                                                                                             4n –1
         НАЧАЛО
                                     Найти такое k, при котором Xk