Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zapiska_k_kursovoy.docx
Скачиваний:
5
Добавлен:
26.03.2015
Размер:
719.24 Кб
Скачать
  1. Структура программы

Каждая написанная программа на языке Lazarus состоит из заголовка программы, поля используемых модулей Uses, который может не входить в саму структуру, а также блоков описания и исполнения (начинаются составным оператором begin и заканчиваются end).

Данная программа состоит из процедур, которые выполняют задачи, поставленные при разработке алгоритма.

Описание процедур представлено ниже:

  1. procedure Button1Click(Sender: TObject) (приложение Б, строки 60-69);

  2. procedure Button2Click(Sender: TObject) (приложение Б, строки 71-85);

  3. procedure Button3Click(Sender: TObject) (приложение Б, строки 87-132);

  4. procedure Button4Click(Sender: TObject) (приложение Б, строки 134-166);

  5. procedure Sort(a,b: integer; var M:mas) (приложение Б, строки 180-205);

  6. procedure Multiply(M,N: mas; var P: mas) (приложение Б, строки 207-216).

Также в программе присутствует одна функция, проверяющая матрицу на наличие симметричных строк:

function Check(a,b: integer; M:mas): Boolean; (приложение Б, строки 168-177).

При вызове Button1Click(Sender: TObject) происходит создание матрицы и заполнение ее случайными действительными числами.

При вызове TForm1.Button2Click(Sender: TObject) случайным образом генерируются векторы действительных чисел, которые будут использованы для модификации матрицы.

При вызове TForm1.Button3Click(Sender: TObject) программа считывает информацию из полей ввода и создает новую матрицу на основе предыдущей, в которую вставляются после соответствующего столбца и строки векторы действительных чисел.

При вызове TForm1.Button4Click(Sender: TObject) программа анализирует обе матрицы, вызывая функцию TForm1.Check(a,b: integer; M: mas): Boolean, и в соответствии с возвращенным значением либо упорядочивает обе матрицы по убыванию произведений элементов строк с помощью процедуры TForm1.Sort(a,b: integer; var M: mas), либо создает новую матрицу, полученную умножением первой матрицы на вторую, используя процедуры TForm1.Multiply(M,N: mas; var P: mas).

Схема алгоритма программы представлена в приложении А.

На рисунке 3.1 представлена структура программы.

procedureButton4Click

function check

procedure

sort

procedure

multiply

Рисунок 3.1 – структура программы.

  1. ОПИСАНИЕ ИСХОДНЫХ ДАННЫХ, ПРАВИЛА ИХ ПОДГОТОВКИ, СВЕДЕНИЯ ОБ ОГРАНИЧЕНИЯХ НА ПРИМЕНЕНИЕ ПРОГРАММЫ

В задании дана матрица действительных чисел. По умолчанию матрица генерируется с помощью процедуры TForm1.Button1Click(Sender: TObject), но, однажды будучи сгенерированной, матрица может быть отредактирована в поле StringGrid1. При вызове дальнейших процедур изменения будут учтены, и все процедуры и функции будут оперировать измененной матрицей.

Векторы чисел an и bn генерируются случайным образом, при условии, что матрица уже создана.

Оба числа p и q, необходимые для создания измененной матрицы, должны быть заданы в текстовых полях, иначе программа будет использовать заданные по умолчанию значения.

Перед разделом Var описывается запись:

type

mas = array[1..100,1..100] of real;

vector = array[1..100] of real;

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

ListBox1: TListBox;

ListBox2: TListBox;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

function Check(a,b: integer; M:mas): Boolean;

procedure Sort(a,b: integer; var M:mas);

procedure Multiply(M,N: mas; var P: mas);

private

{ private declarations }

public

{ public declarations }

end;

В разделе Var описываются исходный и результирующий файлы и форма программы.

var

Form1: TForm1;

Matrix1, Matrix2, Matrix3: mas;

A,B: vector;

p,q: byte;

i,j,k: integer;