Форум программистов, компьютерный форум CyberForum.ru

Как запрограммировать экспоненту - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Прозрачность http://www.cyberforum.ru/cpp-beginners/thread156806.html
Здравствуйте! Появилась необходимость поставить картинку на форму так, чтобы фон был прозрачным. Нашёл вот это http://www.rsdn.ru/archive/vc/issues/pvc045.htm и использовал первый вариант с поправкой на то, что у меня диалоговое приложение: BOOL Cdiplom_engDlg::OnInitDialog() { CDialog::OnInitDialog(); ... // TODO: добавьте дополнительную инициализацию...
C++ _beginrhread = crash 0xc0000417 code 417 значит неверный параметр был дан ф-ции рунтайма, а именно _beginthread _beginthread(func,0,NULL); но этот же код хорошо работал в моей старой другой проге =\ дебаг: ни win debugging tools ни студио дебагер его не ловят, он просто не случается, а в оллидб: ставишь Ignore memory access violations in KERNEL32 - галочку = краш есть как и без дебугера - снимаешь её = краша нет http://www.cyberforum.ru/cpp-beginners/thread156792.html
Почему _kbhit возвращает TRUE при отсутствии нажатий? C++
Почему _kbhit возвращает TRUE при отсутствии нажатий? Есть такой кусок: if(_kbhit()) { if ((GetKeyState(VK_SPACE)==-127)||(GetKeyState(VK_SPACE)==-128)) cout << kbhit(); // клавиши не нажимаются но выдает 1, т.е. заходит таки в эту ветку IF } После до первого нажатия после запуска все норм - _kbhit()==0 , но после одного захода в ветку, _kbhit() так и...
C++ структура LARGE_INTEGER
Не совсем понимаю эту структуру. Объясните плз, как присвоить значение? LARGE_INTEGER a; a.QuadPart=0; --> ошибка (Dev-C++): expected constructor, destructor, or type conversion before '.' token expected `,' or `;' before '.' token
C++ Вывод JPG в окне на чёрном фоне http://www.cyberforum.ru/cpp-beginners/thread156776.html
Привет всем. Подскажите, как открыть окно с чёрным фоном, вывести на него jpg. Может у кого есть пример кода по элементарной работе с графикой? (В будущем картинку планируется перемещать)
C++ [vs2010] 2 типа ошибок Вроде бы ошибки простые, но пока знаний недостаточно:D 1>c:\src\CPU.h(62): error C2065: 'FILE' : undeclared identifier 1>c:\src\CPU.h(62): error C2059: syntax error : ')' 1>c:\src\CPU.h(63): error C2065: 'FILE' : undeclared identifier 1>c:\src\CPU.h(63): error C2059: syntax error : ')' 1>c:\src\APU.h(35): error C2065: 'FILE' : undeclared identifier 1>c:\src\APU.h(35): error C2059: syntax... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
01.08.2010, 23:32     Как запрограммировать экспоненту
Четко. Сравните.
Хех. Для двух работало а дальше что-то стопорится. Сейчас попробую исправить. Ссори
ЗЫ для 8 и 0.00001 не могу понять что происходит. Факториал i увеличивается бесконечно. Следовательно факториал просто не влезает, ибо максимум факториал 20-21 память может в себя вместить. Даже если использовать самый большой целочисленный тип
До пяти - работает. Дальше факториал превышает возможное. Так что...
При точности 0.1 - до семи. При 0.01 - до шести. ЗЫ различия минимальные с результатом стандартной функции. При 0.001 до пяти и т.д.
При 1 и 0.0000001 выдает 2.71828, что есть правильное значение экспоненты
C
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
#include <math.h>
#include <stdio.h>
 
typedef unsigned long long u_ll;
 
u_ll Factorial(int);
double Power(double, double);
double Exp(double, double);
 
int main()
{
    double Expon=Exp(2, 0.000001); 
    double expon=exp(2.0);
    printf("%g\n", Expon);
    printf("%g\n", expon);
    return 0;
}
 
u_ll Factorial(int n)
{
    if(n==1)
        return n;
    else
        return n*Factorial(n-1);
}
 
double Power(double n, double p)
{
    if(p==1)
        return n;
    else
        return n*Power(n, p-1);
}
 
double Exp(double n, double e)
{
    double exp=1;
    double sum=1;
    int i=1;
    do
    {
        exp=(Power(n, i)/Factorial(i));
        sum+=exp;
        i++;
    }while(exp>e);
    return sum;
}
Добавлено через 12 минут
%g можно заменить на %f для большей точности вывода
 
Текущее время: 18:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru