Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаРГР_Программирование.doc
Скачиваний:
5
Добавлен:
17.11.2019
Размер:
1.13 Mб
Скачать

3.4 Краткая характеристика вспомогательных модулей

При решении задач на обработку массива потребуется неоднократно вводить, выводить массивы, а также выполнять над ними различные операции. Очевидно, что в этом случае удобно использовать заранее написанные процедуры и функции, которые целесообразно хранить во вспомогательном модуле. Такие модули созданы и называются UnitArrayDop. и UnitMatixDop. Ниже, для справки, приводятся интерфейсы этих модулей.

Однако созданные процедуры и функции, которые записаны в этих модулях, могут стать универсальными только в том случае, если будут оперировать с одним и тем же типом массива. Поэтому в модуле описаны эти типы массивов. Для одномерных массивов - это массив целых чисел, максимальная длина которого будет составлять 100 элементов, и индексы будут нумероваться с 1. Для двумерных массивов - это массив целых чисел, максимальное количество строк и столбцов которого будет составлять 10 элементов, и индексы будут нумероваться с 1.

В том случае, если в РГР нужен другой тип массива, процедуры модуля придется несколько изменить.

3.4.1Интерфейс модуля для работы с одномерными массивами

interface

Type

TArray100= array[1..100] of integer;

procedure createRandomArray(var a:TArray100; count, modul:integer);

procedure getArrayFromStr(var a:TArray100; var count:integer; s:String);

procedure getArrayFromMemo(var a:TArray100; var count:integer; mem:TMemo);

procedure getArrayFromInputBox(var a:TArray100; var count:integer);

function ArrayToStr(const a:TArray100; count:integer):string;

function ArrayToStrFromTo(const a:TArray100; left,right:integer):string;

procedure showArrayInMemo(const a:TArray100; count:integer; mem:TMemo);

function sumArray(const a:TArray100; count:integer):integer;

procedure minMax(const a:TArray100; count:integer;

var min,max,iMax,iMin:integer);

function posInArray(element:integer; const a:TArray100; count:integer):integer;

function PosInSortArray(x:integer; const a:TArray100; count:integer):integer;

procedure accum(const a:TArray100; var b:TArray100;count:integer);

procedure shiftLeft(var a:TArray100; count, i1,i2:integer);

procedure trans(var a:TArray100; count:integer);

procedure delElem(element:integer; var a:TArray100; var count:integer);

procedure SortArray(var a:TArray100;count:integer);

procedure SortArrayBubl(var a:TArray100;count:integer);

procedure SortArrayInsert(var a:TArray100;count:integer);

procedure JoinArray(const a1,a2:TArray100;size1,size2:integer;

var a3:TArray100; var size3:integer);

procedure InsertToSortArray(element:integer; var a:TArray100; var count:integer);

3.4.2Интерфейс модуля для работы с двумерными массивами

unit UnitMatrixDop;

interface

uses StdCtrls, SysUtils, Grids, unitArrayDop;

type

TMatrInt10x10= array[1..10,1..10]of Integer;

//Тип для процедур, які визначають результат сортування

TcalcPos=procedure(rowCount,colCount,num:Integer;var row,col:Integer);

procedure createRndMatr(var m:TMatrInt10x10;nRow,nCol,modul:integer);

procedure showMatrInMemo(const m:TMatrInt10x10;nRow,nCol:integer;memo:TMemo);

procedure showMatrInGrid(const m:TMatrInt10x10;nRow,nCol:integer;grid:TStringGrid);

procedure getMatrFromMemo(var m:TMatrInt10x10; var nRow,nCol:integer;memo:TMemo);

procedure getMatrFromGrid(var m:TMatrInt10x10; var nRow,nCol:integer;grid:TStringGrid);

procedure TransMatr(var m:TMatrInt10x10; nRow,nCol:integer);

procedure DelColFromMatr(var m:TMatrInt10x10; nRow:integer; var nCol:integer; delCol:integer);

procedure SortMatrix(var mtr:TMatrInt10x10; nRow,nCol:integer; getPos:TcalcPos);