
Kepe
6 год назад
Модифицируйте программу таким образом, чтобы она выводила название чисел в диапазоне от 1 до 99 (ну кассовый аппарат же это делает на чеках!). Подсказка №1. Для выделения числа десятков используйте хорошо знакомую вам операцию «остаток от деления». Т.е., если в переменнойn находится введенное число, то получить число десятков очень просто –d: = n mod 10; Подсказка №2. Надо рассмотреть по сути три диапазона чисел: от 1 до 9, от 10 до 19, и от 20 до 99.
ОТВЕТЫ

Шиловский
Jul 6, 2019
Var n:integer;
a:array[1..27] of string[15]=
(один,два,три,четыре,пять,шесть,семь,восемь,девять,
десять,одиннадцать,двенадцать,тринадцать,четырнадцать,
пятнадцать,шестнадцать,семнадцать,восемнадцать,девятнадцать,
двадцать,тридцать,сорок,пятьдесят,шестьдесят,семьдесят,
восемьдесят,девяносто);
begin
write(N (1..99) = );
readln(N);
if (ngt;=1)and(nlt;=19)
then writeln(a[n])
else begin
write(a[n div 10 + 18]);
if n mod 10 lt;gt; 0 then write( ,a[n mod 10]);
writeln;
end;
end.
Пример:
N (1..99) = 46
сорок шесть
a:array[1..27] of string[15]=
(один,два,три,четыре,пять,шесть,семь,восемь,девять,
десять,одиннадцать,двенадцать,тринадцать,четырнадцать,
пятнадцать,шестнадцать,семнадцать,восемнадцать,девятнадцать,
двадцать,тридцать,сорок,пятьдесят,шестьдесят,семьдесят,
восемьдесят,девяносто);
begin
write(N (1..99) = );
readln(N);
if (ngt;=1)and(nlt;=19)
then writeln(a[n])
else begin
write(a[n div 10 + 18]);
if n mod 10 lt;gt; 0 then write( ,a[n mod 10]);
writeln;
end;
end.
Пример:
N (1..99) = 46
сорок шесть
218