7. Листинг программы, реализующей алгоритмы

1)         Текст программы, реализующей описание схемы блока контроля БКА.БКв

void __fastcall TForm1: Button1Click (TObject *Sender)

{

int d3b, d3a;

n = StrToInt (Edit1->Text);

k = StrToInt (Edit2->Text);

d3a = n/2 + 3;

d3b = (n – n % 2)/2;

StringGrid1->ColCount = d3a;

StringGrid2->ColCount = d3b;

for (int i=1; i<StringGrid1->ColCount; i++)

StringGrid1->Cells[i] [0]=i;

for (int i=1; i<StringGrid2->ColCount; i++)

StringGrid2->Cells[i] [0]=i;

String stroca1 [7]={«», «Âõ1», «Âõ2», «Âõ3», «Âõ4», «Âûõ1», «Âûõ2»};

for (int i=0; i<=7; i++)

{

StringGrid1->Cells[0] [i]=stroca1 [i].c_str();

StringGrid2->Cells[0] [i]=stroca1 [i].c_str();

}

StrGr1 ();

StrGr2 ();

}

 // –

void __fastcall TForm1: Cycle (TStringGrid *tab, int imin, int imax, int iinc, int jmin, int jmax, int jinc)

{

for (int i=imin; i<imax; i=i+iinc) {

for (int j = jmin; j<jmax; j=j+jinc) {

if (n % 2 == 1) {

tab->Cells[i] [1] = tab->Cells [j-1] [6];

tab->Cells[i] [2] = tab->Cells [j-1] [5];

tab->Cells[i] [3] = tab->Cells[j] [6];

tab->Cells[i] [4] = tab->Cells[j] [5];

}

else {

tab->Cells[i] [1] = tab->Cells [j-1] [5];

tab->Cells[i] [2] = tab->Cells [j-1] [6];

tab->Cells[i] [3] = tab->Cells[j] [5];

tab->Cells[i] [4] = tab->Cells[j] [6];

}

}}}

 // –

void __fastcall TForm1:IF1 (TStringGrid *tab, int head, int tail, int m)

{

if (n % 2 == 1) {

StringGrid1->Cells[head] [1] = StringGrid1->Cells[tail] [5];

StringGrid1->Cells[head] [2] = StringGrid1->Cells[tail] [6];

StringGrid1->Cells[head] [3] = StringGrid1->Cells[m] [5];

StringGrid1->Cells[head] [4] = StringGrid1->Cells[m] [6];

}

else

{

StringGrid1->Cells[head] [1] = StringGrid1->Cells[tail] [6];

StringGrid1->Cells[head] [2] = StringGrid1->Cells[tail] [5];

StringGrid1->Cells[head] [3] = StringGrid1->Cells[m] [6];

StringGrid1->Cells[head] [4] = StringGrid1->Cells[m] [5];

}}

 // –

void __fastcall TForm1:IF2 (TStringGrid *tab, int head, int tail, int m, int m1)

{

if (n % 2 == 1) {

StringGrid1->Cells[head] [1] = StringGrid1->Cells[tail] [5];

StringGrid1->Cells[head] [2] = StringGrid1->Cells[tail] [6];

StringGrid1->Cells[head] [3] = StringGrid1->Cells[m] [5];

StringGrid1->Cells[head] [4] = StringGrid1->Cells[m] [6];

}

else

{

StringGrid1->Cells[head] [1] = StringGrid1->Cells[tail] [6];

StringGrid1->Cells[head] [2] = StringGrid1->Cells[tail] [5];

StringGrid1->Cells[head] [3] = m;

StringGrid1->Cells[head] [4] = m1;

}}

 // –

void __fastcall TForm1: StrGr1 ()

{

int L, as1, as2, as3, as4, as5, d2a;

as1 = n/4 + n % 2;

as2 = as1 + L;

as3 = as2/2 + as2% 2;

as4 = as3/2 + as3% 2;

d2a = 4*n-k +5;

L = n-k;

StringGrid1->Cells[1] [5] = d2a;

StringGrid1->Cells[1] [6] = d2a+1;

for (int i=2; i<StringGrid1->ColCount; i++) {

StringGrid1->Cells[i] [5] = StringGrid1->Cells [i-1] [5]+2;

StringGrid1->Cells[i] [6] = StringGrid1->Cells[i] [6]+2;

}

StringGrid1->Cells[as1] [1] = n – 3;

StringGrid1->Cells[as1] [2] = n – 2;

StringGrid1->Cells[as1] [3] = n – 1;

StringGrid1->Cells[as1] [4] = n;

for (int i=(as1–1); i>=0; i–)

for (int j=4; j<=0; j–)

StringGrid1->Cells[i] [j] = StringGrid1->Cells [i+1] [j] – 4;

if (n % 2 == 1) {

StringGrid1->Cells[1] [1] = 0;

StringGrid1->Cells[1] [2] = 0;

StringGrid1->Cells[1] [3] = 0;

StringGrid1->Cells[1] [4] = 1;

}

Cycle (StringGrid1, as2, (as2-L/2), – 1, as1,0, – 2);

Cycle (StringGrid1, as3, (as3-L/4), – 1, as2,0, – 2);

Cycle (StringGrid1, (as1+1), (as2-L/2–1), 1,0,4,2);

IF1 (StringGrid1, as3+1, as2+1, as2+2);

IF1 (StringGrid1, as5, as3+1, as3+2);

IF2 (StringGrid1, as5+1, as5, n+2, n+1);

}

 // –

