С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 29

Создать класс, который хранит целое девятеричное число со знаком. Перегрузить операции +, ++, +=

22.11.2022, 03:05. Показов 1314. Ответов 6
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помощи в решении данного задания: Создать класс, который хранит целое девятеричное число со знаком.
Перегрузить операции +, ++, +=. Буду очень благодарен и свечку поставлю!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.11.2022, 03:05
Ответы с готовыми решениями:

Создать класс, который хранит целое десятичное число без знака
Други и подруги, прошу вашей помощи! Вот такую программу нужно написать, есть такие, кто может помочь? Создать класс, который...

Создать класс, который хранит целое десятичное число со знаком. Перегрузить операции +, ++, +=
Есть пример, задание которого гласит "Создать класс, который хранит целое троичное число без знака. Перегрузить операции +, ++, +=."....

Создать класс, который хранит целое пятеричное число со знаком
Создать класс, который хранит целое пятеричное число со знаком. Перезагрузить операции *, *=. Есть пример, задание "Создать класс,...

6
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1820
Регистрация: 18.10.2014
Сообщений: 17,205
22.11.2022, 03:50
Цитата Сообщение от Cerega228Pro Посмотреть сообщение
Создать класс, который хранит целое девятеричное число со знаком.
Так а что значит "хранит девятеричное число"? Каков критерий того, что там именно "девятеричное число" хранится, а не, скажем, шестнадцатеричное ли еще какое? Хранить строку нужно что ли?
0
0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 29
22.11.2022, 04:06  [ТС]
Это объяснение данного задания. Простите сам таки ничего не понял, поэтому и надеялся на какую-то помощь.
Согласно варианту задания определить класс, хранящий число
произвольной длины в заданной системе счисления. Этот класс должен
включать в себя перегружаемый оператор >> для ввода данных с консоли с
обязательной проверкой на корректность, перегружаемый оператор << для
вывода данных, перегружаемые операторы приведения объектов к стандартным
типам int и double, перегружаемые операторы сравнения (==, >, >=, <, <=, !=),
а также указанные в варианте задания перегружаемые операторы. Операторы
ввода (>>) и вывода данных (<<) должны быть реализованы в виде
дружественных функций, все остальные операторы – в виде методов класса.
Поскольку число, записанное в объекте, может быть произвольной
длины, оно не обязательно поместится в разрядную сетку известных числовых
форматов (даже типа long). Поэтому для реализации всех операций
потребуется разработка собственного алгоритма. Например,
сложение/вычитание выполняется по классической схеме («в столбик»). При
этом само число хранится в виде массива, каждый элемент которого – один
разряд числа.

Разработанный алгоритм должен корректно отрабатывать знак числа.
Например, если требуется сложить два числа со знаком и одно из них
отрицательное, то фактически это означает вычитание одного числа из другого.
В этом случае разрабатываемый алгоритм должен уметь как складывать, так и
вычитать числа, даже если это явно не сказано в вариантах задания.
Операторы сравнения (==, >, >=, <, <=, !=) должны быть реализованы
посредством реализации вычитания: ведь известно, что если (a > b), то (a – b >
0).
Операторы приведения объектов к стандартным типам данных должны
генерировать сообщение об ошибке, если в объекте класса хранится число,
превышающее максимально допустимое значение для соответствующего типа.

Добавлено через 1 минуту
Вот пример кода, но к похожему заданию: Создать класс, который хранит целое троичное число без знака.
Перегрузить операции +, ++, +=.
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
#include <iostream>
using namespace std;
class Number
{
 private:
 
 int *digits; // Массив для хранения троичного числа
 int count; // Текущее количество разрядов
 void setDigits(char *str)
 {
 // Если число уже было в массиве - удаляем его
 if (this->digits != NULL)
 delete[] digits;
 int len = strlen(str);
 int pos = 0;
 // Пропустить ведущие нули (если они есть)
 while (pos < len && str[pos] == '0')
 pos++;
 if (pos >= len)
 {
 // Отдельно обрабатываем случай, когда вся
 // строка состоит из одних нулей
 this->count = 1;
 this->digits = new int[1];
 this->digits[0] = 0;
 return;
 }
 this->count = len - pos;
 this->digits = new int[this->count];
 for (int i=0; i<this->count; i++)
 this->digits[i] = (int)str[i + pos] - (int)'0';
 return;
 }
 
