Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Заблокирован

Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу

03.10.2015, 13:53. Показов 3325. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Прошу помощи. Встретил интересную задачу с решением. К сожалению, она на Excel (VBA)— мне нравится меньше, чем VB6.

Суть задачи. Есть перечень предметов, имеющих два параметра: вес и стоимость. Надо набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу не более 10000 грамм (10 кг).

Возникло много вопросов и мороки. Как избежать канцелярской работы в виде рутины? Например, можно ли ввести все исходные данные как-нибудь готовым списком?
Как быть с Формой, тоже много мороки?

Пока всё поделил на три этапа:
1) исходные данные задачи;
Кликните здесь для просмотра всего текста
Visual Basic
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
Наименование    Вес  Стоимость
Предмет 1        300 25800,20
Предмет 2        250 625,30
Предмет 3        156 4568,60
Предмет 4        168 9514,20
Предмет 5        314 15654,80
Предмет 6        215 92100,10
Предмет 7        841 654,20
Предмет 8        369 7520,50
Предмет 9        852 6352,40
Предмет 10       147 19558,77
Предмет 11       365 74580,50
Предмет 12       145 72806,00
Предмет 13       254 71031,50
Предмет 14       741 69257,00
Предмет 15       257 67482,50
Предмет 16       259 65708,00
Предмет 17       851 63933,50
Предмет 18       853 62159,00
Предмет 19       459 60384,50
Предмет 20       453 58610,00
Предмет 21       358 56835,50
Предмет 22       657 55061,00
Предмет 23       651 53286,50
Предмет 24       954 51512,00
Предмет 25       952 49737,50
Предмет 26       158 47963,00
Предмет 27       156 46188,50
Предмет 28       354 44414,00
Предмет 29       358 42639,50
Предмет 30       756 40865,00
Предмет 31       752 39090,50
Предмет 32       215 37316,00
Предмет 33       841 35541,50
Предмет 34       369 33767,00
Предмет 35       852 31992,50
Предмет 36       147 30218,00
Предмет 37       523 28443,50
Предмет 38       258 26669,00
Предмет 39       962 24894,50
Предмет 40       159 23120,00
Предмет 41       357 21345,50
Предмет 42       456 19571,00
Предмет 43       358 17796,50
Предмет 44       951 16022,00
Предмет 45       744 14247,50
Предмет 46       888 12473,00
Предмет 47       999 10698,50
Предмет 48       358 8924,00
Предмет 49       962 7149,50
Предмет 50       147 5375,00
Предмет 51       365 3600,50
Предмет 52       145 1826,00
Предмет 53       856 51,50
Предмет 54       965 35951,50
Предмет 55       854 1000,00
Предмет 56       745 1126,70
Предмет 57       856 1253,40
Предмет 58       963 1380,10
Предмет 59       256 1506,80
Предмет 60       365 1633,50
Предмет 61       145 1760,20
Предмет 62       254 1886,90
Предмет 63       741 2013,60
Предмет 64       257 2140,30
Предмет 65       259 2267,00
Предмет 66       851 2393,70
Предмет 67       853 2520,40
Предмет 68       459 2647,10
Предмет 69       453 2773,80
Предмет 70       358 2900,50
Предмет 71       657 3027,20
Предмет 72       651 3153,90
Предмет 73       954 3280,60
Предмет 74       952 3407,30
Предмет 75       158 3534,00
Предмет 76       156 3660,70
Предмет 77       354 3787,40
Предмет 78       358 3914,10
Предмет 79       756 4040,80
Предмет 80       752 4167,50
Предмет 81       300 4294,20
Предмет 82       250 4420,90
Предмет 83       156 4547,60
Предмет 84       168 4674,30
Предмет 85       314 4801,00
Предмет 86       215 4927,70
Предмет 87       841 5054,40
Предмет 88       369 5181,10
Предмет 89       852 5307,80
Предмет 90       147 5434,50
Предмет 91       523 5561,20
Предмет 92       258 5687,90
Предмет 93       962 5814,60
Предмет 94       159 5941,30
Предмет 95       357 6068,00
Предмет 96       456 6194,70
Предмет 97       358 6321,40
Предмет 98       951 6448,10
Предмет 99       744 6574,80


2) код для решения задачи; — требуется внести изменения под код VB6
Кликните здесь для просмотра всего текста
Visual Basic
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
Option Explicit
 
Sub main()
    Dim a(), i&, j&, n&
    Dim n1&, n2&, s1&, s2&, dn&, ds&
    Dim out
    
    a = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 3) 'считываем с листа исходные данные
    n = UBound(a) 'кол-во предметов
    n1 = Val([f2]): n2 = Val([g2]) 'искомый вес
    s1 = Val([f3]): s2 = Val([g3]) 'искомая стоимость
    dn = Val([h2]): ds = Val([h3]) 'допустимая погрешность
    If dn = 0 Then dn = 1
    If ds = 0 Then ds = 1
    
    ReDim arr&(1 To n, 1 To 2)
    For i = 1 To n 'формируем массив для решения
        arr(i, 1) = Round(a(i, 2) / dn, 0) 'сокращаем значения на делители
        arr(i, 2) = Round(a(i, 3) / ds, 0)
    Next i
    
    With Range("L2")
        .Resize(1000, 4).ClearContents
        out = Rucksack(arr, Round(n1 / dn, 0), Round(n2 / dn, 0), Round(s1 / ds, 0), Round(s2 / ds, 0))
        If IsArray(out) Then 'если результат получен в виде масива, то выводим его на лист
            For i = UBound(out) To 1 Step -1
                .Offset(j, 0) = out(i)
                .Offset(j, 1) = a(out(i), 1)
                .Offset(j, 2) = a(out(i), 2)
                .Offset(j, 3) = a(out(i), 3)
                j = j + 1
            Next i
        End If
    End With
