Вопрос по информатике:
Здравствуйте!Помогите пожалуйста решить задачу:
Синтезировать автомат по продаже билетов стоимостью 5 руб. Автомат может принимать монеты 1,2,5 руб. Сдачу автомат не выдает. При вводе неверной сумы – сброс денег обратно
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 12.02.2017 07:10
- Информатика
- remove_red_eye 4509
- thumb_up 17
Ответы и объяснения 1
// Внимание! Если программа не работает, обновите версию!
begin
// В целях упрощения логики программы варианты
// выбора кнопок 0 и * вместе не рассматриваются
//
Writeln('Опускайте монеты достоинством 1,2,5 руб.');
Writeln('Кнопка "0" завершение приема, кнопка "*" - возврат монет');
var s:=ReadlnString;
var p:=Pos('*',s);
if p>0 then begin
var sr:=s[:p].ToIntegers;
if sr.Sum>0 then Writeln('Возврат монет: ',s[:p])
else Writeln('Нечего возвращать!')
end
else begin
p:=Pos('0',s);
if p>0 then begin
s:=s[:p];
var a:=s.ToIntegers;
if a.Length>0 then begin
var acc:=a.Where(t->t in [1,2,5]);
var rej:=a.Where(t->not(t in [1,2,5]));
if rej.Count>0 then Writeln('Не приняты: ',rej);
var sum:=acc.Sum;
if sum mod 50 then begin
Writeln('Введена неверная сумма');
Write('Принятые монеты возвращены: ');
acc.OrderBy(t->t).Println
end
else
if sum>0 then
Writeln('Получите билеты в количестве ',sum div 5,' шт.')
end
else
Writeln('Вы не опустили ни одной монеты')
end
else
Writeln('Вы не выбрали кнопку "0" или "*"')
end
end.
Примеры
Опускайте монеты достоинством 1,2,5 руб.
Кнопка "0" завершение приема, кнопка "*" - возврат монет
3 6 3 1 3 5 2 5 2 4 2 3 6 2 1 0
Не приняты: [3,6,3,3,4,3,6]
Получите билеты в количестве 4 шт.
Опускайте монеты достоинством 1,2,5 руб.
Кнопка "0" завершение приема, кнопка "*" - возврат монет
3 6 3 1 3 5 2 5 2 4 2 3 6 2 1 *
Возврат монет: 3 6 3 1 3 5 2 5 2 4 2 3 6 2 1
Опускайте монеты достоинством 1,2,5 руб.
Кнопка "0" завершение приема, кнопка "*" - возврат монет
3 6 3 1 3 5 2 4 2 3 6 2 1 0
Не приняты: [3,6,3,3,4,3,6]
Введена неверная сумма
Принятые монеты возвращены: 1 1 2 2 2 5
Опускайте монеты достоинством 1,2,5 руб.
Кнопка "0" завершение приема, кнопка "*" - возврат монет
3 6 3 7 3 4 3 8 6 0
Не приняты: [3,6,3,7,3,4,3,8,6]
Опускайте монеты достоинством 1,2,5 руб.
Кнопка "0" завершение приема, кнопка "*" - возврат монет
0
Вы не опустили ни одной монеты
- 13.02.2017 19:56
- thumb_up 35
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.