Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.09.2017
Сообщений: 18

Программа по расчету сдачи в кассе

07.02.2018, 06:42. Показов 1272. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
% Напишите программу, которая определяет сдачу в кассе самообслуживания
% супермаркета для покупок до 50$. Программа генерирует случайное число
% между 0.01 и 50.00 и выводит на экран это число, как сумму оплаты
% покупки. Затем программа просит, чтобы пользователь ввел оплату одной
% купюрой 1$, 5$, 10$, 20$ или 50$. Если этот платеж меньше, чем сумма
% оплаты, то на экран выводится сообщение об ошибке. Если платеж
% достаточен, программа вычисляет сдачу, как список купюр и/или монет для
% сдачи, который должен быть составлен из наименьшего числа купюр и монет.
% Например, если сумма покупки составляет 2.33$, и купюра 10$ вводится, как
% платеж, то сдача-одна купюра 5$, две купюры по 1$, две четверти(по 25 
% центов), десять центов, один никель (5 центов) и два пенса.
format bank
a=0.01+(50-0.01)*rand
b=input('введите оплату одной купюрой, 1$, 5$, $10, $20, $50 ');
if a>b
    disp('ОШИБКА, сумма оплаты меньше стоимости покупки')
else
    c=[0.01 0.05 0.25 1 5 10 20];
    cc=(b-a)-c;
end
У меня идея такая, что нужно от массива купюр и монет отнимать разницу выбранной купюры и суммы покупки,
отрицательные значения удалять из образующегося массива при минимальное(но большее чем 0) число в массиве будет соответствовать первой купюре сдачи.
Так нужно продолжать пока новый массив не исчезнет.
Подскажите как это сделать, я думаю тут нужен цикл while.

Добавлено через 23 часа 50 минут
Накидал вот такой вариант
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
format bank
a=0.01+(50-0.01)*rand
b=input('введите оплату одной купюрой, 1$, 5$, $10, $20, $50 ');
if a>b
    disp('ОШИБКА, сумма оплаты меньше стоимости покупки')
else
    c=[0.01 0.05 0.25 1 5 10 20];
    cc=(b-a)-c;
    j=0;
    while cc~=[]
    cc(cc<=0)=[];
    i=length(cc);
    j=j+1;
    d(j)=c(i);
    end
end
d
Но ругается на
Matlab M
1
2
3
4
5
Error using  ~= 
Matrix dimensions must agree.
 
Error in e6828 (line 21)
    while cc~=[]
Как лучше сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.02.2018, 06:42
Ответы с готовыми решениями:

Программа по расчету калорий
Помогите улучшить код! КАК СОКРАТИТЬ??? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Main...

Программа по расчету вероятности
Здравствуйте. Помогите пожалуйста доделать программу. Цикл реализовал после переделал, но ошибки все-равно....

Простая программа по расчету формулы
.model small .data a dw 5 b dw 5 c dw 50 d dw 5 e dw 5 f dd ? ost dd ? exp2 dw ?

1
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
07.02.2018, 07:53
Цитата Сообщение от Faleytpu Посмотреть сообщение
Как лучше сделать?
Вот вариант (красоту с вводом/выводом наводите сами):
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
c=[0.01 0.05 0.25 1 5 10 20];
a=5.451
b=10
if a>b
    disp('ОШИБКА, сумма оплаты меньше стоимости покупки')
else
    n=length(c);    
    cc1=a-floor(a/c(1))*c(1);
    cc=b-a+cc1+c(1)/2;
    for i=n:-1:1
        d(i)=floor(cc/c(i));
        cc=cc-d(i)*c(i);
    end
    c
    d
    str=sprintf('Скидка %.4f$',cc1);
    disp(str);
end
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2018, 07:53
Помогаю со студенческими работами здесь

Программа по расчету стажа работника
Расчитать стаж работника - количество целых лет, кроме того целых месяцев и дней (например 10лет 1месяц и 1день)начиная с даты 01.09.2010...

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

Delphi. Программа по расчету энергопотребления в квартире
Здравствуйте. Нужна помощь написать прогу в Delphi на расчет энергопотребления в квартире. Расчет включает все энергопотребители в квартире...

Нужна программа по расчету надежности локальной сети самая простейшая.
с использованием выделенного сервера.

Программа для сдачи отчёта
Здравствуйте! Возник такой вопрос. Есть к примеру 200 городов которые сдают в ежедневном режиме отчётность. Сегодня 15 городов не...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
[В процессе разработки] SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru