Пример выполнения задания. Составим программу вычисления функции

Составим программу вычисления функции

В зависимости от значения переменной x реализуется вычисление суммы или произведения. В теле цикла необходимо вычислить значение очередного слагаемого u:=u*x/n при текущем n и осуществить накопление суммы по формуле S:=S+u. Перед выполнением цикла значение переменной S должно быть нулевым (S:=0).

Вычисление произведения организуется с помощью аналогичной циклической структуры с параметром. В данном случае необходимо вычислить сомножитель u:=1+x/(n+2) и произведение по формуле P:=P*u. Перед выполнением цикла переменной P должно быть присвоено значение 1 (P:=1).

Для обеспечения универсальности алгоритма обозначим предел суммирования через KS, а предел произведения через KP и обеспечим их ввод в программе в качестве исходных данных. На рис. 1.1 приведена блок-схема алгоритма решения задачи.

 

 

Начало
X<=2
s=0 u=1
n =1, KS  
u=u*X/n s=s+u
x, KS, KP  
z=s*(x+1)/2
да
p=1
n =0, KP  
p=p*(1+x/(n+2))
z=(sin(X)+cos(X))/(2+sin(X))*P    
нет
X, Z
Конец  

Рис. 1.1. Схема алгоритма вычисления суммы и произведения.

 


 

Текст программы имеет следующий вид:

{Цель: вычисление сложной функции (конечная сумма и произведение}

{Переменные:z-значение функции;X-аргумент функции,S-сумма }

{ P-произведение;u-слагаемое(сомножитель) }

{ n-параметр цикла для суммы и произведения }

{ KS –число слагаемых,KP-число сомножителей }

program Sum_Mul;

var

P,S,T,u,x,z: real;

n,KS,Kp:integer;

Begin {Sum_Mul}

{ввод исходных данных}

Wrileln('введите X,KS,KP');

Read(X,KS,KP);

if X<=2 {выбор формулы}

then

begin {вычисление суммы}

S:=0;

u:=1;

for n:=1 to KS do

begin

u:=u*X/n;

S:=S+u;

end;

z:=S*(X+1)/2;

end

else

begin {вычисление произведения}

P:=1;

for n:=0 to KP do

P:=P*(1+X/(n+2));

z:=(sin(X)+cos(X))/(2+sin(X))*P;

end;

Writeln('X=',X:7:2,'z=',z:7:2);

End.{Sum_Mul}

 

ИТЕРАЦИОННЫЕ ЦИКЛЫ. ВЫЧИСЛЕНИЕ СУММЫ БЕСКОНЕЧНОГО РЯДА

Подготовка к работе

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

Контрольные вопросы

1. Что такое итерационный цикл? С помощью каких операторов организуется?

2. Какие ограничения налагаются на использование управляющей переменной (параметра цикла) в цикле for?

3. В каких случаях предпочтительнее использовать для организации циклов оператор for? Что записывается в заголовке этого оператора?

4. Что представляет собой составной оператор? Как ограничиваются операторы, объединённые в составной оператор?

5. Что такое рекуррентная формула? Правило записи рекуррентной формулы.

6. Что такое вложенные циклы? Какие дополнительные условия необходимо соблюдать при организации вложенных циклов?

7. В чём отличия операторов повтора while и repeat?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: