С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/22: Рейтинг темы: голосов - 22, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 11.04.2024
Сообщений: 15
1

Напишите три различных алгоритма сортировки строк

06.05.2024, 09:35. Показов 4046. Ответов 42
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, помогите пожалуйста решить задачу: Напишите три различных алгоритма сортировки строк: сортировку пузырьком, сортировку вставками и сортировку слиянием. Создайте программу, которая позволит пользователю выбрать один из алгоритмов и отсортировать введенные строки. Замерьте время выполнения сортировки для строк различной длины (10 символов, 100 символов, 1000 символов, 10000 символов). Постройте графики времени выполнения для каждого алгоритма в зависимости от длины строк. Сделайте выводы о временной сложности каждого алгоритма и их эффективности на различных входных данных.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2024, 09:35
Ответы с готовыми решениями:

Напишите три различных алгоритма сортировки строк
Помогите решить задачу: Напишите три различных алгоритма сортировки строк: сортировку пузырьком,...

Напишите приложение Java для сортировки массива из заданных целых чисел с использованием алгоритма сортировки слиянием
Напишите приложение Java для сортировки массива из заданных целых чисел с использованием алгоритма...

Реализовать три алгоритма внутренней сортировки
1)Реализовать три алгоритма внутренней сортировки (алгоритмы выбрать самостоятельно) 1.1 O(n)...

Реализовать четыре различных алгоритма сортировки одномерного целочисленного массива
Добрый день. Разработать программу на языке «Си», реализующую четыре различных алгоритма...

42
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
06.05.2024, 12:24 2
И в чем проблема?

Добавлено через 10 минут
Единственно я не помню для string нужен свой компаратор или нет.
Пузырёк:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        public static string[] BubbleSort(string[] Gbytes)
        {
            bool swapped = true;
            for (int i = 0; i < Gbytes.Length && swapped; i++)
            {
                swapped = false;
                for (int j = 0; j < Gbytes.Length - i - 1; j++)
                {
                    if (Gbytes[j] <= Gbytes[j + 1]) continue;
                    swapped = true;
                    string t = Gbytes[j + 1];
                    Gbytes[j + 1] = Gbytes[j];
                    Gbytes[j] = t;
                }
            }
            return Gbytes;
        }
0
Эксперт JavaЭксперт по электронике
3119 / 2216 / 555
Регистрация: 04.09.2018
Сообщений: 7,465
Записей в блоге: 3
06.05.2024, 13:17 3
belalugoci, а проверить что написал - не? Этот код даже не скомпилируется, т.к. в нем серьезная ошибка.
0
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
06.05.2024, 14:26 4
Цитата Сообщение от wizard41 Посмотреть сообщение
а проверить что написал - не?
зачем? я нигде не говорил что это окончательный вариант или законченное решение и даже написал про компаратор.

Цитата Сообщение от wizard41 Посмотреть сообщение
Этот код даже не скомпилируется
и? читайте это как псевдокод со всеми вытекающими.

Цитата Сообщение от wizard41 Посмотреть сообщение
в нем серьезная ошибка
серьёзная ошибка тут только в вас.
0
1289 / 868 / 258
Регистрация: 08.08.2014
Сообщений: 2,482
06.05.2024, 14:39 5
Цитата Сообщение от belalugoci Посмотреть сообщение
не помню для string нужен свой компаратор или нет
В случае C# сравнение будет выглядеть вот так:
C#
1
if (Gbytes[j].CompareTo(Gbytes[j + 1]) < 0) continue;
Ну или через статический метод 'string.Compare[Ordinal](....)', если требуется больше параметров сравнения указать.

Не по теме:

Ну и вы всё же использовали тэг 'C#', а не общий 'code', так что ожидается, что код хотя бы компилироваться будет под указанный язык.

