![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Ksander |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
решил задачу да неправильно, не знаю в чём причина, уже всё перепробовал,ответ есть, но только он неправильный
текст такой:1+((2 в степени n)/(2 в степени n+1)),и всё это в цикле,который начинается с 1/2... и т.д. Код uses crt; var n,i,j:byte; znam,chisl,sum:real; begin clrscr; write('n='); readln(n); znam:=1; for i:=1 to n do begin sum:=exp(i*ln(2))/exp((i+1)*ln(2)); znam:=znam+sum; end; while n>=1 do begin chisl:=1; sum:=0; for i:=1 to n-1 do begin sum:=exp(i*ln(2))/exp((i+1)*ln(2)); chisl:=chisl+sum; end; znam:=chisl/znam; n:=n-1; end; writeln('otvet=',znam:2:6); readkey end. Не забываем заключать код программы в соответсвтующие теги! Сообщение отредактировано: APAL - 17.08.2004 18:38 |
Бродяжник |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Постановка задачи неясна. Запишите, пожалуйста, общую формулу полностью. По условию похоже, что надо посчитать сумму числового ряда
S=sum(1+(2^n)/(2^(n+1))) - это, так сказать, псевдокод <_< (Индекс n меняется от? и до?) А в приведенном решении описаны какие-то более запутанные расчеты. |
BlackShadow |
![]()
Сообщение
#3
|
Гость ![]() |
Ну попадись ты мне! Руки поотшибаю! Кто же двойку так в степень возводит???
2^n = 1 Shl n! Ладно, едем дальше. У тебя в формуле стоит 1+... В программе я этого не наблёл. А вообще там трудно что понять ![]() Если тебе надо посчитать сумму ряда, то делается это так: Код Var i,n:Integer; s:Double; Begin ReadLn(n); s:=0; For i:=1 To n Do s:=s + (1 + (1 Shl n)*1.0/(1 Shl (n + 1))); WriteLn(s) End. Ты условия уточни... З. Ы. : код вроде как оформлять прянято... |
Ksander |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
текст примерно такой: 1/2/4/2^n/2^n+1, только ещё перед каждым знаком / стоит 1+
|
BlackShadow |
![]()
Сообщение
#5
|
Гость ![]() |
догнал. После обеда напишу.
|
BlackShadow |
![]()
Сообщение
#6
|
Гость ![]() |
Всё-таки не до конца понял. Точнее я понял так, как на этой картинке. Есди чего не так, то изобрази это в Paint'е и пришли.
Прикрепленные изображения ![]() |
Ksander |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
что-то я не понял как сюда паинт затолкать
|
BlackShadow |
![]()
Сообщение
#8
|
Гость ![]() |
Я тоже не понял, пока не объяснили
![]() |
Ksander |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
может получится
Эскизы прикрепленных изображений ![]() |
Ksander |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
получилось, теперь попробуйте решить, я уже не знаю что и делать, даже мои знакомые не знают как решать
|
Бродяжник |
![]()
Сообщение
#11
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Решить как будто бы можно. Алгоритм нужно строить "снизу вверх", то есть от самого нижнего знаменателя. И будет всего один цикл типа
FOR I:=N DOWNTO 0 DO (Примерно так.) Сам расчет строится по принципу 1. Вначале R := 2^(n+1) 2. Далее для всех i от n до 0 делаем следующее: R := 1 + ((2^i)/R) В итоге должна получиться та же формула, что и у Вас, но еще +1. Эту единицу можно в конце вычесть, если нужно. Программу пишите сами. Когда напишете, можем поправить. Удачи! |
BlackShadow |
![]()
Сообщение
#12
|
Гость ![]() |
Где-то так:
Код Var n:Integer; d1,d2,d3,Result:Double; Begin ReadLn(n); d1:=1 Shl n; d2:=1 Shl (n+1); Rseult:=0; While d1>= 1 Do Begin d3:=d1/2; d2:=1+d1/d2; d1:=d3 End; d2:=d2-1; WriteLn(d2) End. Вроде так, если я ничего не напутал... |
APAL |
![]()
Сообщение
#13
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Код Const n=10; Function drob(i : Byte) : Real; Begin If i=n then Drob:=1+(1 shl i)/(1 shl (i+1)) Else Drob:=1+2/Drob(i+1); End; Begin Writeln('n = ',n,' result = ',(1/drob(1)):8:4); End. Проверьте, а то мне было лениво на калькуляторе значения прорабатывать... ![]() -------------------- |
Romtek |
![]()
Сообщение
#14
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Решается рекурсивной функцией.
Не забывать поставить условие для выхода из функции!!! Иначе зациклится! Сообщение отредактировано: romtek - 21.08.2004 14:01 -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
APAL |
![]()
Сообщение
#15
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Условие там и так уже стоит:
Код If i=n then -------------------- |
Romtek |
![]()
Сообщение
#16
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
APAL,
Это я не тебе адресовал, а Ksanderу. ;) -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
Ksander |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
romtek, спасибо тебе за ответ, если ты умеешь решать рекурсию может решишь мне задачу с помощью реккурентных формул, но только не надо путать с рекурсией
Эскизы прикрепленных изображений ![]() |
Ksander |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
хочу сказать что ни одно из предложенных вами решении задачи не оказалось правильным, неужели вам самим не интересно решить эту задачу
|
APAL |
![]()
Сообщение
#19
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Цитата(Ksander @ 22.08.04 22:55) хочу сказать что ни одно из предложенных вами решении задачи не оказалось правильным, неужели вам самим не интересно решить эту задачу А в чем неправильность-то? ;) -------------------- |
Ksander |
![]()
Сообщение
#20
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
вроде всё правильно,но когда время доходит до ответа,там даже близко нет правильного ответа,правильный ответ для 1 это 0.666, а выдаёт ответ больше 1
|
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 14:18 |