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

Класс сумматор.. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дружественные функции в С++ http://www.cyberforum.ru/cpp-beginners/thread573361.html
создать класс работы с единицами измерения, создать дружественную функцию для дружественного класса, переводя меры жидких тел из Бария в Британскую пинту.
C++ Вписать строку в textbox я новичок хочу с помощью кнопки вписать текст бокс строку, а потом проверить эту строку на наличие символа, подскажите как осуществить, желательно на примере...заранее благодарен http://www.cyberforum.ru/cpp-beginners/thread573354.html
Организация цикла С++ C++
Доброго времени суток! Помогите,пожалуйста, с задачей. Необходимо вычислить значение выражения у = 1-x+x˄2/2!-x˄3/3!+… Это мои начинания: #include<iostream.h> void main (){ int i,x; float y; cout<<"Vvedite x = "; cin>>x; y=0;
преобразование типов C++
Доброво времени суток. Подскажите как можно из char сделать TCHAR? пробовал гуглить ничего толкового не нашел
C++ Динамическая память,строка и файл http://www.cyberforum.ru/cpp-beginners/thread573323.html
посчитать количество слов длина которых больше 8 символов
C++ Смысл строк С++ Привет всем, прошу вашей помощи, вопрос наверное всем покажется очень легким , но все таки мне нужна помощь в его решении, так вот мне нужно написать анализатор, разумеется что я просить вас не буду его писать, но что бы написать его, нужно понимать правила лекс анализатора, вот прошу как говориться , совсем не справедливо, как для блондинки расскажите что в этих строках делается? Ну подробно,... подробнее

Показать сообщение отдельно
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
13.05.2012, 22:07     Класс сумматор..
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
#include <iostream>
 
class accumulator
{
    public:
        accumulator()
            : n_(0), sum_(0)
        {
 
        }
 
        void put(int value)
        {
            sum_+= value;
            ++n_;
        }
 
        int get_n() const
        {
            return n_;
        }
 
        int get_sum() const
        {
            return sum_;
        }
 
    private:
        int n_;
        int sum_;
};
 
int main()
{
    accumulator accumulator_sample;
 
    for(int i = 1; i <= 5; ++i)
        accumulator_sample.put(i);
 
    std::cout << "count: " << accumulator_sample.get_n() << "\n"
                 "sum: " << accumulator_sample.get_sum() << "\n";
}
Добавлено через 14 минут
ну и ещё вариант, с проверкой на переполнение
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
#include <iostream>
#include <stdexcept>
#include <limits>
 
class accumulator
{
    public:
        accumulator()
            : n_(0), sum_(0)
        {
 
        }
 
        void put(int value)
        {
            sum_ = safe_sum(sum_, value);
            ++n_;
        }
 
        int get_n() const
        {
            return n_;
        }
 
        int get_sum() const
        {
            return sum_;
        }
 
    private:
        int n_;
        int sum_;
 
    private:
        int safe_sum(int lhs, int rhs)
        {
            static const int max_value = std::numeric_limits<int>::max();
            static const int min_value = std::numeric_limits<int>::min();
 
            if(rhs < 0 && lhs < 0)
            {
                if(min_value - rhs > lhs)
                    throw std::overflow_error("overflow_error");
            }
 
            else if(rhs > 0 && lhs > 0)
            {
                if(max_value - lhs < rhs)
                    throw std::overflow_error("overflow_error");
            }
 
            return lhs + rhs;
        }
};
 
int main()
{
    try
    {
        accumulator accumulator_sample;
 
        for(int i = 1; i <= 5; ++i)
            accumulator_sample.put(i);
 
        std::cout << "count: " << accumulator_sample.get_n() << "\n"
                     "sum: " << accumulator_sample.get_sum() << "\n";
    }
 
    catch(std::exception& e)
    {
        std::cerr << e.what() << '\n';
    }
}
 
Текущее время: 22:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru