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

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

Войти
Регистрация
Восстановить пароль
 
kiborg_18
4 / 4 / 0
Регистрация: 21.02.2011
Сообщений: 61
#1

Поле чисел от 0 до N - C++

19.04.2011, 18:37. Просмотров 307. Ответов 4
Метки нет (Все метки)

Как в С++ или в С создать поле чисел, которое включает в себя все числа от 0 до N?
Напрмер поле чисел 0_3, включает в себя 0,1,2. 2+1 должно давать 0, 1+2 должно давать 0. кто-нибудь может помочь? Буду очень признателен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2011, 18:37     Поле чисел от 0 до N
Посмотрите здесь:

Поле шахматной доски определяется парой натуральных чисел - C++
Поле шахматной доски определяется парой натуральных чисел, первое из которых задает номер вертикали, а второе — номер горизонтали. Даны...

MS Access Уменьшение чисел в поле - Delphi БД
Привет всем, делаю программу для книжного магазина, у меня есть поле с названием книг и с их количеством, я сделала форму для покупки там...

Заполнить поле последовательностью чисел (UPDATE) - SQL Server
Изменяю структуру старых таблиц залитых из другой БД. Есть таблица в которой первичный индекс - строка. Я создал еще одно целое поле и хочу...

Выведение двух чисел в одном поле - C++/CLI WinForms
Подскажите как при нажатии кнопки вывести в одном поле переменную (a=10), потом ее изменить (a=15), и дописать ее в то же поле, что бы...

Обратная матрица в поле целых чисел - Алгебра
Доброго времени суток! Возник вледующий вопрос: ко всем ли матрицам в поле целых чисел по определенному модулю можно найти обратную...

