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

CALLBACK. Нужна помощь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Округлить любое вещественное число до определённого количества знаков с математической точностью http://www.cyberforum.ru/cpp-beginners/thread378871.html
Пишем Microsoft Visual Studio -> Win32 Console Application -> C++. Нужно написать функцию, которая округляет любое вещественное число до определённого количества знаков с математической точностью. Вот что уже готово, можете подсказать в чем ошибка и как исправить? (Изучаю функцию одну пару, так что хочу попросить объяснять и показывать как можно проще и примитивнее :) Про ceil нам тоже еще не...
C++ Помогите плиз модифицировать прогу Добрый вечер! Есть функция, переставляющая соседние слова в строке: #include "stdafx.h" #include <clocale> #include <iostream> #include <windows.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread378868.html
Помогите со стеком.. C++
Смоделировать стек на базе статического массива по заданию. Написать основные операции для работы со стеком (push, pop, top, empty, full) . Для этого (если в задании не указан иной способ) в программе на входе задать последовательность из К (К> 10) целых чисел (числа вводить с клавиатуры). Все положительные числа последовательно заносить в стек, а каждое отрицательное число должно изымать из...
C++ Игра в камень,ножницы бумага.Что можно улучшить\оптимизировать?
// KamenNozhnicyBumaga.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "time.h" #include "stdio.h" #include "stdlib.h" int _tmain(int argc, _TCHAR* argv)
C++ Простейший класс http://www.cyberforum.ru/cpp-beginners/thread378848.html
Разработать класс 1.Комплексное число 2. время 3. массив 4. дата 5. стек 6 строка 7. многочлен Любой из этих классов, очень буду благодарен!!!
C++ wchar_t что ето за тип данних: wchar_t скок у нему байт?? подробнее

Показать сообщение отдельно
atomohod
 Аватар для atomohod
20 / 20 / 1
Регистрация: 01.04.2010
Сообщений: 57
07.11.2011, 00:03  [ТС]     CALLBACK. Нужна помощь
спасибо, вот код:

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
#pragma once
#include <math.h>
#include <iostream>
 
enum Errors 
{ 
    DivBy0, 
    Negative,
    InvalidLgArgument
};
 
class CalculatingError
{
private:
    void Negative();
    void DivBy0();
    void InvalidLgArgument();
 
    Errors _error;
 
public: 
 
    CalculatingError(Errors error);
    ~CalculatingError();
 
    void RaiseError();
 
};
 
class ExpressionCalculator
{
private:
    double(ExpressionCalculator::*f)(double,double,double,double);
public:
    ExpressionCalculator(void);
    ~ExpressionCalculator(void);
 
    double f1(double a, double b, double c, double d);
    double f2(double a, double b, double c, double d);
    double f3(double a, double b, double c, double d);
 
    double Calculate(double a, double b, double c, double d);
 
};
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
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
97
98
99
100
101
102
103
#include "ExpressionCalculator.h"
 
CalculatingError::CalculatingError(Errors error)
{
    _error = error;
}
void CalculatingError::RaiseError()
{
    switch(_error)
    {
    case Errors::DivBy0:
        DivBy0();
        break;
    case Errors::Negative:
        Negative();
        break;
    case Errors::InvalidLgArgument:
        InvalidLgArgument();
        break;
    }
}
CalculatingError::~CalculatingError()
{
 
}
void CalculatingError::Negative()
{
    std::cout << "Negative number in sqrt function" << std::endl;
}
void CalculatingError::DivBy0()
{
        std::cout << "Divide by zero" << std::endl;
}
void CalculatingError::InvalidLgArgument()
{
std::cout << "Invalid x in lg(x)" << std::endl;
}
 
 
 
ExpressionCalculator::ExpressionCalculator(void)
{
 
}
ExpressionCalculator::~ExpressionCalculator(void)
{
 
}
double ExpressionCalculator::f1(double a, double b, double c, double d)
{
    f = &ExpressionCalculator::f1;
    double tmp;
    try
    {
        if (a < 0) throw CalculatingError(Errors::Negative);
        if (!(a / 4 - b)) throw CalculatingError(Errors::DivBy0);
        tmp = (2 * c - d + sqrt(23 * a)) / (a / 4 - b);
    }
    catch (CalculatingError ce)
    {
        ce.RaiseError();
    }
    return tmp;
}
double ExpressionCalculator::f2(double a, double b, double c, double d)
{
    f = &ExpressionCalculator::f2;
    double tmp;
    try
    {
        if (c < 0) throw CalculatingError(Errors::Negative);
        if (!(b - a / 2)) throw CalculatingError(Errors::DivBy0); 
        tmp = (c + 4 * d - sqrt(123 * c)) / (b - a / 2);
    }
    catch (CalculatingError ce)
    {
        ce.RaiseError();
    }
    return tmp;
}
double ExpressionCalculator::f3(double a, double b, double c, double d)
{
    f = &ExpressionCalculator::f3;
    double tmp;
    try
    {
        if ((c - 5) < 0 || (c - 5) == 1) throw CalculatingError(Errors::InvalidLgArgument);
        if (!d) throw CalculatingError(Errors::DivBy0);
        if (!(a - b)) throw CalculatingError(Errors::DivBy0);
        tmp = (4 * log(c - 5) - 2 * d + 23) / (a - b);
    }
    catch (CalculatingError ce)
    {
        ce.RaiseError();
    }
    return tmp;
}
 
double ExpressionCalculator::Calculate(double a, double b, double c, double d)
{
    double tmp = &f(a,b,c,d);
    return 0;
}
 
Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru