Задача вычисления определителя матрицы разбивается на несколько подзадач:
1) Заполнение массива начальными данными;
2) Изменение порядка матрицы по желанию пользователя и заполнение нового массива;
3) Ввод и фильтрация вводимых пользователем данных в массив;
4) Вычисление детерминанта;
4.1) Ввод исходных данных в массив
4.2) Выбор главного элемента;
4.3) Замена строк местами;
4.4) Заполнение нового массива;
4.5) Приведение матрицы к верхнему треугольному виду;
4.6) Вычисление определителя матрицы.
Согласно вышеприведенной структуре, программа будет состоять из четырех подпрограмм:
1) Подпрограмма создания формы и ввода начальных данных в массив.
В данной подпрограмме задается начальное число столбцов и строк матрицы (ее порядок), вводятся заголовки матрицы, строк и столбцов в соответствии с заданным размером.
2) Подпрограмма изменения порядка матрицы;
В данной подпрограмме формируется новая матрица, исходя из данных, введенных пользователем, вводятся новые заголовки матрицы, строк и столбцов в соответствии с заданным размером.
3) Подпрограмма фильтрации вводимых пользователем данных, при нажатии на кнопки клавиатуры;
Данная подпрограмма разрешает пользователю вводить в матрицу только цифры, разделитель дробной и целой части и знак «-». Ввод других символов запрещается. Также в этой подпрограмме производится замена неверного разделителя на верный.
4) Подпрограмма вычисления определителя.
В данной подпрограмме происходит заполнение массива данных, поочередно для каждого столбца производится выбор главного элемента (наибольшего по модулю), затем строки меняются местами и производится приведение матрицы к верхней треугольной форме, т.е. когда ниже главной диагонали содержатся только нулевые элементы. Согласно вышеприведенным формулам производится вычисление значения детерминанта и полученный результат выводится на экран.
Схема алгоритма
На рисунке 1 представлен алгоритм работы программы при возникновении события OnCreate. Процедура TForm1.FormCreate(Sender: TObject).
Рис. 1. Алгоритм работы программы при возникновении события OnCreate
На рисунке 2 представлен алгоритм работы программы при нажатии на кнопку «Изменить размерность массива». Процедура TForm1.Button2Click(Sender: TObject).
Рис. 2. Алгоритм работы программы при нажатии на кнопку «Изменить размерность массива»
На рисунке 3 представлен алгоритм работы программы при вводе данных с клавиатуры (событие OnKeyPress). Процедура TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char).
Рис. 3. Алгоритм работы программы при при вводе данных с клавиатуры (событие OnKeyPress). Процедура TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char)
На рисунке 4 представлен алгоритм работы программы при нажатии на кнопку «Расчет». Процедура TForm1.Button1Click(Sender: TObject).
алгоритм программа pascal матрица определитель
Рис. 4. Алгоритм работы программы при нажатии на кнопку «Расчет»
ТЕКСТ ПРОГРАММЫ
Дата: 2019-12-10, просмотров: 346.