
Реализовать в виде модуля набор подпрограмм для выполнения над обыкновенными дробями вида P /Q (где
Р — целое число, Q — натуральное число). Вариант 1 В раздел реализации включить подпрограмму вычисления наибольшего общего делителя и на ее основе подпрограмму сокращения дробей. Помогите написать в паскале

Ответы на вопрос

// Внимание! Если программа не работает, обновите версию!
unit ASM;
interface
type SF=(integer,integer);
function AddSF(a,b:SF):SF;
function SubSF(a,b:SF):SF;
function MultSF(a,b:SF):SF;
function DivSF(a,b:SF):SF;
implementation
function Gcd(p:SF):integer;
begin
(var a,var b):=p;
a:=abs(a); b:=abs(b);
while b>0 do (a,b):=(b,a mod b);
Result:=a
end;
function ReductSF(p:SF):SF;
begin
var t:=Gcd(p);
if t>1 then Result:=(p[0] div t,p[1] div t)
else Result:=p
end;
function AddSF(a,b:SF):=ReductSF((a[0]*b[1]+a[1]*b[0],a[1]*b[1]));
function SubSF(a,b:SF):=ReductSF((a[0]*b[1]-a[1]*b[0],a[1]*b[1]));
function MultSF(a,b:SF):=ReductSF((a[0]*b[0],a[1]*b[1]));
function DivSF(a,b:SF):=ReductSF((a[0]*b[1],a[1]*b[0]));
end.
***** Пример работы с модулем *****
uses ASM;
begin
var a:=(5,24);
var b:=(7,8);
var c:=AddSF(a,b);
Writeln(a[0],'/',a[1],'+',b[0],'/',b[1],'=',c[0],'/',c[1])
end.
Результат
5/24+7/8=13/12



Вы хотите написать модуль для работы с обыкновенными дробями в Паскале. Я нашел несколько источников, которые могут вам помочь.
Во-первых, вы можете использовать модуль Fractions, который реализует тип TFraction для хранения и вычисления дробей. Этот модуль поддерживает различные операции и функции над дробями, такие как сложение, вычитание, умножение, деление, возведение в степень, сокращение, преобразование в строку, вещественное число и т.д. Вы можете найти подробное описание и пример использования этого модуля по ссылке [Fractions - Free Pascal wiki](https://wiki.freepascal.org/Fractions).
Во-вторых, вы можете использовать модуль Math, который предоставляет множество математических функций и констант, таких как синус, косинус, тангенс, арксинус, арккосинус, арктангенс, логарифм, экспонента, пи, е и т.д. Вы можете найти полный список и описание этих функций по ссылке [Reference for unit 'Math': Procedures and functions - Free Pascal](https://www.freepascal.org/docs-html/rtl/math/index-5.html).
В-третьих, вы можете использовать общие понятия о функциях в Паскале, которые позволяют вам определять и вызывать подпрограммы для выполнения определенных задач. Функция в Паскале имеет имя, список параметров, тип возвращаемого значения и тело, в котором содержатся инструкции. Вы можете найти основы о функциях в Паскале по ссылке [Pascal - Functions - Online Tutorials Library](https://www.tutorialspoint.com/pascal/pascal_functions.htm).
Надеюсь, эта информация будет полезна для вас. Удачи в написании вашего модуля!


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili