Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30

x17lab: решил заняться исследованием алгоритмов и структур данных

30.11.2024, 19:38. Показов 16168. Ответов 94
Метки нет (Все метки)

Здравствуйте.

Создал тему в разделе новичков, т.к. это единственный раздел на форуме, который активен.

Я последнюю неделю пишу свою библиотеку для работы с алгоритмами и структурами данных. Я решил заняться полным исследованием алгоритмов и структур данных.

И хотя я на данный момент не знаю ничего , к примеру, о банальной сортировке пузырьком, но я скоро узнаю это.

Здесь будут мои вопросы по архитектуре, и проектированию алгоритмов.

Думаю, мне еще далеко до деревьев, и графов.

Мой код динамического массива (вектор), и да, я пока не устал пихать его в свои темы:
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
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
///
/// MindBlow.hpp
///
 
#ifndef MINDBLOW_GUARD
#define MINDBLOW_GUARD
 
#include <initializer_list>
#include <iostream>
#include <sstream>
 
 
template<typename MindBlowStreamType>
class MindBlow
{
public:
 
    /// <summary>
    /// Shortcut for a data type.
    /// </summary>
    using x17labMindStreamerT         = MindBlowStreamType;
 
    /// <summary>
    /// Shortcut for a pointer.
    /// </summary>
    using x17labMindStreamerPtrT      = x17labMindStreamerT*;
 
    /// <summary>
    /// Shortcut for a size.
    /// </summary>
    using x17labMindStreamerSizeTT   = size_t;
 
    /// <summary>
    /// Other definitions.
    /// </summary>
    #define x17labInline             inline
    #define x17labNoThrow            noexcept
    #define x17labThrow              throw
    #define x17labNullptr            nullptr
 
    /// <summary>
    /// Dynamically allocated (raw) array.
    /// </summary>
    x17labMindStreamerPtrT          x17labMindStreamerRAWRWX;
 
    /// <summary>
    /// Count of items (track counter).
    /// </summary>
    x17labMindStreamerSizeTT        x17labMindStreamerSynchro;
 
    /// <summary>
    /// Newly dynamically allocated array class with 1 single item, and it's default value is 1.
    /// </summary>
    explicit
    x17labInline
    MindBlow()
    {
        x17labDekTheRaw(1u);
    }
 
    /// <summary>`
    /// Newly dynamically allocated array class with given amount of items.
    /// </summary>
    /// <param name="Synchro">Count of items to initialize items.</param>
    explicit
    x17labInline
    MindBlow(x17labMindStreamerSizeTT Synchro)
    {
        x17labDekTheRaw(Synchro);
    }
 
    /// <summary>
    /// Newly dynamically allocated array class with initializer list in it.
    /// </summary>
    /// <param name="SuperNovaIL">Initializer list.</param> 
    explicit
    x17labInline
    MindBlow(std::initializer_list<x17labMindStreamerT> SuperNovaIL)
    {
        x17labDekTheRaw(SuperNovaIL.size());
 
        if ((SuperNovaIL.size()) <= (0u))
        {
            x17labThrow (std::invalid_argument("MindBlow:: invalid argument has been passed."));
        }
 
        decltype(x17labMindStreamerSynchro) ILIterator {0u};
        for (x17labMindStreamerT Picker : SuperNovaIL)
        {
            x17labMindStreamerRAWRWX[ILIterator++] = Picker;
        }
    }
 
    /// <summary>
    /// Destructor (deallocate and free memory used by this dynamically allocated array class).
    /// </summary>
    x17labInline
    ~MindBlow()
    {
        x17labEjector();
        x17labNullify();
    }
 
    /// <summary>
    /// Get the amount of items in this dynamically allocated array class.
    /// </summary>
    /// <returns>Amount of items.</returns>
    x17labInline
    x17labMindStreamerSizeTT x17labMindStreamerSynchrohronizer()
    {
        if ((x17labNull()) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labMindStreamerSynchrohronizer:: x17lab is fully zeroed."));
        }
 
        return (x17labMindStreamerSynchro);
 
    }
 
