Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_СА_СМ_ДМ.doc
Скачиваний:
36
Добавлен:
02.05.2019
Размер:
3.46 Mб
Скачать

Операции с массивами

Типичными операциями при работе с массивами являются:

  • вывод массива;

  • ввод массива;

  • поиск максимального или минимального элемента массива;

  • поиск заданного элемента массива;

  • сортировка массива.

Вывод массива

Под выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива.

Если в программе необходимо вывести значения всех элементов массива, то для этого удобно использовать инструкцию for, при этом переменная-счетчик инструкции for может быть использована в качестве индекса элемента массива.

Пример:

for i:=1 to n do

Label1.Caption:=Label1.Caption+IntToStr(b[i])+#13;

В данном примере на каждом шаге цикла к свойству Caption компонента Label1 добавляется изображение еще очередного элемента массива и символ перехода на новую строку (#13).

Вывод можно осуществить и с помощью поля Memo:

for i:=1 to n do

Memo1.Lines.Add(IntToStr(b[i]));

Ввод массива

Под вводом массива понимается процесс получения от пользователя (или из файла) во время работы программы значений элементов массива.

Можно для каждого элемента массива создать поле ввода. Однако если требуется ввести достаточно большой массив, то такое решение неприемлемо.

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

Использование компонента StringGrid

Для ввода массива удобно использовать компонент StringGrid. Значок компонента StringGrid находится на вкладке Additional и выглядит так: .

Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В табл. 4.1 перечислены некоторые свойства компонента StringGrid.

Таблица 5.1. Свойства компонента StringGrid

Свойство

Определяет

Name

Имя компонента. Используется в программе для доступа к свойствам компонентаЦ

ColCount

Количество колонок таблицы

RowCount

Количество строк таблицы

Cells

Соответствующий таблице двумерный массив. Ячейка таблицы, находящаяся на пересечении столбца номер col и строки номер row определяется элементом cells [col, row]

FixedCols

Количество зафиксированных слева колонок таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте

FixedRows

Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте

Options . goEditing

Признак допустимости редактирования содержимого ячеек таблицы. True — редактирование разрешено, False — запрещено

Options . goTab

Разрешает (True) или запрещает (False) использование клавиши <Таb> для перемещения курсора в следующую ячейку таблицы

Options . GoAlways-ShowEditor

Признак нахождения компонента в режиме редактирования. Если значение свойства False, то для того, чтобы в ячейке появился курсор, надо начать набирать текст, нажать клавишу <F2> или сделать щелчок мышью

DefaultColWidth

Ширину колонок таблицы

DefaultRowHeight

Высоту строк таблицы

GridLineWidth

Ширину линий, ограничивающих ячейки таблицы

Left

Расстояние от левой границы поля таблицы до левой границы формы

Top

Расстояние от верхней границы поля таблицы до верхней границы формы

Height

Высоту поля таблицы

Width

Ширину поля таблицы

Font

Шрифт, используемый для отображения содержимого ячеек таблицы

ParentFont

Признак наследования характеристик шрифта формы

Столбцы и строки таблицы нумеруются с нуля.

Рассмотрим пример ввода массива:

for i:= 1 to 5 do

a[i] := StrToFloat(StringGrid1.Cells[i-1, 0]);

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