Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Обработка двухмерных массивов в среде Delphi

.pdf
Скачиваний:
40
Добавлен:
29.05.2015
Размер:
723.56 Кб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ИНДУСТРИАЛЬНЫЙ УНИВЕРСИТЕТ»

Кафедра прикладной информатики

ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ В СРЕДЕ 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