1) Каждое действительное десятичное число, представленное в формате c плавающей точкой, можно отображать в виде записи c пятью полями, например, такой:
- первое поле содержит знак числа;
- во втором поле записана целая часть числа (один символ);
- третье поле содержит строку символов дробной части числа;
- в четвёртом поле хранится знак показателя степени по основанию 10;
- пятое поле содержит величину показателя степени (строку символов).
Таким образом число
можно представить, например, в виде такой записи:
Код: Выбрать все
Type
RealNumberRec = record
SignNumberPart,
SignExponentPart,
IntegerPart : Char; // Символьный тип +,-,0,1,2,3,4,5,6,7,8,9
FractionalPart,
ExponentPart : String; // Строковый тип из символов 0,1,2,3,4,5,6,7,8,9
end;
,
где
Код: Выбрать все
SignNumberPart.RealNumberRec:='-';
IntegerPart.RealNumberRec:='2';
FractionalPart.RealNumberRec:='2155436326745743736586548548548548484854854863262765497888';
SignExponentPart.RealNumberRec:='-';
ExponentPart.RealNumberRec:='43';
Тип String вмещает 255 символов.
2) Тогда все коэффициенты системы уравнений, свободные члены и корни системы будут представлять собой массивы записей, например,
Код: Выбрать все
Const
MaxSize : Word= 255;
Var
aMatrix : Array[1..MaxSize,1..MaxSize] Of RealNumberRec;
xRoots, rightParts : Array[1..MaxSize] Of RealNumberRec;
При желании размерность массивов можно увеличивать до величины MaxSize=65535.
3) При решении системы уравнений методом Гаусса используются только четыре арифметических операции:
- сложение,
- вычитание,
- умножение,
- деление.
Поэтому нужно разработать процедуры выполнения этих операций c числами, представленными описанным выше способом.
3.1. Сложение и вычитание можно выполнять "столбиком", складывая или вычитая одноразрядные цифры, начиная c самого младшего разряда.
3.2. Умножение тоже выполняем "столбиком", умножая первый сомножитель на цифру самого младшего разряда второго сомножителя. Результат записывается в виде элемента одномерного массива записей.
Затем получаем следующий элемент, умножая первый сомножитель на цифру следующего за младшим разрядом второго сомножителя. Результат записывается в виде следующего элемента одномерного массива записей.
Окончательно все элементы складываются по алгоритму сложения.
3.2. Деление действительных чисел, представленныз в виде записей, - более сложная процедура для программной реализации, но и тут подходит известный из школы алгоритм деления "столбиком".
Я его подробно приводить не буду.