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

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

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

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

Помогите написать программу на Паскаль

dozkordmit

Ученик
Регистрация
12 Окт 2021
Сообщения
2
Реакции
0
Баллы
0
Помогите написать программу на Паскаль

Помогите, пожалуйста! Cоставить алгоритм и программу нахождения суммы ряда с заданной точностью е. Использовать реккурентные соотношения при вычислении очередного члена ряда. Для оценки правильности результата предусмотреть вычисление по контрольной формуле 1/sqrt((1+x)^5) Вычисление суммы заканчивается, елси модуль очередного слагаемого оказывается меньше заданного значения точности (е), причём для этих рядов (при |x|<1) абсолютная величина суммы всех отброшенных членов ряда при этом оказываются меньше е.
 

Вложения

  • Безымянный.png.webp
    Безымянный.png.webp
    7.1 KB · Просмотры: 37
var x,eps,y,z,S: real;
i:integer;
begin
write ('x='); readln(x);
write ('eps='); readln(eps);
i=2;
z:=x;
S:=z;
repeat
z:=-exp(ln(x)*(2*i))*((1/i!)+(1/((2i)!))
S:S+z;
i:=i+1
until (abs(z)> eps);
writeln('S=',S);
y:=2-(exp(ln(e)*(exp(ln(-x)*2))))-cos(x);
writeln('Y=',y);
end.
моя формула
 
Да... плохи Ваши дела! Мало того, что Вы в Паскале слабоваты, но и математику знаете так... вот именно! Все эти бессмысленные экспоненты от логарифмов, а уж перл типа "ln(e)" и вовсе ни в какие ворота (к Вашему сведению, это ТОЖДЕСТВЕННАЯ ЕДИНИЦА по определению). Прочтите, что ли, вот это моё стародавнее эссе. А что до Паскаля, так он, такой-сякой, ни малейшего представления о факториалах не имеет, так что факториалы извольте программировать сами. Ручками. Равно как и постоянную Эйлера (число e), уж если Вы хотите, за каким-то лешим, её вводить в программу, нужно тоже задавать вручную. Впрочем, повторю, здесь она и нафиг не нужна.

Ну ладно, вот Вам программа, отлаженная и оттестированная. Уж и не знаю, сколь Вам это поможет.
Код:
var
 x,eps,z,a,b,c,S: real;
 i:integer;

function f(t:real):real;
begin
 f:=2.0-Exp(-Sqr(t))-Cos(t);
end;

begin
 write ('eps = '); readln(eps);
 Repeat
  write ('x = (enter "0" to quit) '); readln(x);
  if x<>0 then
   begin
    i:=1;
    a:=1/i;
    b:=1/(2*i);
    c:=a+b;
    z:=SQR(x)*c;
    S:=z;
    repeat
     Inc(i);
     z:=z/c;
     a:=a/i;
     b:=b/((2*i-1)*2*i);
     c:=a+b;
     z:=-z*SQR(x)*c;
     S:=S+z;
    until Abs(z)<eps;
    Writeln('Result: ',S:0:5,'    Pure value: ',f(x):0:5);
   end;
 Until x=0;
end.
P.S. А смысла вот этой сентенции:
Для оценки правильности результата предусмотреть вычисление по контрольной формуле 1/sqrt((1+x)^5)
извините, не улавливаю.
 
Назад
Сверху