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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2011, 00:43   #1
Виндовс 7
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 12
Сообщение Паскаль.Сумма ряда.

Не могу обсчитать сумму ряда от 1 до бесконечности.ряд:(2*n)!/n!.Вычиление прекратить когда числитель станет в М та больше раз больше знаменателя.(я так понял М нужно вводить).
Виндовс 7 вне форума Ответить с цитированием
Старый 09.12.2011, 22:25   #2
Виндовс 7
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 12
По умолчанию

Благодарю тех кто хотя бы посмотрел мою тему.Но помощь уже не нужна.Сам нашел решение.Вот оно.

uses Crt;
label 99;
var n,i,k,g:integer;
f1,f2:longint;
V,M,a:real;
begin
write('M=');
readln(M);
f1:=1;
f2:=1;
n:=0;
k:=1;
V:=0;
g:=1;
while(a<M)do
begin
for i:=1 to k do
begin
f1:=f1*(n+1)*(n+2);
f2:=f2*g;
a:=(f1/f2);
if(a>=M)then goto 99
else
V:=V+a;
n:=n+2;
k:=k+1;
g:=g+1;
end;
end;
99:writeln('V=',V);
end.
Виндовс 7 вне форума Ответить с цитированием
Старый 10.12.2011, 09:05   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Виндовс 7, ты молодец, что сам сделал - это даже лучше, чем тебе сделали бы.
Я тут немного подправил твой код.. Если есть желание, посмотри.
Код:
var n:integer;
  V,M,a:real;
begin
  write('M = ');
  readln(M);
  a:= 1;
  n:= 1;
  V:= 0;
  while a<M do begin
    a:= a*2*(2*n-1);
    V:= V+a;
    inc(n);
  end;
  writeln('V = ',V:10:0);
end.
Небольшие замечания..
1. Зачем было делать цикл while с условием, если все равно потом выходишь по goto?
2. Цикл for у тебя очень странный.. Нельзя изменять границы цикла for внутри цикла.
3. Нужно по возможности избегать использования оператора goto и меток. Рекомендую тебе зайти в Опции и снять галочку с "можно использовать goto". Так ты научишься правильнее и быстрее.
4. Считать отдельно факториалы в числителе и знаменателе (да еще и целые) - нерационально,так как они очень быстро растут. Посмотри, как сделал я.
5. Зачем отдельно делать счетчики для числителя и знаменателя? В формуле же это одно число.
6. Ну и последнее - по условию.. Сумма данного ряда _до_бесконечности_ не существует (иначе говоря, ряд расходится). Некорректно говорить так - может, потому и не отвечали тебе. И еще потому, что надо свои наработки выкладывать..

Это коротко. Если появились вопросы - говори. Успехов тебе.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 11.12.2011, 00:46   #4
Виндовс 7
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 12
По умолчанию

TinMan спасибо.Но есть некоторые но:
1)goto я использовал, чтоб программа мне ещё раз не выводила сумму;
2)если в твоей проге ввести M=2, то сумма(V)=2, а должна быть V=0.
Когда n=1: (2*n)!=2;
n!=1;
a=2;
a<M(условие строгое);
3) на счёт факториалов, если бы я сделал так f1:=f1*(n+1)*(n+2);
f2:=f2*(n);
то f2 считалось бы неправильно(n:=n+2);
Ну и заключительные слова:
Прошу прощения за корявое условие задачи и в будущем свои наработки буду выкладывать.
Виндовс 7 вне форума Ответить с цитированием
Старый 11.12.2011, 03:13   #5
kuy
Форумчанин
 
Аватар для kuy
 
Регистрация: 05.09.2011
Сообщений: 109
По умолчанию

(ошиюся, не в ту тему написал)

Последний раз редактировалось kuy; 11.12.2011 в 03:15.
kuy вне форума Ответить с цитированием
Старый 11.12.2011, 17:24   #6
Виндовс 7
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 12
По умолчанию

TinMan.И ещё если тебе не сложно посмотри мою тему Циклы.Исправьте ошибки.
Виндовс 7 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма ряда, Паскаль Heming Помощь студентам 0 13.11.2011 15:06
Сумма ряда,табулирование(паскаль) Crycon Помощь студентам 1 17.01.2011 21:11
Сумма ряда Sova123456 Помощь студентам 8 11.06.2010 17:10
Сумма бесконечного ряда с точностью Паскаль Кириллович Помощь студентам 9 30.05.2009 13:36
Паскаль. Сумма бесконечного ряда Tream Помощь студентам 4 13.10.2007 23:42