• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Сумма в Паскале

  • Автор темы Автор темы vitjok
  • Дата начала Дата начала

vitjok

Новые
Регистрация
29 Сен 2012
Сообщения
72
Реакции
0
Баллы
0
Сумма в Паскале

помогите пожалуйста составить код:


ы.webp
 
помогите пожалуйста составить код
Да пожалуйста:
Код:
Const
 Eps=0.0001;
 Xbeg=-0.9;
 Xfin=0.9;
 DX=0.1;
VAR
 N,i,k:Word;
 S,X,a:Real;

BEGIN
 N:=Round((Xfin-Xbeg)/DX);
 WriteLn('   X        Result      Number of items     Accurate value');
 For i:=0 to N do
  begin
   X:=Xbeg+DX*i;
   k:=0;
   a:=X;
   S:=a;
   Repeat
    Inc(k);
    a:=a*X*X*(2*k-1)/(2*k+1);
    S:=S+a;
   Until Abs(a)<Eps;
   S:=S*2;
   WriteLn(X:6:3,S:12:6,k:12,Ln((1+X)/(1-X)):24:6);
  end;
 Readln;
END.
 
спасибо большое! можно описание)
 
а можно сделать так что бы исходные данные надо было вводить)
 
а можно сделать так что бы исходные данные надо было вводить)
Можно и так.
Код:
Const
 Eps=0.0001;
Var
 k:Word;
 S,x,a:Real;

BEGIN
 Repeat
  Write('x= ');
  Readln(x);
  If (x<=-1) or (x>=1) then Writeln('Value out of range!');
 Until (x>-1) and (x<1);
 WriteLn('   x        Result      Number of items     Accurate value');
 k:=0;
 a:=x;
 S:=a;
 Repeat
  Inc(k);
  a:=a*x*x*(2*k-1)/(2*k+1);
  S:=S+a;
 Until Abs(a)<Eps;
 S:=S*2;
 WriteLn(x:6:3,S:12:6,k:12,Ln((1+x)/(1-x)):24:6);
 Readln;
END.
Описание? Ну пожалуйста.
1. По запросу вводится х. Причем если введенное число оказывается вне диапазона -1 < x < 1, запрос повторяется.
2. Присваиваются исходные значения члену ряда (а=х) и сумме (S=а).
Далее идет цикл суммирования, причем каждый следующий член ряда получается рекуррентно из предыдущего. Так, чтобы получить x^5/5, нужно (x^3/3) умножить на x^2, умножить на 3 и поделить на 5. Суммирование продолжается до тех пор, пока очередной член ряда не станет по абсолютной величине меньшим наперед заданной точности (Eps).
3. Полученная сумма умножается на 2.
4. Выводится итог: x, S, количество учтенных членов ряда и, для сравнения, точное значение разлагаемой функции.
Всё!
 
Назад
Сверху