Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методическое пособие для самостоятельных работ.doc
Скачиваний:
21
Добавлен:
16.11.2019
Размер:
2.89 Mб
Скачать

1.4. Составление программ обработки массивов

Поставим перед собой задачу составления простого приложения обработки массива, окно которого представлено на рис. 1.4.

Рис. 1.4. Окно приложения обработки массива

Для представления на форме приложения массивов используется компонент StringGrid с палитры Additional. Рассмотрим его основные свойства.

  1. RowCount и ColCount задают количество (Количество, а не максимальное значение индекса!) строк и столбцов соответственно, по умолчанию они равны 5. Эти значения можно менять во время проектирования или во время работы приложения. В нашем примере ColCount=5 и RowCount=15.

  2. FixedCols и FixedRows задают количество фиксированных столбцов и строк. По умолчанию они равны 1 (первый столбец слева и первая строка сверху, они показаны другим цветом). Фиксированные столбцы и строки не могут быть использованы для передачи данных, они используются для представления вспомогательной информации. В нашем примере сохраним стандартные значения и используем их для номеров строк и столбцов. Количество фиксированных строк и столбцов входит в общее их число.

  3. Options – это перечень свойств, для нашего примера требуется менять свойство goEditing. По умолчанию таблица может быть используется только для вывода данных. Чтобы можно было ввести данные необходимо менять значение упомянутого свойства: заменить False на True.

  4. Для ссылки на отдельные ячейки используется свойство Cells[i, j] , где на первом месте стоит номер столбца, а на втором – номер строки. Минимальные значения i, j равны нулю. Если использованы фиксированные строки и столбцы, то они как раз имеют номера 0.

Обратите внимание на то, как будет показан компонент StringGrid (рис.1.4.): в нашем случае по горизонтали для него выделено слишком много места, поэтому лишняя площадь останется пустой; по вертикали выделено слишком мало места, поэтому появилась полоса скроллинга. Номера строк двигаются вместе со своей строкой.

Кроме StrinGrid поместим на форму следующие компоненты: MainMenu, Button для текста «Ответ» и Label для вывода значения ответа. Меню имеет следующую структуру:

Выход Обработка

Выход обеспечит завершение приложения, Обработка – выполнение процедуры обработки массива.

Первая строка содержит номера столбцов, первый столбец – номера строк. Для их заполнения пишем следующую реализацию для события onCreate нашей единственной формы:

procedure TForm1.FormCreate(Sender: TObject);

var

I :integer;

begin

{ номера столбцов в первую строку }

for i:=1 to StringGrid1.ColCount - 1 do

StringGrid1.Cells[i,0]:=IntToStr(i);

{ номера строк в первый столбец}

for i:=1 to StringGrid1.RowCount - 1 do

StringGrid1.Cells[0,i]:=IntToStr(i);

end;

Приступаем к реализации обработки массива. Как и в строках редактирования (компоненты Edit и EditMask), элементы StringGrid по умолчанию имеют тип String, поэтому для обработки числовых данных необходимо предусмотреть их преобразование при вводе и при выводе. Кроме того, следует иметь в виду, что пустая строка в качестве значения элемента автоматически не равна нулю.

Реализация соответствующего пункта меню:

procedure TForm1.N2Click(Sender: TObject);

var