    /// <summary>
    /// Check dynamically allocated array is out of bounds (internal check).
    /// </summary>
    /// <param name="Synchro">Index to check.</param> 
    /// <returns>True if its in range.</returns>
    x17labInline
    bool x17labOverflow(x17labMindStreamerSizeTT Synchro)
    {
        if ((Synchro) >= (x17labMindStreamerSynchro))
        {
            x17labThrow (std::invalid_argument("x17labOverflow:: overflow has been detected."));
        }
        
        return (true);
    }
 
    /// <summary>
    /// Create dynamically allocated aray class with given amount of items,  provided in argument.
    /// </summary>
    /// <param name="x17labSynchro">Tracker of items.</param> 
    x17labInline
    void x17labDekTheRaw(x17labMindStreamerSizeTT Synchro) x17labNoThrow
    {
        x17labMindStreamerRAWRWX  = new (x17labMindStreamerT[Synchro])();
        x17labMindStreamerSynchro =  {Synchro};
    }
 
    /// <summary>
    /// Check if there are items in this dynamically allocated array class.
    /// </summary>
    /// <returns>True in case allocated array class has items.</returns>
    x17labInline
    bool x17labNull() x17labNoThrow
    {
        if ((x17labMindStreamerSynchro) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labNull:: Synchro has been nulled."));
        }
 
        return (true);
    }
 
    /// <summary>
    /// Check if there is an initialiizer list in this dynamically allocated array class.
    /// </summary>
    /// <param name="SuperNovaIL">Initializer list to perform the needed checks.</param> 
    /// <returns>True in case has an initializer list.</returns>
    x17labInline
    bool x17labSuperNovaILOverflow(std::initializer_list<x17labMindStreamerT> SuperNovaIL)
    {
        if ((SuperNovaIL.size()) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labSuperNovaILOverflow:: argument is out of range."));
        }      
 
        return (true);
    }
 
    /// <summary>
    /// Check if proveded dynamically allocated array and it's index is valid.
    /// </summary>
    /// <param name="MindStreamRaw">Dynamically allcated (raw) array to check.</param> 
    /// <param name="Synchro">Index to perform the needed checks.</param> 
    /// <returns>True in case array within the range.</returns>
    x17labInline
    bool x17labFlow(x17labMindStreamerPtrT MindStreamRaw, x17labMindStreamerSizeTT Synchro)
    {
        if ((MindStreamRaw) == (x17labNullptr) || (Synchro) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labFlow:: error has been detected."));
        }
 
        return (false);
    }
 
    /// <summary>
    /// Check if dynamically allocated array class has items in it.
    /// </summary> 
    /// <returns>True in case has items.</returns>
    x17labInline
    bool x17labIsAvailable() x17labNoThrow
    {
        if ((x17labMindStreamerSynchro) <= (0u))
        {
            x17labThrow (std::invalid_argument("x17labIsAvailable:: array has not items in it."));
        }
 
        return (true);
    }
 
    /// <summary>
    /// Assign item for this dynamically allocated array class to a provided one.
    /// </summary>
    /// <param name="StreamerValue">Value to set.</param>
    /// <param name="Synchro">Index to set.</param> 
    x17labInline
    void x17labYield(x17labMindStreamerT StreamerValue, x17labMindStreamerSizeTT Synchro)
    {
        if (x17labOverflow(Synchro))
        {
            x17labThrow (std::invalid_argument("x17labYield:: invalid argument."));
        }
 
        x17labMindStreamerRAWRWX[Synchro] = {StreamerValue};
    }
 
    /// <summary>
    /// Assign this dynamocally allocated array class to another array (raw).
    /// </summary>
    /// <param name="MindStreamerPtr">Raw array."</param>
    x17labInline
    void x17labYield(x17labMindStreamerPtrT MindStreamerPtr)
    {   
        if (x17labMindStreamerRAWRWX    == (x17labNullptr) ||
            MindStreamerPtr             == (x17labNullptr))
        {
            x17labThrow(std::invalid_argument("x17labYield:: invalid array."));
        }
 
        x17labMindStreamerRAWRWX = MindStreamerPtr;
    }
 
