Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322

Сортировка двумерного массива методом qsort

15.08.2018, 14:10. Показов 6918. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
#include <iostream>
 
using namespace std;
std::string data[][3];
 
int cmp(const void *a, const void *b)
{
    string *arr1 = (string*)a; //{213,321}
    string *arr2 = (string*)b; //{13,999}
    
    return  (arr1< arr2) - (arr2<arr1);
 
    //return (arr1[0] + arr1[1]) < (arr2[0] + arr2[1]) ? -1 : 1;
}
 
int main()
{
    //const int N = 5;
    //
    //int arr[][2] = {
    //  {-213,-321},
    //  {13,999},
    //  {93,123},
    //  {3,1},
    //  {32,12}
    //};
 
    size_t i = 0;
        qsort(data, 200, sizeof(data[i++][0]), cmp);
    
    //std::vector<int> vc = { 23,3214,4536,6547,76,23,23 };
    //auto it = vc.
 
    //sort(vc.begin(), vc.end());
    
    
    
 
    /*for (size_t i = 0; i < N; i++)
    {
        printf("%d %d \n", arr[i][0], arr[i][1]);
    }
    std::cout << std::endl;
*/
    
    for (size_t i = 0; i < 200; i++)
    {
        std::cout << data[i][0].c_str() << "\t" << data[i][1].c_str() << "\t" << data[i][2].c_str()<< "\n";
    }
    system("pause");
    return 0;
}
 
