IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Рациональное решение задачи., Пользуясь разложением функции f(x) в ряд S(x), вычислить частичную сум
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Здравствуйте, файл с самим заданием прикреплен к сообщению: Прикрепленный файл  Zadano.doc ( 17.5 килобайт ) Кол-во скачиваний: 647
. (извеняюсь за неудобство, но в ней несколько формул, которые сложновато просто напечатать) Вообщем-то решение у меня есть, но оно является не рациональным(страшный преговор, при использовании моего кода весьма возможно переполнение стэка, да и работает она медленно), а как можно переделать у меня не приходит в голову, может поможите или хотя бы что-нить посоветуете...
Код моей проги:
Код
Program Lab3;

Uses CRT;

Function Choose(Text : String; a, b : Real) : Real;
    Var
    S : String;
    Code : Integer;
    V : Real;
        X, Y : Byte;
    Begin
       Write(Text);
       X := WhereX;
       Y := WhereY;
       repeat
           GoToXY(X,Y);
           ClrEoL;
           Readln(S);
                   Val(S, V, Code);
       until (Code = 0) and (V > a) and (V < b);
    Choose := V;
    end;

Function F(x : Real) : Real;
    begin
       f := ln(1 + x);
    end;

Function Deg(n : Word; a: Real) : Real;
    begin
       if n <> 0 then
            Deg := a * Deg(n - 1, a)
       else
            Deg := 1;
    end;

Function Width(eps : Real) : Integer;
    var
       i, w : Integer;
    begin
       i := 1;
       w := 0;
       repeat
          i := i * 10;
          Inc(w);
       until ( Trunc(1 / eps) div i = 0 );
       Width := w;
    end;

Function Bsum(x, e : Real; k : Integer) : Real;
    var
       i, j : Integer;
       ak : Real;
    begin
       i := -1;
       for j := 2 to k do
           i := (-1) * i;
       ak := i * Deg(k, x) / ( k * (k - 1) );
       if (ak < e) then
        Bsum := ak + Bsum(x, e, k + 1)
       else
          Bsum := ak;
    end;

Var
  Sn, rn : Real;
  e, x : Real;
Begin
  Repeat
    ClrScr;
    TextColor(yellow);
    GoToXY(35,1);
    Writeln('"""Program"""');
    TextColor(white);
    x := Choose(' - vvedite x(-1<x<2) : ', -1, 2);
    e := Choose(' - vvedite eps(0<eps<0.5) : ', 0, 0.5);
    Sn := (Bsum(x, 0.001, 2) + x) / (1 + x);
    Writeln(' - Sn = ', Sn : 4: Width(e) );
    rn := abs( f(x) - Sn );
    Writeln(' - rn(x) = ', rn : 4: Width(e) );
    TextColor(yellow);
    Writeln('Prodolzim?(dlya vihoda nazmite klavishu Q)');
  Until ReadKey in ['Q','q'];
  Write('Goodbay...');
  Readln;
  Clrscr;
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.09.2025 13:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name