Вывод суммы чисел в текстовом поле - C#
Есть три текстовых поля и одна кнопка. Задача: вывести сумму чисел, введенных в первое и второе текстовые поля, в третьем текстовом поле...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
19.04.2011, 19:21     Поле чисел от 0 до N #2
Создаешь свой класс, пишешь операторы. Cложение будет выглядеть так:
C++
1
2
3
4
5
6
7
8
9
...
int n;
int value;
pole operator+=(pole b)
{
    value = (value + b.value)%n;
    return *this;
}
...
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
19.04.2011, 22:04     Поле чисел от 0 до N #3
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/////////////////////////////////////////////////////////////////////////////////////////
//Как в С++ или в С создать поле чисел, которое включает в себя все числа от 0 до N?
//Напрмер поле чисел 0_3, включает в себя 0,1,2. 2+1 должно давать 0, 1+2 должно давать 0.
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
template<int  characteristic>
class  T_field
{    
    int  val_;
    //-----------------------------------------------------------------------------------
public:
    //-----------------------------------------------------------------------------------
    T_field(int  int_val) : val_(normalize(int_val))
    {
        if(!is_prime(characteristic))
        {
            std::cout << "Характеристика поля "
                      << characteristic
                      << " не является простым числом."
                      << std::endl;
 
            throw(0);
        }
    }
    //-----------------------------------------------------------------------------------
    T_field  operator- ()
    {
        return  -val_;    
    }
    //-----------------------------------------------------------------------------------
    friend T_field  operator+ (T_field  f,  T_field  g)
    {
        return  f.val_ + g.val_;
    }
    //-----------------------------------------------------------------------------------
    friend T_field  operator- (T_field  f,  T_field  g)
    {
        return  operator+ (f, -g);
    }
    //-----------------------------------------------------------------------------------
    friend T_field  operator* (T_field  f,  T_field  g)
    {
        return  f.val_ * g.val_;
    }
    //-----------------------------------------------------------------------------------
    friend T_field  operator/ (T_field  f,  T_field  g)
    {
        if(g.val_ == 0)
        {
            std::cout << "Деление на ноль."
                      << std::endl;
            throw(0);
            return  0;
        }
        while(f.val_ % g.val_ != 0)
        {
            f.val_ += characteristic;
        }
        return  f.val_ / g.val_;
    }
    //-----------------------------------------------------------------------------------
    friend  std::ostream&  operator<< (std::ostream&  ostr, T_field  f)
    {
        ostr << f.val_;
        return  ostr;
    }
    //-----------------------------------------------------------------------------------
private:
    //-----------------------------------------------------------------------------------
    int  normalize(int  n)
    {
        while(n < 0)
        {
            n += characteristic;
        }
        return  n % characteristic;
    }
    //-----------------------------------------------------------------------------------
    bool  is_prime(int  n)
    {
        for(int  i = 2; i * i <= n; ++i)
        {
            if(n % i == 0)  return  false;
        }
        return  true;
    }
};
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    //typedef  T_field<6>  T_field_6;
    //T_field_6  g(7);
 
    typedef  T_field<5>  T_field_5;
    T_field_5  f_7 = 7;
    std::cout << "f_7 = "
              << f_7
              << std::endl;
 
    T_field_5  f_11(11);
    std::cout << "f_11 = "
              << f_11
              << std::endl;
 
    T_field_5  f_3_1(3);
    T_field_5  f_3 = f_3_1;
    T_field_5  f_4(4);
 
    std::cout << "f_3 * f_4 = "
              << f_3 * f_4
              << std::endl;
 
    std::cout << "f_3 * 4 = "
              << f_3 * 4
              << std::endl;
 
 
    std::cout << "3 * f_4 = "
              << 3 * f_4
              << std::endl;
 
 
    std::cout << "f_3 / f_4 = "
              << f_3 / f_4
              << std::endl;
 
    std::cout << "f_3 - f_4 = "
              << f_3 - f_4
              << std::endl;
 
    std::cout << "-f_3 = "
              << -f_3
              << std::endl;
 
    T_field_5  f_1(1);
    std::cout << "f_1 / f_3 = "
              << f_1 / f_3
              << std::endl;
 
    std::cout << "1 / f_3 = "
              << 1 / f_3
              << std::endl;
 
    std::cout << "997 / f_3 = "
              << 997 / f_3
              << std::endl;
 
    std::cout << "(f_3 + f_4) * f_3 = "
              << (f_3 + f_4) * f_3
              << std::endl;
 
    std::cout << "f_4 / (f_3 - f_3) = "
              //<< f_4 / (f_3 - f_3)
              << std::endl;
}
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
19.04.2011, 22:17     Поле чисел от 0 до N #4
Mr.X, а почему характеристика поля должно быть простым числом??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2011, 22:31     Поле чисел от 0 до N
Еще ссылки по теме:

Сохранить список целых чисел в BLOB-поле - Delphi БД
Скачал из интернета компонент, позволяющий хранить в списке целые числа, работает также как TStringList, но не со строками, а с числами. ...

Как сделать перемножение чисел в Label в выводом в поле? - C#
Подскажите пожалуйста как сделать что бы числа которые выводятся в Label перемножались и выводились в другое поле

Поле шахматной доски определяется парой натуральных чисел - Pascal ABC
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число — номер вертикали (при...

запись массива чисел в Blob поле с помощью запроса SQL - C++ Builder БД
как записать 4-х мерный динамический массив чисел, представляемый собой координаты точек графика и погрешности, получаемый путем измерений,...


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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
19.04.2011, 22:31     Поле чисел от 0 до N #5
Цитата Сообщение от Overmind024 Посмотреть сообщение
Mr.X, а почему характеристика поля должно быть простым числом??
Согласно теории, характеристика конечного поля является простым числом.
Число элементов любого конечного поля есть его характеристика в натуральной степени: |Fq| = q = p^n.
Я взял простейший случай n = 1.
Yandex
Объявления
19.04.2011, 22:31     Поле чисел от 0 до N
Ответ Создать тему
Опции темы

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