    // <summary>
    // Change the size of this dynamically allocated array class (raw array).
    // Allocate new buffer, and assign the new buffer to a raw array. 
    // </summary>
    // <param name="New">New size."</param>
    x17labInline
    void x17labShrinkify(x17labMindStreamerSizeTT New) x17labNoThrow
    {
        x17labMindStreamerPtrT MindStreamPtrNew = new x17labMindStreamerT[New]();
        if (MindStreamPtrNew != (x17labNullptr))
        {
            std::memcpy((MindStreamPtrNew), x17labMindStreamerRAWRWX, (x17labMindStreamerSynchro * sizeof(x17labMindStreamerT)));
            if (MindStreamPtrNew != (x17labNullptr))
            {
                x17labMindStreamerSynchro = New;
            }
        }
 
        x17labYield(MindStreamPtrNew);
 
        x17labEjector(MindStreamPtrNew);
        x17labNullify(MindStreamPtrNew);
    }
 
    /// <summary>
    /// Finds the summaty of all items in this dynamically allocated array class.
    /// </summary> 
    /// <returns>Summary of elements.</returns>
    x17labInline
    x17labMindStreamerSizeTT x17labSeekSummary() x17labNoThrow
    {
        x17labMindStreamerSizeTT Summary = {0u};
        for (x17labMindStreamerT (Picker) : x17labMindStreamerRAWRWX)
        {
            (Summary += (Picker));
        }
 
        return (Summary);
    }
 
