Нужно рассчитать как выгодно купить товар алгоритмически - VB
Формулировка задачи:
Всем привет!
Задача:
Требуется купить 5шт. одного и того же товара, но у всех разные цены и не у каждого есть требуемое количество, итак:
Магазин1, цена 10р., доступно 1шт. товара
Магазин2, цена 20р., доступно 2шт. товара
Магазин3, цена 40р., доступно 5шт. товара
Магазин4, цена 30р., доступно 3шт. товара
Нужно получить план с выгодной покупкой, т.е.:
а) Купить 1шт. в Магазине1
б) Купить 1шт. в Магазине2
в) Купить 3шт. в Магазине4
Как алгоритмически всё реализовать? Как посравнивать кучу цен с учётом по количеству?
Думал что такой код пройдёт, но нет, на выше приведённой задаче - не срабатывает.
Ну уже вообще голова не варит. И с кейсами пытался, и так и сяк... Чего-то не дотумкиваю, где-то.
Может кто посвежее будет на голову, да подскажет решеньице?
Листинг программы
- Dim arrTemp(2,3) As Single '0-номер магазина;1-цена товара;3-доступное количество;
- Dim ia As Integer
- Dim ib As Integer 'номер в массиве с минимальной ценой
- Dim iCount As Integer 'требуемое кол-во
- arrTemp(0,0) = 1
- arrTemp(1,0) = 10
- arrTemp(2,0) = 1
- arrTemp(0,1) = 2
- arrTemp(1,1) = 20
- arrTemp(2,1) = 2
- arrTemp(0,2) = 3
- arrTemp(1,2) = 40
- arrTemp(2,2) = 4
- arrTemp(0,3) = 4
- arrTemp(1,3) = 30
- arrTemp(2,3) = 3
- For ia = 0 To UBound(arrTemp, 2)
- If (arrTemp(1, ib) = 0 Or arrTemp(1, ib) > arrTemp(1, ia) And (arrTemp(1, ia) > 0)) And (arrTemp(2, ia) >= iCount) Then
- ib = ia
- End If
- Next
Решение задачи: «Нужно рассчитать как выгодно купить товар алгоритмически»
textual
Листинг программы
- Private Sub SortMinPrice(ByRef S() As typeShop)
- Dim i As Integer, j As Integer, t As typeShop
- For i = 1 To UBound(S)
- For j = 1 To UBound(S) - 1
- If S(j).Price > S(j + 1).Price Then
- t = S(j + 1)
- S(j + 1) = S(j)
- S(j) = t
- End If
- Next j
- Next i
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д