 int SubNumber(Number n)
 {
 // Вспомогательный метод, сравнивает текущее число с n
 // Возвращает 0 - если оба числа равны
 // 1 - если текущее число больше
 // -1 - если текущее число меньше
 // Если количество цифр у одного из чисел больше -
 // значит и само число больше
 if (this->count > n.count)
 return 1;
 if (this->count < n.count)
 return -1;
 // Если количество цифр одинаковое, выполняем
 // вычитание "столбиком".
 // Результат вычитания при этом не сохраняем,
 // так как для вычисления результата
 // требуется знать есть ли заем и есть ли значащие
 // цифры в результате
 int perenos = 0;
 int result = 0;
 int resr;
 for (int i = this->count - 1; i >= 0; i--)
 {
 resr = this->digits[i] - n.digits[i] - perenos;
 if (resr < 0)
 {
 result |= resr + 3;
 perenos = 1;
 }
 else
 {
 result |= resr;
 perenos = 0;
 }
 }
 // Оба числа равны, если нет заема и результат равен нулю
 if (perenos == 0 && result == 0)
 return 0;
 // Tекущее число больше n, если заема нет и
 // результат не равен нулю
 if (perenos == 0 && result != 0)
 return 1;
 // Иначе текущее число меньше n
 return -1;
 }
 char* AddNumber(Number n)
 {
 // Вспомогательный метод, складывает текущее число с n
 // и возвращает новое число в качестве результата (в виде строки)
 int MaxLength = (this->count > n.count) ? this->count : n.count;
 // Выделяем память для хранения результата
 
 // результат может быть на 1 разряд больше
 // еще 1 символ нужен для хранения завершающего нуля строки
 char *str = new char[MaxLength + 2];
 // Забиваем всю строку нулями
 for (int i=0; i<=MaxLength; i++)
 str[i] = '0';
 
 // Признак конца строки
 str[MaxLength+1] = 0;
 int perenos = 0;
 int resr, cha, chb;
 for (int i=0; i<MaxLength; i++)
 {
 cha = (i < this->count) ? this->digits[this->count - i - 1] : 0;
 chb = (i < n.count ) ? n.digits[n.count - i - 1] : 0;
 resr = cha + chb + perenos;
 perenos = resr / 3;
 str[MaxLength - i] = (char)((resr % 3) + '0');
 }
 if (perenos != 0)
 str[0] = (char)(perenos + '0');
 return str;
 }
public:
 Number()
 {
 this->digits = NULL;
 this->count = 0;
 }
 Number(char *str)
 {
 this->digits = NULL;
 this->count = 0;
 this->setDigits(str);
 }
 // дружественная функция для ввода числа
 friend istream & operator>>(istream &input, Number &num);
 // дружественная функция для вывода числа
 friend ostream & operator<<(ostream &output, Number &num);
 
 operator int()
 {
 if (this->digits == NULL)
 return 0;
 int result = 0;
 for (int i=0; i<this->count; i++)
 {
 result *= 3;
 result += this->digits[i];
 }
 return result;
 }
 
