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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 01:05   #1
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию Сумма ряда (Pascal). Не могу понять смысл задачи :(

Всем доброго здоровья.
Помогите мне понять, что собственно от меня хотят Вот условие задачи:
Найти сумму ряда с точностью e=10^(-3), общий член которого:

В матанализе я полный профан, пытался освоить ряды, но не вышло
Я так понимаю, нужно прогонять это выражение в цикле до тех пор, пока не достгнется точность e. Но что собственно это означает? Пока n не станет равным e? Или пока само выражение не станет равным е?
DsDevis вне форума Ответить с цитированием
Старый 25.03.2009, 01:07   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Нужно сложить все слагаемые, которые превышают e=10^-3
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 25.03.2009, 01:20   #3
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Слагаемые - это значения An, полученные путем прогона цикла? В таком случае, логически рассуждая, сумма этих слагаемых будет равна положительной бесконечности. Или я опять чего-то не понял?
DsDevis вне форума Ответить с цитированием
Старый 25.03.2009, 01:23   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

как Вы могли заметить значение слагаемого стремится к 0 при устремлении n в бесконечность. Так вот Вам надо сложить все слагаемые, которые больше 0,001. Их будет не так уж и много
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 25.03.2009, 01:26   #5
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Все понял, большое спасибо.
DsDevis вне форума Ответить с цитированием
Старый 26.03.2009, 00:35   #6
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Вот, ясделал так:
Код:
program faktorial;
uses crt;
var x,y,a,e,s: real;
n: integer;
function chisl (var n:integer):real;
var s1,k1,n1 :real;
begin
  s1:=1; k1:=1; n1:=n;
  while k1<n1 do
  begin
     k1:=k1+1;
     s1:=s1*k1;
   end;
  chisl:=s1;
end;
    function znam
    (var n:integer):real;
    var s,k,n2: real;
    begin
        s:=1; k:=1;n2:=n; n2:=(exp(n2*ln(2)));
        while k<n2 do
        begin
        k:=k+1;
        s:=s*k;
        end;
    znam:=s;
    end;
begin
clrscr;
n:=1; e:=0.001;
x:=chisl(n);
y:=znam(n);
a:=x/y; s:=0+a;
while a>e do
begin
n:=n+1;
a:=x/y;
s:=s+a;
end;
writeln(s:0:5);
readln(x);
end.
Только что то в нем неправильно, программа не выходит из последнего цикла. Опять я где-то накосячил . Не подскажете, где именно? Если в помеченной строке сменить знак неравенства, то вроде как работает, но ведь это противоречит условию задачи?

Последний раз редактировалось DsDevis; 26.03.2009 в 00:43.
DsDevis вне форума Ответить с цитированием
Старый 26.03.2009, 00:39   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Опять я где-то накосячил . Не подскажете, где именно?
Код:
while a>e do
begin
n:=n+1;
a:=x/y;
s:=s+a;
end;
У вас a не меняется.
Видимо, вы забыли добавить в цикл
Код:
x:=chisl(n);
y:=znam(n);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.03.2009, 00:56   #8
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Спасибо, теперь работает. Только одно непонятно - то что я чуть повыше приравнял
Код:
x:=chisl(n);
y:=znam(n);
для цикла никакой роли не играет?
DsDevis вне форума Ответить с цитированием
Старый 26.03.2009, 01:02   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Только одно непонятно - то что я чуть повыше приравнял для цикла никакой роли не играет?
По большому счету, да.
Можно было написать так:
Код:
n:=1; e:=0.001;
s:=0;
repeat
x:=chisl(n);
y:=znam(n);
a:=x/y;
s:=s+a;
n:=n+1;
until a<=e;
А по-хорошему, лучше так:
Код:
Код:
n:=1; e:=0.001;
s:=0;
repeat
x:=chisl(n);
y:=znam(n);
a:=x/y;
if a>e then break;
s:=s+a;
n:=n+1;
until a<=e;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.03.2009, 01:16   #10
DsDevis
Пользователь
 
Регистрация: 21.03.2009
Сообщений: 35
По умолчанию

Спасибо, все понял.
DsDevis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу понять как решать задачи по паскалю! aiktz Помощь студентам 10 11.03.2009 16:43
Не могу понять как решить задачи. Нужна помощь Студент заочник Помощь студентам 9 30.12.2008 23:49
Задачи вызывают затруднение... матрица и сумма ряда. GorNikSar Паскаль, Turbo Pascal, PascalABC.NET 2 21.12.2008 12:51
Задачи вызывают затруднение... матрица и сумма ряда. GorNikSar Помощь студентам 2 19.12.2008 07:11
Сумма ряда на ЭВМ и вычисленная аналитически, программы на языке Pascal SunCHO Помощь студентам 2 02.05.2007 22:37