Заданы числитель и знаменатель обыкновенной дроби. Представить эту дробь в виде десятичной - Free Pascal

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

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

Заданы числитель и знаменатель обыкновенной дроби. Представить эту дробь в виде десятичной (получить n знаков после запятой) и определить, сколько раз встречается в результате цифра 5.

Решение задачи: «Заданы числитель и знаменатель обыкновенной дроби. Представить эту дробь в виде десятичной»

textual
Листинг программы
{$mode objfpc}{$H+}
uses
  sysutils, math, gmp;
 
const
  n = 100;
 
var
  num, denom : integer;
  p_num, p_denom, res : mpfloat;
  s : string;
  ch : char;
  five : integer;
begin
  num := 4; denom := 7;
  f_set_default_prec(floor(n / log_10_2));
  f_init_set_si(p_num, num);
  f_init_set_si(p_denom, denom);
 
  res := f_div(p_num, p_denom);
  s := format('%s', [string(res)]);
  s := copy(s, 1, pos('.', s) + n);
  writeln(s);
 
  five := 0;
  for ch in s do if ch = '5' then inc(five);
  writeln('5''s -> ', five);
end.

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

В данном коде задачей является представление обыкновенной дроби в виде десятичной.

  1. Импортируются необходимые модули: sysutils, math, gmp.
  2. Устанавливается константа n равная 100.
  3. Задаются числитель и знаменатель обыкновенной дроби в переменных num и denom соответственно.
  4. Создаются переменные p_num и p_denom типа mpfloat и инициализируются значениями числителя и знаменателя соответственно.
  5. Вычисляется результат деления числителя на знаменатель и сохраняется в переменной res.
  6. Полученный результат представляется в виде строки в переменной s с помощью функции format.
  7. Строка s обрабатывается таким образом, чтобы оставить только числительную часть (до десятичной точки).
  8. Полученная строка выводится на экран с помощью функции writeln.
  9. Инициализируется переменная five равной нулю.
  10. Происходит проверка каждого символа строки s. Если символ равен '5', то к переменной five прибавляется единица.
  11. Выводится количество символов '5' в переменной five.

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


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

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

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