Сумма прописью - Pascal
Формулировка задачи:
Нужна помощь в задачке: Сумма прописью. Дано вещественное число r,(0 <= r < 100)
с не более чем двумя значащами цифрами после десятичной точки.
Считаем, что r обозначает денежную сумму в рублях.
Вывести на экран правильно согласованную фразу, обозначающую r,
в виде "X рубли Y копеек"
(например число 22,21 должно быть выведено в виде "22 рубля 21 копейка").
Решение задачи: «Сумма прописью»
textual
Листинг программы
var n:real; r,k:integer; s:string; begin //введем число с проверкой, чтобы это было вещественное число >=0 и <100 //и с 2 знаками после запятой repeat writeln('Введите сумму в рубляж с не более чем 2 знаками после запятой от 0 до 100 n='); readln(s); val(s,n,k); if(k<>0)or(n<0)or(n>=100)or(pos('.',s)=0)or(length(s)-pos('.',s)>2) then writeln('Число введено неверно'); until(k=0)and(n>=0)and(n<=100)and(pos('.',s)>1)and(length(s)-pos('.',s)<3); r:=trunc(n); k:=trunc(n*100) mod 100; case r mod 100 of 11..19:write(r,' рублей '); else case r mod 10 of 1:write(r,' рубль '); 2..4:write(r,' рубля '); else write(r,' рублей ') end; end; case k of 11..19:write(k,' копеек'); else case k mod 10 of 1:write(k,' копейка'); 2..4:write(k,' копейки'); else write(k,' копеек') end; end; end.
Объяснение кода листинга программы
- Объявлены четыре переменные: n, r, k, s.
- Переменная n объявлена как вещественное число, а r, k и s - как целочисленные.
- Цикл repeat-until используется для ввода суммы в рубляж.
- Ввод суммы происходит с помощью функции readln, которая считывает строку из консоли.
- Функция val используется для проверки корректности ввода.
- Если введенное значение некорректно, выводится сообщение об ошибке.
- Если значение корректно, то оно преобразуется в вещественное число с плавающей точкой и вычисляется значение k, представляющее сумму в копейках.
- Используется оператор case для формирования вывода суммы в нужном формате.
- Если значение r в диапазоне от 11 до 19, то выводится слово
рублей
. - Если значение r равно 1, то выводится слово
рубль
. - Если значение r находится в диапазоне от 2 до 4, то выводится слово
рубля
. - В остальных случаях выводится слово
рублей
. - Используется оператор case для формирования вывода суммы в копейках в нужном формате.
- Если значение k в диапазоне от 11 до 19, то выводится слово
копеек
. - Если значение k равно 1, то выводится слово
копейка
. - Если значение k находится в диапазоне от 2 до 4, то выводится слово
копейки
. - В остальных случаях выводится слово
копеек
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д