Заданы числитель и знаменатель обыкновенной дроби. Представить эту дробь в виде десятичной - 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.
Объяснение кода листинга программы
В данном коде задачей является представление обыкновенной дроби в виде десятичной.
- Импортируются необходимые модули: sysutils, math, gmp.
- Устанавливается константа n равная 100.
- Задаются числитель и знаменатель обыкновенной дроби в переменных num и denom соответственно.
- Создаются переменные p_num и p_denom типа mpfloat и инициализируются значениями числителя и знаменателя соответственно.
- Вычисляется результат деления числителя на знаменатель и сохраняется в переменной res.
- Полученный результат представляется в виде строки в переменной s с помощью функции format.
- Строка s обрабатывается таким образом, чтобы оставить только числительную часть (до десятичной точки).
- Полученная строка выводится на экран с помощью функции writeln.
- Инициализируется переменная five равной нулю.
- Происходит проверка каждого символа строки s. Если символ равен '5', то к переменной five прибавляется единица.
- Выводится количество символов '5' в переменной five.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д