Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на Pascal
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

miss_graffiti


Долгожитель

KMA, зачем тебе 2 цикла?

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 1 апр. 2006 20:28 | IP
KMA



Долгожитель

Первый складывает почленно каждый следующий элемент, а второй находит такую вот штучку sin(cos(sinx))+cos(sin(cos(sin(x))))... Вот и все соответственно он и должен выполниться 2n раз... Вроде даже правильно решил... Другого метода я не вижу...  

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 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 так то логично, мне почему-то такая идея сразу в голову полезла, но потом, меня смутила голая сумма... Ну ладно, всякое бывает...

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 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;
где а- искомая величина...

-----
Gentoo, FreeBSD 7.2, PHP, JavaScript (jQuery), Python, Shell
Помогаю с задачами только на форуме.
Все мои действия четко согласуются с правилами раздела. Поэтому никаких претензий и обид.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 4 апр. 2006 8:57 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com