 operator double()
 {
 if (this->digits == NULL)
 return 0.0;
 double result = 0.0;
 for (int i=0; i<this->count; i++)
 {
 result *= 3.0;
 result += this->digits[i];
 }
 return result;
 }
 bool operator == (Number &n)
 {
 int res = this->SubNumber(n);
 return (res == 0) ? true : false;
 }
 bool operator != (Number &n)
 {
 int res = this->SubNumber(n);
 return (res != 0) ? true : false;
 }
 bool operator > (Number &n)
 {
 int res = this->SubNumber(n);
 return (res == 1) ? true : false;
 }
 bool operator >= (Number &n)
 {
 int res = this->SubNumber(n);
 return (res == 0 || res == 1) ? true : false;
 }
 bool operator <= (Number &n)
 {
 int res = this->SubNumber(n);
 return (res == 0 || res == -1) ? true : false;
 }
 bool operator < (Number &n)
 {
 int res = this->SubNumber(n);
 return (res == -1) ? true : false;
 }
 Number operator + (Number &n)
 {
 return Number(this->AddNumber(n));
 }
 void operator += (Number &n)
 {
 this->setDigits(this->AddNumber(n));
 }
 Number operator ++(int)
 {
 
 this->setDigits(this->AddNumber(Number("1")));
 return *this;
 }
};
istream & operator>>(istream &input, Number &num)
{
 const int dsize = 10;
 int size = 0;
 int msize = dsize;
 char *str = (char*)malloc(msize + 1);
 char c;
 /* Ввод данных */
 do {
 // Читаем один символ
 input.get(c);
 // Если встретили конец строки
 if (c == '\n' || c == '\0') break;
 // Сохраняем прочитанный символ в строке
 str[size] = c;
 size++;
 // Если текущий размер выделенной памяти меньше
 // длины строки - перераспределяем память
 if (size >= msize)
 {
 msize+=dsize;
 str = (char*)realloc(str, msize + 1);
 }
 } while (1);
 str[size]=0;
 /* Проверка введенных данных на корректность */
 for (int i=0; i<size; i++)
 {
 if (str[i]< '0' || str[i] > '2')
 {
 cout << "Incorrect input" << endl;
 free(str);
 return input;
 }
 }
 /* Инициализация объекта Number */
 num.setDigits(str);
 free(str);
 return input;
}
ostream & operator<<(ostream &output, Number &num)
{
 if (num.digits != NULL)
 {
 for (int i=0; i<num.count; i++)
 output << num.digits[i];
 output << endl;
 }
 
 return output;
}
int main()
{
 Number a,b,c;
 int action;
 while (1)
 {
 // Меню
 system("cls");
 cout<<"Main menu (0 - exit)" <<endl<<
 "1. Input A"<<endl<<"2. Input B"<<endl<<"3. Output A"<<endl<<
 "4. Output B"<<endl<<"5. Output C"<<endl<<endl<<"6. A==B"<<endl<<
 "7. A!=B"<<endl<<"8. A>B"<<endl<<"9. A<B"<<endl<<
 "10. A>=B"<<endl<<"11. A<=B"<<endl<<"12. A++"<<endl<<
 "13. B++"<<endl<<"14. A+=B"<<endl<<"15. C=A+B"<<endl;
 
 // Выбор действия
 cin>>action; cin.clear(); cin.sync();
 switch (action)
 {
 case 0: return 0;
 case 1: cout<<"Input A, please: "; cin>>a; break;
 case 2: cout<<"Input B, please: "; cin>>b; break;
 case 3: cout<<"Number A: " << a; cin.get(); break;
 case 4: cout<<"Number B: " << b; cin.get(); break;
 case 5: cout<<"Number C: " << c; cin.get(); break;
 case 6: cout<<"A==B: "<<((a==b) ? "Yes" : "No"); cin.get(); break;
 case 7: cout<<"A!=B: "<<((a!=b) ? "Yes" : "No"); cin.get(); break;
 case 8: cout<<"A>B: "<<((a>b) ? "Yes" : "No"); cin.get(); break;
 case 9: cout<<"A<B: "<<((a<b) ? "Yes" : "No"); cin.get(); break;
 case 10: cout<<"A>=B: "<<((a>=b) ? "Yes" : "No"); cin.get(); break;
 case 11: cout<<"A<=B: "<<((a<=b) ? "Yes" : "No"); cin.get(); break;
 case 12: cout<<"A++: "; a++; cout<<a; cin.get(); break;
 case 13: cout<<"B++: "; b++; cout<<b; cin.get(); break;
 case 14: cout<<"A+=B: "; a+=b; cout<<a; cin.get(); break;
 case 15: cout<<"C=A+B: "; c=a+b; cout<<c; cin.get(); break;
 }
 }
 return 0;
}
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
22.11.2022, 08:39
Cerega228Pro
Вы в каком-то учебном заведении учитесь? в каком?
Что говорят одноклассники?

Добавлено через 1 минуту
Цитата Сообщение от Cerega228Pro Посмотреть сообщение
Вот пример кода, но к похожему заданию
ну так заменить диапазон ввода с 3 на 9 в методе
istream & operator>>(istream &input, Number &num)
и готово.

