Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Использование компонентов таблиц для работы с двумерным массивом..
Цель работы: Изучить свойства компонента TStringGrid. Написать программу с использованием двумерных массивов Теория. Компонент TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки, расположена на странице Additional(рисунок 17.1)
Рисунок 17.1
Таблица делится на две части – фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/строк и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и строк(если эти свойства имеют 0, таблица не содержит фиксированной зоны). Рабочая часть – это остальная часть таблицы. Она может содержать произвольное количество столбцов и строк, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое – заголовки строк и столбцов(рис.17.2)
Рисунок 17.2
Центральным свойством компонента является Cells – двухмерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел – номером столбца и номером строки, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например: Cells [1, 1]: = ‘Левая верхняя ячейка рабочей зоны’; Количество ячеек по каждому измерению хранит пара свойств Colcount (количество столбцов) и RowCount(количество строк). Значения этих свойств и, следовательно, размеры таблицы могут меняться как на этапе разработки программы, так и в ходе ее работы, однако их значения должны быть как минимум на единицу больше соответственно значений в свойствах FixedCols и FixedRows, определяющих размеры фиксированной зоны. Свойства компоненты представлены в таблице 17.
Таблица 17 – Свойства компоненты StringGrid
Пример: Найти сумму всех элементов двумерного массива 4× 4. 1. Расположить на форме следующие компоненты: StringGrid(Additional), Button, Label, Edit (для вывода результата); 2. Свойства StringGrid, заменить на FixedCols=0(без заголовков строк), FixedRows=0(без заголовков столбцов); 3. Свойства RowCount=4, ColCount=4$ 4. Свойство Options| GoEditing = true (разрешить редактировать); 5. Расположить компоненты следующим образом(рис. 17.3)
Рисунок 17.3
Напишите следующий обработчик события:
procedure Form1.Button1Click (Sender: TObject); var a: array [0..3, 0..3] of integer; i, j, s: integer; begin s=0; for i: =0 to 3 do for j: =0 to 3 do begin a[i, j]: = StrToInt (StringGrid1.Cells[I, j]); {считывание элементов} s: =s+a[i, j]; end; Edit1.Text: =IntToStr(s); end;
Задания.
Вариант № 1 Дан массив А(п, т). Требуется пределить: а) максимальное по величине число; б) минимальное по величине число; в) среднее арифметическое элементов каждого из столбцов, имеющих нечётные номера; г) сумму положительных элементов каждой из строк, имеющих чётные номера.
Вариант № 2 Дана матрица 5x5. Заполнить ее значениями вещественного типа. Найти среднее арифметическое всех значений. Проверить каждый элемент. Если он больше нуля, то умножить его на среднее арифметическое, если меньше нуля, то сложить со ср. арифметическим. Задать новую матрицу
Вариант № 3 Дана матрица пхп вещественная. Ввести элементы матрицы. Вычислить сумму элементов, расположенных над главной диагональю.
Вариант № 4 Дана матрица A (5x4). Заполнить ее значениями вещественного типа. Найти максимальное значение в каждой строке. Из этих значений получить вектор из 5-ти элементов. Выдать матрицу А и вектор В.
Вариант № 5 В заданном двумерном массиве А(п, т) заменить нулями элементы, стоящие в строках или столбцах, где имеются нули.
Вариант № 6 Дана матрица А(п, п). Заменить нулями все элементы, расположенные на главной диагонали (диагональ - сверху вниз и слева направо) и выше неё.
Вариант № 7 Дана действительная квадратная матрица порядка п. Преобразовать матрицу по правилу: строку с номером п сделать столбцом с номером п, а столбец с номером п сделать строкой с номером п.
Вариант № 8 В данной действительной квадратной матрице порядка п найти наибольший по модулю элемент. Получить квадратную матрицу порядка п-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением.
Вариант № 9 Дана (построчно) вещественная матрица Л размером 10x10 и массив В(10). а) нечетные строки матрицы А заменить на В; б) четные столбцы матрицы А заменить на В;
Вариант № 10 Определить, является ли заданная целая квадратная матрица 9-го порядка магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы.
Вариант № 11 Дана матрица А(п, т). Поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением (предполагается, что эти элементы единственны).
Вариант № 12 Дана матрица порядка п х n. Найти сумму элементов, расположенных в заштрихованной части матрицы Вариант № 13 Дана матрица размера 5 x 9. Найти суммы элементов всех ее четных1|нечетных2 строк3|столбцов4.
Вариант № 14 Дана матрица размера 5 x 10. Найти минимальное1|максимальное2 значение в каждой строке3|столбце4.
Вариант № 15 Дана матрица A(n, m). Поменять местами первую и последнюю строку, а каждый элемент этих строк увеличить в два раза.
Вариант № 16 Дана матрица A(n, m). Найти строки, элементы которых одинаковы, если таковых нет, то первую строку скопировать в последнюю.
Вариант № 17 Дана матрица A(n, m) и массив B(n, m). Вывести матрицу, элементами которой являются значения, состоящие из произведения элементов массива на каждый элемент соответствующей строки.
Вариант № 18 Дана матрица A(n, mсостоящая из нулей и единиц. Заменить на 4 те строки, у которых все элементы единицы.
Контрольные вопросы: 1. Назначение компоненты StringGrid? 2. Свойства компоненты StringGrid? 3. Методы компоненты StringGrid? 4. Как изменить размер фиксированной части таблицы?
Лабораторная работа № 20.
Популярное:
|
Последнее изменение этой страницы: 2016-08-31; Просмотров: 599; Нарушение авторского права страницы