0
Эксперт JavaЭксперт по электронике
3119 / 2216 / 555
Регистрация: 04.09.2018
Сообщений: 7,465
Записей в блоге: 3
06.05.2024, 14:40 6
Цитата Сообщение от belalugoci Посмотреть сообщение
даже написал про компаратор
компаратор тут не при чем. А вот сравнивать строки математическими операторами - глупость еще та.
0
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
06.05.2024, 14:41 7
2автор:
Цитата Сообщение от Iluxa_programne Посмотреть сообщение
три различных алгоритма сортировки строк
Цитата Сообщение от Iluxa_programne Посмотреть сообщение
(10 символов, 100 символов, 1000 символов, 10000 символов)
тут с условием проблема, нужна сортировка строк или символов строки? скорее всего речь про сортировку символов в строке, не заданы условия по вводу символов и условиям конвертации/поддержки кодировок. Если это абсолютно не важно, то я бы читал файлами в байтах и не возился бы со строками вовсе. График можно рисовать как в консоли так и на форме или просто рисовать в памяти и сохранять в BMP/PNG - условием это не оговорено. Выбор алгоритма можно сделать через Readkey и обработкой в цикле допустимых значений пока не будет введено верное.
Время можно смотреть через Stopwatch, но даже на 100 символах погрешность будет очень большой. Для современного компьютера 10 и 100 это всё еще синоним слова - мгновенно.
0
John Prick
06.05.2024, 14:55
  #8

Не по теме:

Мимо тёщиного дома я без шуток не хожу...

0
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
06.05.2024, 14:56 9
Цитата Сообщение от wizard41 Посмотреть сообщение
А вот сравнивать строки математическими операторами - глупость еще та.
C#
1
2
3
string a = "fuck";
string b = "you";
Console.WriteLine(a == b);
False

Странно, да?

Цитата Сообщение от kotelok Посмотреть сообщение
Ну и вы всё же использовали тэг 'C#', а не общий 'code', так что ожидается, что код хотя бы компилироваться будет под указанный язык.
Перед тем как мне такое писать предлагаю пройтись по всему форуму и сделать хотя бы половину кода компилируемым. Я уже писал подобного рода претензии к некоторым, на что не встретил понимания ни со стороны оппонентов и ни со стороны администрации. Так что ваши претензии скомкал и выбросил.

Я только опять не понял, в моих темах вы меня отправляли читать литературу по куда более сложным вопросам, а здесь вы почему-то решили что для автора исправление одной ошибки которую подсветит IDE будет нерешаемой задачей. Вы уж будьте последовательны.
0
Эксперт JavaЭксперт по электронике
3119 / 2216 / 555
Регистрация: 04.09.2018
Сообщений: 7,465
Записей в блоге: 3
06.05.2024, 15:00 10
Цитата Сообщение от belalugoci Посмотреть сообщение
Странно, да?
Что тут странного? То что вы не понимаете что такое "=="? Ничего странного тут нет, поэтому совет все еще в силе:
Цитата Сообщение от belalugoci Посмотреть сообщение
меня отправляли читать литературу
0
kotelok
06.05.2024, 15:14
  #11

Не по теме:

Цитата Сообщение от wizard41 Посмотреть сообщение
А вот сравнивать строки математическими операторами - глупость еще та
Ну так-то, в C# вообще нет какого-то жёсткого деления на типы операторов. Ну т.е. есть, например, некая условная группа под названием Arithmetic operators, но даже среди них есть, скажем, оператор '+', который вполне применим к строкам и в этом контексте уже не является арифметическим оператором, а используется для конкатенации строк, скрывая под собой какую-то особую логику.

Ну или перегруженные операторы '==' и '!=' для типа 'string'. Технически, можно ровно так же перегрузить и остальные операторы сравнения, если это вписывается в логику конкретного типа.

Так что для новичка в C#, по мне так, вполне предсказуема попытка сравнения строк подобным образом.

0
wizard41
06.05.2024, 15:19
  #12

Не по теме:

kotelok, тут скорее вопрос в том - какой смысл изначально закладывается в такие конструкции. Разумеется, что можно насоздавать своих вариаций с перегрузками и всем таким.
Но если уж показывать "новичкам" такое, то будь добр привести эти манипуляции, а иначе можно ожидать от таких же новичков следующего вопроса: "Студия подчеркивает вот эту строку... Что делать?".