Ну и в конвертации в double в
operator double()
0
0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 29
22.11.2022, 22:54  [ТС]
Прошу прощения, но в данной теме я "дуб дубом". Код должен выглядеть иначе и в моем случае он бьет ошибку. Также в задании указанно число со знаком, а в примере представлено без знака. В общем простите, но я не понимаю как нужно построить код, чтобы он начал работать...
0
0 / 0 / 0
Регистрация: 02.11.2021
Сообщений: 29
23.11.2022, 17:20  [ТС]
Получилось что-то такое, но остается вопрос как сделать функцию перегрузки и что подразумевается под словами "Со знаком и без знака". Задание было взято немного другое: Создать класс, который хранит целое двенадцатеричное число без
знака. Перегрузить операции *, *=.

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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#pragma warning(disable : 4996)
using namespace std;
class Number
{
private:
 int* digits; 
 int count; 
void setDigits(char* str)
{
    // Если число уже было в массиве - удаляем его
    if (this->digits != NULL)
    delete[] digits;
    int len = strlen(str);
    int pos = 0;
    // Пропустить ведущие нули (если они есть)
    while (pos < len && str[pos] == '0')
    pos++;
    if (pos >= len)
    {
        // Отдельно обрабатываем случай, когда вся
        // строка состоит из одних нулей
        this->count = 1;
        this->digits = new int[1];
        this->digits[0] = 0;
        return;
        }
        this->count = len - pos;
        this->digits = new int[this->count];
        for (int i = 0; i < this->count; i++)
        this->digits[i] = (int)str[i + pos] - (int)'0';
        return;
        }
int SubNumber(Number n)
{
    
    if (this->count > n.count)
        return 1;
    if (this->count < n.count)
        return -1;
    
    int perenos = 0;
    int result = 0;
    int resr;
    for (int i = this->count - 1; i >= 0; i--)
    {
        resr = this->digits[i] - n.digits[i] - perenos;
        if (resr < 0)
        {
            result |= resr + 12;
            perenos = 1;
        }
        else
        {
            result |= resr;
            perenos = 0;
        }
    }
    // Оба числа равны, если нет заема и результат равен нулю
    if (perenos == 0 && result == 0)
        return 0;
    // Tекущее число больше n, если заема нет и
    // результат не равен нулю
    if (perenos == 0 && result != 0)
        return 1;
    // Иначе текущее число меньше n
    return -1;
}
char* AddNumber(Number n)
{
    // Вспомогательный метод, складывает текущее число с n
    // и возвращает новое число в качестве результата (в виде строки)
    int MaxLength = (this->count > n.count) ? this->count : n.count;
    // Выделяем память для хранения результата
// результат может быть на 1 разряд больше
// еще 1 символ нужен для хранения завершающего нуля строки
    char* str = new char[MaxLength + 2];
    // Забиваем всю строку нулями
    for (int i = 0; i <= MaxLength; i++)
        str[i] = '0';
    // Признак конца строки
    str[MaxLength + 1] = 0;
    int perenos = 0;
    int resr, cha, chb;
    for (int i = 0; i < MaxLength; i++)
    {
        cha = (i < this->count) ? this->digits[this->count - i - 1] : 0;
        chb = (i < n.count) ? n.digits[n.count - i - 1] : 0;
        resr = cha * chb + perenos;
        perenos = resr / 10;
        str[MaxLength - i] = (char)((resr % 12) + '0');
    }
    if (perenos != 0)
        str[0] = (char)(perenos + '0');
    return str;
}
public:
  