    /// <summary>
    /// Check if this dynamically allocated array class is valid.
    /// </summary>
    /// <returns>True in case array is valid.</returns>
    x17labInline
    bool x17labIntegrity() x17labNoThrow
    {
        if (x17labMindStreamerRAWRWX != x17labNullptr)
        {
            x17labThrow(std::invalid_argument("x17labIntegrity:: invalid intergity."));
        }
 
        return (false);
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array using delete[] operator (internal).
    /// </summary>
    x17labInline
    void x17labEjector() x17labNoThrow
    {
        if (x17labMindStreamerRAWRWX != (x17labNullptr))
        {
            delete [] x17labMindStreamerRAWRWX;
        }
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array using delete[] operator.
    /// </summary>
    x17labInline
    void x17labEjector(x17labMindStreamerPtrT MindStreamerPtr) x17labNoThrow
    {
        if (MindStreamerPtr != (x17labNullptr))
        {
            delete [] MindStreamerPtr;
        }
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array class (internal). 
    /// </summary>
    x17labInline
    void x17labNullify() x17labNoThrow
    {
        x17labMindStreamerRAWRWX = (x17labNullptr);
    }
 
    /// <summary>
    /// Destroy the dynamically allacated array class. 
    /// </summary>
    /// <param name="MindStreamerPtr">Raw."</param>
    x17labInline
    void x17labNullify(x17labMindStreamerPtrT MindStreamerPtr) x17labNoThrow
    {
        MindStreamerPtr = (x17labNullptr);
    }
 
    /// <summary>
    /// Print content by using console.
    /// </summary>
    x17labInline
    void x17labStringlyfi() x17labNoThrow
    {
        std::wstringstream WStreamStringlyfi{};
        for (decltype(x17labMindStreamerSynchro) SynchroIt{ 0u }; SynchroIt < x17labMindStreamerSynchro; SynchroIt++)
        {
            WStreamStringlyfi << "StreamerIdx: " << SynchroIt << " Value: " << x17labMindStreamerRAWRWX[SynchroIt] << " " << std::endl;
        }
 
        std::wcout << WStreamStringlyfi.str() << std::endl;
    }
};
 
#endif
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.11.2024, 19:38
Ответы с готовыми решениями:

Отец решил заняться программированием
Здрасьте, посетители киберфорума, у меня вот такая вот ситуация. Мой отец (будет 40 лет в этом году) решил программированием заняться,...

Help me! Решил заняться веб-дизайном.
Привет! Я работаю преподавателем информатики в лицее. Решил заняться веб-дизайном. Программки нашёл, туториалы.. Ну, в общем не найду...

Решил заняться окраской корпусных и процессорных вентиляторов
Здравствуйте товарищи. Вот решил продолжить моддинг своего компьютера. На этот раз решил заняться окраской корпусных и процессорных...

94
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38207 / 21140 / 4311
Регистрация: 12.02.2012
Сообщений: 34,752
Записей в блоге: 14
02.12.2024, 14:26
Цитата Сообщение от XLAT Посмотреть сообщение
одна из самой распространенной причины говнокода — это затаскивание сишкокодных идиом в C++.
- а обратное?
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,174
02.12.2024, 14:47
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::wstring data(L""), old_data(L"BQUFBQlpNTFZ");
    //------------------------------ 
    std::ifstream fin(buf); 
    int ln_cout(0); // Посчитаем строки в файле
    if (fin.is_open()){
while (getline(fin, line))// =============== Читаем текст =============== && (int)line[n - 1] == 208
{
    bool repeat(false); ++ln_cout;
        //------------------------------
        char *cut_ptr = &line[0];
        if (*(cut_ptr + 4) == '-' && *(cut_ptr + 35) == '.' && *(cut_ptr + 40) == '0' && *(cut_ptr + 43) == ' ')
        {//Определяем строчку с датой с начала строки
            data = L"";
            std::wstring wsTmp(line.begin(), line.end());
            for (int i = 33; i < 43; ++i)data += wsTmp[i];
            data += L"  ";
            ++num;// строчка с датою - тоже строчка (подсчёт в массив)
        }
        else {
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
while (getline(fin, line))// =============== Читаем текст ===============
            {
            bool repeat(false); ++line_cout;
                //------------------------------
                char *cut_ptr = &line[0];
                if (*(cut_ptr + 4) == '-' && *(cut_ptr + 35) == '.' && *(cut_ptr + 40) == '0' && *(cut_ptr + 43) == ' ')
                {//Определяем строчку с датой с начала строки
                    memset(d_t, 0, 25);
                    for (int i = 33; i < 43; ++i)strncat(d_t, (const char*)cut_ptr + i, 1);
                    strncat(d_t, " ", 1);
                    ++num;// Строчки считает....
                }
                else {
Добавлено через 11 минут

Читать видео не хочет. Несколько раз ткнуть, что бы заработало....

C++
1
2
3
4
5
6
7
8
//-------------------
    while (true) {  ++counter;// ================ ЦИКЛ =============
        short i;//                       ======== (ЗАТЫЧКА КОСТЫЛЬ for opencv-2.4.13)
    begin:
        if (!cap.read(frame)) //read a new frame from video if not success, goto begin 
        {           cout << "ERROR: Cannot read a frame from video file" << endl;
            if (++i < 8)goto begin;
            else break;     }
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.12.2024, 14:51
Цитата Сообщение от Sneakzzz Посмотреть сообщение
Я последнюю неделю пишу свою библиотеку для работы с алгоритмами и структурами данных. Я решил заняться полным исследованием алгоритмов и структур данных.
И хотя я на данный момент не знаю ничего , к примеру, о банальной сортировке пузырьком
То есть, ты не знаешь сортировку пузырьком, а берешься писать свою библиотеку?
Цитата Сообщение от Sneakzzz Посмотреть сообщение
Да, я использую ChatGPT
Побыстрей забудь, что это такое.
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,174
02.12.2024, 15:06
0
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
02.12.2024, 15:09  [ТС]
CoderHuligan, почему?

Он что-то знает об инопланетных структурах данных, и хотя сейчас это не особо впечатляет, как ознакомление с тем, что есть реальное программирование для гиков оно вполне подходит.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.12.2024, 15:47
Цитата Сообщение от Sneakzzz Посмотреть сообщение
инопланетных структурах данных
А что это такое?
0
1 / 1 / 0
Регистрация: 08.07.2024
Сообщений: 30
02.12.2024, 15:52  [ТС]
Технологии, которые есть у инопланетян, но нет у людей.

Я бы хотел узнать про эти технологии, но мне нужно изучить текущие. И хоть я идеологически и не люблю массив, и хэш-таблицу, мне нравятся деревья и графы, я думаю что лезть в инопланетные технологии нет смысла, не освоив базу в виде того же массива. Мне так же понравился односвязный список, но мне нужно для начала запрограммировать массив.
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,174
02.12.2024, 16:10
Цитата Сообщение от Sneakzzz Посмотреть сообщение
мне нравятся деревья

Не по теме:

Ну да.... Дерево это прикольно.
Осень, листья падают.
Собачка ножку поднимет..
Выйдешь бывало, разуешь жевало,
ну и погодка ети её мать.

0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.12.2024, 16:22
Цитата Сообщение от Sneakzzz Посмотреть сообщение
но мне нужно для начала запрограммировать массив
Ты хорошо обучаешься. Своего создателя не подскажешь?

Добавлено через 6 минут
Цитата Сообщение от Sneakzzz Посмотреть сообщение
Технологии, которые есть у инопланетян, но нет у людей.
Цитата Сообщение от Sneakzzz Посмотреть сообщение
Я 10 лет проходил через шизофрению, лежал несколько раз в Богородском, привязанным к кровати, и где мне кололи галоперидол.
Рецидивы есть?
1
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
02.12.2024, 16:31
Цитата Сообщение от Sneakzzz Посмотреть сообщение
но мне нужно для начала запрограммировать массив.
Правильно. Нужно делать все последовательно. Без массива освоить сортировку пузырьком будет затруднительно.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
02.12.2024, 17:38
Цитата Сообщение от Catstail Посмотреть сообщение
- а обратное?
---

как правило прямое происходит по причине неосиляторства С++,
а значит до обратного не доходит.

---

1. нужен Си? - юзайте Си компилятор,
2. в Си компилятор из С++ вы ничего притянуть не сможете.

---

Когда нужен Си:
1. требование к компактности кода.
2. низкая обучаемость текущей банды кодеров.
3. отсутствие крестокомпилятора на целовой железке.
4. ...

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Рецидивы есть?
придется мне сапера с тобой делать)))
2
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,174
02.12.2024, 21:18
Цитата Сообщение от XLAT Посмотреть сообщение
по причине неосиляторства С++
Да может оно и так.
А за каким смыслом мне его осиливать?
Они ещё напишут.... Что... Всё осиливать надо?
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,174
02.12.2024, 21:23

Ну валяеться у меня на столе вот такое.
Что осилил.
Ну и что? Я так писать теперь должен?
Единственное, что бы чужой код прочитать.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
04.12.2024, 09:48
Цитата Сообщение от Наталья8 Посмотреть сообщение
А за каким смыслом мне его осиливать?
верно.

вы одиночка,
никого не должно волновать каким образом вы пишите код - боком, раком или вниз головой.

вы можете писать свой код да хоть в машинных кодах - никто об этом не узнает.

история начинается, когда вы начинаете светить вашим кодом,
его отдельными не связанными кусами без всякого контекста
везде где не попадя.

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

ок, выше это всё пока юмор - что поделать? - просто виноваты кривые руки и малосил.

но вот возьмем нормальный прожект,
который может быть реально интересен,

например,

соцсеть фейсбук(10 лет назад) это 62'000'000 строк кода

и вот тут нужно писать так, как нужно писать и никак иначе,
никакие оправдания вашего неосиляторства не проканают.
1
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
04.12.2024, 10:06
Цитата Сообщение от XLAT Посмотреть сообщение
история начинается, когда вы начинаете светить вашим кодом,
А кто заставляет его читать? Или это можно назвать "гениальный говнокод"?

Я хде то читал, что "если проект умещается на 1-2 страницах кода, и его можно полностью переписать за вечер - можно не соблюдать никаких правил оформления кода". Да и больший проект (например у меня есть проекты поболее), но написанный одним человеком и "для себя" - тож не требует правил. Чел, который его написал - вспомнит и разберётся. А для посторонних глаз он и не предназначался.

Проблемы начинаются при работе в команде? Один человек вряд ли напишет 62 000 000 строк кода.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
04.12.2024, 11:42
Цитата Сообщение от alexu_007 Посмотреть сообщение
проект умещается на 1-2 страницах кода
если у вас мелкая задача и вы неосилятор,
то можно не показывать вашу реализацию,
а просто написать саму задачу, которую нужно решить,
и ваш мелкий код нафик никто из кодеров таких же индивидуалистов смотреть не будет,
потому что будет в 100 раз проще и быстрее написать его с нуля.

ну, по крайней мере, для этого раздела такое справедливо в 99% случаях))

Цитата Сообщение от alexu_007 Посмотреть сообщение
Проблемы начинаются при работе в команде?
но прожекты в >1'000'000 сток кода не пишут одиночки,
(заюзанные общие библы не в счет)
...

даже если вы его писали 20 лет в одиночку
(без перерыва каждый день по 16 часов),
вам разве будет не обидно,
что ваши потомки не смогут его разобрать,
и поэтому просто выкинут в мусор
потому что не смогут добавить туда новую нужную им фичу?

))

Цитата Сообщение от XLAT Посмотреть сообщение
даже если вы его писали 20 лет в одиночку
кстати, если правильно кодить, то эти 20 лет моно сократить до года и по 4 часа в день...
1
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,174
04.12.2024, 13:16
Цитата Сообщение от XLAT Посмотреть сообщение
виноваты кривые руки и малосил.
Я стараюсь учусь.
Переделываю. Форум вот помог.
С миру по нитке. Нищему мозги.
Захватчик видео написан, конечно не по человечески.
Есть образцовый файл .avi. Хранит настройки.
Я него вбиваю размеры видео и частоту кадров.
Этот файл я кормлю opencv...
Читать видео.
А вместо видео подставляю скриншоты.
Но пишет идеально. И время процессора ест приемлемо.
И следующаю версию opencv, обмануть не получаеться.
Они стали требовать,
что бы образцовый файл avi, не был пустым.
Проверяют характеристики содержащихся в нём кадров.

Добавлено через 14 минут
Вообще это несколько программ, Захват обработка видео.
Я не могу назвать это видеоредактором,
но все функции оно выполняет.
Примикширую, отмикширую звук,
растяну его, смещу относительно видео.
Могу уработать стороннее видео. Поменять звуковую дорожку.
Обработать картинку видео, несколькими концепциями.
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
04.12.2024, 13:48
Админы, признавайтесь, это попытка оживить умирающий форум?
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,174
04.12.2024, 13:56
Цитата Сообщение от XLAT Посмотреть сообщение
глядя на такой код у смотрящего появляется мысля,
что код специально запутывали,
Перемешаны несколько концепций.
Конечно нормальные люди так не пишут.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <opencv2/opencv.hpp>
#include "io.h"// if( access
#include <windows.h>
#include <Shlobj.h>
#include <direct.h>//  if (_mkdir
#include "resource.h"
#include <mmsystem.h>// Звук PlaySound
#pragma comment(lib, "winmm")// Звук
#include<vfw.h>
#include<mmeapi.h>
#pragma comment(lib, "Vfw32.lib")
using namespace cv;
Добавлено через 1 минуту
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
оживить
Да я через vpn захожу. Куда его оживлять?
Хоронить...
Русскоязычный форум.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
04.12.2024, 18:44
Цитата Сообщение от XLAT Посмотреть сообщение
если у вас мелкая задача и вы неосилятор,
то можно не показывать вашу реализацию,
Так просят же: я написал программу, но ничего в ней не понимаю она не работает, помогите... Хотя я редко помогаю, помогателей и без меня хватает.

Добавлено через 6 минут
Цитата Сообщение от XLAT Посмотреть сообщение
глядя на такой код у смотрящего появляется мысля,
что код специально запутывали,
А разве весь С++ с его виртуальными классами, темплатами, динамической типизацией и многим другим не придуман для того, что бы специально запутать код? По крайней мере, глядя на код непонятно уже, что и как работает, нужно запускать программу и трассировать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2024, 18:44

Решил начинающий программист Вася Битиков ланшафтным дизайном заняться - оформить бабушкину клумбу оригинальным узором,
Решил начинающий программист Вася Битиков ланшафтным дизайном заняться - оформить бабушкину клумбу оригинальным узором, уж очень бабушка...

Описания алгоритмов и структур данных
У меня курсовая работа, к ней проект БД на языке Access препод сказал чтоб я добавила описания алгоритмов и структуров данных. в инете...

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

Разработка алгоритмов и программ с использованием динамических структур данных
Перевернуть список L, то есть изменить ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке. Надо...

Разработка и отладка алгоритмов и программ с использованием структур данных.
народ , помогите переделать задачу под это условие , плиз оч нужно , приведённый мною код это аналогичная задача но под другое условие ))) ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru