{Файл: 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.