End Sub
 
Sub mainDynamic()
    Dim a(), i&, j&, n&
    Dim v&
    Dim out
    
    a = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 3) 'считываем с листа исходные данные
    n = UBound(a) 'кол-во предметов
    v = Val([f2]) 'искомый вес
    
    ReDim arr(1 To n, 1 To 2)
    For i = 1 To n 'формируем массив для решения
        arr(i, 1) = Round(a(i, 2), 0)
        arr(i, 2) = a(i, 3)
    Next i
    
    With Range("L2")
        .Resize(1000, 4).ClearContents
        out = RucksackDynamic(arr, v)
        If IsArray(out) Then 'если результат получен в виде масива, то выводим его на лист
            For i = 1 To UBound(out)
                .Offset(j, 0) = out(i)
                .Offset(j, 1) = a(out(i), 1)
                .Offset(j, 2) = a(out(i), 2)
                .Offset(j, 3) = a(out(i), 3)
                j = j + 1
            Next i
        End If
    End With
End Sub
 
Sub mainGreedy()
    Dim a(), i&, j&, n&
    Dim v&
    Dim out
    
    a = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 3) 'считываем с листа исходные данные
    n = UBound(a) 'кол-во предметов
    v = CDbl([f2]) 'искомый вес
    
    ReDim arr(1 To n, 1 To 2)
    For i = 1 To n 'формируем массив для решения
        arr(i, 1) = CDbl(a(i, 2))
        arr(i, 2) = CDbl(a(i, 3))
    Next i
    
    With Range("L2")
        .Resize(1000, 4).ClearContents
        out = RucksackGreedy(arr, v)
        If IsArray(out) Then 'если результат получен в виде масива, то выводим его на лист
            For i = 1 To UBound(out)
                .Offset(j, 0) = out(i)
                .Offset(j, 1) = a(out(i), 1)
                .Offset(j, 2) = a(out(i), 2)
                .Offset(j, 3) = a(out(i), 3)
                j = j + 1
            Next i
        End If
    End With
End Sub
 
Function Rucksack(arr&(), n1&, n2&, s1&, s2&)
'Функция решения "задачи о рюкзаке" с подбором по двум параметрам: веса и стоимости
'на входе:
'   arr() - двумерный массив, вес предметов и их стоимость
'   n1, n2 - необходимый вес предметов от n1 до n2
'   s1, s2 - необходимая стоимость предметов от s1 до s2
'на выходе одномерный массив индексов подобранных предметов
'Автор: Михаил Ч. (MCH), Август 2015
 
    Dim i&, j&, k&, k1&, k2&, n&, m&, x, out&()
    n = UBound(arr) 'кол-во исходных предметов
    
    ReDim oD(n2), a&(n2) 'массивы для динамического программирования
    For i = 0 To n2 'создаем массив словарей размерностью n2
        Set oD(i) = CreateObject("Scripting.Dictionary")
    Next i
    oD(0).Item(0) = 0& 'начальный элемент равен нулю
    a(0) = 1
    
    For i = 1 To n 'перебираем все предметы
        For j = n2 - arr(i, 1) To 0 Step -1 'проходим массив с конца до начала
            If a(j) Then 'если в текущее положение (вес рюкзака - j) уже попадали
                For Each x In oD(j).Keys 'для каждого состояния (стоимости) данного веса добавляем предмет
                    k1 = j + arr(i, 1) 'новый вес рюкзака
                    k2 = Val(x) + arr(i, 2) 'новая стоимость
                    If k2 <= s2 Then 'если стоимость не превышает искомую
                        If Not oD(k1).Exists(k2) Then 'если данная стоимость для рюкзака веслм k1 еще не было
                            a(k1) = a(k1) + 1 'увеличиваем кол-во различных стомостей для рукзака весом k1
                            oD(k1).Item(k2) = i 'добавляем в словарь стоимость рюкзака и номер предмета из которого мы в него попали
                            
                            If k1 >= n1 And k2 >= s1 Then 'проверяем, попали ли в нужный допуск
                                While k1 'пока путь не закончится нулевым элементом
                                    m = oD(k1).Item(k2) 'теущий предмет
                                    k = k + 1 'прядковый номер в выходном массиве
                                    ReDim Preserve out&(1 To k) 'переопределяем выходной массив
                                    out(k) = m 'сохраняем элемент
                                    k1 = k1 - arr(m, 1) 'переходим в положение из какого веса сюда попали
                                    k2 = k2 - arr(m, 2) 'и какова предыдущая стоимость
                                Wend
                                Rucksack = out 'возвращаем полученный результат (набор индексов предметов)
                                Exit Function
                            End If
                        End If
                    End If
                Next x
            End If
    Next j, i
End Function
 
