Отобразить дробь - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Пишу отчет на fastreport, там встроен паскаль, нужна функция, на вход которой можно подать число - размер в дюймах (например, 1.249), на выходе вернется то же число, но дробная часть должна быть представлена в виде дроби через пробел после целой, например так:
Вход Выход
1.5 1 1/2
2.25 2 1/4
5.75 5 3/4
Естественно на выходе строковая переменная. P.S. Колонка справа - так принято записывать дюймы на западе.

Решение задачи: «Отобразить дробь»

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;

Объяснение кода листинга программы

  1. В функции ToQrtrs переменной n присваивается значение Real, которое представляет дробь, которую нужно преобразовать в четверти.
  2. Затем, переменная p инициализируется значением Integer, которое будет использоваться для округления дроби до ближайшего целого числа.
  3. Переменная s инициализируется строкой, которая будет использоваться для хранения преобразованной дроби в виде строки.
  4. Вычисляется дробь n путем деления Frac(n) на 4 и округления результата до ближайшего целого числа с помощью Round. Результат сохраняется в переменной p.
  5. Затем, вычисляется остаток от деления p на 4 с помощью оператора %. Этот остаток будет использоваться для определения последней четверти.
  6. Строка s преобразуется с помощью функции Str(), чтобы представить дробь в виде строки.
  7. Используется оператор case для определения последней четверти на основе значения переменной p.
  8. Если p равно 1, то к строке s добавляется строка ' 1/4'.
  9. Если p равно 2, то к строке s добавляется строка ' 1/2'.
  10. Если p равно 3, то к строке s добавляется строка ' 3/4'.
  11. Значение s присваивается переменной ToQrtrs, которая возвращает результат.
  12. Код завершается, и результат выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.583 из 5
Похожие ответы