Консультация № 190373
04.01.2017, 20:07
0.00 руб.
1 10 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Составить алгоритм и программу на языке С обработки членов числовой последовательности в соответствии со следующим заданием(см. Приложение)
Заранее спасибо.


Прикрепленные файлы:
c3e5922da8a72602f02b2a00f3dece41f13ea1f1.png

Обсуждение

давно
Студент
400828
51
04.01.2017, 21:45
общий
Не вполне понятно какие значения принимает k. Для всех нечётных k значение будет положительным.
Или я что-то не заметил
Об авторе:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
давно
Посетитель
400847
3
04.01.2017, 23:49
общий
Неправильно сделал скриншот, извините
Прикрепленные файлы:
8049bf8a005a8b925a33f1656124dd44.jpg
давно
Посетитель
7438
7205
05.01.2017, 14:13
общий
Адресаты:
Для всех нечётных k значение будет положительным
Не факт Вы забываете, что значение тангенса вполне может быть отрицательным.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Студент
400828
51
05.01.2017, 14:57
общий
Цитата: Лысков Игорь Витальевич
Не факт smile Вы забываете, что значение тангенса вполне может быть отрицательным.
И если возвести его в чётную степень...
Об авторе:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
давно
Посетитель
7438
7205
05.01.2017, 15:29
общий
Адресаты:
И если возвести его в чётную степень...
Ну да Тем проще посчитать... Сделаете программку?
Кстати, там в одном месте k, в другом - i. Просто гениальная методичка
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
05.01.2017, 19:29
общий
Адресаты:
Хм, а если возвести в нечетную степень? Вот тут знак тангенса уже скажется...
Так что, знак надо будет проверять всегда...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Студент
400828
51
05.01.2017, 20:00
общий
Кстати, там в одном месте k, в другом - i.

i участвует в вычислении p не вполне понятным мне способом изменяясь m раз.
Сделаете программку?

Обнаружил это начав писать решение.
Об авторе:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
давно
Студент
400828
51
06.01.2017, 00:26
общий
Адресаты:
Подскажите, как по условию задачи вычислять p, зависящую от изменяемой i
Из Вашей таблички это не очевидно
Об авторе:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
давно
Посетитель
400847
3
06.01.2017, 14:52
общий
Цитата: mklokov
Подскажите, как по условию задачи вычислять p, зависящую от изменяемой i
Из Вашей таблички это не очевидно


К сожалению(к моему), это все данные которые предоставлялись.
давно
Студент
400828
51
06.01.2017, 16:08
общий
это ответ
Здравствуйте, Aeon!

Из-за некоторой неопределённости в формулировке задания, возможный вариант решения может быть таким:
n раз (n=6) вычисляется k! (переменная fact), знак множителя (-1)^(k-1) (переменная sign), x^k (переменная xk).
Для каждого k, m раз вычисляется значение p и очередного члена ряда (переменная memb). Если значение очередного члена ряда
положительно, то оно попадает в произведение (переменная mult).
Код:

#include <stdio.h>
#include <math.h>

#define MAX(a, b) ((a)>(b))?(a):(b)
#define MIN(a, b) ((a)<(b))?(a):(b)

void main(void){
float a=0.9, b=1.7, c=-2.3, p0=0.2, h=0.4,
memb, x, xk=1, p, mult=1;
int k, i, fact, n=6, m=5, sign=-1;

x=MAX(a, MIN(b, c));
for(k=1; k<=n; k++){
fact=k<2?1:fact*k;
sign=-sign;
xk*=x;
for(i=1; i<=m;i++){
p=p0+(i-1)*h;
memb=sign*(xk*pow(tan(p),k-1))/fact;
if(memb>0) mult*=memb;
}
}
printf("%e",mult);
return;
}
5
Большое спасибо за оказанную помощь и решению проблемы)
Об авторе:
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Форма ответа