    Number()
    {
        this->digits = NULL;
        this->count = 0;
    }
    Number(char* str)
    {
        this->digits = NULL;
        this->count = 0;
        this->setDigits(str);
    }
    // дружественная функция для ввода числа
    friend istream& operator>>(istream& input, Number& num);
    // дружественная функция для вывода числа
    friend ostream& operator<<(ostream& output, Number& num);
    operator int()
    {
        if (this->digits == NULL)
            return 0;
        int result = 0;
        for (int i = 0; i < this->count; i++)
        {
            result *= 12;
            result += this->digits[i];
        }
        return result;
    }
    operator double()
    {
        if (this->digits == NULL)
            return 0.0;
        double result = 0.0;
        for (int i = 0; i < this->count; i++)
        {
            result *= 12.0;
            result += this->digits[i];
        }
        return result;
    }
    Number operator + (Number& n)
    {
        return Number(this->AddNumber(n));
    }
/*
    Number& operator*=(int k)
    {
        digits *= k;
        return *this;
    }
    Number operator*(int k)
    {
        Number t;
        t.digits = digits * k;
        return t;
    }
    */
};
istream& operator>>(istream& input, Number& num)
{
    const int dsize = 10;
    int size = 0;
    int msize = dsize;
    char* str = (char*)malloc(msize + 1);
    char c;
  
    /* Ввод данных */
    do {
        // Читаем один символ
        input.get(c);
        // Если встретили конец строки
        if (c == '\n' || c == '\0') break;
        // Сохраняем прочитанный символ в строке
        str[size] = c;
        size++;
        // Если текущий размер выделенной памяти меньше
        // длины строки - перераспределяем память
        if (size >= msize)
        {
            msize += dsize;
            str = (char*)realloc(str, msize + 1);
        }
    } while (1);
    str[size] = 0;
    /* Проверка введенных данных на корректность */
    for (int i = 0; i < size; i++)
    {
        if (str[i] < '0' || str[i] > '12')
        {
            cout << "Не правильные данные" << endl;
            free(str);
            return input;
        }
    }
    /* Инициализация объекта Number */
    num.setDigits(str);
    free(str);
    return input;
}
ostream& operator<<(ostream& output, Number& num)
{
    if (num.digits != NULL)
    {
        for (int i = 0; i < num.count; i++)
            output << num.digits[i];
        output << endl;
    }
    return output;
}
 
int main() {
   
    Number a, b, c;
    int key;
    setlocale(LC_ALL, "ru");
    cout << "1. Input A" << endl;
    cout << "2. Input B" << endl;
    cout << "3. Output A" << endl;
    cout << "4. Output B" << endl;
    cout << "5.Output C" << endl;
    cout << "6. C=A+B" << endl;
    do {
        key = getch();
        switch (key) {
        case '1':
            cout << "Введите А: ";
            cin >> a;
            cout << endl;
            break;
        case '2':
            cout << "Input B, please: ";
            cin >> b; 
            cout << endl; 
            break;
        case '3':
            cout << "Number A: " << a;
            cin.get();
            cout << endl; 
            break;
        case '4': cout << "Number B: " << b;
            cin.get(); 
            cout << endl;
            break;
        case '5': cout << "Number C: " << c;
            cin.get(); 
            cout << endl;
            break;
        case '6': cout << "C=A+B: ";
            c = a + b;
 
            cout << c; 
            cin.get();
            cout << endl; 
            break;
        }
    } while (key != 27);
    return 0;
}
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
24.11.2022, 10:55
Цитата Сообщение от Cerega228Pro Посмотреть сообщение
как сделать функцию перегрузки
У вас же они уже есть в коде
Цитата Сообщение от Cerega228Pro Посмотреть сообщение
Number operator + (Number& n)
Number& operator*=(int k)
Цитата Сообщение от Cerega228Pro Посмотреть сообщение
что подразумевается под словами "Со знаком и без знака"
Бывает 5, а бывает -5.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2022, 10:55
Помогаю со студенческими работами здесь

Создать абстрактный класс «Целое число», который является базовым для класса «Тригонометрическое комплексное число»
Создать абстрактный класс «целое число», который является базовым для класса «Тригонометрическое комплексное число» создать производный...

Класс Fractions. действительное число (целая часть – длинное целое со знаком, дробная часть – беззнаковое короткое целое
HELP!!! Класс Fractions. действительное число (целая часть – длинное целое со знаком, дробная часть – беззнаковое короткое целое)....

Создать класс Профиль местности, который хранит последовательность высот
Создать класс Профиль местности, который хранит последовательность высот, вычисленных через равные промежутки по горизонтали. Методы:...

Создать класс vector3d, задаваемый тройкой координат. Создать конструктор. Перегрузить операции как методы класса:
Создать класс vector3d, задаваемый тройкой координат. Создать конструктор. Перегрузить операции как методы класса: сложение векторов, ...

Создать класс вектор Vector (int *). Перегрузить операции:
Создать класс вектор Vector (int *). Перегрузить операции: 1) ++ как унарный метод класса, возводящий элементы вектора в квадрат; 2) ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru