Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
яву_кисо_delphi(1)(1).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.26 Mб
Скачать

Лабораторная работа № 9 Программирование операций с матрицами

  1. Цель лабораторной работы

Целью лабораторной работы является приобретение практических навыков программирования операций с матрицами.

  1. Условия: заполнить матрицу указанным способом.

  2. Используемые компоненты и их свойства

Имя компонента

Настраиваемые свойства

Значения

Комментарии

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.

  1. Форма задания

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. Тренировочные вопросы к защите:

  1. В чем функциональное назначение компонента GroupBox?

  2. Какое свойство компонента GroupBox позволяет задать текст в разрыве рамки?

  3. В чем функциональное назначение зависимых переключателей?

  4. Какое свойство компонента RadioButton содержит выбор пользователя?

  5. Какое свойство компонента RadioButton определяет положение текста?

  6. Что содержит свойство Caption компонента RadioButton?