Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 10.10.2017
Сообщений: 43
1

Задача про сдачу

11.10.2017, 00:06. Показов 1404. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! Написал код, но уж очень коряво.Помогите пожалуйста исправить. Заранее спасибо.
P.S если есть ошибки в оформлении темы сообщите пожалуйста.

В обращении имеются 1, 2, 5, 10, 20, 50 рублевых монет. Написать программу, определяющую сдачу наименьшим количеством монет. Для определения размера сдаваемой сдачи сначала опре-делить, сколько требуется для этого монет 50-рублевого достоинства, затем 20, 10, 5, 2, 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
Sub Main()
    Dim money As UShort 
    Dim surrender1 As Byte
    Dim surrender2 As Byte
    Dim surrender3 As Byte
    Dim surrender4 As Byte
    Dim surrender5 As Byte
    Dim surrender6 As Byte
    Console.WriteLine("Введите количество денег")
    money = Console.ReadLine()
    If money \ 50 <> 0 Then
       surrender1 = money \ 50
    ElseIf money Mod 50 <> 0 Then
       surrender2 = (money Mod 50) \ 20
    ElseIf money (money Mod 50) Mod 20) <> 0 Then
       surrender3 = ((money Mod 50) Mod 20) \ 10
    ElseIf (((money Mod 50) Mod 20) Mod 10) <> 0 Then
       surrender4 = (((money Mod 50) Mod 20) Mod 10) \ 5
    ElseIf ((((money Mod 50) Mod 20) Mod 10) Mod 5)  <> 0 Then
       surrender5 = ((((money Mod 50) Mod 20) Mod 10) Mod 5) \ 2 
    Else 
       surrender6 = 1
    End if 
    Console.WriteLine("Ваша сдача составит " & surrender1 & " купюр по 50 рублей " & surrender2 & " купюр по 20 рублей " & surrender3 & " купюр по 10 рублей " & surrender4 & " купюр по 5 рублей " & surrender5 & " купюр по 2 рубля " & surrender6 & " купюр по рублю " )
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2017, 00:06
Ответы с готовыми решениями:

Экстренно требуется ассистенция.Задача про монетки и сдачу.
Дано натуральное число N(N&lt;=99). Получить все способы выплаты суммы N с помощью монет достоинством...

Задача про взлом кода из книги Эрика Фримена про основы javascript в конце 5 главы.
читаю книгу Эрика Фримена про основы javascript.В конце 5 главы есть задачка про взлом кода.Никак...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он...

Задача про IP
Простите что не совсем в тему , но у меня ответ 97.15.81.53/15 , но говорят это неправильно ...

9
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
11.10.2017, 07:16 2
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
    Sub Main()
        Dim money As Integer, i, m(5), surrender(5) As Integer, s As String = "Ваша сдача составит:" & vbCrLf
        m = {50, 20, 10, 5, 2, 1}
        Console.WriteLine("Введите количество денег")
        money = Console.ReadLine()
        For i = 0 To 5
            surrender(i) = money \ m(i)
            If surrender(i) <> 0 Then s &= "-количество купюр по " & m(i) & " руб.: " & vbTab & surrender(i) & vbCrLf : money -= surrender(i) * m(i)
        Next
        Console.WriteLine(s)
        Console.ReadLine()
    End Sub
Добавлено через 6 часов 13 минут
Definited, кстати, surrender - это скорее сдача в плен, а вовсе не сдача с покупки.
2
1 / 1 / 0
Регистрация: 10.10.2017
Сообщений: 43
11.10.2017, 16:34  [ТС] 3
SoftIce, Спасибо большое!). Еще один вопрос, а используя только условия можно решить данную задачу ?
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
11.10.2017, 16:48 4
Цитата Сообщение от Definited Посмотреть сообщение
используя только условия можно решить данную задачу
Можно.
0
1 / 1 / 0
Регистрация: 10.10.2017
Сообщений: 43
11.10.2017, 17:06  [ТС] 5
SoftIce, так понимаю, что мое решение в корне неправильное ?
0
Заблокирован
12.10.2017, 21:46 6
Цитата Сообщение от SoftIce Посмотреть сообщение
VB.NET
1
money -= surrender(i) * m(i)
Или в VBNET нет оператора MOD, или SoftIce решил покуражиться?
Visual Basic
1
money = money Mod m(i)
1
185 / 183 / 31
Регистрация: 11.10.2016
Сообщений: 599
13.10.2017, 09:15 7
Цитата Сообщение от Definited Посмотреть сообщение
а используя только условия можно решить данную задачу
получится, надо полагать, что-то вроде этого:
VB.NET
1
2
3
4
5
6
7
money = Console.ReadLine()
If money >= 50 Then q = money \ 50: money = money - q * 50: Console.WriteLine(q & " x50" & vbCrlf)
If money >= 20 Then q = money \ 20: money = money - q * 20: Console.WriteLine(q & " x20" & vbCrlf)
If money >= 10 Then q = money \ 10: money = money - q * 10: Console.WriteLine(q & " x10" & vbCrlf)
If money >= 5 Then q = money \ 5: money = money - q * 5: Console.WriteLine(q & " x5" & vbCrlf)
If money >= 2 Then q = money \ 2: money = money - q * 2: Console.WriteLine(q & " x2" & vbCrlf)
If money = 1 Then Console.WriteLine("1" & vbCrlf)
разумеется, повторяющиеся участки кода можно оформить в виде процедуры с параметрами
2
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
13.10.2017, 09:19 8
Цитата Сообщение от _shark Посмотреть сообщение
money = money - q * 50
Тоже куражитесь ?

А как же ?
Цитата Сообщение от Остап Бонд Посмотреть сообщение
money = money Mod m(i)
То есть, money = money Mod 50
0
185 / 183 / 31
Регистрация: 11.10.2016
Сообщений: 599
13.10.2017, 11:13 9
Цитата Сообщение от SoftIce Посмотреть сообщение
Тоже куражитесь ?
это на случай, если
Цитата Сообщение от Остап Бонд Посмотреть сообщение
в VBNET нет оператора MOD
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
13.10.2017, 12:10 10
Цитата Сообщение от _shark Посмотреть сообщение
в VBNET нет оператора MOD
Да есть он там. Мне просто не понравилось в первом сообщении Mod.. Mod.. Mod.. Mod.. Mod.. Mod.. двадцать раз подряд, да еще в час ночи
0
13.10.2017, 12:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2017, 12:10
Помогаю со студенческими работами здесь

Определить сдачу с покупки
Разбор От C отнимем A и от D отнимем B. Если D&lt;0, то уменьшаем С на единицу и увеличиваем D на...

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

Определить сдачу с покупки
1.Товар стоит a руб. b коп. За него заплатили c руб. d коп. Сколько сдачи требуется получить?(e...

Задача про биоритмы
Разработать программу, осуществляющую оценку физического, эмоционального и интеллектуального...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru