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

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

30.11.2024, 19:38. Показов 16155. Ответов 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
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
04.12.2024, 19:32
Цитата Сообщение от alexu_007 Посмотреть сообщение
А разве весь С++ с его виртуальными классами, темплатами, динамической типизацией и многим другим не придуман для того, что бы специально запутать код?
если вы так пишите значит вы не понимаете сутьпарадигму крестов:

1. сначала нужно обозначить термины задачи.
2. далее кодить в терминах задачи.
3. если вы не понимаете код, написанный идеально, то это значит, вы не понимаете саму задачу кодирования.
4. необязательно это ваша вина - возможно это вина постановщика задачи.

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

голандец Наталья8 не даст соврать)
0
фрилансер
 Аватар для Алексей1153
6489 / 5717 / 1133
Регистрация: 11.10.2019
Сообщений: 15,262
04.12.2024, 20:44
Kuzia domovenok, с чего он вдруг умирающий ? о_О
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,172
04.12.2024, 20:53
Цитата Сообщение от XLAT Посмотреть сообщение
сначала нужно обозначить термины задачи.
Может я тупой,
но полное осознания функционала... (как тебе надо, что бы программа работала),
приходит через пару лет работы на ней.
А вы пишете про быстроту написания.
Чё писать то, если не вьезжаешь?
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
04.12.2024, 21:01
Цитата Сообщение от Наталья8 Посмотреть сообщение
Чё писать то, если не вьезжаешь?
если вы не поняли задачу/cубзадачу, то не стоит начинать писать.

например, к вам приходит заказчик и говорит, мне нужно:
1. шкала отображенная на файл.
2. ползунок на шкале.
3. активный клик, делающий метку в месте ползунка.
4. кнопка "сохранить" левую и правую часть в два разных файла.

вот вам уже термины задачи юзера, от них и пляшите ваше понимание.

кстати, про термины задачи это не я придумал,
читайте об этом подробно в книжке автора C++ - Страуструпа.
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,172
04.12.2024, 21:13
Профессиональное програмирование и любительское - разные вещи.
Я сам себе юзер..
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
04.12.2024, 21:33
Цитата Сообщение от Наталья8 Посмотреть сообщение
Я сам себе юзер..
опять же дробить абстракцию на уровни это фишка любого ооп,

распилите себя на две абстрактных части: юзера и кодера и чтобы это было видно в вашем коде ...

Божественный_объект это ошибка проектирования,
СВАЛИВАТЬ ВСЁ В ОДНУ БОЛЬШУЮ КУЧУ УВЕЛИЧИВАЕТ СЛОЖНОСТЬ, А ЗНАЧИТ И СРОКИ КОДИРОВАНИЯ.

вы щас снова напишете, что "как хочу так и верчу".

так вертите, как хотите, мне то нафика об этом знать?

мир деградирует и спасти его нельзя, ... маэстро, музыку! ))
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
04.12.2024, 21:51
Цитата Сообщение от XLAT Посмотреть сообщение
шкала отображенная на файл.
Это как? Файл это циферки на жестком диске, как туда прикрутить шкалу? Изъясняйтесь понятней пожалуйста, господин заказчик.

Цитата Сообщение от XLAT Посмотреть сообщение
активный клик, делающий метку в месте ползунка.
Отличие активного клика от пассивного. И клик куда, в место ползунка? Что из себя представляет метка?
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
04.12.2024, 22:28
Цитата Сообщение от alexu_007 Посмотреть сообщение
Это как? Файл это циферки на жестком диске, как туда прикрутить шкалу? Изъясняйтесь понятней пожалуйста, господин заказчик.
1.
такой туман должен радовать исполняющего кодера,
ибо даёт ему простор для творчества!

2.
вы же уже умеете в абстракцию?
тогда:
- тип файла - абстрактный класс
- шкала сама по себе
- класс прикрутки шкалы - абстрактный класс

могут быть разные реализации абстрактных классов по требованию или вкусу ...
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,172
05.12.2024, 01:23
VID-20210918-WA0000.mp4
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
05.12.2024, 07:50
Цитата Сообщение от XLAT Посмотреть сообщение
- тип файла - абстрактный класс
Тип файла может быть любой, они все состоят из байтов. Если нужны какие-то определенные типы файлов - можно поместить в список. Нафига городить для этого целый класс?

- шкала сама по себе
Ну сама по себе так сама по себе. Но её нужно где-то нарисовать. Приложение будет оконным, не консоль?
Для реализации проекта я выбираю Qt.

- класс прикрутки шкалы - абстрактный класс
А чё её прикручивать? Как я понял, нужен слайдер и нарисованная над ним шкала. Двигаете ползунок слайдера - по шкале движется метка (хоть это и необязательно, достаточно положения ползунка слайдера). Когда положение ползунка (метки на шкале) нас устраивает - нажимаем кнопку "Okey" и файл делится в нужной пропорции. Нафига тут то класс, да ещё и абстрактный, что бы это ни значило?

P.S. Только большой файл вы так точно никогда не поделите, ползунком выставить с точностью до байта не получится.
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
05.12.2024, 12:23
Цитата Сообщение от alexu_007 Посмотреть сообщение
Для реализации проекта я выбираю Qt.
Был забавный случай в ~2011 году, мы делали для автоваза станок динамической балансировки роторов двигателей для стеклоочистителей, сам станок был написан на минимальном наборе mandrake linux c xfce, заливался на Flash DOM IDE 512Мб, вся система вместе с ПО весила ~210Мб, но был нюанс, конфиги типа настроек ПИД-регулятора, размера окна для FFT и прочее писались через vim, они попросили сделать графическое окно, чтобы не ковыряться в терминале и один такой выбиральщик выбрал Qt, в итоге со статической линковкой размер на флешке вырос где-то на 400Мб, что естественно не влезало на DOM IDE, т.е. 210Мб система+управление и ~400Мб чисто графическая настройка)))
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,172
05.12.2024, 15:14


Название: NewPicture1 (2).png
Просмотров: 169

Размер: 32.8 Кб
Слава богу на винде встроенное WinApi
И такое чудо сортировки занимает меньше мегабайта.
Всегда передо мною. В ней ещё звуки в ресурсах...
Из мусорного текста, дёргает адреса
выкладывает по (образец) доменным именам.
Может и не по именам.
Наверное потому что я не автоваз.
0
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
05.12.2024, 21:51
Цитата Сообщение от abit Посмотреть сообщение
и один такой выбиральщик выбрал Qt
Что конечно же не означает, что Qt сам по себе плох, но означает, что кто-то выбрал неподходящий инструмент.
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,172
05.12.2024, 22:02
Цитата Сообщение от ablex Посмотреть сообщение
Qt сам по себе плох
Я не могу ругать ку те.
На нём написаны уникальные инструменты.
0
05.12.2024, 22:06

Не по теме:

Наталья8, и вот после такого фигурного цитирования можно будет подумать, будто бы я его ругал. Некрасиво поступаешь, товарищ.

0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,172
05.12.2024, 22:08
Название: NewPicture10.png
Просмотров: 136

Размер: 5.2 Кб
Извиняюсь, он у меня не установлен.
Я просто название приведу.
Backup системного диска сделает...
0
05.12.2024, 22:10

Не по теме:

Цитата Сообщение от ablex Посмотреть сообщение
Некрасиво поступаешь, товарищ.
Ну виноват.

0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,305
05.12.2024, 22:16
Цитата Сообщение от abit Посмотреть сообщение
~400Мб чисто графическая настройка
Пятерок в 2011-м наверное еще не было, был Qt 4.8. Так вот, размер простенькой программы около 100 кб + 4 библиотеки, которые нужно класть в папку с исполняемым файлом. Размер самой большой библиотеки около 10 мб.

Уж не знаю, чего вы там ваяли, что получилось 210 мб только кода + 400 мб окно с кнопками. Даже специально так раздуть программу - это нужно исхитриться.

Вот такая прога, надёргивает из муз. коллекции файлы в случайном порядке, добавляет к именам файла порядковый номер и скидывает в папки по n (задается пользователем) штук. Кроме того она может из каждой папки (каждого артиста) брать по два файла. Размер проги 117 кб + 4 библиотеки, как я уже писал. Вот окно программы на фото внизу. А вы что-то там друзья нахимичили... 210 мб кода - это ж можно полёт на Луну обсчитать с прилунением и возвращением!
Миниатюры
x17lab: решил заняться исследованием алгоритмов и структур данных  
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
06.12.2024, 09:04
Цитата Сообщение от alexu_007 Посмотреть сообщение
Только большой файл вы так точно никогда не поделите, ползунком выставить с точностью до байта не получится.
а теперь давайте представим такую ситуацию:

1. к вам приходит заказчик с чемоданом.
2. в чемодане три ляма евро.
3. он говорит вам: "Мне нужна прога с ползунком на файле с точностью байта. оплата вот(показывает на чемодан)".
4. и далее спрашивает вас: "Вы можете сделать мне такую прогу с такой фичей?"
5. шрамы и татушки на заказчике говорят вам о том, что надурить его за даром у вас не получится...

alexu_007,
ваши варианты ответов:
1. Да - я знаю как это сделать - я могу.
2. Нет - я неосилятор - я не могу.

alexu_007,
Какой вариант вы выберете?
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
06.12.2024, 11:53
Вчера ради прикола сделал "морду" на Tcl\tk. Это просто морда без функционала. 25 строчек кода..

До байта надо? А не проще ли через entry вводить побайтно. А регулятором лучше процентно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2024, 11:53

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
[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