Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/91: Рейтинг темы: голосов - 91, средняя оценка - 4.92
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236

Возведение в степень, отрицательные числа

25.07.2013, 14:13. Показов 19582. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В библиотеке <cmath> есть такая функция pow(A,B) - получаешь результат возведения A в степень B
Решил написать свой pow с положительными числами работает, а вот с отрицательными я не могу понять как правильно,
1. -2 в 2 степени, на яндексе показывает что должно быть -4, обычный калькулятор показывает -4, pow(A,B) из <cmath> показывает 4, мой pow тоже показывает 4
2. -2 в 3 степени, везде показывает -8 (в том числе и у меня)

по поводу первого варианта, так как все же правильно, -2 в 2 степени, 4 или -4?

PS, да, мне стыдно что я не помню школьную математику.. с каждым может случится..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2013, 14:13
Ответы с готовыми решениями:

Возведение из числа степень
Прошу помочь. Вводим любое число n и надо возвести её степень. (притом, должно быть или 2 в степени x, или 3) Например: n=81 &gt;&gt;...

Возведение числа а в степень n
Возведение числа а в степень n ,задача не проста чем , 1&lt;=а&lt;=10 | 1&lt;=n&lt;=7000 Степень может быть 7000 , и тут у меня возникли трудности ,...

Возведение числа в степень!
Хай всем кто на форуме! Помогите с задачей! Надо возвести число в степень #include &lt;iostream&gt; using namespace std; int...

53
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
25.07.2013, 16:44  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- гнилой код (прошу без обид)
Ну какие могут быть обиды если по делу, я же не быдло что бы обижаться за дело, только тогда просьба предоставить код, который будет работать лучше моего (по всем или почти по всем параметрам), а то сказать что плохо, но не сказать как лучше, не мудрено..

Насчет формулы, зачем она мне нужна я не понимаю? не понимаю в принципе, тут у меня 2 переменных, число и степень, в итоге 30 строк кода, а в формуле куда больше, в чем смысл? может ты ошибся темой?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.07.2013, 17:29
Цитата Сообщение от VLK Посмотреть сообщение
Ну какие могут быть обиды если по делу, я же не быдло что бы обижаться за дело, только тогда просьба предоставить код, который будет работать лучше моего (по всем или почти по всем параметрам), а то сказать что плохо, но не сказать как лучше, не мудрено..
- что подразумевает да ты лучше не напишешь. Друг я напишу любой алгоритм, зачем мне что то кому то доказывать? Я привёл формулы, которые математически обоснованы и предельно корректны, это уже дело третье будешь брать их в работу или использовать алгоритм который так никогда и не возведёт дробное в дробное.
Коды разложений здесь https://www.cyberforum.ru/faq/... ost2452211
Цитата Сообщение от VLK Посмотреть сообщение
может ты ошибся темой?
- поверь я написал как никогда по адресу.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
25.07.2013, 17:35
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
VLK, есть отличная формула, которая выводится на основании свойств логАрифма
- формула действительно хорошая. Но она не позволяет возводить в степень отрицательные числа (т.к. логарифм отрицательного числа не существует). Поэтому отрицательные числа в целую степень следует возводить умножением, а в нецелую - только в комплексной области...
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
25.07.2013, 17:49
Цитата Сообщение от Catstail Посмотреть сообщение
- формула действительно хорошая. Но она не позволяет возводить в степень отрицательные числа (т.к. логарифм отрицательного числа не существует). Поэтому отрицательные числа в целую степень следует возводить умножением, а в нецелую - только в комплексной области...
- зачем?
Catstail, модуль комплексного числа - есть число вещественное, вот мы его и находим...
Миниатюры
Возведение в степень, отрицательные числа  
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
25.07.2013, 17:57
Мне тоже интересно увидеть функцию, которая будет возводить отрицательное число в вещественную степень.
0
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
25.07.2013, 18:08  [ТС]
-=ЮрА=-, это.. я не насмехался, и у меня не было ни какого сарказма, и я не просил что то доказывать, когда я просил написать, мне это нужно было исключительно для того, что бы сравнить с моими каракулями и сделать выводы, способствующие улучшению производительности моей программы, ну и для самосовершенствования.
Насчет формулы, я действительно не понимаю как она относится к возведению в степень (видимо из-за моей тупости).
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
25.07.2013, 18:09
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- зачем?
- что "зачем"??? Модуль любого числа можно возвести в любую степень без проблем (как раз по формуле, на которую Вы ссылаетесь). А вот отрицательное число в вещественной степени будет, вообще говоря, комплексным. Формула работать будет (только вместо вещественного натурального логарифма нужно использовать его аналитическое расширение - Ln).
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
26.07.2013, 09:38
Цитата Сообщение от Catstail Посмотреть сообщение
что "зачем"??? Модуль любого числа можно возвести в любую степень без проблем (как раз по формуле, на которую Вы ссылаетесь). А вот отрицательное число в вещественной степени будет, вообще говоря, комплексным. Формула работать будет (только вместо вещественного натурального логарифма нужно использовать его аналитическое расширение - Ln).
-
Ещё раз, не надо переводить в комплексую форму, не надо мучаться с классом комплексное число, а тем более с методом xpow. Есть одно замечательное свойство комплекса, который получается в результате, я привёл его на рисунке.

