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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BlackScorpioNnn
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 12
#1

.Создать класс Binary1, который будет содержать число в двоичной системе - C++

17.06.2013, 17:44. Просмотров 608. Ответов 1
Метки нет (Все метки)

1.Поле first – целое число, целая часть числа, записанного в восьмеричной системе счисления; поле second – положительное целое число, дробная часть числа, записанного в восьмеричной системе счисле-ния. Реализовать метод add8( ) – сложение чисел в восьмеричной системе.
2.Создать класс Binary1, который будет содержать число в двоичной системе (в отдельном поле – целая часть, в другом поле – дробная часть). Разработайте методы для ввода двоичных чисел (с дробной частью!), вывода двоичных чисел, методы для вычисления суммы и произведения двоичных чисел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 17:44     .Создать класс Binary1, который будет содержать число в двоичной системе
Посмотрите здесь:

Из элементов создать новый, который будет содержать товары, изготовленные фирмой Sony C++
Определите класс, который должен содержать атрибуты C++
C++ Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украины
Вводим число в 8-ричной системе, получаем его же, но в двоичной C++
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах C++
C++ Как реализовать класс Pricelist, который будет содержать динамический массив объектов Model
Создать класс, который считывает десятичное число и печатает его 2-ый, 8-ый и 16-ый эквивалент C++
C++ Сдвинуть число в двоичной системе на k позиций
Создать упорядоченный по убыванию список, который будет содержать числа, являющиеся простыми C++
C++ Считать число из дока сразу в двоичной системе
C++ Создайте класс Student, который будет содержать информацию о студенте
Вводится число от 1 до 15. Вывести данное число, записанное в двоичной системе счисления (1, 10, 11, 100, C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
17.06.2013, 20:32     .Создать класс Binary1, который будет содержать число в двоичной системе #2
Первое задание:
Крайне неудобно представлять дробную и целую часть в виде интегральных значений. Гораздо удобней работать со строкой. Из-за этих неудобств значение класса не может быт отрицательным и дробная часть ограничена всего одним числом.
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
#include <cstring>
 
class Oct;
std::ostream& operator<<(std::ostream &, const Oct &);
 
class Oct
{
    int first;
    unsigned second;
 
public:
    struct Bad_value {}; // for errors;
 
    Oct();
    Oct(const char * v);
 
    Oct& operator+=(const Oct &);
    friend std::ostream& operator<<(std::ostream &, const Oct &);
};
 
Oct::Oct() : first(0), second(0) {}
 
Oct::Oct(const char * v)
{
    if (strlen(v) < 3 || v[0] != '0' || v[1] != 'o')
    {
        throw Bad_value();
    }
 
    for (size_t i = 2; i < strlen(v); ++i)
    {
        if (v[i] == '.')
        {
            ++i;
            if (++i != strlen(v))
            {
                throw Bad_value();
            }
        }
    }
 
    first = second = 0;
 
    bool it_first = true;
    for (size_t index = 2; index < strlen(v); ++index)
    {
        switch (v[index])
        {
        case '0':   case '1':   case '2':    case '3':
        case '4':   case '5':   case '6':    case '7':
            if (it_first)
            {
                first = first * 10 + v[index] - '0';
            }
            else
            {
                second = second * 10 + v[index] - '0';
            }
            break;
        case '.':
            it_first = false;
            continue;
        default:
            throw Bad_value();
        }
    }
}
 
Oct& Oct::operator+=(const Oct & rhs)
{
    first += rhs.first;
    second += rhs.second;
 
    while (7 < second)
    {
        if (!(first % 7))
        {
            first += 3;
        }
        else
        {
            ++first;
        }
        second = second % 8;
    }
 
    return *this;
}
 
/********* non class operators *********/
 
std::ostream& operator<<(std::ostream &stream, const Oct &rhs)
{
    if (rhs.first < 0)
    {
        stream << "-0o" << -rhs.first << '.' << rhs.second;
    }
    else
    {
        stream << "0o" << rhs.first << '.' << rhs.second;
    }
    return stream;
}
 
Oct operator+(const Oct& lhs, const Oct& rhs)
{
    Oct obj;
    obj += lhs;
    obj += rhs;
    return obj;
}
 
/************* main() *************/
 
int main()
{
    for ( ; ; )
    {
        try
        {
            Oct a = "0o7.3";
            Oct b = "0o7.5";
            std::cout << "a + b = " << (a + b) << std::endl;
            std::cout << "b + a + a = " << (b + a + a) << std::endl;
            Oct c = b + b;
            std::cout << "c = b + b = " << c << std::endl;
            break;
        }
        catch (Oct::Bad_value)
        {
            continue;
        }
    }
}
Yandex
Объявления
17.06.2013, 20:32     .Создать класс Binary1, который будет содержать число в двоичной системе
Ответ Создать тему
Опции темы

Текущее время: 02:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru