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

2.2 Схема алгоритма программы

Рисунок 2.2.1 – Схема алгоритма программы

4

Рисунок 2.2.2 - Процедура TForm1.drawNumbers (изображение чисел)

5

Рисунок 2.2.3 - Процедура TForm1.zifra(распознавание чисел)

6

2.3 Листинг программы

type

TForm1 = class(TForm)

btnOk: TButton;

btn1: TButton;

cmbInput: TComboBox;

strGrid: TStringGrid;

lbl2: TLabel;

lblOfRecogn: TLabel;

procedure drawNumbers(strGrid: TStringGrid; index: integer);

procedure recognOfNumbers(strGrid: TStringGrid);

procedure btnOkClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure btn1Click(Sender: TObject);

var

Form1: TForm1;

implementation

{$R *.dfm}

{процедура для прорисовки цифр}

procedure TForm1.drawNumbers(strGrid: TstringGrid; index: integer);

// объявляем переменные для циклов

var i, j: integer;

begin

case index of

0: begin

//------ очищаем стринг грид

for i:= 0 to strGrid.ColCount-1 do

for j:= 0 to strGrid.RowCount-1 do

strGrid.Cells[i, j]:= '';

//---------------- рисуем число 0

for i:=0 to strGrid.ColCount-1 do

begin

strGrid.Cells[i, 0]:= '*';

strGrid.Cells[i, 6]:= '*';

end;

for i:=0 to strGrid.RowCount-1 do

begin

strGrid.Cells[0, i]:= '*';

strGrid.Cells[2, i]:= '*';

end;

end;

1: begin

//--------------очищаем стринг грид

for i:= 0 to strGrid.ColCount-1 do

for j:= 0 to strGrid.RowCount-1 do

strGrid.Cells[i, j]:= '';

//---------------- рисуем число 1

for i:=0 to strGrid.RowCount-1 do

strGrid.Cells[2, i]:= '*';

strGrid.Cells[0, 2]:= '*';

strGrid.Cells[1, 1]:= '*';

end;

//------------------------------------------

{процедура запускается автоматически при запуске программы}

procedure TForm1.FormCreate(Sender: TObject);

var i: integer;

begin

// настраиваем ширину и высоту клеток в стринг гриде

for i:=0 to strGrid.ColCount-1 do

strGrid.ColWidths[i]:= 40;

for i:=0 to strGrid.RowCount-1 do

strGrid.RowHeights[i]:= 40;

// используем (подключаем) процедуру для рисования цифр

drawNumbers(strGrid, cmbInput.ItemIndex);

recognOfNumbers(strGrid);

end;

procedure TForm1.recognOfNumbers(strGrid: TStringGrid);

var

i, code: integer; strOfCode, resultOfRecogn, step: string;

begin

strOfCode:= '';

// сканируем первый столбец stringGrid

for i:= 0 to strGrid.RowCount-1 do

if strGrid.Cells[0, i] = '*' then

strOfCode:= strOfCode + '1'

else strOfCode:= strOfCode + '0';

code:= StrToInt(strOfCode);

// распознаем число по первому признаку

case code of

1111111: begin

if strGrid.Cells[1, 3] = '*' then

resultOfRecogn:= 'это число 8'

else resultOfRecogn:= 'это число 0';

step:='сканировано за 2 такта';

end;

procedure TForm1.btnOkClick(Sender: TObject);

var index: integer;

begin

index:=cmbInput.ItemIndex;

drawNumbers(strGrid, index);

end;

procedure TForm1.btn1Click(Sender: TObject);

begin

recognOfNumbers(strGrid);

end;

end.

7