Текст подпрограммы и версий
pa15r_p.zip 
Тексты тестовых примеров
tpa15r_p.zip 

Подпрограмма:  PA15R (модуль PA15R_p)

Назначение

Решение уравнения Диофанта.

Математическое описание

Подпрограмма PA15R вычисляет частное решение уравнения

           a x  +  b y   =   c 

в целых числах, где  a,  b и  c - заданные целые числа, причем значения  a и  b  не равны нулю.

Использование

procedure PA15R(var A :Integer; var B :Integer; var C :Integer;
                var Q :Array of Integer; var X :Integer;
                var Y :Integer; var IERR :Integer);

Параметры

 A, B, C - заданные значения коэффициентов исходного уравнения, A ≠ 0, B ≠ 0 (тип: целый);
Q - целый одномерный массив, длина которого должна быть в пять раз больше, чем количество цифр в максимальном по модулю из чисел  a,  b и  c;
 X, Y - целые переменные, значения которых на выходе полагаются равными вычисленному частному решению исходного уравнения;
IERR - целая переменная, значение которой полагается равной признаку выявленной ошибки при счете; при этом:
IERR=65 - когда исходное уравнение не определено;
IERR=66 - когда решения исходного уравнения в целых числах не существует.

Версии: нет

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

Unit TPA15R_p;
interface
uses
SysUtils, Math, { Delphi }
LStruct, Lfunc, UtRes_p, PA15R_p;

function TPA15R: String; 

implementation

function TPA15R: String;
var
A,B,C,X,Y,IЕRR :Integer;
Q :Array [0..4] of Integer;
begin
Result := '';
A := 1;
B := 3;
C := 4;
PA15R(A,B,C,Q,X,Y,IERR);
Result := Result + Format('%6d',[IERR]) + #$0D#$0A;
Result := Result + Format('%6d',[X]) + #$0D#$0A;
Result := Result + Format('%6d',[Y]) + #$0D#$0A;
UtRes('TPA15R',Result);  { вывод результатов в файл TPA15R.res }
exit;
end;

end.

Результаты:

       IERR = 0 
       X = 1 
       Y = 1