Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на табулирование значений функции.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Andrewshkovskii
ВОт задача
Составить структурированную программу табулировании значения функции S(x)=3x+8x^2+..n(n+2)x^n
y(x)=x(3-x)/(1-x)^3
на отрезке 0,1<=x<=0.8
сумму S(x) вычислить из к членов ряда,к=40.
шаг х dX=(abs(Xkонечный-Xначальный))/9
Алгоритм для каждого значения х,от Хначальный до Хконечный ,с амое dX,посчитать значения S(x) и y(x) и выдать на экран таблицу с помощью ASCII кодов.


Вот первая программа

Program z3v28;
 uses crt;
 const
  xn=0.1;
  xk=0.8;
  k=40;
 var
 a, x,s,y,dx:real;
  n:integer;
begin
 clrscr;
 writeln('  ЙННННННННННЛННННННННННЛНННННННННН»');
 writeln('  є    x     є    y     є     s    є');
 dx:=abs(Xk-Xn)/9;
 x:=xn;
 while (x<Xk) do begin
                  S:=0;
                  a:=1;
                  n:=1;
                       while n<=40 do begin
                                        a:=a*x;
                                        S:=S+n*(n+2)*a;
                                        n:=n+1;
                                       end;
                  y:=x*(3-x)/((1-x)*(1-x)*(1-x));
                  writeln ('  МННННННННННОННННННННННОНННННННННН№');
                  writeln ('  є',x:6:3,'    є',y:6:3,'    є',s:6:3,'    є');
                  x:=x+dx;
                 end;
 writeln ('  ИННННННННННРННННННННННРННННННННННј');
 readkey;
end.



Должно получиться равные значения в полях y и s.
В этой программе не получаеться только в самой посл. строке.
И ешё я не писал здесь первую часть функции (* s(x) 3*x+8*sqr(x); *).
не знаю больше как решать..есле подставлять в прогу первую часть s(x) то он в таблице возрастает,и у его никак не догонит=/
volvo
Первая содержит как минимум одну ошибку:
repeat
  Writeln ('Vvedite Xk [0.2..0.8]');
  readln(Xk);
until (Xk>=0.2) or (Xk<=0.8); { <--- Здесь !!! }


К тому же, с чего ты взял, что в цикле For будет именно 10 итерации? Вручную считал? "Это не наш метод" (С), это должна считать программа, если уж так хочется использовать именно For...

Ну, а потом - эти 2 программы выдают совершенно разные результаты, как ты можешь их сравнивать? Посчитай, что программа ДОЛЖНА выдавать, и та, которая это выдаст будет правильной...
Andrewshkovskii
насчет то что должна ты прав=)
А вот что там за ошибка в цикле которую ты нашел??Программа компилируетсья нормально. mega_chok.gif
klem4
 (Xk>=0.2) or (Xk<=0.8);


При такой постановке условия годится любое Х. А тебе -то надо чтоб было в интервале [0,2 ... 0,8].
Andrewshkovskii
исправил задание (*см первый пост*).
намучался уже..не могу=/
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.