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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2012, 17:03   #1
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию Не могу придумать решение. (Вычислить для заданного n указанное выражение.)

Что-то не лезут идеи в голову как реализовать.Может кто подкинет идейку?
Собственно вот что надо

Задание
Вычислить для заданного n указанное выражение.
Условие
bakanaev вне форума Ответить с цитированием
Старый 31.10.2012, 17:05   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Я так понимаю, что у вас проблемы с вычислением знаменателя?

Код:
var sinValue: real;
....
for i:=1 to n do
begin
    ...
    sinValue:=sinValue+sin(i);
    ...
end;
...
где sinValue – знаменатель i-той дроби

Идею улавливаете?
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 31.10.2012, 17:13   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не обязательно цикл вычисления знаменателя повторять в каждой итерации. Запомнить знаменатель итерации. В следующей k-итерации к нему прибавить sin(k) и т.д. Только разглядел - Luuzuk тоже самое предложил
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.10.2012, 17:15   #4
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
Я так понимаю, что у вас проблемы с вычислением знаменателя?

Код:
var sinValue: real;
....
for i:=1 to n do
begin
    ...
    sinValue:=sinValue+sin(i);
    ...
end;
...
где sinValue – знаменатель i-той дроби

Идею улавливаете?
Неа, не уловил
Нам ведь надо так, допустим у на n=3 значит надо

1/sin(1)+ 1/(sin(1)+sin(2))+1/(sin(1)+sin(2)+sin(3))

а
Код:
 sinValue:=sinValue+sin(i);
по моему это не то, если я не прав то поправьте меня
bakanaev вне форума Ответить с цитированием
Старый 31.10.2012, 17:21   #5
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Не обязательно цикл вычисления знаменателя повторять в каждой итерации. Запомнить знаменатель итерации. В следующей k-итерации к нему прибавить sin(k) и т.д. Только разглядел - Luuzuk тоже самое предложил
Я так понимаю что sin(1)+sin(2) = sin(3) ?
bakanaev вне форума Ответить с цитированием
Старый 31.10.2012, 17:22   #6
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Для первой дроби знаменатель будет sin(1).
В цикле при i=1 sinValue вычислится как 0+sin(1), т.е. будет равно sin(1)

У второй дроби знаменатель будет sin(1)+sin(2).
В цикле при i=2 sinValue вычислится как sinValue+sin(2).
ДО этого вычисления sinValue было равно sin(1). Значит теперь оно станет равно sin(1)+sin(2)

У третьей дроби знаменатель будет sin(1)+sin(2).
В цикле при i=3 sinValue вычислится как sinValue+sin(3).
ДО этого вычисления sinValue было равно sin(1)+sin(2). Значит теперь оно станет равно sin(1)+sin(2)+sin(3)

И так будет N раз

Остаётся только завести переменную под сумму (например, S) и в цикле делать так:
Код:
...
sinValue:=sinValue+sin(i);
s:=s+1/sinValue;
...
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 31.10.2012, 17:24   #7
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
Я так понимаю что sin(1)+sin(2) = sin(3) ?
Нет, вы не так понимаете. sin(1)+sin(2) <> sin(3) (пруф в калькуляторе)
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить выражение: Nubaster Паскаль, Turbo Pascal, PascalABC.NET 3 31.05.2011 13:52
Не могу придумать формулу для поставленной задачи. masaylov Microsoft Office Excel 6 07.04.2011 11:11
Для заданного x вычислить сумму ряда с точностью E (Delphi) Almir Помощь студентам 1 27.03.2011 12:06
вычислить выражение Jereme Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 08.01.2010 16:21
Не могу вычислить формулу для расчёта координат камеры anyx Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 16.09.2009 16:44