Обработка двухмерных массивов в среде Delphi
.pdfФедеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ИНДУСТРИАЛЬНЫЙ УНИВЕРСИТЕТ»
Кафедра прикладной информатики
ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ В СРЕДЕ DELPHI
Рекомендации к выполнению лабораторной работы по дисциплине «Информатика»
Специальности:
Городское строительство и хозяйство (270105) Производство строительных материалов, изделий и конструкций
(270106)
Теплогазоснабжение и вентиляция (270109) Водоснабжение и водоотведение (270112)
Проектирование зданий (270114) Экспертиза и управление недвижимостью (270115)
Новокузнецк 2010
УДК 004.43(07) О203
Рецензент:
Кафедра информационных технологий в металлургии ГОУ ВПО СибГИУ
(Зав. кафедрой В.П. Цымбал)
О230 Обработка двумерных массивов в среде Delphi: метод. указ. / Сост. Л.Д. Павлова, Д.Н. Климова: СибГИУ. – Новокузнецк, 2010. – 25с.
Рассмотрены способы описания, ввода/вывода и обработки двумерных массивов в среде Delphi. Приведены примеры решения задач с использованием компонента StringGrid. Даны вопросы для самоконтроля.
Предназначены для студентов специальностей: 270105 Городское строительство и хозяйство, 270106 Производство строительных материалов, изделий и конструкций, 270109 Теплогазоснабжение и вентиляция, 270112 Водоснабжение и водоотведение, 270114 Проектирование зданий, 270115 Экспертиза и управление недвижимостью, а также могут быть рекомендованы для студентов других специальностей.
ЦЕЛЬ РАБОТЫ
Изучить основные понятия среды Delphi, принципы создания и обработки табличных структур данных. Получить навыки работы в среде Delphi.
ОБЩИЕ СВЕДЕНИЯ
Среда Delphi содержит обширную библиотеку визуальных компонентов (VCL – Visual Component Library). Компоненты сгруппированы на страницах палитры компонентов, которая размещается в главном окне и имеет закладки (Standart, Additional, Win32, System и др.), обеспечивающие быстрый поиск нужного компонента.
Все компоненты порождены от класса TComponent, в котором инкапсулированы самые общие свойства и методы компонентов.
Компоненты класса TDrawGrid и TStringGrid предоставляют мощные возможности для создания и обработки табличных структур данных. Они обеспечивают двумерное представление данных, упорядоченных по столбцам и строкам и имеют средства для обработки таблиц. Чтобы таблица была работоспособной, в ней следует определить обработчик события OnDrawCell, которое возникает при необходимости прорисовать ячейку.
Компонент класса TStringGrid предназначен для создания таблиц, в ячейках которых располагаются произвольные текстовые строки. Компонент класса TDrawGrid является непосредственным родителем строковой таблицы TStringGrid, поэтому передает ей все свои свойства, методы и события за исключением специфичных для строк свойств Cells, Cols,Objects, Rows.
3
КОМПОНЕНТ TStringGrid
Компонент класса TStringGrid используется для отображения информации в виде таблицы. Таблица делится на две части - фиксированную и рабочую.
Фиксированная часть таблицы служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы. С помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов.
Если свойства FixedCols и FixedRows имеют значения 0, то таблица не содержит фиксированной зоны.
Рабочая часть – эта остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов. Эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое – заголовки строк и столбцов.
Центральным свойством компонента StringGrid является свойство Cells – двумерный массив ячеек, каждая из которых может содержать произвольный текст.
Конкретная ячейка определяется двумя числами – номером столбца и номером ряда, на пересечении которых находится ячейка. Нумерация столбцов и рядов начинается с нуля.
Доступ к данным в таблице осуществляется с помощью использования компонента StringGrid и свойства Cells, например:
StringGrid.Cells[ACol, ARow],
где ACol – номер столбца таблицы, ARow – номер ряда таблицы.
Свойство Cells имеет тип string, поэтому программа может легко прочитать или записать содержимое нужной ячейки.
Количество ячеек по каждому измерению хранят свойства ColCount (количество столбцов) и RowCount (количество рядов). Значения этих свойств, а значит и размеры таблицы, могут меняться как на этапе разработки программы, так и в ходе ее работы.
4
Значения свойств ColCount и RowCount должны быть на единицу больше соответственно значений в свойствах FixedCols и FixedRows, которые определяют размеры фиксированной зоны.
В таблице 1 описаны некоторые свойства компонента класса
TStringGrid.
Таблица 1 – Свойства компонента StringGrid
Свойство |
|
Назначение |
|
|
|
|
|
||||
Cells[ACol, ARow: Integer]: |
Определяет содержимое ячейки с |
||||
Srting |
табличными координатами (ACol, |
||||
|
ARow) |
|
|
|
|
Col |
Содержит |
номер |
столбца |
||
|
сфокусированной ячейки |
|
|
||
ColCount |
Содержит |
количество |
столбцов |
||
|
таблицы |
|
|
|
|
DefaultColWidth |
Содержит |
значение |
по |
умолчанию |
|
|
ширины столбца |
|
|
|
|
DefaultRowHeight |
Содержит |
значение |
по |
умолчанию |
|
|
высоты рядов |
|
|
|
|
EditorMode |
Разрешает/запрещает редактирование |
||||
|
ячеек |
|
|
|
|
FixedCols |
Определяет |
количество |
столбцов |
||
|
фиксированной зоны |
|
|
|
|
FixedRows |
Определяет |
количество |
рядов |
||
|
фиксированной зоны |
|
|
|
|
GridHeight |
Содержит высоту таблицы |
|
|||
GridLineWidth |
Определяет |
толщину |
|
линий, |
|
|
расчерчивающих таблицу |
|
|
||
GridWidth |
Содержит ширину таблицы |
|
|||
Row |
Содержит |
номер |
|
ряда |
|
|
сфокусированной ячейки |
|
|
||
RowCount |
Содержит количество рядов таблицы |
||||
Option |
Элемент goEditing |
– |
разрешает |
||
|
редактирование содержимого |
ячеек |
|||
|
таблицы |
(игнорируется, |
если |
||
|
включен элемент goRowSelect ) |
5
ЭТАПЫ РЕАЛИЗАЦИИ ПРОГРАММЫ В СРЕДЕ DELPHI
Программа в среде Delphi состоит из файла проекта (*.dpr), одного или нескольких модулей (*.pas). Файл проекта формируется автоматически интегрированной средой разработки IDE.
Модуль служит для размещения кода программы пользователя. Базовым языком в среде Delphi является язык программирования
Object Pascal.
Реализация программы в среде Delphi осуществляется поэтапно.
Этап 1. Запустить среду Delphi.
Для запуска Delphi необходимо выполнить последовательность
действий: Æ Все программы ÆBorland Delphi 7 ÆDelphi 7.
Этап 2. В окне формы выполнить конструирование формы, разместив на ней необходимые компоненты.
Для размещения на форме нового компонента страницы Standard необходимо:
-в палитре компонентов выбрать нужный компонент;
-щелкнуть кнопкой мыши на свободном месте формы, где должен располагаться компонент;
-изменить, при необходимости, с помощью мыши первоначальные размеры и положение компонента на форме.
Этап 3. В окне Инспектора объектов указать необходимые свойства компонентов.
Для того чтобы изменить свойства компонента необходимо:
-выделить на форме компонент щелчком мыши;
-перейти в окно Инспектора объектов;
-выбрать и изменить нужное свойство компонента.
Этап 4. В окне кода программы создать обработчики событий. Для того чтобы автоматически появилась заготовка для процедуры обработчика события OnClick, необходимо дважды щелкнуть кнопкой мыши по компоненту. При этом активизируется окно кода программы и в нем появится необходимый фрагмент.
Этап 5. Запустить программу на выполнение.
Для запуска программы на выполнение достаточно в горизонтальном меню Run выполнить команду Run (клавиша F9
или кнопка ).
6
ОРГАНИЗАЦИЯ ВВОДА ДВУМЕРНОГО МАССИВА
Задача 1. Для заданной матрицы А вычислить сумму положительных элементов.
Этап 1. Запустить среду Delphi.
Этап 2. Выполнить конструирование формы.
В окне формы Form1 необходимо разместить следующие компоненты страницы Standard (рисунок 1):
•панели группирования Groupbox1, Groupbox2, Groupbox3;
•на панели Groupbox1: метки Label1, Label2, строки Edit1,
Edit2;
•на панели Groupbox3: метку Label3, строку Edit3;
•кнопки Button1, Button2.
Для отображения исходной матрицы на панели Groupbox2
необходимо разместить компонент StringGrid1 , расположенный на странице Additional (рисунок 1).
Рисунок 1 – Конструирование формы (Вычисление суммы положительных элементов матрицы)
Этап 3. Изменить свойства компонентов.
В окне Инспектора объектов необходимо изменить свойства следующих компонентов (рисунок 2):
7
•для формы Form1 в свойстве Caption изменить надпись Form1 на «Вычисление суммы положительных элементов матрицы»;
•для панели GroupBox1 в свойстве Caption изменить надпись GroupBox1 на «Размеры исходной матрицы»;
•для метки Label1 в свойстве Caption изменить надпись Label1 на «Количество столбцов:»;
•для строки Edit1 в свойстве Text удалить текст Edit1;
•для метки Label2 в свойстве Caption изменить надпись Label2 на «Количество рядов:»;
•для строки Edit2 в свойстве Text удалить текст Edit2;
•для панели GroupBox2 в свойстве Caption изменить надпись GroupBox2 на «Исходная матрица»;
•для панели GroupBox3 в свойстве Caption изменить надпись GroupBox3 на «Результат»;
•для метки Label3 в свойстве Caption изменить надпись Label2 на «Сумма положительных элементов матрицы:»;
•для расположения записи в метке Label3 в несколько строк изменить значение свойства WordWrap на True;
Рисунок 2 – Изменение свойств компонентов (Вычисление суммы положительных элементов матрицы)
8
•для строки Edit3 в свойстве Text удалить текст Edit3;
•для кнопки Button1 в свойстве Caption изменить надпись Button1 на «Расчет»;
•для кнопки Button2 в свойстве Caption изменить надпись
Button2 на «Выход».
Для компонента StringGrid1 в Инспекторе Объектов установить:
•значения свойств FixedCols и FixedRows равными 0, так как фиксированная зона не используется (рисунок 3);
•значения свойств ColCount (количество столбцов) и RowCount (количество рядов) равными 10, так как заданная матрица будет иметь максимальные размеры 10×10 (рисунок 3).
Рисунок 3 – Изменение значения свойств компонента StringGrid1 в окне Инспектора объектов
Для компонента StringGrid1 в окне Инспектора объектов для изменения свойства Options необходимо выполнить следующие действия:
−щелкнуть по кнопке , расположенной слева от свойства
Options;
−в появившемся окне установить значение goEditing равное True, (по умолчанию значение goEditing равно False) (рисунок 4);
−щелкнуть по кнопке , расположенной слева от свойства
Options.
9
Рисунок 4 – Изменение в свойстве Options значения goEditing
вокне Инспектора объектов
Врезультате изменения свойств компонентов, форма будет иметь вид представленный на рисунке 5.
Рисунок 5 – Вид формы после изменения свойств компонентов (Вычисление суммы положительных элементов матрицы)
10