Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2010, 19:55   #1
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
Злость Табулирование

В общем такая задача дана

Сумма: 1 + x/1! + x*x/2! + x*x*x/3.....
Диапазон измерения x [1;2]
n=15
Функция Y e в степени х (e^x)

Я сделал такую программу на паскале

Код:
Program Rabota;
const n=2;
        h=0.1;
var i:byte;
     x,y,s,slag:real;
Begin
 writeln;
 writeln('...........x.......x^2.............x^n ');
 writeln('s=1 + ----- + ----- + .... + -----');
 writeln('...........1!........2!................n!  ');
 writeln(На отрезке [1;2] c шагом 0.1');
 writeln;
 writeln('!     x    !     y     !     z   ! ');
 x:=1;
 while x<0.1+n do
 begin
  y:=x*x;
  s:=1;
  slag:=1;
  for i:=1 to n do
  begin
   slag:=x+y;
   s:=s+slag;
  end;
  writeln('!',x:7:2,'!',y:11:3,'!',s:11:3,'!');
  x:=x+h;
  end;
  readln;
 end.
Программа работет неправильно,тут и дураку понятно что 1+1 никак не будет =5. Пршшу помогите,доведите задачу до ума,ибо колупался я над ней 3 часа а толку практически никакого. Заранее выражаю благодарность помогающим

Последний раз редактировалось Stilet; 01.10.2010 в 20:07.
BaronVik вне форума Ответить с цитированием
Старый 01.10.2010, 20:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for i:=1 to n do
begin
slag:=x+y;
s:=s+slag;
end;
Это фтопку.
Что ты этим хотел сделать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2010, 20:22   #3
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
По умолчанию

for i:=1 to n do
slag:=x+y;
(это видно лишнее,неудалил после переделки программы,я её несколько раз с начала делал)

s:=x+y;
(Наверное тут лучше так сделать-найти сумму x,y)
BaronVik вне форума Ответить с цитированием
Старый 01.10.2010, 20:36   #4
BaronVik
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 36
По умолчанию

Всё,помучался ещё полтора часика и довёл до ума

Program lab4;
const n=2;
h=0.1;
var i:integer;
x,y,s1,s2:real;
Begin
writeln;
writeln(' x x^2 x^n ');
writeln('s=1 + ----- + ----- + .... + -----');
writeln(' 1! 2! n! ');
writeln;
writeln('! x ! y ! sum ! ');
x:=1;
while x<0.1+n do
begin
y:=exp(x*ln(2.7));
begin
i :=i+1;
s1:=x*x/i*x;
s2:=s2+s1;
end;
writeln('!',x:7:2,' !',y:9:3,' !',s2:9:3,' !');
x:=x+h;
end;
readln;
end.

практически никакого совпадения с преведущими попытками.
Вроде эта программа работает без сбоев,и х пошагово правилно выводит,и е в степени х правильно выводит,но вот сумму он вроде как бы с ошибкой считает,если ошибку увидите напишите где а то я невижу

Последний раз редактировалось BaronVik; 01.10.2010 в 21:44.
BaronVik вне форума Ответить с цитированием
Старый 02.10.2010, 12:45   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я бы твою задачу решал так:
Код:
var i:integer;
 x,y:double;fac:integer;
Begin
 y:=1;x:=1.5;fac:=1;
 for i:=2 to 5 do begin
  writeln(x:10:2,y:10:2,fac:10);
  x:=x*x;
  fac:=fac*i;
  y:=y+x/fac;
 end;
 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
табулирование gold101 Помощь студентам 5 27.05.2010 20:19
Табулирование в VBA Nataly1992 Помощь студентам 3 31.12.2009 06:10
Табулирование функции Dead Romantic Помощь студентам 2 25.12.2009 21:40
Табулирование функции IIaJIbI4 Помощь студентам 0 24.12.2009 18:24
Табулирование ф-ии Veroni4ka Помощь студентам 1 12.05.2009 08:25