Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Использование таблицы для вывода двумерных массивов на экран




Задача о выводе на экран элементов двумерных массивов встречается достаточно часто и может быть решена различными способами. Одним из наиболее удобных способов является представление массива в виде таблицы. Для создания таблиц в среде Delphi используется стандартный визуальный компонент StringGrid, расположенный вкладке Additional (Дополнительные) палитры компонентов. Компонент StringGrid устанавливается в форму обычными методами. Заполнение таблицы обычно производят программными методами, изменяя свойства ячеек. Однако, если свойству OptionsàgoEditing присвоить значение true (по умолчанию это свойство имеет значение false), таблица превратится в набор полей редактирования, т.е. появится возможность вводить в таблицу данные с клавиатуры. В процессе работы наиболее часто приходится использовать следующие свойства компонента StringGrid:

Name - Имя, используемое в программе для доступа к свойствам компонента.
ColCount - Количество колонок (столбцов) таблицы.
RowCount - Количество строк таблицы.
Cells - Соответствующий таблице строковый массив. Ячейке, находящейся на пересечении i –й колонки (столбца) и j –й строки соответствует элемент массива cells[i,j]. Нумерация строк и столбцов начинается с нуля.
FixedCols - Количество зафиксированных слева колонок (столбцов) таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте.
FixedRows - Количество зафиксированных сверху строк таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте.
DefaultColWidth - Ширина колонок таблицы.
DefaultRowHight- Высота строк таблицы.
ScrollBars - Вывод на экран и удаление с экрана горизонтальной и вертикальной полос прокрутки.

Значения свойств таблицы можно изменять как с использованием инспектора объектов, так и программными методами.

В задаче о расчёте площади многоугольника в таблицу могут быть внесены длины сторон треугольников, на которые в процессе расчёта была разбита исходная фигура. Если параметры каждого треугольника расположены в отдельной строке, то массив включает (n-1) строку и 3 столбца. Для удобства работы можно ввести нумерацию строк и заголовки столбцов. Тогда результирующая таблица будет включать n строк и 4 столбца. Таким образом, количество колонок таблицы фиксировано и может быть установлено один раз в процессе создания формы, а количество строк зависит от количества вершин многоугольника, и его следует устанавливать каждый раз в процессе расчёта программными средствами.

После установки таблицы необходимо определить те её свойства, которые в процессе выполнения программы должны остаться неизменными. Свойство Name, по умолчанию StringGrid1, оставим неизменным. Количество колонок, ColCount, установим равным 4. Ширину колонок установим равной 75 у.е. Количества фиксированных строк и столбцов, как и по умолчанию, оставим равными 1. Т.к. количество столбцов таблицы невелико, и все столбцы вполне могут быть размещены в поле таблицы, горизонтальная полоса прокрутки не требуется. В то же время количество строк не определено и может быть достаточно большим. Поэтому таблицу целесообразно снабдить вертикальной полосой прокрутки. Для этой цели свойству ScrollBars следует присвоить значение ssVertical. Затем процедуру обработки щелчка мышью по кнопке «Вычислить» необходимо дополнить командами заполнения ячеек таблицы. Очевидно, заполнение таблицы должно производиться после завершения расчёта длин сторон треугольников. Фрагмент программы, выполняющий ввод данных в таблицу, имеет вид:

StringGrid1.RowCount:=N;

for i:=1 to 3 do StringGrid1.Cells[i,0]:='Сторона '+IntToStr(i);

for i:=1 to n-1 do StringGrid1.Cells[0,i]:='Тр-к '+IntToStr(i);

for i:=1 to n do

for j:=1 to 3 do StringGrid1.Cells[i,j]:=FloatToStr(a[j,i]);

 
 

Рис.6-9.

Первоначально устанавливается количество строк в таблице. Т.к. нумерация начинается с 0-вой строки, то максимальный номер строки равен (n-1). Аналогичное утверждение справедливо и для нумерации столбцов. Далее следуют циклы заполнения заголовков столбцов и строк, после чего с использованием двух вложенных циклов заполняется рабочее поле таблицы. Следует отметить, что при обращении к ячейкам таблицы на первом месте находится номер столбца, а на втором – номер строки. Вид окна программы проиллюстрирован на рис. 6-9. Наряду с таблицей, здесь имеется еще одно отличие от приведенных выше программ. Результат расчёта выводится не в окно сообщения, а в специальное окно редактирования более крупным шрифтом.

Задание: Получить у преподавателя 4-ю индивидуальную задачу и создать программу её решения. Ввод исходных данных и вывод результата выполнить с использованием описанных выше визуальных компонентов. В случае ошибки ввода программа должна предлагать пользователю произвести повторный ввод исходных данных.

Отчёт по данной работе должен включать: перечень использованных визуальных компонентов, описание свойств компонентов, изменённых при создании формы или изменяемых в процессе выполнения программы, описание событий, изменяющих ход выполнения программы, описание использованных в программе констант и переменных(указать их типы и диапазоны изменения) и стандартных функций, распечатку процедуры обработки каждого из указанных событий.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных