Вычисление суммы ряда p/q. Сумма должна быть = обычная несократимая дробь - Pascal ABC

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

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

Нужна помощь в написании программы, в основном процедуры. Программа вычисления суммы ряда p/q = 1 + 1/2 + 1/3 + ... + 1/n для заданного n. Сумма ряда в итоге, должна быть несократимая дробь(p,q - натуральные). Во есть такой код, считает, но дробь выходит такая, которую можно сократить.
Нужно встроить процедуру, которая будет делать так, что бы выходила несократимая дробь. Есть такой вариант процедуры, но что-то не пойму что и как.
Дробь выходит несократимой, но в процедуре прописано другое условие. Я не знаю, как мне заменить на свое. Помогите кто-то.

Решение задачи: «Вычисление суммы ряда p/q. Сумма должна быть = обычная несократимая дробь»

textual
Листинг программы
procedure summa(n:integer;var p,q:integer);
var i:integer;
begin
p:=1;
q:=1;
for i:=2 to n do
 begin
  p:=p*i+q;
  q:=q*i;
 end;
writeln('Сумма до сокращения= ',p,'/',q);
end;
procedure sokr(var p,q:integer);
var x,y,nd:integer;
begin
{нахождение НОД по алгоритму Эвклида}
x:=p;
y:=q;
repeat
if x>y then x:=x mod y
else y:=y mod x;
until (x=0) or (y=0);
nd:=x+y;
{Сокращение}
p:=p div nd;
q:=q div nd;
writeln('Сумма после сокращения= ',p,'/',q);
end;
var p,q,n:integer;
begin
repeat
write('Введите n от 1 до 12 n=');
readln(n);
until n in [1..12];
summa(n,p,q);
sokr(p,q)
end.

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

  1. В процедуре summa переменной n присваивается значение, введенное пользователем. Переменным p и q присваиваются начальные значения 1.
  2. Затем происходит цикл for, который выполняется от 2 до n. Внутри цикла переменные p и q пересчитываются согласно формуле p=p*i+q и q=q*i.
  3. По завершении цикла выводится сообщение с суммой до сокращения, которая представляет собой обычную несократимую дробь.
  4. В процедуре sokr переменным x, y и nd присваиваются начальные значения 1.
  5. Затем следует повторный цикл repeat, который выполняется до тех пор, пока x или y не станут равными нулю.
  6. В конце цикла переменным p и q присваиваются результаты деления x и y на их наибольший общий делитель nd.
  7. Выводится сообщение с суммой после сокращения, которая также представляет собой обычную несократимую дробь.
  8. В основной программе сначала запрашивается значение n от пользователя. Затем вызываются процедуры summa и sokr с соответствующими значениями p и q.

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


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

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

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