Отобразить дробь - Turbo Pascal
Формулировка задачи:
Пишу отчет на fastreport, там встроен паскаль, нужна функция, на вход которой можно подать число - размер в дюймах (например, 1.249), на выходе вернется то же число, но дробная часть должна быть представлена в виде дроби через пробел после целой, например так:
Естественно на выходе строковая переменная.
P.S. Колонка справа - так принято записывать дюймы на западе.
Вход | Выход |
1.5 | 1 1/2 |
2.25 | 2 1/4 |
5.75 | 5 3/4 |
Решение задачи: «Отобразить дробь»
textual
Листинг программы
function ToQrtrs(n: Real): String; var p: Integer; s: String; begin p:=Round(Frac(n)*4); n:=Int(n)+p div 4; p:=p mod 4; Str(n:0:0,s); case p of 1: s:=s+' 1/4'; 2: s:=s+' 1/2'; 3: s:=s+' 3/4'; end; ToQrtrs:=s; end;
Объяснение кода листинга программы
- В функции
ToQrtrs
переменнойn
присваивается значениеReal
, которое представляет дробь, которую нужно преобразовать в четверти. - Затем, переменная
p
инициализируется значениемInteger
, которое будет использоваться для округления дроби до ближайшего целого числа. - Переменная
s
инициализируется строкой, которая будет использоваться для хранения преобразованной дроби в виде строки. - Вычисляется дробь
n
путем деленияFrac(n)
на4
и округления результата до ближайшего целого числа с помощьюRound
. Результат сохраняется в переменнойp
. - Затем, вычисляется остаток от деления
p
на4
с помощью оператора%
. Этот остаток будет использоваться для определения последней четверти. - Строка
s
преобразуется с помощью функцииStr()
, чтобы представить дробь в виде строки. - Используется оператор
case
для определения последней четверти на основе значения переменнойp
. - Если
p
равно1
, то к строкеs
добавляется строка' 1/4'
. - Если
p
равно2
, то к строкеs
добавляется строка' 1/2'
. - Если
p
равно3
, то к строкеs
добавляется строка' 3/4'
. - Значение
s
присваивается переменнойToQrtrs
, которая возвращает результат. - Код завершается, и результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д