std::string data[][3] = {
        { "x", "67", "16" },
        { "w", "98", "93" },
        { "g", "1", "71" },
        { "p", "21", "3" },
        { "q", "88", "35" },
        { "b", "76", "61" },
        { "w", "83", "25" },
        { "u", "19", "94" },
        { "t", "98", "90" },
        { "w", "6", "79" },
        { "e", "45", "66" },
        { "r", "16", "14" },
        { "s", "55", "94" },
        { "o", "47", "30" },
        { "p", "6", "52" },
        { "e", "5", "59" },
        { "k", "36", "22" },
        { "g", "54", "8" },
        { "h", "38", "98" },
        { "n", "75", "29" },
        { "x", "12", "3" },
        { "b", "3", "62" },
        { "r", "61", "2" },
        { "q", "81", "79" },
        { "g", "39", "6" },
        { "z", "99", "74" },
        { "b", "32", "88" },
        { "s", "50", "1" },
        { "q", "26", "71" },
        { "u", "40", "69" },
        { "a", "70", "93" },
        { "k", "95", "42" },
        { "b", "88", "31" },
        { "w", "79", "44" },
        { "u", "3", "21" },
        { "m", "39", "23" },
        { "a", "46", "51" },
        { "t", "86", "8" },
        { "h", "46", "11" },
        { "r", "53", "85" },
        { "e", "49", "12" },
        { "h", "32", "23" },
        { "y", "54", "39" },
        { "p", "85", "17" },
        { "f", "46", "38" },
        { "a", "47", "21" },
        { "a", "51", "63" },
        { "a", "67", "75" },
        { "b", "38", "17" },
        { "p", "94", "37" },
        { "d", "68", "12" },
        { "k", "9", "90" },
        { "f", "48", "77" },
        { "m", "52", "91" },
        { "m", "25", "71" },
        { "w", "4", "51" },
        { "b", "10", "40" },
        { "o", "52", "67" },
        { "x", "52", "72" },
        { "n", "42", "50" },
        { "w", "92", "55" },
        { "l", "17", "24" },
        { "c", "24", "56" },
        { "r", "29", "6" },
        { "w", "51", "4" },
        { "k", "57", "41" },
        { "x", "93", "51" },
        { "r", "67", "25" },
        { "x", "27", "93" },
        { "f", "45", "49" },
        { "h", "60", "4" },
        { "y", "81", "60" },
        { "y", "68", "6" },
        { "k", "19", "9" },
        { "e", "94", "74" },
        { "h", "39", "6" },
        { "f", "35", "1" },
        { "k", "30", "49" },
        { "z", "55", "41" },
        { "v", "4", "69" },
        { "s", "80", "58" },
        { "r", "67", "83" },
        { "u", "26", "61" },
        { "d", "4", "47" },
        { "t", "48", "21" },
        { "z", "49", "76" },
        { "k", "2", "81" },
        { "o", "26", "87" },
        { "i", "86", "51" },
        { "i", "85", "76" },
        { "o", "8", "23" },
        { "o", "70", "65" },
        { "d", "7", "38" },
        { "x", "14", "12" },
        { "d", "50", "18" },
        { "p", "95", "11" },
        { "j", "35", "32" },
        { "z", "57", "38" },
        { "e", "68", "13" },
        { "t", "58", "31" },
        { "b", "23", "56" },
        { "u", "37", "5" },
        { "b", "7", "62" },
        { "l", "61", "96" },
        { "z", "6", "31" },
        { "w", "30", "23" },
        { "z", "14", "58" },
        { "g", "86", "84" },
        { "r", "21", "96" },
        { "b", "11", "90" },
        { "q", "97", "59" },
        { "c", "42", "28" },
        { "f", "86", "93" },
        { "f", "98", "55" },
        { "x", "72", "53" },
        { "k", "33", "38" },
        { "l", "18", "87" },
        { "i", "15", "36" },
        { "e", "45", "60" },
        { "v", "63", "88" },
        { "s", "78", "9" },
        { "u", "63", "77" },
        { "g", "32", "78" },
        { "b", "9", "6" },
        { "b", "77", "76" },
        { "r", "67", "97" },
        { "q", "74", "98" },
        { "w", "88", "91" },
        { "n", "9", "46" },
        { "d", "90", "5" },
        { "a", "81", "74" },
        { "o", "82", "41" },
        { "a", "7", "52" },
        { "j", "46", "12" },
        { "o", "90", "51" },
        { "z", "8", "24" },
        { "a", "40", "10" },
        { "o", "64", "80" },
        { "z", "15", "36" },
        { "r", "25", "85" },
        { "u", "38", "83" },
        { "i", "95", "93" },
        { "c", "42", "54" },
        { "h", "49", "5" },
        { "x", "48", "72" },
        { "z", "2", "89" },
        { "r", "48", "30" },
        { "a", "90", "49" },
        { "h", "56", "39" },
        { "r", "32", "40" },
        { "r", "3", "12" },
        { "w", "27", "19" },
        { "g", "26", "52" },
        { "c", "35", "60" },
        { "z", "60", "94" },
        { "k", "24", "51" },
        { "z", "98", "36" },
        { "o", "61", "93" },
        { "o", "23", "34" },
        { "i", "34", "44" },
        { "r", "54", "47" },
        { "s", "20", "22" },
        { "n", "53", "24" },
        { "j", "88", "76" },
        { "y", "45", "89" },
        { "d", "85", "24" },
        { "t", "8", "84" },
        { "r", "75", "69" },
        { "v", "12", "69" },
        { "k", "37", "43" },
        { "l", "64", "74" },
        { "g", "60", "13" },
        { "a", "83", "1" },
        { "q", "50", "59" },
        { "m", "62", "51" },
        { "p", "15", "97" },
        { "l", "34", "30" },
        { "f", "29", "26" },
        { "y", "76", "71" },
        { "e", "86", "99" },
        { "j", "13", "92" },
        { "l", "76", "90" },
        { "d", "59", "38" },
        { "j", "19", "36" },
        { "j", "88", "11" },
        { "c", "98", "4" },
        { "y", "46", "25" },
        { "y", "38", "84" },
        { "y", "60", "97" },
        { "z", "8", "24" },
        { "l", "68", "8" },
        { "s", "5", "20" },
        { "z", "81", "32" },
        { "f", "65", "91" },
        { "f", "23", "63" },
        { "n", "41", "59" },
        { "r", "94", "42" },
        { "z", "70", "72" },
        { "d", "23", "74" },
        { "l", "74", "23" },
        { "a", "1", "84" },
        { "u", "72", "12" },
        { "o", "30", "2" },
        { "r", "57", "97" },
        { "d", "4", "13" },
        { "v", "66", "94" },
        { "g", "63", "86" },
        { "z", "88", "64" },
        { "z", "89", "59" },
        { "g", "37", "4" },
        { "n", "47", "45" },
        { "l", "2", "32" },
        { "k", "54", "79" },
        { "b", "52", "28" },
        { "r", "10", "32" },
        { "d", "1", "58" },
        { "m", "51", "68" },
        { "q", "69", "69" },
        { "f", "95", "65" },
        { "p", "20", "41" },
        { "v", "88", "23" },
        { "a", "76", "66" },
        { "x", "19", "41" },
        { "e", "94", "40" },
        { "q", "86", "77" },
        { "p", "42", "38" },
        { "m", "4", "26" },
        { "k", "51", "97" },
        { "n", "55", "77" },
        { "a", "54", "9" },
        { "h", "47", "42" },
        { "r", "72", "59" },
        { "e", "94", "77" },
        { "l", "32", "86" },
        { "i", "71", "99" },
        { "j", "13", "69" },
        { "m", "93", "4" },
        { "g", "52", "39" },
        { "c", "91", "69" },
        { "a", "28", "17" },
        { "j", "33", "23" },
        { "b", "56", "97" },
        { "d", "87", "83" },
        { "p", "4", "74" },
        { "c", "19", "21" },
        { "s", "46", "69" },
        { "m", "64", "30" },
        { "h", "25", "29" },
        { "t", "33", "62" },
        { "a", "4", "6" },
        { "y", "59", "59" },
        { "v", "32", "2" },
        { "o", "40", "7" },
        { "r", "91", "58" },
        { "o", "37", "85" },
        { "e", "22", "67" },
        { "d", "49", "30" },
        { "g", "4", "33" },
        { "b", "60", "97" },
        { "k", "37", "20" },
        { "z", "99", "48" },
        { "j", "3", "41" },
        { "p", "44", "79" },
        { "n", "95", "55" },
        { "t", "49", "1" },
        { "v", "97", "23" },
        { "t", "19", "61" },
        { "v", "67", "11" },
        { "y", "7", "63" },
        { "i", "55", "65" },
        { "g", "70", "56" },
        { "h", "98", "1" },
        { "m", "45", "71" },
        { "y", "78", "87" }
};
Подскажите что не так?! Пожалуйсто
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.08.2018, 14:10
Ответы с готовыми решениями:

Сортировка двумерного массива методом выбора
Создать двумерный массив 5х5. Заполнить случайными числами. Отсортировать выбором в порядке возрастания.

Сортировка двумерного массива методом пузырька
создать двумерный массив, заполнить его случайными числами от 1 до 50, отсортировать от минимального до максимального. Если в массиве...

Сортировка двумерного массива методом выбора
Здравствуйте! В книге С/С++ Павловская, метод выбора показан для одномерного массива таким способом: for (i = 0; i &lt; n - 1; i++)...

10
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
15.08.2018, 14:41
не так то, что ты пытаешься хранить совершенно разнородные данные в массиве.
не надо так. Как минимум для этого есть структуры.

Добавлено через 9 минут
кстати, насколько я знаю, поправьте если не так, Сишным Qsortom сортировать Си++ строки бесполено, он оператор = не вывзовет из С++, или я не прав?

Добавлено через 5 минут
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
#include <fstream>
#include <iostream>
#include <cstdlib>
//using namespace std;
std::string data[][3];
int cmp(const void *a, const void *b)
{
    std::string *arr1 = (std::string*)a;
    std::string *arr2 = (std::string*)b; 
 
    return  (*arr1< *arr2) ? -1 : 1;
 
}
int main()
{
    size_t i = 0;
    qsort(data, 274, 3*sizeof(std::string), cmp);
 
    for (size_t i = 0; i < 200; i++)
    {
        std::cout << data[i][0].c_str() << "\t" << data[i][1].c_str() << "\t" ;
        std::cout<< data[i][2].c_str() << "\n";
    }
    system("pause");
    return 0;
}
 
std::string data[][3] = {
    { "x", "67", "16" },
1
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
15.08.2018, 14:49  [ТС]
Kuzia domovenok, почему разнотипные данные в строках что нельзя целые числа хранить?

Добавлено через 2 минуты
Kuzia domovenok, Спасибо большое) А что означает 3*sizeof(std::string) ?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
15.08.2018, 15:47
аффтар, учи что к чему последовательно, а не тупо хватай по верхам.
Кусорт очень старая функция, которая работает на манипулировании укаателями. Для того, чтобы сортировать массивы любых типов до того как появились шаблоны, ей нужно знать указатель на начало массива, размер элемента и их число, чтобы иметь возможность выбирать элемент массива из нетипизированного указателя void*.
Чтобы, например, выбрать iй элемент массива внутри функции, надо сместить указатель от начала на i*sizeof(размер элемента) байт
И сразу говорю, все эти указатели это уже оффтопик, суть в том, что твой код - говно. Кусорт в коде для С++ и стд;;стринг лютое говно.
0
-1 / 1 / 1
Регистрация: 14.01.2017
Сообщений: 322
15.08.2018, 17:20  [ТС]
Kuzia domovenok, Спасибо что вы помогли в решении задачи и прояснили, хотя и грубовато, а код дал препод

Добавлено через 1 минуту
Kuzia domovenok, Сказал просто переделать чтобы по первому столбцу сортировало а я не могла понять как работала эта фу-кция.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
15.08.2018, 20:16
vfhbf, ну по сути вся переделка будет состоять в том, чтобы указать в функции сортировки трёхкратный размер элемента, чтобы она их выхватывала и обменивала пачками по 3,

а в функции сравнения размер элемента не менять, чтобы на проверку отправляла только по первому из каждой выбранной троицы.
1
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
16.08.2018, 10:56
vfhbf, Kuzia domovenok,

Цитата Сообщение от http://eel.is/c++draft/alg.c.library
[ Note: The header <cstdlib> declares the functions described in this subclause. — end note]

C++
1
2
3
4
5
6
void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
              c-compare-pred* compar);
void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
              compare-pred* compar);
void qsort(void* base, size_t nmemb, size_t size, c-compare-pred* compar);
void qsort(void* base, size_t nmemb, size_t size, compare-pred* compar);
Effects: These functions have the semantics specified in the C standard library.
Remarks: The behavior is undefined unless the objects in the array pointed to by base are of trivial type.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
16.08.2018, 14:53
rat0r, я в первом же сообщении написал, что не уверен но кажется нельзя сортировать классы. Но у меня не было аргументов против этого. Я думал, что кусорт не умеет в конструкторы, деструкторы и операторы=, однако, взявшись за этот код, я к великому удивлению обнаружил, что кусорт работает, поэтому свои претензии опустил. Я даже намерянно тестировал его со строками значительно разной длины, думая, что бе нормальных конструкторов копирования он уж точно переместит типа большую строку в меньшую и вызовет коррупцию кучи, но на удивления все мои тесты проходились..
0
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
16.08.2018, 15:29
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
взявшись за этот код, я к великому удивлению обнаружил, что кусорт работает
Из одного своего случая ты сделал вывод, что нет UB?

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Я даже намерянно тестировал его со строками значительно разной длины
Оно и на коротких валится (так вот устроено short string optimization в libstdc++ (~gcc))
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
#include <fstream>
#include <iostream>
#include <cstdlib>
 
std::string data[][3] = {
        { "x", "67", "16" },
        { "w", "98", "93" },
        { "g", "1", "71" },
        { "p", "21", "3" },
        { "q", "88", "35" },
        { "b", "76", "61" },
        { "w", "83", "25" },
        { "u", "19", "94" },
        { "t", "98", "90" },
        { "w", "6", "79" },
};
 
int cmp(const void *a, const void *b)
{
    std::string *arr1 = (std::string*)a;
    std::string *arr2 = (std::string*)b; 
    
    return  (*arr1< *arr2) ? -1 : 1; 
}
 
int main()
{
    qsort(data, std::size(data), sizeof(data[0]), cmp);
 
    for (size_t i = 0; i < std::size(data); i++)
    {
        std::cout << data[i][0] << "\t" << data[i][1] << "\t" ;
        std::cout<< data[i][2] << "\n";
    }
}
https://wandbox.org/permlink/0xOZzKAscxxE5hH5
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
*** Error in `./prog.exe': munmap_chunk(): invalid pointer: 0x0000000000604490 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f45ab8887e5]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x1a8)[0x7f45ab895698]
./prog.exe[0x402cf4]
./prog.exe[0x402b0f]
./prog.exe(_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_destroyEm+0x44)[0x402976]
./prog.exe(_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv+0x36)[0x402794]
./prog.exe(_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev+0x18)[0x402662]
./prog.exe[0x4018a5]
/lib/x86_64-linux-gnu/libc.so.6(+0x39ff8)[0x7f45ab84aff8]
/lib/x86_64-linux-gnu/libc.so.6(+0x3a045)[0x7f45ab84b045]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf7)[0x7f45ab831837]
./prog.exe[0x401699]
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
16.08.2018, 16:16
Цитата Сообщение от rat0r Посмотреть сообщение
Оно и на коротких валится (так вот устроено short string optimization в libstdc++ (~gcc))
говорю же, в моей IDE всё работает. И твой код тоже. Я очень старался найти ошибку и не нашёл
0
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
16.08.2018, 16:29
Лучший ответ Сообщение было отмечено MrGluck как решение

Решение

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
говорю же, в моей IDE всё работает. И твой код тоже.
И что отсюда следует?
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Я очень старался найти ошибку и не нашёл
http://eel.is/c++draft/alg.c.library#3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2018, 16:29
Помогаю со студенческими работами здесь

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

Сортировка двумерного массива методом вставок по строкам
Помогите, пожалуйста, переделать код для двумерного массива. Думаю, что надо по сути надо добавить цикл, но не могу реализовать. ...

Сортировка двумерного массива Методом Шелла (по убыванию)
Необходимо написать код программы которая сортирует двумерный массив методом Шелла по убыванию. Я нашел код только для одномерного массива....

Сортировка двумерного массива методом Выбора. Select sort
Задание: Упорядочить каждую строку матрицы по убыванию. Отсортировал пузырьком, а вот &quot;Выбором&quot; никак. Весь день убил на это....

Сортировка двумерного массива методом вставок с "конфеткой"
Доброго времени суток. Помогите разобраться со следующим заданием (в форуме С мне не помогли): Необходимо отсортировать двумерный...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru