Модифицируйте программу таким образом, чтобы она выводила название чисел в диапазоне от 1...

0 голосов
112 просмотров

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


Информатика (15 баллов) | 112 просмотров
0

Для выделения числа десятков двузначных чисел используется операция целочисленного деления (а не «остаток от деления»)! Операцией mod 10 определяется число единиц в числе, а не число десятков!

0

Где программа, которую нужно модифицировать?

Дан 1 ответ
0 голосов
Правильный ответ

Var n:integer;
a:array[1..27] of string[15]=
 ('один','два','три','четыре','пять','шесть','семь','восемь','девять',
  'десять','одиннадцать','двенадцать','тринадцать','четырнадцать',
  'пятнадцать','шестнадцать','семнадцать','восемнадцать','девятнадцать', 
  'двадцать','тридцать','сорок','пятьдесят','шестьдесят','семьдесят',
  'восемьдесят','девяносто');
begin
write('N (1..99) = ');
readln(N);
if (n>=1)and(n<=19)<br>  then writeln(a[n])
  else begin 
       write(a[n div 10 + 18]);
       if n mod 10 <> 0 then write(' ',a[n mod 10]);
       writeln;
       end;
end. 

Пример:
N (1..99) = 46
сорок шесть

(194k баллов)