Вопрос задан 02.05.2021 в 23:52. Предмет Информатика. Спрашивает Шешукова Анюта.

Покупатель должен заплатить в кассу S р. У него имеются 1, 2, 5, 10, 50, 100, 500 р. Сколько купюр

разного достоинства отдаст покупатель, если он начинает платить с самых крупных? На VBA , без массивов
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Шафигуллин Ридаль.

Private Sub CommandButton1_Click()

Dim s As Integer, z As Integer

Dim t As String

t = "Для оплате в кассе необходимы:"

s = CInt(InputBox("Введите сумму оплаты"))

Do While s > 0

If s >= 500 Then

s = s - 500: k = k + 1

ElseIf s >= 200 Then

s = s - 200: m = m + 1

ElseIf s >= 100 Then

s = s - 100: n = n + 1

ElseIf s >= 50 Then

s = s - 50: z = z + 1

ElseIf s >= 10 Then

s = s - 10: v = v + 1

ElseIf s >= 5 Then

s = s - 5: h = h + 1

ElseIf s >= 2 Then

s = s - 2: f = f + 1

ElseIf s >= 1 Then

s = s - 1: d = d + 1

End If

Loop

If k > 0 Then

t = t + " " & k & " по 500 рублей, "

t = t + " " & m & " по 200 рублей, "

t = t + " " & n & " по 100 рублей, "

t = t + " " & z & " по 50 рублей, "

t = t + " " & v & " по 10 рублей, "

t = t + " " & h & " по 5 рублей, "

t = t + " " & f & " по 2 рублей, "

t = t + " " & d & " по 1 рублей, "

Cells(10, 1) = t

End If

End Sub

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

Вот код на VBA, который решает эту задачу:

vbnet
Sub CountNotes() Dim S As Integer Dim Count500, Count100, Count50, Count10, Count5, Count2, Count1 As Integer 'Вводим сумму, которую нужно заплатить S = InputBox("Введите сумму, которую нужно заплатить:") 'Перебираем купюры в порядке убывания Do While S > 0 If S >= 500 Then S = S - 500 Count500 = Count500 + 1 ElseIf S >= 100 Then S = S - 100 Count100 = Count100 + 1 ElseIf S >= 50 Then S = S - 50 Count50 = Count50 + 1 ElseIf S >= 10 Then S = S - 10 Count10 = Count10 + 1 ElseIf S >= 5 Then S = S - 5 Count5 = Count5 + 1 ElseIf S >= 2 Then S = S - 2 Count2 = Count2 + 1 ElseIf S >= 1 Then S = S - 1 Count1 = Count1 + 1 End If Loop 'Выводим результаты MsgBox "Количество купюр:" & vbCrLf & "500 руб.: " & Count500 & vbCrLf & "100 руб.: " & Count100 & vbCrLf & "50 руб.: " & Count50 & vbCrLf & "10 руб.: " & Count10 & vbCrLf & "5 руб.: " & Count5 & vbCrLf & "2 руб.: " & Count2 & vbCrLf & "1 руб.: " & Count1 End Sub

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

Количество купюр: 500 руб.: 2 100 руб.: 2 50 руб.: 1 10 руб.: 3 2 руб.: 2
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос