Вопрос задан 15.10.2018 в 14:22. Предмет Информатика. Спрашивает Зинков Игнат.

Реализовать в виде модуля набор подпрограмм для выполнения над обыкновенными дробями вида P /Q (где

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Плаксина Эльвина.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вы хотите написать модуль для работы с обыкновенными дробями в Паскале. Я нашел несколько источников, которые могут вам помочь.

Во-первых, вы можете использовать модуль 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).

Надеюсь, эта информация будет полезна для вас. Удачи в написании вашего модуля!

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос