{Файл: prog_lab2.pas
Задача:
  Дано вещественное число r, (0<=r<100) с не более чем двумя значащами цифрами 
  после десятичной точки. Считаем, что r обозначает денежную сумму в рублях. 
  Вывести на экран правильно согласованную фразу, обозначающую r, в виде 
  "X рублей Y копеек"(например, чмсло 22.21 должно быть выведено в виде "22 рубля 21 копейка").
Автор:
 
Дата:
  25,10,2015}
var 
    st:string;
    n, m, k : integer;
    n1, m1:real;
    

begin
{ввод}
  repeat
    writeln ('введитре число r, которое 1000>r>=0, с не более чем двумя значащами цифрами после десятичной точки ');
    read (n1);
  until (1000>n1) and (n1>=0);
 
 {Выделение рублей, перевод вещественого числа n1 в целое число n}
 
  n:=Trunc(n1);
  
  
  {Вывод рублей}
  if n=0 then write ('ноль рублей ')
  else
  begin
  
   st:='';
  {Названия сотен}
     case n div 100 of
      1:st:='Сто'; 
      2:st:='Двести';
      3:st:='Триста';
      4:st:='Четыреста';
      5:st:='Пятьсот';
      6:st:='Шестьсот';
      7:st:='Семьсот';
      8:st:='Восемьсот';
      9:st:='Девятьсот';
     end;
  {Условные числа}
   case n mod 100 div 10 of
    2:st:=st+' двадцать';
    3:st:=st+' тридцать';
    4:st:=st+' сорок';
    5:st:=st+' пятьдесят';
    6:st:=st+' шестьдесят';
    7:st:=st+' семьдесят';
    8:st:=st+' восемьдесят';
    9:st:=st+' девяносто';
   end;
  {Десятки}
   case n mod 100 of
    10:st:=st+' десять';
    11:st:=st+' одиннадцать';
    12:st:=st+' двенадцать';
    13:st:=st+' тринадцать';
    14:st:=st+' четырнадцать';
    15:st:=st+' пятнадцать';
    16:st:=st+' шестнадцать';
    17:st:=st+' семнадцать';
    18:st:=st+' восемнадцать';
    19:st:=st+' девятнадцать';
   else
  {Единицы}
     case n mod 10 of
      
      1:k:=1;
      2:k:=2;
      3:k:=3;
      4:k:=4;
      5:st:=st+' пять ';
      6:st:=st+' шесть';
      7:st:=st+' семь';
      8:st:=st+' восемь';
      9:st:=st+' девять';
   end;
   end;
  {Вывод}
  case k of
    1: write ( ' ', st,' один рубль');
    2: write ( ' ', st,' два рубля ');
    3: write ( ' ', st,' три рубля ');
    4: write ( ' ', st,' четыре рубля ');
  else
    write( ' ', st,' рублей');
  end;
  end;
  
  {Выделение копеек}
  
      m1:= n1-n;
      m1:=(m1*100);
      m:=round(m1);
      {перевод числа m1 в целое число}
      
      
      {Вывод копеек}
      if m = 0 then write (' ноль копеек')
      else
      begin
       k:=0;
       st:='';
      {Условие}
     
      {Условные числа}
       case m mod 100 div 10 of
        2:st:=st+' двадцать';
        3:st:=st+' тридцать';
        4:st:=st+' сорок';
        5:st:=st+' пятьдесят';
        6:st:=st+' шестьдесят';
        7:st:=st+' семьдесят';
        8:st:=st+' восемьдесят';
        9:st:=st+' девяносто';
       end;
      {Десятки}
       case m mod 100 of
        10:st:=st+' десять';
        11:st:=st+' одиннадцать';
        12:st:=st+' двенадцать';
        13:st:=st+' тринадцать';
        14:st:=st+' четырнадцать';
        15:st:=st+' пятнадцать';
        16:st:=st+' шестнадцать';
        17:st:=st+' семнадцать';
        18:st:=st+' восемнадцать';
        19:st:=st+' девятнадцать';
       else
      {Единицы}
         case m mod 10 of
         
          1:k:=1;
          2:k:=2;
          3:k:=3;
          4:k:=4;
          5:st:=st+' пять';
          6:st:=st+' шесть';
          7:st:=st+' семь';
          8:st:=st+' восемь';
          9:st:=st+' девять';
          end;
       end;
      {Вывод}
      case k of
        1: write ( ' ', st,' одина копейка');
        2: write ( ' ', st,' две копейки ');
        3: write ( ' ', st,' три копейки ');
        4: write ( ' ', st,' четыре копейки ');
      else
        write( ' ', st,' копеек');
      end;
  end;
  
end.
