X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите решить задачу на Turbo Pascal
wmrussian1
wmrussian1
Topic Starter сообщение 8.11.2012, 13:01; Ответить: wmrussian1
Сообщение #1


Участник
***

Группа: User
Сообщений: 189
Регистрация: 30.6.2008
Поблагодарили: 20 раз
Репутация:   8  


Для данного функционального ряда выполнить следущие действия на Паскале:
1)Разбить отрезок на 5 подотрезков одинаковой длины (т.е получатся угловые точки)
2)В каждой угловой точке вычислить сумму функционального ряда с известной заданной точностью е=10^(-4) (10 в минус четвертой степени)
заданный отрезок [0;4]
заданный ряд на фото.
Заранее большое спасибо! rolleyes.gif

Прикрепленное изображение


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
simply_sash
simply_sash
сообщение 8.11.2012, 15:16; Ответить: simply_sash
Сообщение #2


Участник
***

Группа: User
Сообщений: 228
Регистрация: 26.8.2011
Поблагодарили: 94 раза
Репутация:   21  


wmrussian1, как-то так:
program sum1;
uses crt;
var
  a,b,h,n,e,x,f,r,s,x4,si:real;
  i:integer;
begin
  a:=0; b:=2; n:=5;
  h:=(b-a)/n;
  x:=a;
  while(x<b+h/2) do
    begin
      x4:=2*x*x*x*x;
      r:=1;
      f:=1;
      r:=1;
      s:=1;
      i:=1;
      repeat
          f:=f*i;
          r:=r*x4;
          si:=r/f;
          s:=s+si;
          i:=i+1;
      until abs(si)<0.0001;
      writeln(x:5:2,'     ',s:10:3);
      x:=x+h;
  end;
end.

результат:
0.00          1.000
0.40          1.053
0.80          2.269
1.20         63.257
1.60     492475.504
2.00     78962960182680.800
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
wmrussian1
wmrussian1
Topic Starter сообщение 9.11.2012, 14:29; Ответить: wmrussian1
Сообщение #3


Участник
***

Группа: User
Сообщений: 189
Регистрация: 30.6.2008
Поблагодарили: 20 раз
Репутация:   8  


simply_sash,

Спасибо огромное wink.gif
Очень благодарен за помощь

simply_sash,

Сегодня проверил, он выдаёт ошибку, подскажите почему?)

Прикрепленное изображение


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kruzzo
kruzzo
сообщение 9.11.2012, 14:39; Ответить: kruzzo
Сообщение #4


Новичок
*


Группа: User
Сообщений: 25
Регистрация: 2.10.2012
Поблагодарили: 7 раз
Репутация:   1  


Потому что где то есть ошибка) Ваш КЕП

Сообщение отредактировал kruzzo - 9.11.2012, 14:40
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
santis
santis
сообщение 9.11.2012, 14:49; Ответить: santis
Сообщение #5


Топовый постер
*******


Группа: Active User
Сообщений: 3487
Регистрация: 29.11.2010
Из: Краснодар
Поблагодарили: 1510 раз
Репутация:   164  


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


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
wmrussian1
wmrussian1
Topic Starter сообщение 9.11.2012, 17:09; Ответить: wmrussian1
Сообщение #6


Участник
***

Группа: User
Сообщений: 189
Регистрация: 30.6.2008
Поблагодарили: 20 раз
Репутация:   8  


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


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
wmrussian1
wmrussian1
Topic Starter сообщение 15.11.2012, 23:04; Ответить: wmrussian1
Сообщение #7


Участник
***

Группа: User
Сообщений: 189
Регистрация: 30.6.2008
Поблагодарили: 20 раз
Репутация:   8  


Как оказалось - код верен. Но проблема в том, что числитель и знаменатель считаются отдельно, и в итоге получаются огромные числа, выходящие за предел. Нужно посчитать сразу число, а не отдельно числитель и знаменатель То есть определить одинаковый множитель, на который нужно домножать каждый член...Помогите, пожалуйста это сделать и изменить код.
program sum1;
uses crt;
var
a,b,h,n,e,x,f,r,s,x4,si:real;
i:integer;
begin
a:=0; b:=2; n:=5;
h:=(b-a)/n;
x:=a;
while(x<b+h/2) do
begin
x4:=2*x*x*x*x;
r:=1;
f:=1;
r:=1;
s:=1;
i:=1;
repeat
f:=f*i;
r:=r*x4;
si:=r/f;
s:=s+si;
i:=i+1;
until abs(si)<0.0001;
writeln(x:5:2,' ',s:10:3);
x:=x+h;
end;
end.


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


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите выбрать программу
Помогите выбрать программу
11 impak 1347 11.12.2017, 13:11
автор: Mikki
Открытая тема (нет новых ответов) Помогите найти плагин на WP
Отзывы с профилей соц сетей
1 SEOMR 444 30.11.2017, 7:18
автор: Nell
Открытая тема (нет новых ответов) Помогите найти проблему
Долгий ответ сервера
6 maxim1249 695 29.11.2017, 17:27
автор: genjnat
Открытая тема (нет новых ответов) Помогите оценить новотник. Плиз
1 Alex-777 527 29.11.2017, 7:18
автор: grumdas
Открытая тема (нет новых ответов) Помогите с неймингом для сборника советов
советы по разработки и жизни
11 coremission 1886 15.11.2017, 22:23
автор: rogefer


 



RSS Текстовая версия Сейчас: 16.12.2017, 15:46
Дизайн