Записать программу выведения натурального числа N (<=n<=9999) в его словесной...

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

Записать программу выведения натурального числа N (<=n<=9999) в его словесной записи.<br>Например n=2345 - две тысячи триста пятдесят четыре


Информатика (18 баллов) | 37 просмотров
Дан 1 ответ
0 голосов

Я писала для n<=10000. Измените для своих данных.<br> Uses Crt;
  var n:integer;
      s1,s2,s3,s4,s5:string;
begin
  ClrScr;
  writeln('введите натуральное число (n<=10000)');<br>  readln(n);
  if n>10000 then
               begin
                 writeln('неверный ввод');
                 readln;
                 exit;
               end;
{пятая цифра}
    case n mod 10 of
      1: s5:='один';
      2: s5:='два';
      3: s5:='три';
      4: s5:='четыре';
      5: s5:='пять';
      6: s5:='шесть';
      7: s5:='семь';
      8: s5:='восемь';
      9: s5:='девять';
    end;
{четвертая цифра}
    if n div 10 mod 10=1 then
{четвертая цифра - 1}
      begin
        s4:='';
        case n mod 10 of
          0: s5:='десять';
          1: s5:='одиннадцать';
          2: s5:='двенадцать';
          3: s5:='тринадцать';
          4: s5:='четырнадцать';
          5: s5:='пятнадцать';
          6: s5:='шестнадцать';
          7: s5:='семнадцать';
          8: s5:='восемнадцать';
          9: s5:='девятнадцать';
        end;
      end
    else
{четвертая цифра не равна 1}
      case n div 10 mod 10 of
        2: s4:='двадцать';
        3: s4:='тридцать';
        4: s4:='сорок';
        5: s4:='пятьдесят';
        6: s4:='шестьдесят';
        7: s4:='семьдесят';
        8: s4:='восемьдесят';
        9: s4:='девяносто';
      end;
{третья цифра}
   if n div 100 mod 10=0 then s3:=''
     else
       case  n div 100 mod 10 of
         1: s3:='сто';
         2: s3:='двести';
         3: s3:='триста';
         4: s3:='четыреста';
         5: s3:='пятьсот';
         6: s3:='шестьсот';
         7: s3:='семьсот';
         8: s3:='восемьсот';
         9: s3:='девятьсот';
        end;
{вторая цифра}
   if n div 1000 mod 10=0 then s2:=''
    else
     case n div 1000 mod 10 of
       1: s2:='одна тысяча';
       2: s2:='две тысячи';
       3: s2:='три тысячи';
       4: s2:='четыре тысячи';
       5: s2:='пять тысяч';
       6: s2:='шесть тысяч';
       7: s2:='семь тысяч';
       8: s2:='восемь тысяч';
       9: s2:='девять тысяч';
     end;
  if n div 10000 =1 then s1:='десять тысяч'
                    else s1:='';
  writeln(s1,' ',s2,' ',s3,' ',s4,' ',s5);
  readln
end.




(18 баллов)
0

А нас так учили в школе. Я учусь в 8 классе, думаю, что для меня это нормально. Когда буду программистом, то научусь писать лучше.

0

Я буду стараться. Мне это очень интересно.