0
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
06.05.2024, 15:36 13
Цитата Сообщение от wizard41 Посмотреть сообщение
поэтому совет все еще в силе
предлагаю начать с себя, ибо вы не понимаете основ, о чем вам доходчиво написал котелок.

Цитата Сообщение от wizard41 Посмотреть сообщение
тут скорее вопрос
тут нет такого вопроса, есть только то что ты опростоволосился.

Цитата Сообщение от wizard41 Посмотреть сообщение
Студия подчеркивает вот эту строку... Что делать?
Отправляй их читать книги, ты это умеешь делать профессионально.

Цитата Сообщение от wizard41 Посмотреть сообщение
Но если уж показывать "новичкам" такое
Всё куда проще, я взял код из своего проекта где фигурировал byte[] (Gbytes намекает) и заменил его на string.

Столько энергии потрачено на какую-то чушь, лучше бы автору уже код написали раз уж преисполнены такой заботой.
0
Эксперт JavaЭксперт по электронике
3119 / 2216 / 555
Регистрация: 04.09.2018
Сообщений: 7,465
Записей в блоге: 3
06.05.2024, 15:41 14
belalugoci, обычно, отвечающий предлагает рабочий вариант решения, а не заведомую ересь, которая даже не скомпилируется.
Цитата Сообщение от belalugoci Посмотреть сообщение
где фигурировал byte[]
Цитата Сообщение от belalugoci Посмотреть сообщение
и заменил его на string
и... упс! Не срослось что-то. Потому что нет понимания что делаешь. Лишь бы "в лужу пукнуть", а работает или нет - не важно.
0
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
06.05.2024, 16:17 15
Цитата Сообщение от wizard41 Посмотреть сообщение
обычно, отвечающий предлагает рабочий вариант решения, а не заведомую ересь
ну вы сами не следуете своему совету, так что предлагаю вам пройтись в пешее путешествие

Цитата Сообщение от wizard41 Посмотреть сообщение
и... упс! Не срослось что-то
а должно было именно сростись? я кинул сам алгоритм, он полностью рабочий, по вашему мнению тут все книжки уже начитались и всё знают, так что исправить код не проблема.

Цитата Сообщение от wizard41 Посмотреть сообщение
а работает или нет - не важно
реализация алгоритма работает, код легко правится, всё так же как и у вас с задачей про треугольник, ваше решение была неправильным, вам на это указали, вы спустя три страницы допетрили как правильно. С одной разницей, вы там спорили до усеру, что у вас всё правильно, а я не спорю, я лишь отмечаю, что для данной темы точность реализации пузырька в моем коде ни имеет никакого значения.
0
Эксперт JavaЭксперт по электронике
3119 / 2216 / 555
Регистрация: 04.09.2018
Сообщений: 7,465
Записей в блоге: 3
06.05.2024, 16:42 16
Цитата Сообщение от belalugoci Посмотреть сообщение
ваше решение была неправильным, вам на это указали, вы спустя три страницы допетрили как правильно
если бы вы более внимательно читали ту ветку с самого начала, то возможно, до вас бы дошло, что я с самого начала указывал на множественную вариативность решения той задачи. Это видно таким как я - сразу. Но чтобы другой человек, высказывающийся в той же теме дошел до этого понимания "самостоятельно", я поддержал его идеи и ждал, когда же это понимание придет. И в отличие от вас, он оказался на самом деле думающим оппонентом. А не пустышкой с никчемной болтовней.
Цитата Сообщение от belalugoci Посмотреть сообщение
что у вас всё правильно
Именно так и было, на том этапе.

Добавлено через 3 минуты
belalugoci, что же касательно этого топика - задачу вы не решили, предложили изначально ошибочный вариант, даже не удосужившись его проверить на сборку. Для чего? Вам на это указали, но зачем изменять своим привычкам? Надо сразу кидаться слюнями на всех.
0
667 / 264 / 28
Регистрация: 01.06.2018
Сообщений: 3,353
06.05.2024, 17:54 17
Цитата Сообщение от wizard41 Посмотреть сообщение
я с самого начала указывал на множественную вариативность решения той задачи
ну а я сразу давал псевдокод реализации алгоритма, в чем разница-то? или у вас есть право иметь мнение и не перед кем не оправдываться, а я лох по жизни и кому-то что-то всегда должен?

Цитата Сообщение от wizard41 Посмотреть сообщение
задачу вы не решили
А я её решал?

Цитата Сообщение от wizard41 Посмотреть сообщение
предложили изначально ошибочный вариант
И в чем он ошибочный? Я понимаю что код с ошибками и не компилируется, как бы кто спорил бы, но в чем ошибочность предложенного метода?

Цитата Сообщение от wizard41 Посмотреть сообщение
даже не удосужившись его проверить на сборку
А когда наступил момент что проверка кода на работоспособность стала обязанностью?

Цитата Сообщение от wizard41 Посмотреть сообщение
Для чего?
Я общаюсь с автором топика, а не с вами, претензии автора я буду рассматривать, а с вашими претензиями я вам предлагаю пройтись.

Цитата Сообщение от wizard41 Посмотреть сообщение
Надо сразу кидаться слюнями на всех
Я пока вижу что я один тут вообще хоть что-то пишу автору топика, а вот у вас подгорает чего-то и хочется пообщаться видимо от нереализованных каких-то проблем. Башку лечите.
0
Любознательный
6703 / 1965 / 336
Регистрация: 10.03.2016
Сообщений: 4,572
06.05.2024, 18:32 18
Для разрядки:
Секретный алгоритм
Напишите три различных алгоритма сортировки строк

7
Эксперт JavaЭксперт по электронике
3119 / 2216 / 555
Регистрация: 04.09.2018
Сообщений: 7,465
Записей в блоге: 3
06.05.2024, 18:34 19
belalugoci, вы будете решать задание, по пути исправив свои ошибки? Или вам помочь?
Цитата Сообщение от belalugoci Посмотреть сообщение
тут с условием проблема, нужна сортировка строк или символов строки?
никаких проблем с условием тут нет. Все предельно ясно.
Цитата Сообщение от belalugoci Посмотреть сообщение
скорее всего речь про сортировку символов в строке
Написано же: "сортировка строк", что предполагает любые строки, в т.ч. однословные. Про символы речи не идет. Скрываетесь за попыткой "не понять" задачу?
Цитата Сообщение от belalugoci Посмотреть сообщение
я бы читал файлами в байтах
Вы о чем? ТС ни про какие файлы не говорит. Строки скорее всего вводятся в консоли:
Цитата Сообщение от Iluxa_programne Посмотреть сообщение
и отсортировать введенные строки
Цитата Сообщение от belalugoci Посмотреть сообщение
Для современного компьютера 10 и 100
тогда может считать в тактах ЦП?
0
Эксперт JavaЭксперт по электронике
3119 / 2216 / 555
Регистрация: 04.09.2018
Сообщений: 7,465
Записей в блоге: 3
06.05.2024, 19:30 20
Лучший ответ Сообщение было отмечено Iluxa_programne как решение

Решение

Iluxa_programne,
Методы сортировок

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
static string bubble(string str)
{
    string[] parts = str.Split(new char[] { ' ', ',', ':', '.' }, StringSplitOptions.RemoveEmptyEntries);
 
    for (int i = 0; i < parts.Length; i++)
        for (int j = i + 1; j < parts.Length; j++)
            if (parts[i].CompareTo(parts[j]) > 0)
                (parts[j], parts[i]) = (parts[i], parts[j]);
 
    return string.Join(" ", parts);
}
 
static string insert(string str)
{
    string[] parts = str.Split(new char[] { ' ', ',', ':', '.' }, StringSplitOptions.RemoveEmptyEntries);
 
    for (int i = 1; i < parts.Length; i++)
    {
        string k = parts[i];
        int j = i - 1;
 
        while (j >= 0 && parts[j].CompareTo(k) > 0)
            parts[j + 1] = parts[j--];
        parts[j + 1] = k;
    }
    return string.Join(" ", parts);
}
 
static string merge(string str)
{
    string[] parts = str.Split(new char[] { ' ', ',', ':', '.' }, StringSplitOptions.RemoveEmptyEntries);
    if (parts.Length == 0 || parts.Length == 1)
        return str;
 
    return string.Join(" ", mergeSort(parts, 0, parts.Length - 1));
}
 
