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);
}
ть алгоритмическое и программное обеспечение для тестирования пакета кристаллов ГАС, в соответствии со стандартом IEEE 1500. Объект исследования – пакет кристаллов ГАС. 1. Анализ технического задания 1.1 Состояние рынка технологий сервисного обслуживания SoC Проблема диагностирования и ремонта памяти связана с тенденцией на постоянное уменьшение площади кристалла, отводимой для ...
... элементов, глобальное пространство имен, а также лавинообразную первоначальную загрузку сети. Таким образом ОСРВ SPOX имеет необходимые механизмы для создания отказоустойчивой распределенной операционной системы реального времени, концепция построения которой описана в главе 2. 4.3 Аппаратно-зависимые компоненты ОСРВ Модули маршрутизации, реконфигурации, голосования реализованы как аппаратно- ...
... с эталоном выполняется маскирование состояний. Маска снимает неопределенные состояния . Обычно управление потактовой работой устройства и опрос состояния устройства выполняются с помощью команды ДИАГНОСТИКА, а сравнение с эталоном, маскирование и сообщение о неисправности—с помощью команд на программном уровне. Команда ДИАГНОСТИКА адресует управляющее слово в ОП, которое поступает на вход ...
... ОБСЛУЖИВАНИЯ ЭВМ. Структура процессов обслуживания ЭВМ. Комплексное централизованное обслуживание ЭВМ. Оборудование помещений для ЭВМ. ТБ при работе с ЭВМ. Обеспечение пожарной безопасности вычислительных центров. Процессы планово-профилактического обслуживания. Ведение журнала эксплуатации ЭВМ. Эксплуатационная документация. Особенности эксплуатации ОС. Обслуживание носителей данных.
0 комментариев