Index · Правила · Поиск· Группы · Регистрация · Личные сообщения· Вход

Список разделов Компьютерный раздел
 
 
 

Раздел: Компьютерный раздел Требуется помощь по С++ срочно 

Создана: 16 Сентября 2013 Пон 21:21:02.
Раздел: "Компьютерный раздел"
Сообщений в теме: 16, просмотров: 4912

На страницу: Назад  1, 2  Вперёд
  1. QPOG91


    Частый гость


    Более 10 лет на форумеОграничение, 1 сообщение в часМуж.
    16 Сентября 2013 Пон 21:21:02
    Помогите написать программу в среде c++ builder;

    Чтобы вычисляла сумму ряда: 1+ (1/1!)+(1/2!)+(1/3!)+...+ 1/n!

    Кто сделает, обещаю денежное вознаграждение 100р на телефон!
  2. otherw


    Частый гость


    Более 10 лет на форумеБлокирующее предупреждение от модератора
    16 Сентября 2013 Пон 22:27:30
    double s = 1, m = 1;
    int n = 10, i = 1;
    while (i<=n) s += m /= i++;
    printf("%f\n",s);
  3. QPOG91


    Частый гость


    Более 10 лет на форумеОграничение, 1 сообщение в часМуж.
    16 Сентября 2013 Пон 22:48:13
    Спасибо, конечно, но число n должен вввести пользователь с клавиатуры
  4. 16 Сентября 2013 Пон 22:48:34
    Эх напрег мозг и вспомнил паскаля)) может пригодится)

    function TForm1.GetSumm(var n: Integer): Real;
    function Factorial(var f: Integer): Real;
    var
    i: Integer;
    begin
    Result:= 1;
    for i:= 1 to f do Result:= Result * i;
    end;
    var
    i: Integer;
    begin
    Result:= 1;
    for i:= 1 to n do Result:= Result + (1/Factorial(n));
    end;
  5. 16 Сентября 2013 Пон 22:52:48
    QPOG91 писал : Спасибо, конечно, но число n должен вввести пользователь с клавиатуры

    int n;
    cin >> n; Very Happy
  6. 16 Сентября 2013 Пон 23:58:03
    ему двойку поставят за одновременное использование cin и printf,

    double s = 1, m = 1;
    int n, i = 1;
    cin >> n;
    while (i<=n) s += m /= i++;
    cout << fixed << s << endl;
  7. 17 Сентября 2013 Втр 0:55:57
    Grammiphone писал : ему двойку поставят за одновременное использование cin и printf

    А за отсутствие проверки входящих значений не поставят? Смайлик :-)

    Кстати, до автоматического тестирования в этих ваших вузах не дошли еще?
  8. 17 Сентября 2013 Втр 7:36:26
    QPOG91 писал : Спасибо, конечно, но число n должен вввести пользователь с клавиатуры


    нафик таким помогать, пусть сами разбираются, или в армию идут. Намоголались уже, туча программерова, а 5 строчек кода написать не могут. Работать некому . Инженера мля!


    ссылка на учебник по с++
    [внешняя ссылка]
  9. otherw


    Частый гость


    Более 10 лет на форумеБлокирующее предупреждение от модератора
    17 Сентября 2013 Втр 7:41:37
    QPOG91 писал : Спасибо, конечно, но число n должен вввести пользователь с клавиатуры


    spectrum писал(а) :
    А за отсутствие проверки входящих значений не поставят? Смайлик :-)


    В рамках поставленной задачи, текст программы приведен.
    Я ж не телепат. :)

    ЗЫ: правда можно и по короче:
    cout << exp(1.) << endl;
  10. 17 Сентября 2013 Втр 9:51:55
    double s = 1, m = 1;
    int n, i = 1;
    cin >> n;
    while (i<= (unsigned int) n) s += m /= i++;
    cout << fixed << s << endl;
  11. 17 Сентября 2013 Втр 10:03:15
    cherms писал : нафик таким помогать, пусть сами разбираются, или в армию идут. Намоголались уже, туча программерова, а 5 строчек кода написать не могут. Работать некому . Инженера мля!

    правильно. и бан ему на 5 лет на форуме дать, чтоб не отвлекался от учебы, бестолочь Exclamation
  12. QPOG91


    Частый гость


    Более 10 лет на форумеОграничение, 1 сообщение в часМуж.
    17 Сентября 2013 Втр 10:36:18
    Меня тут ровно 10 часов не было, а тут развели холивар... Всем спасибо за помощь (оказанную, между прочим, не мне)!! Сегодня у человека проверят задачку. Тот, чье решение было наиболее рациональным, получит 100р на телефон!
  13. otherw


    Частый гость


    Более 10 лет на форумеБлокирующее предупреждение от модератора
    17 Сентября 2013 Втр 11:51:12
    Держите еще решение, исключаем 2 переменные:

    double s = 1;
    int n;
    cin >> n;
    while (n)(s /= n--)++;
    cout << fixed << s << endl;
  14. 17 Сентября 2013 Втр 14:59:09
    я может чего не понял, но в условии факториал используется.
    без обвязки будет где-то так: for(s = 1, f = 1, i = 1; i <= n; i++) s += 1/(f *= i);
  15. otherw


    Частый гость


    Более 10 лет на форумеБлокирующее предупреждение от модератора
    17 Сентября 2013 Втр 16:49:33
    просто Паха писал : я может чего не понял, но в условии факториал используется.
    без обвязки будет где-то так: for(s = 1, f = 1, i = 1; i <= n; i++) s += 1/(f *= i);

    Код:
    double s = 1, m = 1;
    int n = 10, i = 1;
    while (i<=n) s += m /= i++;
    printf("%f\n",s);

    m /= i++; в этой конструкции вычисляется 1/факториал, тем самым экономим одну операцию.

    И все же в условии первично вычислить сумму ряда.
    Второе решение после некоторого преобразования суммы.

    при n=17
    способ№1_________ 2.71828182845904550000
    способ№2_________ 2.71828182845904510000
    значение exp(1.)___ 2.71828182845904510000
    теоретическое e___ 2,7182818284590452353602874713527
На страницу: Назад  1, 2  Вперёд