Страница 1 из 1

Помагите доработать код. Табулирование функции, Pascal

Добавлено: 24 сен 2008, 14:50
Kav
Пожалуйста помагите доработать следующий код:

Код: Выделить всё

program z25;
Var
 x, y, eps,mem: real;
 n: integer;
Begin
 WriteLn('Eps:='); ReadLn(eps);
 WriteLn('X:='); ReadLn(x);
 mem:=1; //Начальные установки
 y:=1;
n:=x; 
While Abs (mem)>=Eps Do
 Begin
  mem:=-mem*x*(2*n-1)/(2*n); //Формирование слагаемого
  y=y+mem;
  n:=n+1;
 End;
WriteLn(y);
End.
По условию задания нужно посчитать Y для 20 значений X, а уменя оно считает для одного. :confused:
Вот условие задачи:
Вычислить с заданной точностью ε значение функции Y для каждого из 20 значений Х:

Y = 1 – X / 2 + (1*3*X2) / (2*4) – (1*3*5*X3) / (2*4*6) +

+ (1*3*5*7*X4) / (2*4*6*8) – ...

Значения Х и ε ввести
Заранее всем агромное спасибо. :)

Re: Помагите доработать код.

Добавлено: 24 сен 2008, 22:38
Serge_Bliznykov
1) код программы, который Вы привели - почему с синтаксическими ошибками?!
Вы тут прямо в браузере набирали или программа у Вас вообще не работала?

2) не надо присваивать n:=x;
нужно n:=1;

3) ОБЯЗАТЕЛЬНО! X должно быть МЕНЬШЕ единицы! иначе ряд расходится (каждый следующий элемент БОЛЬШЕ предыдущего - там же идёт умножение на X

4) просто на будущее - если приводите текст программы, в которую данные вводятся, и заявляте, что программа неверно считает/работает - потрудитесь, хотя бы указать, что Вы вводили (в данном случае какие X и Eps Вы задавали!)

5) если нужно посчитать для 20 разных X
то просто в начале программы

Код: Выделить всё

 for i:=1 to 20 do begin
   ввод X;
   вычисление Y;
   выдача x и полученного результата
 end;

Re: Помагите доработать код.

Добавлено: 25 сен 2008, 12:26
Kav
Агромное спасибо.