void __fastcall TForm1: StrGr2 ()

{

int d2b, d1, d3, bs1, tail, head, m, m1;

d2b = 8*n-5*k-3;

d1 = (n-k)*2;

d3 = n-k-3;

bs1= n/4–2;

StringGrid2->Cells[1] [5] = d2b;

StringGrid2->Cells[1] [6] = d2b+1;

for (int i=2; i<StringGrid2->ColCount; i++) {

StringGrid2->Cells[i] [5] = StringGrid2->Cells [i-1] [5]+2;

StringGrid2->Cells[i] [6] = StringGrid2->Cells[i] [6]+2;

}

StringGrid2->Cells[bs1] [1] = n – 3;

StringGrid2->Cells[bs1] [2] = n – 2;

StringGrid2->Cells[bs1] [3] = n – 1;

StringGrid2->Cells[bs1] [4] = n;

for (int i=(bs1–1); i>d2b; i–)

for (int j=0; j<4; j++)

StringGrid2->Cells[i] [j] = StringGrid2->Cells [i+1] [j] – 4;

IF1 (StringGrid2, d1+2, d1, d3–2);

tail+=2;

head+=2;

IF1 (StringGrid2, d1+2, d1, d3–2);

if (n % 2 == 1) {

StringGrid2->Cells [head+2] [1] = StringGrid2->Cells[head] [6];

StringGrid2->Cells [head+2] [2] = StringGrid2->Cells[head] [5];

StringGrid2->Cells [head+2] [3] = StringGrid2->Cells [d3+1] [6];

StringGrid2->Cells [head+2] [4] = StringGrid2->Cells [d3+1] [5];

}

tail= d3;

m= 4*(k-1);

head = bs1+2;

for (int i=1; i<n-k; i++)

{

IF2 (StringGrid2, head, tail, m, m-1);

tail+=2;

head+=2;

}

IF1 (StringGrid2, head, d1, d1+1);

IF1 (StringGrid2, head, tail, n/4–2);

IF2 (StringGrid2, head, tail, 2*n+4,2*n+3);

}


Информация о работе «Разработка средства функционального диагностирования вычислительных устройств»
Раздел: Информатика, программирование
Количество знаков с пробелами: 18755
Количество таблиц: 8
Количество изображений: 1

Похожие работы

Скачать
56973
0
28

ть алгоритмическое и программное обеспечение для тестирования пакета кристаллов ГАС, в соответствии со стандартом IEEE 1500. Объект исследования – пакет кристаллов ГАС. 1. Анализ технического задания 1.1 Состояние рынка технологий сервисного обслуживания SoC Проблема диагностирования и ремонта памяти связана с тенденцией на постоянное уменьшение площади кристалла, отводимой для ...

Скачать
148576
34
0

... элементов, глобальное пространство имен, а также лавинообразную первоначальную загрузку сети. Таким образом ОСРВ SPOX имеет необходимые механизмы для создания отказоустойчивой распределенной операционной системы реального времени, концепция построения которой описана в главе 2. 4.3 Аппаратно-зависимые компоненты ОСРВ Модули маршрутизации, реконфигурации, голосования реализованы как аппаратно- ...

Скачать
37309
3
0

... с эталоном выполняется маскирование состояний. Маска снимает неопределенные состояния . Обычно управление потактовой работой устройства и опрос состояния устройства выполняются с помощью команды ДИАГНОСТИКА, а сравнение с эталоном, мас­кирование и сообщение о неисправности—с помощью ко­манд на программном уровне. Команда ДИАГНОСТИКА адресует управляющее слово в ОП, которое поступает на вход ...

Скачать
64347
20
0

... ОБСЛУЖИВАНИЯ ЭВМ. Структура процессов обслуживания ЭВМ. Комплексное централизованное обслуживание ЭВМ. Оборудование помещений для ЭВМ. ТБ при работе с ЭВМ. Обеспечение пожарной безопасности вычислительных центров. Процессы планово-профилактического обслуживания. Ведение журнала эксплуатации ЭВМ. Эксплуатационная документация. Особенности эксплуатации ОС. Обслуживание носителей данных.

0 комментариев


Наверх