IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> . Вычислить сумму S, не используя операцию возведения в степень.
NeiroN
сообщение 17.04.2009 16:48
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Чтобы не нарушать правила...создал вторую тему.

Задание 2
Дано значение x и натуральное число n. Вычислить сумму S, не используя операцию возведения в степень.

n=15

S=sin x+sin(в квадрате) x+sin(в кубе) x+...sin(в степени n) x



Сообщение отредактировано: NeiroN - 17.04.2009 17:53
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 18.04.2009 2:54
Сообщение #2


Гость






На самом деле эта задача проще, чем ветвления... Тут - цикл, запутаться практически негде. Все, что тебе надо знать при вычислении этого выражения - это что при умножении Xn-1 на X получается Xn. А теперь - смотрим, как это реализуется:
var
sin_X, power: real;
s: real;
i: integer;

begin
s := 0; { <-- Здесь будем хранить сумму }
sin_X := sin(pi/4); { <-- это - значение sin(X), я взял первое попавшееся, sin(pi/4) }
power := 1; { <-- Здесь будем хранить текущее значение sin_X^i }

for i := 1 to 15 do begin { а теперь - проходим по всем 15-ти степеням }

{
и, как я говорил выше, предыдущую степень умножаем на значение sin_X.
В результате в power на каждой итерации хранится число sin_X в степени i
}
power := power * sin_X;
s := s + power; { <-- Ну, и суммируем i-ю степень }
end;
writeln(s); { <-- Все, можно выводить результат }
end.
А теперь - вопрос на засыпку, чтобы убедиться, что ты понял о чем здесь идет речь: почему изначально S = 0, а power = 1? И второе: А почему не сделать вот так:
  for i := 1 to 15 do begin
sin_X := sin_X * sin_X;
s := s + sin_X;
end;
, вместо того, что я предложил выше?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 18:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"