Lazarus: щоб у написі текст переносился на новий рядок потрібно вставити символ ( ) 1. #3 2. @6 3. $1 4. &2 для того щоб на кнопці був напис розв'язання потрібно написати таку команду...
У вас есть число 137 если вам надо перевести его в какую-нибудь систему счисления, то нужно делить это число на номер системы, так если нужно перевести число 137 в ДВОичную ,то делим на 2 до тех пор, пока остатотк от деления не равен 1.(если в ТРОичную то на 3 и т.д.). начнём: 137 / 2 = 68 выписываем остаток (1) 68 / 2 = 34 выписываем остаток (0) 34 / 2 = 17 выписываем остаток (0) 17 / 2 = 8 выписываем остаток (1) 8 / 2 = 4 выписываем остаток (0) 4 / 2 = 2 выписываем остаток (0) 2 / 2 = 1 <== на этой единице заканчиваем деление, далее снизу вверх выписываем получившееся число : 001001; ответ: 001001
// PascalABC.NET 3.3, сборка 1579 от 18.11.2017 // Внимание! Если программа не работает, обновите версию!
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 5<>0 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 шт.
если вам надо перевести его в какую-нибудь систему счисления, то нужно делить это число на номер системы, так если нужно перевести число 137 в ДВОичную ,то делим на 2 до тех пор, пока остатотк от деления не равен 1.(если в ТРОичную то на 3 и т.д.).
начнём:
137 / 2 = 68 выписываем остаток (1)
68 / 2 = 34 выписываем остаток (0)
34 / 2 = 17 выписываем остаток (0)
17 / 2 = 8 выписываем остаток (1)
8 / 2 = 4 выписываем остаток (0)
4 / 2 = 2 выписываем остаток (0)
2 / 2 = 1 <== на этой единице заканчиваем деление, далее снизу вверх выписываем получившееся число : 001001;
ответ: 001001
// Внимание! Если программа не работает, обновите версию!
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 5<>0 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
Вы не опустили ни одной монеты