
- •6. Вложенные циклы
- •6.1 Цель работы
- •6.2Заданиe
- •Найдите наибольший элемент, укажите его положение.
- •6.3Теоретические сведения
- •Пример 1. Ручной ввод массива в поле tEdit
- •Двумерные массивы
- •Динамические двумерные массивы
- •Пример 2. Инициация двумерного динамического массива
- •Пример 3. Процедура инициации двумерного массива
- •Пример 4. Формирование двумерного массива случайных чисел
- •Оператор присоединения With
- •Пример 5. Использование With при формировании массива
- •Пример 6. Нахождение наименьшего элемента массива
- •Компонент tStringGrid
- •Основные свойства компонента TstringGrid
- •Пример 7. Работа с таблицей
- •2. Нумерация строк и столбцов фиксированной зоны таблицы
- •3. Контроль ввода данных в таблицу
- •4. Формирование массива по данным таблицы, вывод массива
- •Вывод двумерного массива в таблицу
- •6.4Содержание отчета
- •6.5 Контрольные вопросы
Пример 6. Нахождение наименьшего элемента массива
Дано: вещественный двумерный динамический массив M;
Требуется разработать функцию, возвращающую значение наименьшего элемента массива.
Постановка задачи:
предположим, что наименьшее значение Min у первого элемента массива Min = M[0, 0].
в цикле будем сравнивать Min с очередным элементом,
если M[i, j] окажется меньше, то Min присвоим значение M[i, j],
в противном случае переходим на новый виток цикла
function MinAr( M: array of array of real): Real;
var i, j :integer; //счётчики
Min : Real; //наименьший элемент
begin
Min := M[0, 0]; //пусть M[0, 0] - наименьший элемент
for i := 0 to High(M) do // High(M) – старший индекс
for j := 0 to High(M) do
begin //сравниваем очередной элемент с Min
if M[i, j] < Min
then Min := M[i, j]; //новый Min
end;
MinAr := Min; //значение функции
end;
Компонент tStringGrid
Компонент TstringGrid категории Additional предназначен для создания таблиц, в ячейках которых располагаются текстовые строки, его можно использовать для ввода и представления двумерных массивов.
Таблица имеет две зоны; фиксированная зона таблицы предназначена для показа заголовков колонок и рядов; рабочая зона – для данных.
Основные свойства компонента TstringGrid
Cells(NCol, NRow:Integer): String - определяет содержимое ячейки с табличными координатами (NCol, NRow).
Col: Longint - содержит номер колонки с ячейкой, имеющей фокус ввода.
Row: Longint - содержит номер ряда ячейки, имеющей фокус ввода.
ColCount: Longint - содержит количество колонок таблицы.
RowCount: Longint - содержит количество рядов таблицы.
FixedCols: Integer - определяет количество колонок фиксированной зоны.
FixedRow: Integer - определяет количество рядов фиксированной зоны.
+TgridOption = set of TGridOptions - это множество, далее значения элементов множества
goFixedVertLine - колонки фиксированной зоны разделяются вертикальными линиями;
goFixedHorzLine - ряды фиксированной зоны разделяются горизонтальными линиями;
goVertLine - колонки рабочей зоны разделяются вертикальными линиями;
goHorzLine - колонки рабочей зоны разделяются горизонтальными линиями;
goRowSelect - выделяет все ячейки и запрещает их редактирование;
goEditing - разрешено редактирование ячейки, игнорируется, если включён элемент goRowSelect.
Пример 7. Работа с таблицей
В данном примере рассмотрим следующие вопросы.
Назначение свойств компоненту TstringGrid
Нумерация строк и столбцов фиксированной зоны таблицы
Контроль ввода данных в таблицу
Формирование массива по данным таблицы, вывод массива
Вывод двумерного массива в таблицу
1. Назначение свойств компоненту TstringGrid.
Object TreeViewStringGrid1 Object Inspector Properties
ColCount 4 //кол-во колонок с учётом фиксированных
RowCount 4 //кол-во рядов
FixedCols 1 //кол=во фиксированных колонок
FixedRows 1 //кол=во фиксированных рядов
+TgridOption
goVertLine True //вертикальные линии
goHoizLine True //горизонтальные линии
goEditing True //разрешено редактирование ячейки