Нужна помощь

Тема в разделе "IT тусовка", создана пользователем LexaZlodei, 1 сен 2011.

  1. LexaZlodei

    LexaZlodei Модератор форума

    Сообщения:
    1.480
    Симпатии:
    577
    В общем ситуация такая: нужно написать программу на паскале для расчета arctg угла. Есть формула [​IMG]. Не могу придумать, как можно привязать множители 2/3, 2*4/3*5, 2*4*6/3*5*7... к циклу. Буду благодарен, если кто нибудь подскажет
     
  2. iNeedfor

    iNeedfor Супер-модератор

    Сообщения:
    2.235
    Симпатии:
    1.214
    Если охота циклом, то наверное где-то так:
    a=0;
    b=1;
    w=1;
    y=1;
    z=1;
    cin<<x; //угол
    cin<<Q; //количество раз приближения расчета
    for (i=1; i<=Q; i++)
    {
    z=z*(a+i*2)/(b+i*2);
    w=w*(x*x)/(1+x*x);
    y+=z*w;
    }
    arctg=(x/(1+x*x))*y;
    cout>>arctg; //вывод на экран значения тангенса
    Это на С, паскаль не очень помню. Сейчас соображу, переведу на него.

    Я создал много лишних переменных, но это лишь для понимания расчета. Можешь потом сам оптимизировать все это в пару строк кода :)

    Добавлено через 17 минут
    int a(0);
    int b(1);
    int w(1);
    int y(1);
    int z(1);
    int i(1);
    writeln("Введите значение угла в радианах");
    readln(x);
    writeln("Введите количество циклов приближения вычисления");
    readln(Q);
    for (i<=Q)
    {
    z=z*(a+i*2)/(b+i*2);
    w=w*(x*x)/(1+x*x);
    y=y+z*w;
    i=i+1;
    }
    arctg=(x/(1+x*x))*y;
    writeln("Арктангенс угла будет равен", arctg);
    readln();
    end.
    Заранее извиняюсь за синтаксис. Я на паскале лет 10 ничего не писал. Но думаю тебе и этого будет достаточно, вроде бы должно работать :)

    Добавлено через 6 минут
    Спасибо за разминку для мозга! Хоть мелочь, но чей-то давненько я таким не страдал :) Тему, кстати, перенес. А то видно, что люди заходят, хотят бы помочь, но не могут/не знают, а так в IT ей больше место.
     
    Последнее редактирование: 1 сен 2011