Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа1.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
82.37 Кб
Скачать

Лабораторная работа №1 Вычисление значений функции на отрезке. Построение графика функции

Задание: Построить график функции y=sinx на отрезке [0;3π] с шагом 0,5. Значения функции поместить в таблицу.

Таблица StringGrid

Основные характеристики таблицы StringGrid

Страница палитры компонентов: Additional.

Таблица StringGrid является экземпляром класса TStringGrid и предназначена для отображения двумерной информации (например элементов матрицы). В таблице может находиться произвольное количество строк и столбцов.На пересечении строк и столбцов находятся ячейки. Каждая ячейка может содержать символьную строку и произвольный объект, ассоциированный с ячейкой (например, рисунок). Если для ячеек задан режим редактирования, то на этапе выполнения программы разрешается вводить и редактировать данные, находящиеся в ячейке. Нумерация строк и столбцов таблицы начинается с нуля. Координаты каждой ячейки таблицы задаются парой чисел, первое из которых является номером столбца, а второе - номером строки. Например, ячейка с координатами (3,5) расположена в четвертом столбце и шестой строке.

Основные свойства класса tStringGrid.

property Col: Longint;

Задает столбец, в котором находится активная ячейка. Свойство доступно только на этапе выполнения программы.

property CoICount: Longint;

Задает число столбцов в таблице.

property ColWidths [Index: Longint]: Integer;

Задает ширину каждого столбца в таблице. Доступно только на этапе выполнения программы.

property DefaultColWidth: Integer;

Задает исходную ширину всех столбцов. Для задания ширины отдельного столбца следует использовать свойство ColWidths.

property DefaultDrawing: Boolean;

Если свойство имеет значение True, то прорисовка ячеек при рисовании таблицы будет происходить автоматически, в противном случае необходимо создать свои средства отображения.

property DefaultRowHeight: Integer;

Задает исходную высоту всех строк. Для задания высоты отдельной строки следует использовать свойство RowHeights.

property FixedColor: TColor;

Задает цвет фиксированных ячеек.

property FixedCoIs: Integer;

Задает число фиксированных столбцов. По умолчанию задается один фиксированный столбец.

property FixedRows: Integer;

Задает число фиксированных строк. По умолчанию задается одна фиксированная строка.

property GridLineWidth: Integer;

Задает толщину линий между ячейками в пикселях.

property Row: Longint;

Задает строку, в которой находится активная ячейка. Доступно только на этапе выполнения программы.

property RowCount: Longint;

Задает число строк таблицы.

property RowHeights[Index: Longint]: Integer;

Задает высоту каждой строки таблицы. Доступно только на этапе выполнения программы.

type TGridCoord = record

X: Longint;

Y: Longint;

end;

type TGridRect = record

case Integer of

0: (Left, Top, Right, Bottom: Longint);

1: (TopLeft, BottomRight: TGridCoord);

end;

property Selection: TGridRect;

Указывает область текущего выделения. При выделении указываются номера строк и столбцов. Доступно только на этапе выполнения программы.

Для определения поведения таблицы используется свойство Options. Каждая ячейка таблицы может находится в одном из пяти состояний: пассивном, выделенном (выделена особым цветом), активном (выделена рамкой из точек), фиксированном (выделена особым цветом) и в состоянии редактирования (значение флага goEditing свойства Options равно True).

typeTGridOption = (goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goRowMoving, goColMoving, goEditing, goTabs, goRowSeiect, goAlwaysShowEditor, goThumbTracking);

TGridOptions = set of TGridOption;

property Options: TGridOptions;

Задает флаги, определяющие поведение таблицы.

goFixedVertLine - фиксированные ячейки разделяются вертикальными линиями;

goFixedHorzLine - фиксированные ячейки разделяются горизонтальными линиями;

goVertLine - остальные ячейки разделяются вертикальными линиями;

goHorzLine - остальные ячейки разделяются горизонтальными линиями;

goRangeSelect - допустимо выделение нескольких ячеек;

goDrawFocusSelected - активная ячейка закрашивается тем же цветом, которым закрашивается и выделенная, в противном случае закрашивается цветом нейтральных ячеек;

goRowSizing - высота строк таблицы может изменяться;

goColSizing - ширина столбцов таблицы может изменяться;

goRowMoving - строки таблицы могут перемещаться;

goColMoving - столбцы таблицы могут перемещаться;

goEditing - ячейки могут редактироваться;

goTabs - переход от ячейки к ячейке возможен с помощью клавиши Tab (клавиш Shift+Tab);

goRowSelect - выделение только целых строк таблицы;

goAIwaysShowEditor - при выделении ячейки она сразу же становится и активной (в противном случае активизируется либо клавишей F2, либо двойным нажатием клавиши мыши, либо нажатием какой-либо символьной клавиши);

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

Свойства класса TStringGrid, позволяющие осуществлять доступ к данным, находящимся в ячейках таблицы. Все свойства доступны только на этапе выполнения программы.

property CelIs [ACol, ARow: Integer]: string;

Содержит двумерный массив символьных строк, каждая из которых принадлежит ячейке, находящейся в столбце ACol, и строке ARow.

property Cols[Index: Integer]: TStrings;

Содержит список строк, принадлежащих ячейкам столбца с индексом Index.

property Objects|ACol, ARow: Integer]: TObject;

Содержит двумерный массив, элементами которого являются указатели на объекты, каждый из которых ассоциирован с соответствующей ему ячейкой, находящейся в столбце ACol и строке ARow.

property Rows [Index: Integer]: TStrings;

Содержит список строк, принадлежащих ячейкам строки с индексом Index.

Событием по умолчанию для таблицы StringGrid является событие OnClick.

Пример

В целочисленной матрице А(4,4) поменять местами первую и последнюю строки.

1. Создадим новый проект.

2. Из страниц Standard и Additional на Form1 поместим два компонента TStringGrid и три компонента TButton.

3. С помощью инспектора объектов свойствам компонентов StringGrid1 и StringGrid2 зададим следующие значения:

FixedCols - 0,

FixedRows - 0,

ColCount - 4,

RowCount - 4.

4. Изменим размеры компонентов StringGrid1 и StringGrid2 таким образом, чтобы в них умещалось 4 строки и 4 столбца.

5. Изменим свойство Options, значение флага goEditing сделаем равным True.

6. Для компонентов Button1, Button2 и Button3 зададим значение свойства Caption равным: «Решение 1», «Решение 2» и «Очистить» соответственно.

7. Для кнопки «Решение 1» и создадим следующий обработчик события OnClick:

procedure TForm1.Button1Click(Sender: TObject);

var i : Integer;

begin

for i:= 0 to 3 do

begin

StringGrid2.Cells[i,0]:=StringGrid1.Cells[i,3];

StringGrid2.Cells[i,3]:=StringGrid1.Cells[i,0];

StringGrid2.Cells[i,1]:=StringGrid1.Cells[i,1];

StringGrid2.Cells[i,2]:=StringGrid1.Cells[i,2];

end

end;

8. Исходная задача может быть решена при помощи свойства Rows. Создадим обработчик события OnClick кнопки «Решение 2»:

procedure TForm1.Button2Click(Sender: TObject);

begin

StringGrid2.Rows[0]:=StringGrid1.Rows[3];

StringGrid2.Rows[1]:=StringGrid1.Rows[1];

StringGrid2.Rows[2]:=StringGrid1.Rows[2];

StringGrid2.Rows[3]:=StringGrid1.Rows[0];

end;

9. Для очистки второй таблицы создадим обработчик события OnClick для кнопки «Очистить»:

procedure TForm1.Button3Click(Sender: TObject);

var i, j : Integer;

begin

for i:= 0 to 3 do

for j:= 0 to 3 do

StringGrid2.

Cells[ j, I ]:=’’;

end;

Рис.1 Пример выполнения программы.