Не по теме:

(кто понимает в чём речь - то да для всех комплексов такая фаза).
Вот над доказательством я работаю. а так берём в работу да не парим мозг.


Следует заметить что тэйлор по логорифму натуральному и экспоненте реализовать в разы легче чем городить тучу кода для функции комплексного переменного. Так что вот это
Цитата Сообщение от Catstail Посмотреть сообщение
Поэтому отрицательные числа в целую степень следует возводить умножением, а в нецелую - только в комплексной области...
ни есть догма если использовать не стандартные подходы широко расписанные в учебниках.
mcd в аттаче.
Миниатюры
Возведение в степень, отрицательные числа  
Вложения
Тип файла: rar exp.mcd.rar (2.6 Кб, 4 просмотров)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
26.07.2013, 09:43
-=ЮрА=-, но отрицательное число в вещественной степени есть, вообще говоря, число комплексное? Или нет? Как его рационально вычислить - вопрос другой.
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
26.07.2013, 10:01
Цитата Сообщение от Catstail Посмотреть сообщение
-=ЮрА=-, но отрицательное число в вещественной степени есть, вообще говоря, число комплексное? Или нет? Как его рационально вычислить - вопрос другой.
- я и не говорил что отрицательное число не даст комплекса я сказал лишь о том что достаточно найти модуль комплекса с использованием логорифма и экспонеты, а затем привести к алгебраической форме записи используя фазу https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{\pi }{10}
https://www.cyberforum.ru/cgi-bin/latex.cgi?\hat{c} = |c|*cos(\frac{\pi }{10}) + j*|c|*sin(\frac{\pi }{10})
И будет на много быстрее чем использовать функцию комплексного переменного, вот и всё. Стояла задача максимально быстрого алгоритма - ну вот он и есть максимально быстрый алгоритм.
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
26.07.2013, 10:23
Цитата Сообщение от castaway Посмотреть сообщение
Мне тоже интересно увидеть функцию, которая будет возводить отрицательное число в вещественную степень.
Класс комплексных чисел.
Кликните здесь для просмотра всего текста
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
#include<cstdlib>
#include<iomanip>
#include<iostream>
#include<cmath>
using namespace std;
class CoplexNumber
{
private:
    float x;    //Действительная часть
    float y;    //Мнимая часть
public:
    CoplexNumber(): x(0), y(0)
    {}
    CoplexNumber(float _x): x(_x), y(0)
    {}
    CoplexNumber(float _x, float _y): x(_x), y(_y)
    {}
    friend CoplexNumber operator+ (CoplexNumber , CoplexNumber );
    friend CoplexNumber operator- (CoplexNumber , CoplexNumber );    
    friend CoplexNumber operator* (CoplexNumber , CoplexNumber );        
    friend CoplexNumber operator/ (CoplexNumber , CoplexNumber );  
    friend CoplexNumber ln (CoplexNumber );
    friend CoplexNumber exp (CoplexNumber ); 
    friend CoplexNumber pow (CoplexNumber , CoplexNumber ); 
    void ShowCoplexNumber()
    {
        cout << x << setiosflags(ios::showpos) << y << resetiosflags(ios::showpos) << "i" << endl;   
    }         
};
CoplexNumber operator+ (CoplexNumber z1, CoplexNumber z2)
{
   return   CoplexNumber(z1.x + z2.x, z1.y + z2.y);  
}
CoplexNumber operator- (CoplexNumber z1, CoplexNumber z2)
{
   return   CoplexNumber(z1.x - z2.x, z1.y - z2.y);  
} 
CoplexNumber operator* (CoplexNumber z1, CoplexNumber z2)
{
   return   CoplexNumber(z1.x * z2.x - z1.y * z2.y, z1.x * z2.y + z1.y * z2.x);  
}
CoplexNumber operator/ (CoplexNumber z1, CoplexNumber z2)
{
   CoplexNumber temp;
   temp.x =  (z1.x * z2.x - z1.y * z2.y)/((z2.x * z2.x + z2.y * z2.y));
   temp.y =  (z1.y * z1.x - z2.y * z2.y)/((z2.x * z2.x + z2.y * z2.y));
   return   temp;  
}  
CoplexNumber ln (CoplexNumber z)
{
    CoplexNumber temp;
    temp.x =  0.5 * log(z.x * z.x + z.y * z.y);
    temp.y =  atan(z.y / z.x);
    return temp;    
}   
CoplexNumber exp (CoplexNumber z)
{
    CoplexNumber temp;
    temp.x =  exp(z.x) * cos(z.y);
    temp.y =  exp(z.x) * sin(z.y);
    return temp;    
}
CoplexNumber pow (CoplexNumber z1, CoplexNumber z2)
{
    return exp(z2 * ln(z1));         
}  
int main(int argc, char *argv[])
{
    system("chcp 1251>0");
    CoplexNumber w1(3.7, 2.5),w2(4.3, 2.2), w3;
    cout << "Исходные комплексные числа: " << endl;
    w1.ShowCoplexNumber();
    w2.ShowCoplexNumber();
    cout << "Сложение комплексных чисел: " << endl;
    w3 = w1 + w2;
    w3.ShowCoplexNumber();
    cout << "Вычитание комплексных чисел: " << endl;
    w3 = w1 - w2;
    w3.ShowCoplexNumber(); 
    cout << "Умножение комплексных чисел: " << endl;
    w3 = w1 * w2;
    w3.ShowCoplexNumber(); 
    cout << "Деление комплексных чисел: " << endl;
    w3 = w1 / w2;
    w3.ShowCoplexNumber();
    cout << "Возведение в степень комплексных чисел: " << endl;
    w3 = pow(w1 ,w2);
    w3.ShowCoplexNumber();   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Не думаю, что ряды дадут хорошую точность. За этим придется отдельно следить, что превратит код в подобие анархии.
P.S. на чистоту кода не претендую.
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
26.07.2013, 10:28
Цитата Сообщение от Ilot Посмотреть сообщение
Не думаю, что ряды дадут хорошую точность. За этим придется отдельно следить, что превратит код в подобие анархии.
P.S. на чистоту кода не претендую.
- ряды дают любую точность, в отличие от стандартных функций, в которых теже разложения обрубываются на при погрешности
1E-6...1E-8

Добавлено через 51 секунду

Не по теме:


Сама суть задания предполагала отказ от любых функций math.h

Цитата Сообщение от Ilot Посмотреть сообщение
C++
49
50
51
52
53
54
55
56
57
58
59
60
61
62
CoplexNumber ln (CoplexNumber z)
{
    CoplexNumber temp;
    temp.x =  0.5 * log(z.x * z.x + z.y * z.y);
    temp.y =  atan(z.y / z.x);
    return temp;    
}   
CoplexNumber exp (CoplexNumber z)
{
    CoplexNumber temp;
    temp.x =  exp(z.x) * cos(z.y);
    temp.y =  exp(z.x) * sin(z.y);
    return temp;    
}
- а если маташа не будет?

0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
26.07.2013, 10:52
-=ЮрА=-, полностью с вами согласен. Но я ведь не зря привел цитату вопроса на который давал ответ. По теме: данный класс позволяет возводить любое число в любую степень, а значит дает ответ на вопрос автора:
Решил написать свой pow с положительными числами работает, а вот с отрицательными я не могу понять как правильно,
Сама суть задания предполагала отказ от любых функций math.h
Я не гордый ткните меня мордой где автор об этом написал? Мне кажется у него были проблеммы только с возведением в степень отрицательных чисел.

Добавлено через 17 минут
Нашел ошибку в коде из-за которого класс не правильно работал с чисто отрицательными числами. Нужно заменить:
C++
1
    temp.y =  atan2(z.y , z.x);
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,704
Записей в блоге: 14
26.07.2013, 11:21
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
я и не говорил что отрицательное число не даст комплекса я сказал лишь о том что достаточно найти модуль комплекса с использованием логорифма и экспонеты, а затем привести к алгебраической форме записи используя фазу
- OK, согласен. Пардон...
0
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
26.07.2013, 11:28  [ТС]
Цитата Сообщение от Ilot Посмотреть сообщение
Я не гордый ткните меня мордой где автор об этом написал? Мне кажется у него были проблеммы только с возведением в степень отрицательных чисел.
У меня была проблема с тем, что я забыл школьную математику и используя интернет и не смог для себя уяснить как считать возведение в степень отрицательных чисел (в одном месте считало что в итоге получалось со знаком "+", в другом месте, тоже самое уже со знаком "-").

А вот если допустим отрицательная степень, то я нашел ответ. Там сначала надо просто возвести в степень, а потом 1 разделить на полученное значение.

И все же я так и не услышал что именно в моем коде не так, при том, что он создан исключительно для того, что бы возводить в степень.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.07.2013, 11:40
Цитата Сообщение от VLK Посмотреть сообщение
И все же я так и не услышал что именно в моем коде не так, при том, что он создан исключительно для того, что бы возводить в степень.
Код ужасен, но работает.
0
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
26.07.2013, 11:42  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
Код ужасен, но работает.
Так что именно ужасного, зачем говорить А, при этом не говорить Б.
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
26.07.2013, 11:48

Не по теме:

Цитата Сообщение от VLK Посмотреть сообщение
в одном месте считало что в итоге получалось со знаком "+", в другом месте, тоже самое уже со знаком "-"
Не верю! Скорее ты неправильно вводил формулы.


А твой алгоритм плох тем, что его можно было сделать короче - у тебя дублируются некоторые блоки кода. А во вторых, алгоритм будет работать медленно. Лучше реализовать алгоритм бинарного возведения в степень, либо вообще его обобщение, основанное на поиске кратчайшей аддитивной цепочки. (Это все применимо только для целых степеней)
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
26.07.2013, 11:49
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
long double my_pow(long double number, short int _pow)
 
{
long double temp = 0; // временное значение
unsigned short int counter = 1; // счетчик
temp = number;
    
if (_pow > 0)
{
for ( ; counter < _pow; counter++)
{ temp = temp * number; }
return temp;
}
 
else if (_pow < 0)
{
_pow = 0 - _pow;
 
for ( ; counter < _pow; counter++)
{ temp = temp * number; }
temp = 1 / temp;
return temp;
}
 
else if (_pow == 0)
{ return 1; }
}
Неужели ты сам не видишь? Ужасный стиль написания: нет отступов (скопы вообще не читаемы), какие-то лишние пустые строки, последние условие вообще не нужно (_pow == 0 вытекает из обстоятельств), лишняя переменная temp.
1
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
26.07.2013, 11:58
И все же я так и не услышал что именно в моем коде не так, при том, что он создан исключительно для того, что бы возводить в степень.
Вот именно. Код работает только для целых степеней.
Такой код не лучше?
C++
1
2
3
4
5
6
7
long double my_pow(long double number, short int _pow)
{
    long double temp = 1; // временное значение
    for (int count = 0; count < abs(_pow); count++)
       temp *= number;
    return (_pow > 0) ? temp: 1/temp;
}
А во вторых, алгоритм будет работать медленно. Лучше реализовать алгоритм бинарного возведения в степень, либо вообще его обобщение, основанное на поиске кратчайшей аддитивной цепочки. (Это все применимо только для целых степеней)
nonedark2008, не сочтите за труд указать рабу божьему где можно почитать о такого рода алгоритмах?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.07.2013, 11:58
Помогаю со студенческими работами здесь

Возведение числа в степень n-1
Есть формула {(-1)}^{n-1}*{3}^{n-1} , n увеличивается циклом на 1. Как записать числа в степень n-1 без пользов. и стандартных функций??...

Возведение числа n в степень m.
Написать программу - возведение числа n в m-ю степень. Входные данные поступают с клавиатуры. Результат выводится на экран.

Возведение числа в степень
Помогите написать программу, возводящщую число M в степень N (-10&lt;M&lt;10, 0&lt;N&lt;10 - проверить выполнение данных условий)

Рекурсивное возведение в степень числа
Рекурсивная функция,которая принимает 2 параметра:первый-число,второй-степень в которую нужно возвести число.Всё просто.Но до моей тупой...

Возведение числа в степень через for
Нужна программа для возведения числа в степень через for


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru