Предмет: Информатика, автор: nekitya2007

При продаже товара бухгалтеру необходимо заполнить накладную в которой пена проданного товара должна указываться с единицами измерения не только цифрами, но еще и прописью. Напиште программу которая облегчает работу бухгалтера и введенную пифрами сумму стоимости товара преобразует в текстовый вариант. Рассмотрите возможные варнанты в днапазоне от 1 до 100 включительно. Уделите особое внимание окончанням слов.
Пример
1. Введите количество рублей в стоимости товара:
10 Введите количество копеек в стоимости товара: 21 Результат: десять рублей двадцать одна копейка
2. Введите количество рублей в стоимости товара:
42 Введите количество копеек в стоимости товара: 53 Результат: сорок два рубля пятьдесят три копейки

Ответы

Автор ответа: Гурлей
0

program BB;

var a1, a2 :string;

var da: integer;

var aa, dd :string;

function F (n, da: integer): string;

begin

aa:='';

if n=1 then begin if da=1 then aa:='одна' else aa:='один' end;

if n=2 then begin if da=1 then aa:='две' else aa:='два' end;

if n=3 then aa:='три';

if n=4 then  aa:='четыре';

if n=5 then  aa:='пять';

if n=6 then  aa:='шесть';

if n=7 then  aa:='семь';

if n=8 then  aa:='восемь';

if n=9 then   aa:='девять';

F:=aa;

end;

var a, r, k:string;

var n, d, e, c:integer;

var temp:integer;

function F2 (a, dd: string): string;

begin

val(a, n);

if n<10 then r:=F(n,1);

if n=10 then r:='десять'; if n=11 then r:='одиннадцать';

if n>10 then

if n<20 then

begin

 r:=F(n,0);

 c:=length(r); delete(r, c, 1);

 r:=r+'надцать';

end;

if n>=20 then

begin

if n=100 then r:='сто'

else

begin

 d:=n div 10 mod 10;

 e:=n mod 10;

 if d=2 then r:=F(d,0)+'дцать';

 if n mod 100=3 then r:=F(d,0)+'дцать';

 if d=4 then r:='сорок';

 if d=9 then r:='девяносто';

 if d>=5 then if d<=8 then r:=F(d,0)+'десят';

 if dd='1' then r:=r+' '+F(e,1) else

 if e<>0 then r:=r+' '+ F(e,0);

end

 end;

F2:=r;

end;

begin

write('Введите количество рублей в стоимости товара: '); readln(a1);

write('Введите количество копеек в стоимости товара: '); readln(a2);

val(a1, temp);

write (F2(a1, '0'));

if temp mod 10 =0 then write(' рублей') else

if temp mod 10 =1 then write(' рубль') else

if temp mod 10>=5 then write(' рублей') else

write(' рубля');

write(' ');

writeln (F2(a2, '1'));

val(a2, temp);

if temp mod 10 = 1 then writeln(' копейка') else

if temp mod 10 = 0 then writeln(' копеек') else if temp mod 10 >=5 then writeln(' копеек') else

writeln(' копейки');

end.


Гурлей: можно оптимизировать, но и так сойдет, работает и слава богу
nekitya2007: спасибо конечно)) но мне нужен питон
nekitya2007: паскаль я и сам могу
Гурлей: Ну, для этого надо писать на каком языке хотите. И если можете на паскале, то в чем проблема на питоне? Задание из максимально простых действий.
nekitya2007: я не придираюсь) спасибо за то что вообще написали просто мы изучаем питон
nekitya2007: а я бублик в нем
Похожие вопросы
Предмет: Русский язык, автор: Марго07114678644
Предмет: Математика, автор: brainmaps38