static void mergeCore(string[] arr, int low, int mid, int hi)
{
    int l = low, r = mid + 1, idx = 0;
    string[] tmp = new string[1 + hi - low];
 
    while ((l <= mid) && (r <= hi))
    {
        if (arr[l].CompareTo(arr[r]) < 0)
            tmp[idx] = arr[l++];
        else
            tmp[idx] = arr[r++];
        idx++;
    }
 
    for (var i = l; i <= mid; i++)
        tmp[idx++] = arr[i];
 
    for (var i = r; i <= hi; i++)
        tmp[idx++] = arr[i];
 
    for (var i = 0; i < tmp.Length; i++)
        arr[low + i] = tmp[i];
}
 
static string[] mergeSort(string[] str, int low, int hi)
{
    if (low < hi)
    {
        int mid = (low + hi) >> 1;
        mergeSort(str, low, mid);
        mergeSort(str, mid + 1, hi);
        mergeCore(str, low, mid, hi);
    }
    return str;
}

Замеряем...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string s = "Напишите три различных алгоритма сортировки строк: сортировку пузырьком, сортировку вставками и сортировку слиянием";
 
Stopwatch sw = Stopwatch.StartNew();
Console.WriteLine(bubble(s));
sw.Stop();
Console.WriteLine($"Elapsed [ms/ticks]: {sw.ElapsedMilliseconds}/{sw.ElapsedTicks}\n");
 
sw.Restart();
Console.WriteLine(insert(s));
sw.Stop();
Console.WriteLine($"Elapsed [ms/ticks]: {sw.ElapsedMilliseconds}/{sw.ElapsedTicks}\n");
 
sw.Restart();
Console.WriteLine(merge(s));
sw.Stop();
Console.WriteLine($"Elapsed [ms/ticks]: {sw.ElapsedMilliseconds}/{sw.ElapsedTicks}\n");

Результаты

Напишите три различных алгоритма сортировки строк


Несмотря на то, что в измеренное время так же входят операции не относящиеся к сортировке как к таковой (разбитие строк/вывод в консоль), все же, общая картина складывается в пользу сортировки вставками, что на данной длине строки вполне логично. Для более длинных строк рекомендую поэкспериментировать самостоятельно и сравнить результаты (там положение вещей заметно изменится).

Цитата Сообщение от belalugoci Посмотреть сообщение
График можно рисовать как в консоли так и на форме или просто рисовать в памяти
Графики студенты рисуют в рабочих конспектах, а не программным способом, ибо на момент изучения видов сортировок они априори не обладают достаточными знаниями для отрисовки графиков нигде: ни в консоли ни где-либо еще.
5
06.05.2024, 19:30
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2024, 19:30
Помогаю со студенческими работами здесь

Реализовать три любых алгоритма сортировки матрицы на выбор
Всем привет форумчане, сижу и ломаю голову над заданной задачей. А точнее как ее реализовать т.к в...

Выбор алгоритма сортировки строк!
Дан массив строк. Каждый элемент массива содержит одно слово. Отсортировать массив по алфавиту....

Напишите программу, которая из букв вашей фамилии составляет три различных слова
Вы вводите с клавиатуры вашу фамилию в строчковую строковую переменную x. Напишите программу на...

Напишите процедуру сортировки строк в обратном алфавитном порядке
Помогите пожалуйста решить задачу, очень надо к пятнице. 3)Напишите процедуру сортировки строк...

Напишите процедуру сортировки строк в обратном алфавитном порядке
Задача:Напишите процедуру сортировки строк в обратном алфавитном порядке. Код : class Program...

Напишите программу для сортировки заданного смешанного списка целых чисел и строк с помощью лямбда-функции
Напишите программу для сортировки заданного смешанного списка целых чисел и строк с помощью...

Реализуйте на практике 2 алгоритма поиска и 2 алгоритма сортировки. Результаты сравните
Всем привет! Я в С++ абсолютный чайнег, поэтому за дебильные вопросы сапогами не пинайте))) в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Блоги программистов
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­хро­н­н­ы­й счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru