miss_graffiti
Долгожитель
|
KMA, зачем тебе 2 цикла?
|
Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 1 апр. 2006 20:28 | IP
|
|
KMA
Долгожитель
|
Первый складывает почленно каждый следующий элемент, а второй находит такую вот штучку sin(cos(sinx))+cos(sin(cos(sin(x))))... Вот и все соответственно он и должен выполниться 2n раз... Вроде даже правильно решил... Другого метода я не вижу...
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 2 апр. 2006 12:31 | IP
|
|
miss_graffiti
Долгожитель
|
а я вижу. одного цикла на сложение достаточно. для "такой штучки" цикл не нужен. выносишь начальное присвоение ( buf:=sin(x);) за цикл. а дальше в зависимости от четности берешь sin или cos. тогда: первая итерация. S=0, buf=sin(x) вторая S=sin(x), buf=cos(sin(x)) третья S=sin(x)+cos(sin(x)), buf=sin(cos(sin(x))) и так далее... то есть у тебя хранится предыдущее значение buf, которое от следующего отличается на одну операцию.
|
Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 2 апр. 2006 12:46 | IP
|
|
Draconit
Новичок
|
Вот я составил программу: var x,s,buf:real; i,j,n:integer; Begin Writeln('Vvedite x'); Readln(x); Writeln('Vvedite n'); Readln(n); n:=n*2; s:=0; for i:=1 to n do begin buf:=x; for j:=1 to i do if j mod 2 = 0 then buf:=cos(buf) else buf:=sin(buf); s:=s+buf; end; Writeln('Otvet: ',s:10:9); Readln; End. Правильно?
|
Всего сообщений: 27 | Присоединился: март 2006 | Отправлено: 2 апр. 2006 16:18 | IP
|
|
Draconit
Новичок
|
У меня ещё народился вопрос. Надо решить вот это: (2n-1)!!=1*3*5*...*(2n-1) Для начала вот какой вопрос: что обозначает восклицательный знак (для чего он нужен). И как его обозначить в программе?
|
Всего сообщений: 27 | Присоединился: март 2006 | Отправлено: 2 апр. 2006 16:23 | IP
|
|
miss_graffiti
Долгожитель
|
Draconit, можно и так, но это не оптимально. как короче - я писала на прошлой странице. ! - это факториал. вычисляется по той формуле, которую ты дал... в программе его обозначать не надо. надо написать цикл, который посчитает.
|
Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 2 апр. 2006 17:02 | IP
|
|
Draconit
Новичок
|
miss graffiti, главное что работает;) Ясно, будем разбираться. Спасибо за помощь!
|
Всего сообщений: 27 | Присоединился: март 2006 | Отправлено: 2 апр. 2006 17:26 | IP
|
|
KMA
Долгожитель
|
miss graffiti так то логично, мне почему-то такая идея сразу в голову полезла, но потом, меня смутила голая сумма... Ну ладно, всякое бывает...
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 2 апр. 2006 22:23 | IP
|
|
Draconit
Новичок
|
Вот посмотрите пожалуйста, правильно ли я сделал задачу с этими факториалами: Var i,n:integer; s,a:real; Begin Writeln('Vvedite n'); Readln(n); a:=1; s:=0; for i:=0 to n do begin s:=s+a; a:=a*(2*n-1); end; Writeln('Otvet ',s:10:9); Readln; End.
|
Всего сообщений: 27 | Присоединился: март 2006 | Отправлено: 3 апр. 2006 6:42 | IP
|
|
KMA
Долгожитель
|
Нет, не правильно... Тут надо знать что такое факториал... например для 5!=1*2*3*4*5. У тебя факториал нечетных чисел, значит надо делать так: a:=1; for i:=1 to n do if i mod 2 <> 0 then a:=a*i; где а- искомая величина...
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 4 апр. 2006 8:57 | IP
|
|