Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСиC / Лаб ВМСиС / CASH / курсовик кэш.doc
Скачиваний:
31
Добавлен:
29.03.2015
Размер:
198.66 Кб
Скачать
  1. Разработка приложения.

    1. Техническое задание.

Разработать приложение, визуализирующее механизм работы с CASH-памятью. Программа должна быть написана на языке программирования Delphi.

    1. Интерфейс программы.

Основная форма приложения в оконном режиме, без возможности изменения размеров.

В верхней части расположена таблица визуализирующие адреса в памяти.

В нижней части расположены панельки визуализирующие работы Cash с прямым доступом, с полностью ассоциативным доступом и наборно-ассоциативным доступом.

В нижней части находиться кнопка для очистки CASH-а.

    1. Алгоритм приложения.

При запуске программы происходит инициализация программы:

  • Заполняется таблица адресов по порядку;

  • Очищаются таблицы содержащие CASH.

Программа переходит в режим ожидания событий:

  • Событие TFTable.TableSGClick (нажатие на таблицу адресов)

Считывается строка и столбец таблицы, считывается значение из ячейки по столбцу и строке, выводятся адрес в битовой форме в нижней части, для каждой из архитектуре согласно алгоритму заполняется таблицы и отображаются значения в таблицах CASH-а.

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

  • Событие Button1 Click – очистка таблиц КЭШ.

Обнуляем все значения в таблицах CASH.

    1. Исходный текст программы.

unit TableU;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, StdCtrls, ExtCtrls;

type

TFTable = class(TForm)

TableSG: TStringGrid;

PCashForv: TPanel;

PCashAsociat: TPanel;

PCashAsocNabor: TPanel;

SGForv: TStringGrid;

SGAsoc: TStringGrid;

Timer1: TTimer;

SGAsNab: TStringGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Shape1: TShape;

Shape2: TShape;

Shape3: TShape;

Shape4: TShape;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

Label25: TLabel;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

Label33: TLabel;

Label34: TLabel;

Label35: TLabel;

Label36: TLabel;

Label37: TLabel;

Label38: TLabel;

Label39: TLabel;

Label40: TLabel;

Label41: TLabel;

Label42: TLabel;

Label43: TLabel;

Label44: TLabel;

Label45: TLabel;

Label46: TLabel;

Label47: TLabel;

Label48: TLabel;

Label49: TLabel;

Label50: TLabel;

LabelForv: TLabel;

LabelAs: TLabel;

LabelAsNab: TLabel;

Shape5: TShape;

Shape6: TShape;

Shape7: TShape;

Label51: TLabel;

Label52: TLabel;

Label53: TLabel;

Label54: TLabel;

Shape8: TShape;

Shape9: TShape;

Label55: TLabel;

Label56: TLabel;

Shape10: TShape;

Shape11: TShape;

Shape12: TShape;

Label57: TLabel;

Label58: TLabel;

Label59: TLabel;

Label60: TLabel;

Label61: TLabel;

Label62: TLabel;

Label63: TLabel;

Label64: TLabel;

Label65: TLabel;

Label66: TLabel;

Label67: TLabel;

Label68: TLabel;

Label69: TLabel;

Label70: TLabel;

Label71: TLabel;

Label72: TLabel;

Label73: TLabel;

Label74: TLabel;

Label75: TLabel;

Label76: TLabel;

Label77: TLabel;

Label78: TLabel;

Label79: TLabel;

Label80: TLabel;

Label81: TLabel;

Label82: TLabel;

Label83: TLabel;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure TableSGMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure TableSGClick(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FTable: TFTable;

Column,Row,CColumn,CRow, T: Longint;

AsNabTime, ForvTime, AsocTime : array [0..7] of integer;

Forv, Asoc : array [0..7 , 0..7] of boolean;

AsNab : array [0..7, 0..3, 0..1] of boolean;

ForvTEGArray, AsocTEGArray, AsNabTEGArray : array [0..7] of integer;

Time : integer;

ForvT, AsocT, AsNabT, ForvRow, AssocRow, ForvColumn, AssocColumn, AsNabRow, AsNabNabor, AsNabColumn: byte;

implementation

{$R *.DFM}

function dectobinF (Dec: integer):string;

var i,temp:integer;

strtemp : string [1];

str1, hex: string;

begin

temp := Dec;

i := 1;

For i := 1 to 5 do

begin

str1 := inttostr (temp mod 2) + str1;

temp := temp div 2;

end;

dectobinF := str1;

end;

function dectobinA (Dec: integer):string;

var i,temp:integer;

strtemp : string [1];

str1, hex: string;

begin

temp := Dec;

i := 1;

For i := 1 to 8 do

begin

str1 := inttostr (temp mod 2) + str1;

temp := temp div 2;

end;

dectobinA := str1;

end;

function dectobinAN (Dec: integer):string;

var i,temp:integer;

strtemp : string [1];

str1, hex: string;

begin

temp := Dec;

i := 1;

For i := 1 to 6 do

begin

str1 := inttostr (temp mod 2) + str1;

temp := temp div 2;

end;

dectobinAN := str1;

end;

function dectobin (Dec: integer):string;

var i,temp:integer;

strtemp : string [1];

str1, hex: string;

begin

temp := Dec;

i := 1;

For i := 1 to 11 do

begin

str1 := inttostr (temp mod 2) + str1;

temp := temp div 2;

end;

dectobin := str1;

end;

procedure TFTable.FormCreate(Sender: TObject);

var i,j,k :byte;

begin

for j := 0 to TableSG.RowCount do

for i := 0 to TableSG.ColCount do

TableSG.Cells[i,j] := inttohex ((j + i*TableSG.RowCount),3);

for i := 1 to 7 do

for j := 0 to 7 do

begin

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

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

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

end;

For i:= 0 to 7 do

For j:= 0 to 7 do

begin

Forv[i,j] := false;

Asoc[i,j] := false;

end;

For i := 0 to 7 do

For j := 0 to 3 do

For k := 0 to 1 do

AsNab [i,j,k] := False;

for i := 0 to 7 do

begin

AsNabTime [i] := 0;

ForvTime [i] := 0;

AsocTime [i] := 0;

ForvTEGArray [i] := 0;

AsocTEGArray [i] := 0;

AsNabTEGArray [i] := 0;

end;

Label60.Color := ClWhite;

Label61.Color := ClWhite;

Label62.Color := ClWhite;

Label63.Color := ClWhite;

Label64.Color := ClWhite;

Label65.Color := ClWhite;

Label66.Color := ClWhite;

Label67.Color := ClWhite;

Label68.Color := ClWhite;

Label69.Color := ClWhite;

Label70.Color := ClWhite;

Label71.Color := ClWhite;

Label72.Color := ClWhite;

Label73.Color := ClWhite;

Label74.Color := ClWhite;

Label75.Color := ClWhite;

Label76.Color := ClWhite;

Label77.Color := ClWhite;

Label78.Color := ClWhite;

Label79.Color := ClWhite;

Label80.Color := ClWhite;

Label81.Color := ClWhite;

Label82.Color := ClWhite;

Label83.Color := ClWhite;

Label60.font.Color := ClBlack;

Label61.font.Color := ClBlack;

Label62.font.Color := ClBlack;

Label63.font.Color := ClBlack;

Label64.font.Color := ClBlack;

Label65.font.Color := ClBlack;

Label66.font.Color := ClBlack;

Label67.font.Color := ClBlack;

Label68.font.Color := ClBlack;

Label69.font.Color := ClBlack;

Label70.font.Color := ClBlack;

Label71.font.Color := ClBlack;

Label72.font.Color := ClBlack;

Label73.font.Color := ClBlack;

Label74.font.Color := ClBlack;

Label75.font.Color := ClBlack;

Label76.font.Color := ClBlack;

Label77.font.Color := ClBlack;

Label78.font.Color := ClBlack;

Label79.font.Color := ClBlack;

Label80.font.Color := ClBlack;

Label81.font.Color := ClBlack;

Label82.font.Color := ClBlack;

Label83.font.Color := ClBlack;

Label60.caption := dectobinF (0);

Label61.caption := dectobinF (0);

Label62.caption := dectobinF (0);

Label63.caption := dectobinF (0);

Label64.caption := dectobinF (0);

Label65.caption := dectobinF (0);

Label66.caption := dectobinF (0);

Label67.caption := dectobinF (0);

Label68.caption := dectobinA (0);

Label69.caption := dectobinA (0);

Label70.caption := dectobinA (0);

Label71.caption := dectobinA (0);

Label72.caption := dectobinA (0);

Label73.caption := dectobinA (0);

Label74.caption := dectobinA (0);

Label75.caption := dectobinA (0);

Label76.caption := dectobinAN (0);

Label77.caption := dectobinAN (0);

Label78.caption := dectobinAN (0);

Label79.caption := dectobinAN (0);

Label80.caption := dectobinAN (0);

Label81.caption := dectobinAN (0);

Label82.caption := dectobinAN (0);

Label83.caption := dectobinAN (0);

ForvT := 0;

AsocT := 0;

AsNabT := 0;

Time := 0;

T := 0;

end;

procedure TFTable.TableSGMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

TableSG.MouseToCell(X, Y, Column, Row);

end;

procedure TFTable.TableSGClick(Sender: TObject);

var

Adres,ForvTEG, AssocTEG, AsNabTeg, min, vrem : integer;

i,j,k, ForvTemp, AsocTemp : byte;

flag : boolean;

begin

Time := Time +1;

Adres := Row + Column * 32;

LabelForv.Caption := dectobin (Adres);

LabelAs.Caption := dectobin (Adres);

LabelAsNab.Caption := dectobin (Adres);

// Для Cash с прямым отображением

ForvColumn := Adres mod 8;

ForvRow := (Adres div 8) mod 8;

ForvTEG := (Adres div 8) div 8;

If ForvTime [0] = 0 Then Label60.Color := ClWhite

Else Label60.Color := ClYellow;

If ForvTime [1] = 0 Then Label61.Color := ClWhite

Else Label61.Color := ClYellow;

If ForvTime [2] = 0 Then Label62.Color := ClWhite

Else Label62.Color := ClYellow;

If ForvTime [3] = 0 Then Label63.Color := ClWhite

Else Label63.Color := ClYellow;

If ForvTime [4] = 0 Then Label64.Color := ClWhite

Else Label64.Color := ClYellow;

If ForvTime [5] = 0 Then Label65.Color := ClWhite

Else Label65.Color := ClYellow;

If ForvTime [6] = 0 Then Label66.Color := ClWhite

Else Label66.Color := ClYellow;

If ForvTime [7] = 0 Then Label67.Color := ClWhite

Else Label67.Color := ClYellow;

If ForvTEGArray [ForvRow] <> ForvTEG

Then

begin

ForvT := ForvTEGArray [ForvRow];

ForvTEGArray [ForvRow] := ForvTEG;

ForvTime [ForvRow] := Time;

for i := 0 to 7 do

Forv [i, ForvRow] := false;

Forv [ForvColumn, ForvRow] := true;

case ForvRow of

0 : Label60.Color := ClRed;

1 : Label61.Color := ClRed;

2 : Label62.Color := ClRed;

3 : Label63.Color := ClRed;

4 : Label64.Color := ClRed;

5 : Label65.Color := ClRed;

6 : Label66.Color := ClRed;

7 : Label67.Color := ClRed;

end;

end

Else

begin

ForvT := ForvTEG;

Forv [ForvColumn, ForvRow] := true;

ForvTime [ForvRow] := Time;

case ForvRow of

0 : Label60.Color := ClGreen;

1 : Label61.Color := ClGreen;

2 : Label62.Color := ClGreen;

3 : Label63.Color := ClGreen;

4 : Label64.Color := ClGreen;

5 : Label65.Color := ClGreen;

6 : Label66.Color := ClGreen;

7 : Label67.Color := ClGreen;

end;

end;

If ForvRow = 0 Then Label60.Font.Color := clblue

Else Label60.Font.Color := clblack;

If ForvRow = 1 Then Label61.Font.Color := clblue

Else Label61.Font.Color := clblack;

If ForvRow = 2 Then Label62.Font.Color := clblue

Else Label62.Font.Color := clblack;

If ForvRow = 3 Then Label63.Font.Color := clblue

Else Label63.Font.Color := clblack;

If ForvRow = 4 Then Label64.Font.Color := clblue

Else Label64.Font.Color := clblack;

If ForvRow = 5 Then Label65.Font.Color := clblue

Else Label65.Font.Color := clblack;

If ForvRow = 6 Then Label66.Font.Color := clblue

Else Label66.Font.Color := clblack;

If ForvRow = 7 Then Label67.Font.Color := clblue

Else Label67.Font.Color := clblack;

Label60.Caption := dectobinF (ForvTEGArray [0]);

Label61.Caption := dectobinF (ForvTEGArray [1]);

Label62.Caption := dectobinF (ForvTEGArray [2]);

Label63.Caption := dectobinF (ForvTEGArray [3]);

Label64.Caption := dectobinF (ForvTEGArray [4]);

Label65.Caption := dectobinF (ForvTEGArray [5]);

Label66.Caption := dectobinF (ForvTEGArray [6]);

Label67.Caption := dectobinF (ForvTEGArray [7]);

For i := 0 to 7 do

for j := 0 to 7 do

if Forv [i,j] Then SGForv.Cells [i,j] := 'X'

Else SGForv.Cells [i,j] := '';

// Для Асоциативного КЕШ

AssocColumn := Adres mod 8;

AssocTEG := Adres div 8;

If AsocTime [0] = 0 Then Label68.Color := ClWhite

Else Label68.Color := ClYellow;

If AsocTime [1] = 0 Then Label69.Color := ClWhite

Else Label69.Color := ClYellow;

If AsocTime [2] = 0 Then Label70.Color := ClWhite

Else Label70.Color := ClYellow;

If AsocTime [3] = 0 Then Label71.Color := ClWhite

Else Label71.Color := ClYellow;

If AsocTime [4] = 0 Then Label72.Color := ClWhite

Else Label72.Color := ClYellow;

If AsocTime [5] = 0 Then Label73.Color := ClWhite

Else Label73.Color := ClYellow;

If AsocTime [6] = 0 Then Label74.Color := ClWhite

Else Label74.Color := ClYellow;

If AsocTime [7] = 0 Then Label75.Color := ClWhite

Else Label75.Color := ClYellow;

min := AsocTime [0];

AssocRow := 0;

For i := 1 to 7 do

if AsocTime [i] < AsocTime [AssocRow] Then

begin

min := AsocTime [i];

AssocRow := i;

end;

flag := false;

For i:= 0 to 7 do

if AsocTEGArray [i] = AssocTEG

Then

Begin

AssocRow := i;

flag := true;

end;

if flag Then

begin

case AssocRow of

0 : Label68.Color := ClGreen;

1 : Label69.Color := ClGreen;

2 : Label70.Color := ClGreen;

3 : Label71.Color := ClGreen;

4 : Label72.Color := ClGreen;

5 : Label73.Color := ClGreen;

6 : Label74.Color := ClGreen;

7 : Label75.Color := ClGreen;

end;

end

Else

begin

for j := 0 to 7 do Asoc [j, AssocRow] := false;

case AssocRow of

0 : Label68.Color := ClRed;

1 : Label69.Color := ClRed;

2 : Label70.Color := ClRed;

3 : Label71.Color := ClRed;

4 : Label72.Color := ClRed;

5 : Label73.Color := ClRed;

6 : Label74.Color := ClRed;

7 : Label75.Color := ClRed;

end;

end;

AsocT := AsocTEGArray [AssocRow];

AsocTEGArray [AssocRow] := AssocTEG;

Asoc [AssocColumn, AssocRow] := true;

AsocTime [AssocRow] := Time;

If AssocRow = 0 Then Label68.Font.Color := clblue

Else Label68.Font.Color := clblack;

If AssocRow = 1 Then Label69.Font.Color := clblue

Else Label69.Font.Color := clblack;

If AssocRow = 2 Then Label70.Font.Color := clblue

Else Label70.Font.Color := clblack;

If AssocRow = 3 Then Label71.Font.Color := clblue

Else Label71.Font.Color := clblack;

If AssocRow = 4 Then Label72.Font.Color := clblue

Else Label72.Font.Color := clblack;

If AssocRow = 5 Then Label73.Font.Color := clblue

Else Label73.Font.Color := clblack;

If AssocRow = 6 Then Label74.Font.Color := clblue

Else Label74.Font.Color := clblack;

If AssocRow = 7 Then Label75.Font.Color := clblue

Else Label75.Font.Color := clblack;

Label68.Caption := dectobinA (AsocTEGArray [0]);

Label69.Caption := dectobinA (AsocTEGArray [1]);

Label70.Caption := dectobinA (AsocTEGArray [2]);

Label71.Caption := dectobinA (AsocTEGArray [3]);

Label72.Caption := dectobinA (AsocTEGArray [4]);

Label73.Caption := dectobinA (AsocTEGArray [5]);

Label74.Caption := dectobinA (AsocTEGArray [6]);

Label75.Caption := dectobinA (AsocTEGArray [7]);

For i := 0 to 7 do

for j := 0 to 7 do

if Asoc [i,j] Then SGAsoc.Cells [i,j] := 'X'

Else SGAsoc.Cells [i,j] := '';

// Для Ассоциативно-наборного КЕШ

AsNabColumn := Adres mod 8;

AsNabNabor := (adres div 8) mod 4;

AsNabTeg := (adres div 8) div 4;

If AsNabTime [0] = 0 Then Label76.color := ClWhite

Else Label76.Color := ClYellow;

If AsNabTime [1] = 0 Then Label77.Color := ClWhite

Else Label77.Color := ClYellow;

If AsNabTime [2] = 0 Then Label78.Color := ClWhite

Else Label78.Color := ClYellow;

If AsNabTime [3] = 0 Then Label79.Color := ClWhite

Else Label79.Color := ClYellow;

If AsNabTime [4] = 0 Then Label80.Color := ClWhite

Else Label80.Color := ClYellow;

If AsNabTime [5] = 0 Then Label81.Color := ClWhite

Else Label81.Color := ClYellow;

If AsNabTime [6] = 0 Then Label82.Color := ClWhite

Else Label82.Color := ClYellow;

If AsNabTime [7] = 0 Then Label83.Color := ClWhite

Else Label83.Color := ClYellow;

AsNabRow := 0;

min := AsNabTime [AsNabNabor*2];

For i := 0 to 1 do

if AsNabTime [AsNabNabor*2 + i] < min

Then

begin

AsNabRow := i;

min := AsNabTime [AsNabNabor*2 + i];

end;

flag := false;

For i := 0 to 1 do

if AsNabTEGArray [AsNabNabor*2 + i] = AsNabTeg

Then

begin

AsNabRow := i;

flag := true;

end;

if flag Then

case (AsNabNabor*2 + AsNabRow) of

0 : Label76.Color := ClGreen;

1 : Label77.Color := ClGreen;

2 : Label78.Color := ClGreen;

3 : Label79.Color := ClGreen;

4 : Label80.Color := ClGreen;

5 : Label81.Color := ClGreen;

6 : Label82.Color := ClGreen;

7 : Label83.Color := ClGreen;

end

Else

begin

for j := 0 to 7 do AsNab [j, AsNabNabor, AsNabRow] := false;

case (AsNabNabor*2 + AsNabRow) of

0 : Label76.Color := ClRed;

1 : Label77.Color := ClRed;

2 : Label78.Color := ClRed;

3 : Label79.Color := ClRed;

4 : Label80.Color := ClRed;

5 : Label81.Color := ClRed;

6 : Label82.Color := ClRed;

7 : Label83.Color := ClRed;

end;

end;

AsNabT := AsNabTEGArray [AsNabNabor*2 + AsNabRow];

AsNabTEGArray [AsNabNabor*2 + AsNabRow] := AsNabTeg;

AsNab [AsNabColumn, AsNabNabor, AsNabRow] := true;

AsNabTime [AsNabNabor*2 + AsNabRow] := Time;

If (AsNabNabor*2 + AsNabRow) = 0 Then Label76.Font.Color := clblue

Else Label76.Font.Color := clblack;

if (AsNabNabor*2 + AsNabRow) = 1 Then Label77.Font.Color := clblue

Else Label77.Font.Color := clblack;

If (AsNabNabor*2 + AsNabRow) = 2 Then Label78.Font.Color := clblue

Else Label78.Font.Color := clblack;

If (AsNabNabor*2 + AsNabRow) = 3 Then Label79.Font.Color := clblue

Else Label79.Font.Color := clblack;

If (AsNabNabor*2 + AsNabRow) = 4 Then Label80.Font.Color := clblue

Else Label80.Font.Color := clblack;

If (AsNabNabor*2 + AsNabRow) = 5 Then Label81.Font.Color := clblue

Else Label81.Font.Color := clblack;

If (AsNabNabor*2 + AsNabRow) = 6 Then Label82.Font.Color := clblue

Else Label82.Font.Color := clblack;

If (AsNabNabor*2 + AsNabRow) = 7 Then Label83.Font.Color := clblue

Else Label83.Font.Color := clblack;

For i := 0 to 7 do

for j := 0 to 3 do

for k := 0 to 1 do

if AsNab [i,j,k] Then SGAsNab.Cells [i,j*2+k] := 'X'

Else SGAsNab.Cells [i,j*2+k] := '';

Label76.Caption := dectobinAN (AsNabTEGArray [0]);

Label77.Caption := dectobinAN (AsNabTEGArray [1]);

Label78.Caption := dectobinAN (AsNabTEGArray [2]);

Label79.Caption := dectobinAN (AsNabTEGArray [3]);

Label80.Caption := dectobinAN (AsNabTEGArray [4]);

Label81.Caption := dectobinAN (AsNabTEGArray [5]);

Label82.Caption := dectobinAN (AsNabTEGArray [6]);

Label83.Caption := dectobinAN (AsNabTEGArray [7]);

timer1.Enabled := true;

end;

procedure TFTable.Timer1Timer(Sender: TObject);

begin

if (T mod 2) = 0 then

begin

case ForvRow of

0 : Label60.Caption := dectobinF (ForvT);

2 : Label62.Caption := dectobinF (ForvT);

3 : Label63.Caption := dectobinF (ForvT);

4 : Label64.Caption := dectobinF (ForvT);

5 : Label65.Caption := dectobinF (ForvT);

6 : Label66.Caption := dectobinF (ForvT);

7 : Label67.Caption := dectobinF (ForvT);

end;

case AssocRow of

0 : Label68.Caption := dectobinA (AsocT);

1 : Label69.Caption := dectobinA (AsocT);

2 : Label70.Caption := dectobinA (AsocT);

3 : Label71.Caption := dectobinA (AsocT);

4 : Label72.Caption := dectobinA (AsocT);

5 : Label73.Caption := dectobinA (AsocT);

6 : Label74.Caption := dectobinA (AsocT);

7 : Label75.Caption := dectobinA (AsocT);

end;

case (AsNabNabor*2 + AsNabRow) of

0 : Label76.Caption := dectobinAN (AsNabT);

1 : Label77.Caption := dectobinAN (AsNabT);

2 : Label78.Caption := dectobinAN (AsNabT);

3 : Label79.Caption := dectobinAN (AsNabT);

4 : Label80.Caption := dectobinAN (AsNabT);

5 : Label81.Caption := dectobinAN (AsNabT);

6 : Label82.Caption := dectobinAN (AsNabT);

7 : Label83.Caption := dectobinAN (AsNabT);

end;

end

else

begin

case ForvRow of

0 : Label60.Caption := dectobinF (ForvTEGArray [ForvRow]);

1 : Label61.Caption := dectobinF (ForvTEGArray [ForvRow]);

2 : Label62.Caption := dectobinF (ForvTEGArray [ForvRow]);

3 : Label63.Caption := dectobinF (ForvTEGArray [ForvRow]);

4 : Label64.Caption := dectobinF (ForvTEGArray [ForvRow]);

5 : Label65.Caption := dectobinF (ForvTEGArray [ForvRow]);

6 : Label66.Caption := dectobinF (ForvTEGArray [ForvRow]);

7 : Label67.Caption := dectobinF (ForvTEGArray [ForvRow]);

end;

case AssocRow of

0 : Label68.Caption := dectobinA (AsocTEGArray [AssocRow]);

1 : Label69.Caption := dectobinA (AsocTEGArray [AssocRow]);

2 : Label70.Caption := dectobinA (AsocTEGArray [AssocRow]);

3 : Label71.Caption := dectobinA (AsocTEGArray [AssocRow]);

4 : Label72.Caption := dectobinA (AsocTEGArray [AssocRow]);

5 : Label73.Caption := dectobinA (AsocTEGArray [AssocRow]);

6 : Label74.Caption := dectobinA (AsocTEGArray [AssocRow]);

7 : Label75.Caption := dectobinA (AsocTEGArray [AssocRow]);

end;

case (AsNabNabor*2 + AsNabRow) of

0 : Label76.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

1 : Label77.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

2 : Label78.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

3 : Label79.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

4 : Label80.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

5 : Label81.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

6 : Label82.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

7 : Label83.Caption := dectobinAN (AsNabTEGArray [AsNabNabor*2 + AsNabRow]);

end;

end;

T := T + 1 ;

end;

end.