|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.12.2011, 00:43 | #1 |
Пользователь
Регистрация: 04.12.2011
Сообщений: 12
|
Паскаль.Сумма ряда.
Не могу обсчитать сумму ряда от 1 до бесконечности.ряд:(2*n)!/n!.Вычиление прекратить когда числитель станет в М та больше раз больше знаменателя.(я так понял М нужно вводить).
|
09.12.2011, 22:25 | #2 |
Пользователь
Регистрация: 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. |
10.12.2011, 09:05 | #3 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Виндовс 7, ты молодец, что сам сделал - это даже лучше, чем тебе сделали бы.
Я тут немного подправил твой код.. Если есть желание, посмотри. Код:
1. Зачем было делать цикл while с условием, если все равно потом выходишь по goto? 2. Цикл for у тебя очень странный.. Нельзя изменять границы цикла for внутри цикла. 3. Нужно по возможности избегать использования оператора goto и меток. Рекомендую тебе зайти в Опции и снять галочку с "можно использовать goto". Так ты научишься правильнее и быстрее. 4. Считать отдельно факториалы в числителе и знаменателе (да еще и целые) - нерационально,так как они очень быстро растут. Посмотри, как сделал я. 5. Зачем отдельно делать счетчики для числителя и знаменателя? В формуле же это одно число. 6. Ну и последнее - по условию.. Сумма данного ряда _до_бесконечности_ не существует (иначе говоря, ряд расходится). Некорректно говорить так - может, потому и не отвечали тебе. И еще потому, что надо свои наработки выкладывать.. Это коротко. Если появились вопросы - говори. Успехов тебе.
Предпочитаю на "ты".
|
11.12.2011, 00:46 | #4 |
Пользователь
Регистрация: 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); Ну и заключительные слова: Прошу прощения за корявое условие задачи и в будущем свои наработки буду выкладывать. |
11.12.2011, 03:13 | #5 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 109
|
(ошиюся, не в ту тему написал)
Последний раз редактировалось kuy; 11.12.2011 в 03:15. |
11.12.2011, 17:24 | #6 |
Пользователь
Регистрация: 04.12.2011
Сообщений: 12
|
TinMan.И ещё если тебе не сложно посмотри мою тему Циклы.Исправьте ошибки.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сумма ряда, Паскаль | 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 |