
- •Курск - 2003
- •Интегрированная среда Delphi
- •Цель лабораторной работы
- •Информационные материалы
- •Главное окно
- •Окно редактора кода
- •Окно дерева объектов
- •Окно браузера
- •Лабораторная работа №2 Основы визуального программирования
- •Лабораторная работа №3 Линейные вычислительные процессы
- •Лабораторная работа №4 Итерационные вычислительные процессы
- •Лабораторная работа №5 Циклические вычислительные процессы
- •Лабораторная работа №6 Обработка строковых данных
- •Лабораторная работа №7 Обработка одномерных массивов
- •Лабораторная работа №8 Обработка матриц
- •Лабораторная работа № 9 Программирование операций с матрицами
- •Лабораторная работа №10 Программирование файловых операций
- •Лабораторная работа №11 Графические средства Delphi
- •Библиография
Лабораторная работа № 9 Программирование операций с матрицами
Цель лабораторной работы
Целью лабораторной работы является приобретение практических навыков программирования операций с матрицами.
Условия: заполнить матрицу указанным способом.
Используемые компоненты и их свойства
№ |
Имя компонента |
Настраиваемые свойства |
Значения |
Комментарии |
1 |
2 |
3 |
4 |
5 |
1 |
Form1 (форма)
|
BorderStyle
Caption Menu |
{biSystemMenu} {biMinimize}
MatrixII MainMenu1 |
Системное меню Кнопка минимизации Заголовок формы Главное меню |
2 |
Label1 (метка)
|
Caption
|
Выберите символы для заполнения. Полученная матрица |
Надпись
|
3 |
StringGrid1 (таблица строк)
|
ColCount
RowCount
ScrollBars |
6
6
ssNone
|
Количество столбцов Количество строк Полосы прокрутки - нет |
4 |
BRun (Button, кнопка)
|
Name Caption OnClick (стр.Events) |
BRun Выполнить BRunClick |
Имя Надпись Событие (щелчок) |
5 |
BClose (Button, кнопка)
|
Name Caption OnClick (стр.Events) |
BClose Вход BCloseClick |
Имя Надпись Событие (щелчок) |
6 |
Button1 (кнопка)
|
Caption OnClick (стр.Events) |
Очистить Button1Click |
Надпись Событие (щелчок) |
7 |
GroupBox1 (панель груп- пирования)
|
Caption
|
Символ №1
|
Текст в разрыве рамки |
1 |
2 |
3 |
4 |
5 |
8 |
RadioButton1 (зависимый переключа- тель) |
Name Caption
Checked |
rb1 0
true |
Имя Текст, связанный с компонентом Выбран (да) |
9 |
RadioButton2- RadioButton7 (зависимые переключа- тели) |
Name Caption
|
rb2-rb7 Соответственно: 1,@,$,#,x,+
|
Имя Текст, связанный с компонентом
|
10 |
GroupBox2 (панель груп- пирования) |
Caption |
Символ №2 |
Текст в разрыве рамки |
11 |
RadioButton2 (зависимый переключа-тель) |
Name Caption
Checked |
rb2 1
true |
Имя Текст, связанный с компонентом Выбран (да) |
12 |
RadioButton8, RadioButton10 – RadioButton14 |
Name Caption
|
rb8, rb10 – rb14 Соответственно: 0, @, $, #, x, +
|
Имя Текст, связанный с компонентом
|
13 |
MainMenu1 |
Главное меню |
см. л. р. № 14 |
|
Компонент ТGroupBox – панель группирования. Служит контейнером для размещения дочерних компонентов и представляет собой прямоугольное окно с рамкой и текстом в разрыве рамки. С его помощью выделяется группа управляющих элементов, объединенных по функциональному назначению. Свойство Caption определяет текст в разрыве рамки.
Компонент ТRadioButton1 - зависимый переключатель, предназначенный для выбора одного из нескольких взаимоисключающих решений. В компонент – контейнер (например, ТGroupBox)помещается по меньшей мере два таких компонента. Свойство Checked определяет состояние: True – выбран, False – нет. Если в одном из компонентов это свойство принимает значение True, во всех других компонентах, расположенных в том же контейнере, свойство Checked принимает значение False.
Форма задания
5.Текст программы.
unit UMain10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, Grids, Menus, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
BRun: TButton;
BClose: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
MMess: TMenuItem;
GroupBox1: TGroupBox;
rb1: TRadioButton;
rb2: TRadioButton;
rb3: TRadioButton;
rb4: TRadioButton;
rb5: TRadioButton;
rb6: TRadioButton;
rb7: TRadioButton;
GroupBox2: TGroupBox;
rb8: TRadioButton;
rb9: TRadioButton;
rb10: TRadioButton;
rb11: TRadioButton;
rb12: TRadioButton;
rb13: TRadioButton;
rb14: TRadioButton;
Label1: TLabel;
Button1: TButton;
procedure BCloseClick(Sender: TObject);
procedure BRunClick(Sender: TObject);
procedure MMessClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
ch1 : string[1];
ch2 : string[1];
procedure TForm1.BCloseClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.BRunClick(Sender: TObject);
var
i :integer;
j :integer;
GR1:array[1..7]of TRadioButton;
GR2:array[1..7]of TRadioButton;
begin
//Initialeze
with GroupBox1 do
begin
gr1[1]:=rb1;
gr1[2]:=rb2;
gr1[3]:=rb3;
gr1[4]:=rb4;
gr1[5]:=rb5;
gr1[6]:=rb6;
gr1[7]:=rb7;
for i:=1 to 7 do
if (GR1[i].Checked)
then ch1:=GR1[i].Caption;
end;
with GroupBox2 do
begin
gr2[1]:=rb8;
gr2[2]:=rb9;
gr2[3]:=rb10;
gr2[4]:=rb11;
gr2[5]:=rb12;
gr2[6]:=rb13;
gr2[7]:=rb14;
for i:=1 to 7 do
if (GR2[i].Checked)
then ch2:=GR2[i].Caption;
end;
//Sortitre
with StringGrid1 do
begin
for i:=0 to 5 do
for j:=0 to 5 do
begin
if (((j=0)or(j=5))and((i=1)or(i=2)or(i=3)or(i=4)))
or(((j=1)or(j=4))and((i=2)or(i=3)))
then Cells[i,j]:=ch2
else Cells[i,j]:=ch1;
end;
end;
end;
procedure TForm1.MMessClick(Sender: TObject);
begin
ShowMessage('Построить матрицу');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
j:integer;
begin
for i:=0 to 5 do
for j:=0 to 5 do
StringGrid1.Cells[i,j]:='';
end;
end.
6. Комментарии к тексту программы
Процедура BCloseClick закрывает форму.
Процедура MMessClick инициируется при выборе пункта меню, выводится на экран окно сообщения с текстом условия задания.
Процедура Button1Click реализует очистку ячеек таблицы строк.
Процедура ВRunClick осуществляет выбор символов заполнения матрицы и заполняет ими матрицу по заданной схеме.
Формируются массивы GR1 и GR2, содержащие состояние зависимых переключателей.
Затем просматривается массив GR1 и при состоянии Checked = true переменная ch1 принимает значение символа №1.
Аналогично просматривается массив GR2 и при состоянии Checked = true переменная ch2 принимает значение символа №2.
Выбранные символы ch1 и ch2 заполняют матрицу по заданной схеме.
7. Содержание отчета
задание,
описание свойств используемых компонент и форм,
текст программы с комментариями,
результаты вычислений.
8. Тренировочные вопросы к защите:
В чем функциональное назначение компонента GroupBox?
Какое свойство компонента GroupBox позволяет задать текст в разрыве рамки?
В чем функциональное назначение зависимых переключателей?
Какое свойство компонента RadioButton содержит выбор пользователя?
Какое свойство компонента RadioButton определяет положение текста?
Что содержит свойство Caption компонента RadioButton?