Function RucksackDynamic(arr(), v&)
'Функция решения "задачи о рюкзаке" с подбором наибольшей стоимости предметов для рюкзака весом не болле v
'метод решения - динамическое программирование
'на входе:
'   arr() - двумерный массив, вес предметов и их стоимость
'   v - наибольший вес предметов, который может умещатся в рюкзак
'на выходе одномерный массив индексов подобранных предметов
'Автор: Михаил Ч. (MCH), Август 2015
    
    Dim i&, j&, k&, n&, s#, maxs#, m&, out&(), x
    n = UBound(arr) 'кол-во исходных предметов
    
    ReDim b#(v), p$(v)  'массивы для динамического программирования
 
    For i = 1 To n 'перебираем все предметы
        For j = v - arr(i, 1) To 0 Step -1 'проходим массив с конца до начала
            If Len(p(j)) Or j = 0 Then  'если в текущее положение (вес рюкзака - j) уже попадали, либо находимся в начальной точке
                k = j + arr(i, 1) 'новый вес рюкзака
                s = b(j) + arr(i, 2) 'новая стоимость
                If b(k) < s Then  'если получаемая стоимость больше чем есть
                    b(k) = s 'запоминаем лучшую стоимость
                    p(k) = p(j) & " " & i 'запоминаем путь
                    If s > maxs Then maxs = s: m = k 'запоминаем максимум
                End If
            End If
    Next j, i
    'формируем путь
    k = 0
    For Each x In Split(Trim(p(m)))
        k = k + 1 'прядковый номер в выходном массиве
        ReDim Preserve out&(1 To k) 'переопределяем выходной массив
        out(k) = Val(x) 'сохраняем элемент
    Next x
    If k > 0 Then RucksackDynamic = out
End Function
 
Function RucksackGreedy(arr(), ByVal v)
'Функция решения "задачи о рюкзаке" с подбором наибольшей стоимости предметов для рюкзака весом не болле v
'метод решения - "жадный" алгоритм
'на входе:
'   arr() - двумерный массив, вес предметов и их стоимость
'   v - наибольший вес предметов, который может умещатся в рюкзак
'на выходе одномерный массив индексов подобранных предметов
'Автор: Михаил Ч. (MCH), Август 2015
    
    Dim i&, j&, k&, t&, n&, out&()
    n = UBound(arr) 'кол-во исходных предметов
    
    ReDim a&(1 To n), c#(1 To n) 'массивы для "жадного" алгоритма
    
    For i = 1 To n
        a(i) = i
        c(i) = arr(i, 2) / arr(i, 1) 'вычисляем удельную стоимость каждого предмета
        For j = 1 To i - 1 'сортируем индексы предметов
            If c(a(i)) > c(a(j)) Then t = a(j): a(j) = a(i): a(i) = t
    Next j, i
    
    For i = 1 To n
        If arr(a(i), 1) < v Then 'если предмет помещается в рюкзак, то берем его
            k = k + 1
            ReDim Preserve out&(1 To k)
            out(k) = a(i)
            v = v - arr(a(i), 1)
            For j = 1 To k - 1 'сортируем выходной массив
                If out(k) < out(j) Then t = out(j): out(j) = out(k): out(k) = t
            Next j
        End If
    Next i
    If k > 0 Then RucksackGreedy = out
End Function


3) результат по задаче.
Кликните здесь для просмотра всего текста
Visual Basic
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
№ Наименование    Вес  Стоимость
1   Предмет 1        300 25800,2
4   Предмет 4        168 9514,2
5   Предмет 5        314 15654,8
6   Предмет 6        215 92100,1
10  Предмет 10       147 19558,76944
11  Предмет 11       365 74580,5
12  Предмет 12       145 72806
13  Предмет 13       254 71031,5
14  Предмет 14       741 69257
15  Предмет 15       257 67482,5
16  Предмет 16       259 65708
17  Предмет 17       851 63933,5
18  Предмет 18       853 62159
19  Предмет 19       459 60384,5
20  Предмет 20       453 58610
21  Предмет 21       358 56835,5
22  Предмет 22       657 55061
23  Предмет 23       651 53286,5
26  Предмет 26       158 47963
27  Предмет 27       156 46188,5
28  Предмет 28       354 44414
29  Предмет 29       358 42639,5
32  Предмет 32       215 37316
34  Предмет 34       369 33767
36  Предмет 36       147 30218
38  Предмет 38       258 26669
40  Предмет 40       159 23120
41  Предмет 41       357 21345,5
Вложения
Тип файла: txt conditions1 .txt (3.5 Кб, 12 просмотров)
Тип файла: txt result1.txt (1.1 Кб, 9 просмотров)
Тип файла: rar Rucksack.rar (50.2 Кб, 15 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2015, 13:53
Ответы с готовыми решениями:

Какие есть самые лучшие алгоритмы сортировки, самые быстрые?
Подскажите пожалуйста, какие есть самые лучшие алгоритмы сортировки, самые быстрые. Например есть одномерный массив чисел, как его быстро...

Самые ценные запросы Яндекса.
Знакомый вэбмастер поделился неприятной новостью - сайт забанили в Яндексе. Дело вроде бы житейское, кого этим сегодня удивишь....

Самые сильные - самые лучшие?!
Правда ли, что самые первые беки в листе ссылок самые качественные с точки зрения яндекса. Или расположение и последовательность не имеют...

31
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
03.10.2015, 13:58
Данные у Вас приходят в текстовом документе, в таком виде как вы их показали?
0
Заблокирован
03.10.2015, 14:31  [ТС]
UBUNTU, объясняю: как сам понял Ваш вопрос.
Открыл в программе Excel и затем скопировал в Notepad.
Потом скрупулёзно внёс изменения на свою манеру, сохранил — для удобного зрительного восприятия.
Только по документам: conditions1.txt и result1.txt
В исходный код VBA никаких правок не вносил.
0
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
03.10.2015, 14:57
Willi2001, Зачем копировать в Notepad, почему не делать все в том же экселе и почему не использовать БД к примеру аксес для простоты работы с данными?
0
Заблокирован
03.10.2015, 15:25  [ТС]
Цитата Сообщение от UBUNTU Посмотреть сообщение
почему не использовать БД к примеру аксес для простоты работы с данными?
UBUNTU, стали появляться сомнения. Willi2001 — новичок и поступает: как умеет. Многое не знает.
Если серьёзный человек, то продемонстрируйте на конкретном примере: в чём выигрыш от Вашего плана действий.
0
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
03.10.2015, 15:38
Цитата Сообщение от Willi2001 Посмотреть сообщение
UBUNTU, стали появляться сомнения. Willi2001 — новичок и поступает: как умеет. Многое не знает.
Если серьёзный человек, то продемонстрируйте на конкретном примере: в чём выигрыш от Вашего плана действий.
Бот!?
0
Заблокирован
03.10.2015, 15:48  [ТС]
UBUNTU, хорошо, поясняю. Это очень сложная задача, по силам на форуме 2-3 людям. В решениях подобных задач Вас пока не встречал. Вот и удивляюсь!
0
Заблокирован
04.10.2015, 05:46  [ТС]
Ради любопытства попробовал применить код, ниже, от Казанский. Очень понравилось решение — на уровне интуиции (подсознательно). Необычайный симбиоз. Осталось уточнить детали.
Способ от Казанский
Кликните здесь для просмотра всего текста
Visual Basic
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
Option Explicit
 
'Казанский (09.03.2015, 23:22) События Excel можно обрабатывать в VB6, VBA собственно не нужен
'Создайте форму с кнопкой, в Project - References 
'подключите библиотеку Microsoft Excel xx.x Object Library 
'попробуйте такой код
 
 Dim WithEvents xlApp As Excel.Application
Dim xlWb As Excel.Workbook
 
Private Sub Command1_Click()
  Set xlApp = New Excel.Application
  Set xlWb = xlApp.Workbooks.Open("c:\temp\Лист1.xls") '==== путь к книге
  xlApp.Visible = True
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
  On Error Resume Next
  xlApp.Quit
End Sub
 
Private Sub xlApp_WorkbookBeforeClose(ByVal wb As Excel.Workbook, Cancel As Boolean)
  If wb Is xlWb Then
    xlApp.Visible = False
    If MsgBox("VB6 - Вы уверены, что хотите закрыть книгу?", vbYesNo) = vbNo Then
      Cancel = True
      MsgBox "VB6 - ОК, продолжаем"
      xlApp.Visible = True
      Exit Sub
    Else
      xlApp.EnableEvents = False
      wb.Close True 'закрыть с сохранением
      xlApp.Quit
    End If
  End If
End Sub

Моему VB6 многое непонятно, в частности спрашивает: xlWb As Excel.Workbook — что это?
Как прописать все пути и куда?

Правильно ли думаю: VB6 как "представитель семьи Basic" может легко "читать и усваивать" текстовые файлы?
Миниатюры
Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу  
0
Заблокирован
22.10.2015, 01:57  [ТС]
Почитал на досуге отзывы программистов о своей работе. Жизнь беспросветная. Вынуждены заниматься обслуживанием складского учёта. Сплошная рутина.
Вот эту задачу про рюкзак решил за полчаса, без программирования. Просто ввёл качественный показатель — цена за 1 грамм.
Решал честно, не заглядывая попутно в выводы и расчёты программистов "Мир MS Excel". Столкнулся с проблемой с превышением веса Рюкзака. Сразу, не ломая голову, отбросил Предмет_37 (523 г) и Предмет_30 (756 г). На скорую руку вставил Предмет_5 (314 г).
Потом сильно удивился своей интуиции, когда показатель 9978 грамм оказался одинаковым!

Visual Basic
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
Сравнительный анализ результатов для параметрической оптимизации Рюкзака по весу и цене                                
                                
Расчёт программистов с форума Excel                    'Ручной пересчёт  дилетанта Willi2001           
№ Наименование    Вес  Стоимость         'Наименование       Вес     Стоимость      Цена 1 г
1   Предмет 1        300 25800,2             'Предмет 12      145    72806,00    502,11
4   Предмет 4        168 9514,2              'Предмет 6       215    92100,10    428,37
5   Предмет 5        314 15654,8             'Предмет 26      158    47963,00    303,56
6   Предмет 6        215 92100,1             'Предмет 27      156    46188,50    296,08
10  Предмет 10       147 19558,77            'Предмет 13      254    71031,50    279,65
11  Предмет 11       365 74580,5             'Предмет 15      257    67482,50    262,58
12  Предмет 12       145 72806               'Предмет 16      259    65708,00    253,70
13  Предмет 13       254 71031,5             'Предмет 36      147    30218,00    205,56
14  Предмет 14       741 69257               'Предмет 11      365    74580,50    204,33
15  Предмет 15       257 67482,5             'Предмет 32      215    37316,00    173,56
16  Предмет 16       259 65708               'Предмет 21      358    56835,50    158,76
17  Предмет 17       851 63933,5             'Предмет 40      159    23120,00    145,41
18  Предмет 18       853 62159               'Предмет 10      147    19558,77    133,05
19  Предмет 19       459 60384,5             'Предмет 19      459    60384,50    131,56
20  Предмет 20       453 58610               'Предмет 20      453    58610,00    129,38
21  Предмет 21       358 56835,5             'Предмет 28      354    44414,00    125,46
22  Предмет 22       657 55061               'Предмет 29      358    42639,50    119,11
23  Предмет 23       651 53286,5             'Предмет 38      258    26669,00    103,37
26  Предмет 26       158 47963               'Предмет 14      741    69257,00     93,46
27  Предмет 27       156 46188,5             'Предмет 34      369    33767,00     91,51
28  Предмет 28       354 44414               'Предмет 1       300    25800,20     86,00
29  Предмет 29       358 42639,5             'Предмет 22      657    55061,00     83,81
32  Предмет 32       215 37316               'Предмет 23      651    53286,50     81,85
34  Предмет 34       369 33767               'Предмет 17      851    63933,50     75,13
36  Предмет 36       147 30218               'Предмет 18      853    62159,00     72,87
38  Предмет 38       258 26669               'Предмет 41      357    21345,50     59,79
40  Предмет 40       159 23120               'Предмет 4       168     9514,20     56,63
41  Предмет 41       357 21345,5             'Предмет 5       314    15654,80     49,86
    ИТОГО                 9978 1347404,07       'ИТОГО                  9978   1347404,07     135,04
0
Заблокирован
22.10.2015, 18:06  [ТС]
Казанский!
Прошу прощения за свою бестолковость. Совсем не понимаю, что именно надо делать? Уж слишком для умных. Помогите, пожалуйста.
Visual Basic
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
Option Explicit
 
'Казанский (09.03.2015, 23:22) События Excel можно обрабатывать в VB6, VBA собственно не нужен
'Создайте форму с кнопкой, в Project - References
'подключите библиотеку Microsoft Excel xx.x Object Library
'попробуйте такой код
 
 Dim WithEvents xlApp As Excel.Application
Dim xlWb As Excel.Workbook
 
Private Sub Command1_Click()
  Set xlApp = New Excel.Application
  Set xlWb = xlApp.Workbooks.Open("c:\temp\Лист1.xls") '==== путь к книге
  xlApp.Visible = True
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
  On Error Resume Next
  xlApp.Quit
End Sub
 
Private Sub xlApp_WorkbookBeforeClose(ByVal wb As Excel.Workbook, Cancel As Boolean)
  If wb Is xlWb Then
    xlApp.Visible = False
    If MsgBox("VB6 - Вы уверены, что хотите закрыть книгу?", vbYesNo) = vbNo Then
      Cancel = True
      MsgBox "VB6 - ОК, продолжаем"
      xlApp.Visible = True
      Exit Sub
    Else
      xlApp.EnableEvents = False
      wb.Close True 'закрыть с сохранением
      xlApp.Quit
    End If
  End If
End Sub
Собственно, что хочу: вначале открыть программу "Rucksack" (вложение ниже) в Excel. Потом, чтобы избежать мороки с писаниной, брать готовые исходные данные для Visual Basic 6.0, используя в дальнейших расчётах.
Путь: C:\Users\admin\Pictures\Rucksack

Проблема: мы пока с VB6 плохо понимаем друг друга. Что он желает получить из Вашего кода? Что ему не нравится?

Командную кнопку на Форму поставил, но до неё ещё далеко.
Картинка ниже.
Миниатюры
Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу  
Вложения
Тип файла: rar Rucksack.rar (50.2 Кб, 5 просмотров)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
23.10.2015, 07:18
можно ли ввести все исходные данные как-нибудь готовым списком
Можно! В каком виде готовые списки? На бумаге? Юзай ФайнРидер
В электронном виде - покажи пример
Как быть с Формой, тоже много мороки
Ну если VB нравится больше чем VBA, то пиши безформенную утилиту.
Передавай ей в коммандной строке имя файла.
А куда выводить результат решай сам.
Функция сбора рюкзака из VBA для применения в VB не требует вмешательсв.
Поготовь массив из своего списка и передай в функцию

Добавлено через 5 минут
Что он желает получить из Вашего кода? Что ему не нравится?
Ему не нравится, что Willi2001 не хочет читать пояснения к коду
Читай внимательно 3 строку пояснений выше кода и выполняй рекомендации
1
Заблокирован
23.10.2015, 08:37  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Ему не нравится, что Willi2001 не хочет читать пояснения к коду
Alex77755, спасибо за участие! Далее рассказываю для Новичков, как обеспечить симбиоз: VB6 — VBA. Пишу своими словами, как умею.
Пояснение, под "писаниной" понимаю: лишнюю работу по переписке или повторному набору на клавиатуре исходных данных!

Как подключить библиотеку Excel для Visual Basic 6.0?
Смотрите: Использование Visual Basic для автоматизации Microsoft Excel https://support.microsoft.com/ru-ru/kb/219151
В Visual Basic для этого служит диалоговое окно References (для его вызова в меню Project выберите команду References). Для выполнения представленного программного кода необходимо добавить ссылку на библиотеку типов Excel.

References (Рекомендации).
У меня установлен на ПК — "Microsoft Excel 2007". Поэтому ставим Флажок для "Microsoft Excel 12.0 Object Library"

Смотрите картинки внизу. Чуть позже распишу остальные шаги.
Миниатюры
Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу   Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу   Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу  

0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
23.10.2015, 08:59
Это уход в сторону от темы
1. Уже неоднократно был задан вопрос: где находятся списки?
Если собираешься делать в VB, то нужен ли вообще ексел?
Если спасок в txt, то зачем подключать ексел? Читай из текстовика!
Не лей много воды на форум.
Не забывай о правилах: Один вопрос - одна тема!
Вопрос о рюкзаке! К чему здесь ликбез по подключению библиотек?
1
Заблокирован
23.10.2015, 09:49  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Вопрос о рюкзаке! К чему здесь ликбез по подключению библиотек?
Alex77755, спасибо за любопытство! Живёте на облаках, в гипертрофированном сознании. Азбука — для Вас, для подавляющего большинства — дебри.
Вот то, что пытаюсь описывать, неизвестно и непонятно для 99.99 % предпринимателей и бухгалтеров. Конечно, хочу обслуживать интересы бизнеса, только у него есть живые деньги.

Пишу искренне, для меня Авторитет: SoftIce, который взял интересный алгоритм у "Михаил Ч". Последнего даже не знаю, но только по его наработкам по России в июле-августе 2015 года стали решаться многомерные оптимизационные задачи.

По смыслу Рюкзак: склад, магазин или грузовик.
Хочу ввести дополнительные параметры: Потребность, Рентабельность, Оборачиваемость, Габаритность и Надёжность.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
23.10.2015, 16:35
Цитата Сообщение от Willi2001 Посмотреть сообщение
Последнего даже не знаю, но только по его наработкам по России в июле-августе 2015 года стали решаться многомерные оптимизационные задачи.
Искренне утверждаете, что до июля 2015 г. такие задачи в России ни кем не решались?
1
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
23.10.2015, 16:37
Pro_grammer, Да прекращайте вы это бот !!! Вы с кем общаетесь
0
Заблокирован
23.10.2015, 22:36  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Искренне утверждаете, что до июля 2015 г. такие задачи в России ни кем не решались?
Pro_grammer!
Пишу искренне, сам остро нуждаюсь в деньгах. Ищу "золотые жилы", чтобы стать полезным обществу. Зачем мне "что-то" изучать, если на это "что-то" нет никакого спроса. Никому не нужно, даже даром.
Тему многомерных оптимизаций исследовал по всем языкам программирования, в течение недели. К сожалению, мои исследования погибли 07.10.15 — из-за "Dr.Web CureIt!" пришлось сделать восстановление системы на 16.09.15

Для любопытных, смотрите внимательно на даты:
начиная с Тема навеяна статьей Николая Павлова и заканчивая, в самом конце, Классическую "Задачу о рюкзаке" см. здесь
0
Заблокирован
23.10.2015, 23:59  [ТС]
Цитата Сообщение от Willi2001 Посмотреть сообщение
Чуть позже распишу остальные шаги
Продолжаю тему. Делаю замену
Visual Basic
1
13  Set xlWb = xlApp.Workbooks.Open("c:\temp\Лист1.xls") '==== путь к книге
На свой путь к файлу
Visual Basic
1
13 Set xlWb = xlApp.Workbooks.Open("C:\Users\admin\Pictures\Rucksack") '==== путь к книге
Всё в порядке — открывается задача про Рюкзак. Закрываю Excel, появляется диалоговое окно, с уточнением команды — картинки внизу.

Продолжение следует.
Миниатюры
Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу   Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу  
0
Заблокирован
24.10.2015, 03:40  [ТС]
Задача на оптимизацию для 4-х параметров
Предположим у нас есть фура, которую на складе поставщика надо заполнить самым выгодным товаром.
Как быстро посчитать? Какой товар выбрать? У кого какие мысли?

Пояснения к задаче:
Вообще-то совсем простая задача.
Фура – это тягач плюс полуприцеп на 20 тонн и объемом 86 кубов.
Весь товар упакован в коробки, имеющие различный вес и объем.
Рентабельность, как норма прибыли — торговая наценка на единицу товара. Например: 25800,20 * 0,657521629 = 16964,19 рублей.
Объём единицы товара и рентабельность получены через генератор случайных чисел.
Весь товар единичный, т.е. партию однородных предметов брать нельзя.

Смотрите вложение, где условия в Excel.

Условия к задаче
Visual Basic
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
Наименование    Вес в кг  Стоимость в рублях  Объем куб.м    Рентабельность в долях
Предмет 1    300 25 800,20   0,889163236 0,657521629
Предмет 2    250 625,30  0,128130215 0,874361238
Предмет 3    156 4 568,60    0,875350882 0,55635777
Предмет 4    168 9 514,20    0,624137057 0,763712474
Предмет 5    314 15 654,80   0,875070844 0,963186157
Предмет 6    215 92 100,10   0,177936503 0,339747236
Предмет 7    841 654,20  0,728597744 0,999791795
Предмет 8    369 7 520,50    0,966325255 0,90056385
Предмет 9    852 6 352,40    0,371552418 0,36529583
Предмет 10   147 19 558,77   0,824696728 0,568869455
Предмет 11   365 74 580,50   0,972044254 0,864170673
Предмет 12   145 72 806,00   0,053240441 0,438479141
Предмет 13   254 71 031,50   0,031056722 0,573280734
Предмет 14   741 69 257,00   0,695425517 0,585220785
Предмет 15   257 67 482,50   0,88845227  0,160188761
Предмет 16   259 65 708,00   0,941273825 0,220520896
Предмет 17   851 63 933,50   0,757480185 0,534557063
Предмет 18   853 62 159,00   0,186275173 0,216387756
Предмет 19   459 60 384,50   0,582788705 0,565546054
Предмет 20   453 58 610,00   0,488808626 0,77557647
Предмет 21   358 56 835,50   0,214487851 0,386163644
Предмет 22   657 55 061,00   0,591736075 0,951607896
Предмет 23   651 53 286,50   0,525583138 0,397568505
Предмет 24   954 51 512,00   0,105070429 0,105717562
Предмет 25   952 49 737,50   0,434980559 0,48663562
Предмет 26   158 47 963,00   0,25032738  0,509473267
Предмет 27   156 46 188,50   0,827679818 0,073025337
Предмет 28   354 44 414,00   0,670352779 0,565600564
Предмет 29   358 42 639,50   0,434551823 0,37453137
Предмет 30   756 40 865,00   0,106508083 0,269244891
Предмет 31   752 39 090,50   0,372980363 0,307698862
Предмет 32   215 37 316,00   0,362620165 0,917234137
Предмет 33   841 35 541,50   0,471441645 0,041873841
Предмет 34   369 33 767,00   0,932363349 0,648529227
Предмет 35   852 31 992,50   0,725587686 0,288513498
Предмет 36   147 30 218,00   0,574137416 0,01206492
Предмет 37   523 28 443,50   0,350995863 0,42215633
Предмет 38   258 26 669,00   0,007922492 0,498956225
Предмет 39   962 24 894,50   0,684861824 0,640544455
Предмет 40   159 23 120,00   0,145700229 0,055375775
Предмет 41   357 21 345,50   0,86743656  0,201265769
Предмет 42   456 19 571,00   0,740881476 0,915022556
Предмет 43   358 17 796,50   0,5061877   0,689989536
Предмет 44   951 16 022,00   0,498822269 0,523788586
Предмет 45   744 14 247,50   0,254402431 0,520513815
Предмет 46   888 12 473,00   0,483166928 0,259900062
Предмет 47   999 10 698,50   0,343077895 0,833587703
Предмет 48   358 8 924,00    0,824849141 0,051328237
Предмет 49   962 7 149,50    0,777436825 0,217922619
Предмет 50   147 5 375,00    0,73672312  0,564912794
Предмет 51   365 3 600,50    0,266194428 0,402153886
Предмет 52   145 1 826,00    0,031314012 0,6691452
Предмет 53   856 51,50   0,550838175 0,946343038
Предмет 54   965 35 951,50   0,439905003 0,796980578
Предмет 55   854 1 000,00    0,992696903 0,085157092
Предмет 56   745 1 126,70    0,483311271 0,58796171
Предмет 57   856 1 253,40    0,771275832 0,610930284
Предмет 58   963 1 380,10    0,357106523 0,364334223
Предмет 59   256 1 506,80    0,228584829 0,838887146
Предмет 60   365 1 633,50    0,412897727 0,143022239
Предмет 61   145 1 760,20    0,572256431 0,377572358
Предмет 62   254 1 886,90    0,931335522 0,670769819
Предмет 63   741 2 013,60    0,35708793  0,440618321
Предмет 64   257 2 140,30    0,979553546 0,874138186
Предмет 65   259 2 267,00    0,453033934 0,505686246
Предмет 66   851 2 393,70    0,781592218 0,775168425
Предмет 67   853 2 520,40    0,667355889 0,922592536
Предмет 68   459 2 647,10    0,346273851 0,412917936
Предмет 69   453 2 773,80    0,830605539 0,63222598
Предмет 70   358 2 900,50    0,559497402 0,214862836
Предмет 71   657 3 027,20    0,505230266 0,899703294
Предмет 72   651 3 153,90    0,593217799 0,252351053
Предмет 73   954 3 280,60    0,722817186 0,260212686
Предмет 74   952 3 407,30    0,07937969  0,276224921
Предмет 75   158 3 534,00    0,894717927 0,648629687
Предмет 76   156 3 660,70    0,921119044 0,393405609
Предмет 77   354 3 787,40    0,965577468 0,232933884
Предмет 78   358 3 914,10    0,954204308 0,49287643
Предмет 79   756 4 040,80    0,239373494 0,232050556
Предмет 80   752 4 167,50    0,979720378 0,534327007
Предмет 81   300 4 294,20    0,841467337 0,16670869
Предмет 82   250 4 420,90    0,401415    0,967737362
Предмет 83   156 4 547,60    0,061915807 0,575530463
Предмет 84   168 4 674,30    0,176404213 0,194285548
Предмет 85   314 4 801,00    0,32589248  0,568706237
Предмет 86   215 4 927,70    0,751597567 0,852601633
Предмет 87   841 5 054,40    0,86720043  0,911800123
Предмет 88   369 5 181,10    0,102687298 0,417291367
Предмет 89   852 5 307,80    0,860672208 0,908141157
Предмет 90   147 5 434,50    0,626708932 0,645848103
Предмет 91   523 5 561,20    0,903739239 0,183152631
Предмет 92   258 5 687,90    0,329356793 0,619616373
Предмет 93   962 5 814,60    0,129119155 0,072328022
Предмет 94   159 5 941,30    0,506499438 0,870748387
Предмет 95   357 6 068,00    0,374429048 0,487182466
Предмет 96   456 6 194,70    0,32712706  0,012749469
Предмет 97   358 6 321,40    0,484163302 0,501094522
Предмет 98   951 6 448,10    0,992783039 0,458858729
Предмет 99   744 6 574,80    0,855230112 0,629033182
Вложения
Тип файла: rar Товар для фуры.rar (12.0 Кб, 3 просмотров)
0
Заблокирован
24.10.2015, 17:16  [ТС]
Цитата Сообщение от Willi2001 Посмотреть сообщение
Вообще-то совсем простая задача
Поясняю для школьников!
Да, задача про фуру лёгкая, детская. Всё решается за 15-20 минут. Без программирования. Под силу среднему ученику 9-го класса.
Пусть абсолютная погрешность: ∆ = ±20 кг
Тогда относительная погрешность: δ = ±0,01%

Ход рассуждений следующий, по "Microsoft Excel 2007":
1) Автосумма по весу всех предметов: ∑ = 50029 > 20000. Учитываем ограничения
2) Автосумма по весу всех предметов: ∑ = 54,67 < 86. Пренебрегаем ограничениями.
3) Принципиальная формула вычислений по каждому Предмету:
Рентабельность на 1 кг = Стоимость/Вес * Норма рентабельности
Например: Предмет_1 = С5/B5 * E5 = 25800,20/300 * 0,657522 = 56,5473
4) Для всех остальных вычислений по столбцу "Наш Выбор" используем Опцию "Распространение узора вниз", наш Excel справится за секунду!
5) Делаем сортировку по столбцу "Наш Выбор", используя "Настраиваемую сортировку по убыванию". Получаем самые выгодные товары по убыванию.
6) Переходим в столбец "Вес в кг", где используя Опцию "Формулы" —> "∑ Автосумма ". После нескольких прикидочных подсчётов получаем допустимую сумму — 20006 кг.
7) Удаляем излишние строки, получаем список самых выгодных товаров для загрузки в фуру.
8) Подсчитываем прибыль от загрузки:
Прибыль = Вес * Норма прибыли (Наш выбор)
Например: Предмет_ 12 = B5 * F5 = 145 * 220,1649 = 31923,91 рублей.
9) Опять выполняем "Распространение узора вниз" по столбцу "Прибыль", затем используем "∑ Автосумма ". Получаем общую сумму прибыли — 847531,14 рублей.

Результат по прибыли
Visual Basic
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
Самый выгодный товар для загрузки в фуру                      
                        
                        
Наименование    Вес в кг  Стоимость в рублях  Объем куб.м    Рентабельность в долях  Наш товар   Прибыль
Предмет 12   145 72 806,00   0,053240441 0,438479141 220,1649129 31923,91237
Предмет 11   365 74 580,50   0,972044254 0,864170673 176,5761121 64450,28091
Предмет 13   254 71 031,50   0,031056722 0,573280734 160,3188599 40720,99043
Предмет 32   215 37 316,00   0,362620165 0,917234137 159,1977165 34227,50904
Предмет 26   158 47 963,00   0,25032738  0,509473267 154,6573817 24435,8663
Предмет 6    215 92 100,10   0,177936503 0,339747236 145,5383925 31290,75438
Предмет 20   453 58 610,00   0,488808626 0,77557647  100,3455561 45456,53693
Предмет 22   657 55 061,00   0,591736075 0,951607896 79,75111474 52396,48239
Предмет 10   147 19 558,77   0,824696728 0,568869455 75,68970419 11126,38652
Предмет 19   459 60 384,50   0,582788705 0,565546054 74,40134137 34150,21569
Предмет 28   354 44 414,00   0,670352779 0,565600564 70,96210014 25120,58345
Предмет 21   358 56 835,50   0,214487851 0,386163644 61,30671447 21947,80378
Предмет 34   369 33 767,00   0,932363349 0,648529227 59,34657564 21898,88641
Предмет 1    300 25 800,20   0,889163236 0,657521629 56,54729842 16964,18953
Предмет 16   259 65 708,00   0,941273825 0,220520896 55,94589592 14489,98704
Предмет 14   741 69 257,00   0,695425517 0,585220785 54,69721444 40530,6359
Предмет 38   258 26 669,00   0,007922492 0,498956225 51,57621536 13306,66356
Предмет 5    314 15 654,80   0,875070844 0,963186157 48,02065813 15078,48665
Предмет 29   358 42 639,50   0,434551823 0,37453137  44,60846465 15969,83035
Предмет 4    168 9 514,20    0,624137057 0,763712474 43,25067395 7266,113223
Предмет 15   257 67 482,50   0,88845227  0,160188761 42,06201586 10809,93808
Предмет 17   851 63 933,50   0,757480185 0,534557063 40,15993417 34176,10398
Предмет 42   456 19 571,00   0,740881476 0,915022556 39,27172465 17907,90644
Предмет 43   358 17 796,50   0,5061877   0,689989536 34,29999659 12279,39878
Предмет 23   651 53 286,50   0,525583138 0,397568505 32,54229517 21185,03416
Предмет 94   159 5 941,30    0,506499438 0,870748387 32,53696472 5173,37739
Предмет 54   965 35 951,50   0,439905003 0,796980578 29,69186243 28652,64724
Предмет 25   952 49 737,50   0,434980559 0,48663562  25,42441089 24204,03917
Предмет 90   147 5 434,50    0,626708932 0,645848103 23,87660894 3509,861515
Предмет 37   523 28 443,50   0,350995863 0,42215633  22,95908903 12007,60356
Предмет 27   156 46 188,50   0,827679818 0,073025337 21,62135116 3372,93078
Предмет 50   147 5 375,00    0,73672312  0,564912794 20,65582496 3036,40627
Предмет 86   215 4 927,70    0,751597567 0,852601633 19,54123287 4201,365067
Предмет 8    369 7 520,50    0,966325255 0,90056385  18,35417463 6772,690437
Предмет 82   250 4 420,90    0,401415    0,967737362 17,11308041 4278,270104
Предмет 83   156 4 547,60    0,061915807 0,575530463 16,77745085 2617,282332
Предмет 39   962 24 894,50   0,684861824 0,640544455 16,57591885 15946,03393
Предмет 3    156 4 568,60    0,875350882 0,55635777  16,29343659 2541,776108
Предмет 31   752 39 090,50   0,372980363 0,307698862 15,99481699 12028,10237
Предмет 18   853 62 159,00   0,186275173 0,216387756 15,76840158 13450,44655
Предмет 30   756 40 865,00   0,106508083 0,269244891 14,55382601 11002,69246
Предмет 75   158 3 534,00    0,894717927 0,648629687 14,50795769 2292,257314
Предмет 92   258 5 687,90    0,329356793 0,619616373 13,6601394  3524,315966
Предмет 41   357 21 345,50   0,86743656  0,201265769 12,03394531 4296,118476
Предмет 35   852 31 992,50   0,725587686 0,288513498 10,83364799 9230,268089
Предмет 45   744 14 247,50   0,254402431 0,520513815 9,967769595 7416,020579
Предмет 47   999 10 698,50   0,343077895 0,833587703 8,927065101 8918,138036
Итого:           20006                                                           847583,14
Смотрите вложение архива, внизу в Excel.
Миниатюры
Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу   Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу   Набрать самые лучшие (ценные) в некий Рюкзак, с ограничением по полному весу  

Вложения
Тип файла: rar Наш товар.rar (11.9 Кб, 4 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.10.2015, 17:16
Помогаю со студенческими работами здесь

Самые лучшие видеокарты
подскажите какие лучше брать для игр в пределах 10000 рублей

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru